Showing error 117

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/module_get_put-drivers-usb-core-usbcore.ko_unsafe.cil.out.i.pp.cil.c
Line in file: 6862
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
    4extern int __VERIFIER_nondet_int();
    5
    6#line 19 "include/asm-generic/int-ll64.h"
    7typedef signed char __s8;
    8#line 20 "include/asm-generic/int-ll64.h"
    9typedef unsigned char __u8;
   10#line 22 "include/asm-generic/int-ll64.h"
   11typedef short __s16;
   12#line 23 "include/asm-generic/int-ll64.h"
   13typedef unsigned short __u16;
   14#line 25 "include/asm-generic/int-ll64.h"
   15typedef int __s32;
   16#line 26 "include/asm-generic/int-ll64.h"
   17typedef unsigned int __u32;
   18#line 29 "include/asm-generic/int-ll64.h"
   19typedef long long __s64;
   20#line 30 "include/asm-generic/int-ll64.h"
   21typedef unsigned long long __u64;
   22#line 43 "include/asm-generic/int-ll64.h"
   23typedef unsigned char u8;
   24#line 46 "include/asm-generic/int-ll64.h"
   25typedef unsigned short u16;
   26#line 49 "include/asm-generic/int-ll64.h"
   27typedef unsigned int u32;
   28#line 51 "include/asm-generic/int-ll64.h"
   29typedef long long s64;
   30#line 52 "include/asm-generic/int-ll64.h"
   31typedef unsigned long long u64;
   32#line 11 "include/asm-generic/types.h"
   33typedef unsigned short umode_t;
   34#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"
   35typedef unsigned int __kernel_mode_t;
   36#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"
   37typedef int __kernel_pid_t;
   38#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"
   39typedef unsigned int __kernel_uid_t;
   40#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"
   41typedef unsigned int __kernel_gid_t;
   42#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"
   43typedef unsigned long __kernel_size_t;
   44#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"
   45typedef long __kernel_ssize_t;
   46#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"
   47typedef long __kernel_time_t;
   48#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"
   49typedef long __kernel_clock_t;
   50#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"
   51typedef int __kernel_timer_t;
   52#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"
   53typedef int __kernel_clockid_t;
   54#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"
   55typedef long long __kernel_loff_t;
   56#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"
   57typedef __kernel_uid_t __kernel_uid32_t;
   58#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"
   59typedef __kernel_gid_t __kernel_gid32_t;
   60#line 21 "include/linux/types.h"
   61typedef __u32 __kernel_dev_t;
   62#line 24 "include/linux/types.h"
   63typedef __kernel_dev_t dev_t;
   64#line 26 "include/linux/types.h"
   65typedef __kernel_mode_t mode_t;
   66#line 29 "include/linux/types.h"
   67typedef __kernel_pid_t pid_t;
   68#line 34 "include/linux/types.h"
   69typedef __kernel_clockid_t clockid_t;
   70#line 37 "include/linux/types.h"
   71typedef _Bool bool;
   72#line 39 "include/linux/types.h"
   73typedef __kernel_uid32_t uid_t;
   74#line 40 "include/linux/types.h"
   75typedef __kernel_gid32_t gid_t;
   76#line 53 "include/linux/types.h"
   77typedef __kernel_loff_t loff_t;
   78#line 62 "include/linux/types.h"
   79typedef __kernel_size_t size_t;
   80#line 67 "include/linux/types.h"
   81typedef __kernel_ssize_t ssize_t;
   82#line 77 "include/linux/types.h"
   83typedef __kernel_time_t time_t;
   84#line 110 "include/linux/types.h"
   85typedef __s32 int32_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 201 "include/linux/types.h"
   97typedef unsigned int gfp_t;
   98#line 202 "include/linux/types.h"
   99typedef unsigned int fmode_t;
  100#line 214 "include/linux/types.h"
  101struct __anonstruct_atomic_t_6 {
  102   int counter ;
  103};
  104#line 214 "include/linux/types.h"
  105typedef struct __anonstruct_atomic_t_6 atomic_t;
  106#line 219 "include/linux/types.h"
  107struct __anonstruct_atomic64_t_7 {
  108   long counter ;
  109};
  110#line 219 "include/linux/types.h"
  111typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  112#line 220 "include/linux/types.h"
  113struct list_head {
  114   struct list_head *next ;
  115   struct list_head *prev ;
  116};
  117#line 225
  118struct hlist_node;
  119#line 225
  120struct hlist_node;
  121#line 225 "include/linux/types.h"
  122struct hlist_head {
  123   struct hlist_node *first ;
  124};
  125#line 229 "include/linux/types.h"
  126struct hlist_node {
  127   struct hlist_node *next ;
  128   struct hlist_node **pprev ;
  129};
  130#line 58 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/alternative.h"
  131struct module;
  132#line 58
  133struct module;
  134#line 145 "include/linux/init.h"
  135typedef void (*ctor_fn_t)(void);
  136#line 48 "include/linux/dynamic_debug.h"
  137struct bug_entry {
  138   int bug_addr_disp ;
  139   int file_disp ;
  140   unsigned short line ;
  141   unsigned short flags ;
  142};
  143#line 70 "include/asm-generic/bug.h"
  144struct completion;
  145#line 70
  146struct completion;
  147#line 71
  148struct pt_regs;
  149#line 71
  150struct pt_regs;
  151#line 321 "include/linux/kernel.h"
  152struct pid;
  153#line 321
  154struct pid;
  155#line 671
  156struct timespec;
  157#line 671
  158struct timespec;
  159#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/page_types.h"
  160struct page;
  161#line 59
  162struct page;
  163#line 21 "include/asm-generic/getorder.h"
  164struct task_struct;
  165#line 21
  166struct task_struct;
  167#line 23
  168struct mm_struct;
  169#line 23
  170struct mm_struct;
  171#line 215 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/segment.h"
  172struct pt_regs {
  173   unsigned long r15 ;
  174   unsigned long r14 ;
  175   unsigned long r13 ;
  176   unsigned long r12 ;
  177   unsigned long bp ;
  178   unsigned long bx ;
  179   unsigned long r11 ;
  180   unsigned long r10 ;
  181   unsigned long r9 ;
  182   unsigned long r8 ;
  183   unsigned long ax ;
  184   unsigned long cx ;
  185   unsigned long dx ;
  186   unsigned long si ;
  187   unsigned long di ;
  188   unsigned long orig_ax ;
  189   unsigned long ip ;
  190   unsigned long cs ;
  191   unsigned long flags ;
  192   unsigned long sp ;
  193   unsigned long ss ;
  194};
  195#line 282 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/ptrace.h"
  196struct kernel_vm86_regs {
  197   struct pt_regs pt ;
  198   unsigned short es ;
  199   unsigned short __esh ;
  200   unsigned short ds ;
  201   unsigned short __dsh ;
  202   unsigned short fs ;
  203   unsigned short __fsh ;
  204   unsigned short gs ;
  205   unsigned short __gsh ;
  206};
  207#line 203 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/vm86.h"
  208union __anonunion_ldv_2292_12 {
  209   struct pt_regs *regs ;
  210   struct kernel_vm86_regs *vm86 ;
  211};
  212#line 203 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/vm86.h"
  213struct math_emu_info {
  214   long ___orig_eip ;
  215   union __anonunion_ldv_2292_12 ldv_2292 ;
  216};
  217#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"
  218typedef unsigned long pgdval_t;
  219#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"
  220typedef unsigned long pgprotval_t;
  221#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_64_types.h"
  222struct pgprot {
  223   pgprotval_t pgprot ;
  224};
  225#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  226typedef struct pgprot pgprot_t;
  227#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  228struct __anonstruct_pgd_t_15 {
  229   pgdval_t pgd ;
  230};
  231#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  232typedef struct __anonstruct_pgd_t_15 pgd_t;
  233#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  234typedef struct page *pgtable_t;
  235#line 288
  236struct file;
  237#line 288
  238struct file;
  239#line 303
  240struct seq_file;
  241#line 303
  242struct seq_file;
  243#line 335 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  244struct __anonstruct_ldv_2526_19 {
  245   unsigned int a ;
  246   unsigned int b ;
  247};
  248#line 335 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  249struct __anonstruct_ldv_2541_20 {
  250   u16 limit0 ;
  251   u16 base0 ;
  252   unsigned char base1 ;
  253   unsigned char type : 4 ;
  254   unsigned char s : 1 ;
  255   unsigned char dpl : 2 ;
  256   unsigned char p : 1 ;
  257   unsigned char limit : 4 ;
  258   unsigned char avl : 1 ;
  259   unsigned char l : 1 ;
  260   unsigned char d : 1 ;
  261   unsigned char g : 1 ;
  262   unsigned char base2 ;
  263};
  264#line 335 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  265union __anonunion_ldv_2542_18 {
  266   struct __anonstruct_ldv_2526_19 ldv_2526 ;
  267   struct __anonstruct_ldv_2541_20 ldv_2541 ;
  268};
  269#line 335 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  270struct desc_struct {
  271   union __anonunion_ldv_2542_18 ldv_2542 ;
  272};
  273#line 122 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  274struct thread_struct;
  275#line 122
  276struct thread_struct;
  277#line 124
  278struct cpumask;
  279#line 124
  280struct cpumask;
  281#line 320 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
  282struct arch_spinlock;
  283#line 320
  284struct arch_spinlock;
  285#line 304 "include/linux/bitmap.h"
  286struct cpumask {
  287   unsigned long bits[64U] ;
  288};
  289#line 13 "include/linux/cpumask.h"
  290typedef struct cpumask cpumask_t;
  291#line 622 "include/linux/cpumask.h"
  292typedef struct cpumask *cpumask_var_t;
  293#line 277 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  294struct i387_fsave_struct {
  295   u32 cwd ;
  296   u32 swd ;
  297   u32 twd ;
  298   u32 fip ;
  299   u32 fcs ;
  300   u32 foo ;
  301   u32 fos ;
  302   u32 st_space[20U] ;
  303   u32 status ;
  304};
  305#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  306struct __anonstruct_ldv_5171_24 {
  307   u64 rip ;
  308   u64 rdp ;
  309};
  310#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  311struct __anonstruct_ldv_5177_25 {
  312   u32 fip ;
  313   u32 fcs ;
  314   u32 foo ;
  315   u32 fos ;
  316};
  317#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  318union __anonunion_ldv_5178_23 {
  319   struct __anonstruct_ldv_5171_24 ldv_5171 ;
  320   struct __anonstruct_ldv_5177_25 ldv_5177 ;
  321};
  322#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  323union __anonunion_ldv_5187_26 {
  324   u32 padding1[12U] ;
  325   u32 sw_reserved[12U] ;
  326};
  327#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  328struct i387_fxsave_struct {
  329   u16 cwd ;
  330   u16 swd ;
  331   u16 twd ;
  332   u16 fop ;
  333   union __anonunion_ldv_5178_23 ldv_5178 ;
  334   u32 mxcsr ;
  335   u32 mxcsr_mask ;
  336   u32 st_space[32U] ;
  337   u32 xmm_space[64U] ;
  338   u32 padding[12U] ;
  339   union __anonunion_ldv_5187_26 ldv_5187 ;
  340};
  341#line 329 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  342struct i387_soft_struct {
  343   u32 cwd ;
  344   u32 swd ;
  345   u32 twd ;
  346   u32 fip ;
  347   u32 fcs ;
  348   u32 foo ;
  349   u32 fos ;
  350   u32 st_space[20U] ;
  351   u8 ftop ;
  352   u8 changed ;
  353   u8 lookahead ;
  354   u8 no_update ;
  355   u8 rm ;
  356   u8 alimit ;
  357   struct math_emu_info *info ;
  358   u32 entry_eip ;
  359};
  360#line 350 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  361struct ymmh_struct {
  362   u32 ymmh_space[64U] ;
  363};
  364#line 355 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  365struct xsave_hdr_struct {
  366   u64 xstate_bv ;
  367   u64 reserved1[2U] ;
  368   u64 reserved2[5U] ;
  369};
  370#line 361 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  371struct xsave_struct {
  372   struct i387_fxsave_struct i387 ;
  373   struct xsave_hdr_struct xsave_hdr ;
  374   struct ymmh_struct ymmh ;
  375};
  376#line 367 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  377union thread_xstate {
  378   struct i387_fsave_struct fsave ;
  379   struct i387_fxsave_struct fxsave ;
  380   struct i387_soft_struct soft ;
  381   struct xsave_struct xsave ;
  382};
  383#line 375 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  384struct fpu {
  385   union thread_xstate *state ;
  386};
  387#line 421
  388struct kmem_cache;
  389#line 421
  390struct kmem_cache;
  391#line 422
  392struct perf_event;
  393#line 422
  394struct perf_event;
  395#line 423 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  396struct thread_struct {
  397   struct desc_struct tls_array[3U] ;
  398   unsigned long sp0 ;
  399   unsigned long sp ;
  400   unsigned long usersp ;
  401   unsigned short es ;
  402   unsigned short ds ;
  403   unsigned short fsindex ;
  404   unsigned short gsindex ;
  405   unsigned long fs ;
  406   unsigned long gs ;
  407   struct perf_event *ptrace_bps[4U] ;
  408   unsigned long debugreg6 ;
  409   unsigned long ptrace_dr7 ;
  410   unsigned long cr2 ;
  411   unsigned long trap_no ;
  412   unsigned long error_code ;
  413   struct fpu fpu ;
  414   unsigned long *io_bitmap_ptr ;
  415   unsigned long iopl ;
  416   unsigned int io_bitmap_max ;
  417};
  418#line 23 "include/asm-generic/atomic-long.h"
  419typedef atomic64_t atomic_long_t;
  420#line 8 "include/linux/bottom_half.h"
  421struct arch_spinlock {
  422   unsigned int slock ;
  423};
  424#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  425typedef struct arch_spinlock arch_spinlock_t;
  426#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  427struct __anonstruct_arch_rwlock_t_29 {
  428   unsigned int lock ;
  429};
  430#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  431typedef struct __anonstruct_arch_rwlock_t_29 arch_rwlock_t;
  432#line 17
  433struct lockdep_map;
  434#line 17
  435struct lockdep_map;
  436#line 55 "include/linux/debug_locks.h"
  437struct stack_trace {
  438   unsigned int nr_entries ;
  439   unsigned int max_entries ;
  440   unsigned long *entries ;
  441   int skip ;
  442};
  443#line 26 "include/linux/stacktrace.h"
  444struct lockdep_subclass_key {
  445   char __one_byte ;
  446};
  447#line 53 "include/linux/lockdep.h"
  448struct lock_class_key {
  449   struct lockdep_subclass_key subkeys[8U] ;
  450};
  451#line 59 "include/linux/lockdep.h"
  452struct lock_class {
  453   struct list_head hash_entry ;
  454   struct list_head lock_entry ;
  455   struct lockdep_subclass_key *key ;
  456   unsigned int subclass ;
  457   unsigned int dep_gen_id ;
  458   unsigned long usage_mask ;
  459   struct stack_trace usage_traces[13U] ;
  460   struct list_head locks_after ;
  461   struct list_head locks_before ;
  462   unsigned int version ;
  463   unsigned long ops ;
  464   char const   *name ;
  465   int name_version ;
  466   unsigned long contention_point[4U] ;
  467   unsigned long contending_point[4U] ;
  468};
  469#line 144 "include/linux/lockdep.h"
  470struct lockdep_map {
  471   struct lock_class_key *key ;
  472   struct lock_class *class_cache[2U] ;
  473   char const   *name ;
  474   int cpu ;
  475   unsigned long ip ;
  476};
  477#line 187 "include/linux/lockdep.h"
  478struct held_lock {
  479   u64 prev_chain_key ;
  480   unsigned long acquire_ip ;
  481   struct lockdep_map *instance ;
  482   struct lockdep_map *nest_lock ;
  483   u64 waittime_stamp ;
  484   u64 holdtime_stamp ;
  485   unsigned short class_idx : 13 ;
  486   unsigned char irq_context : 2 ;
  487   unsigned char trylock : 1 ;
  488   unsigned char read : 2 ;
  489   unsigned char check : 2 ;
  490   unsigned char hardirqs_off : 1 ;
  491   unsigned short references : 11 ;
  492};
  493#line 552 "include/linux/lockdep.h"
  494struct raw_spinlock {
  495   arch_spinlock_t raw_lock ;
  496   unsigned int magic ;
  497   unsigned int owner_cpu ;
  498   void *owner ;
  499   struct lockdep_map dep_map ;
  500};
  501#line 32 "include/linux/spinlock_types.h"
  502typedef struct raw_spinlock raw_spinlock_t;
  503#line 33 "include/linux/spinlock_types.h"
  504struct __anonstruct_ldv_6059_31 {
  505   u8 __padding[24U] ;
  506   struct lockdep_map dep_map ;
  507};
  508#line 33 "include/linux/spinlock_types.h"
  509union __anonunion_ldv_6060_30 {
  510   struct raw_spinlock rlock ;
  511   struct __anonstruct_ldv_6059_31 ldv_6059 ;
  512};
  513#line 33 "include/linux/spinlock_types.h"
  514struct spinlock {
  515   union __anonunion_ldv_6060_30 ldv_6060 ;
  516};
  517#line 76 "include/linux/spinlock_types.h"
  518typedef struct spinlock spinlock_t;
  519#line 23 "include/linux/rwlock_types.h"
  520struct __anonstruct_rwlock_t_32 {
  521   arch_rwlock_t raw_lock ;
  522   unsigned int magic ;
  523   unsigned int owner_cpu ;
  524   void *owner ;
  525   struct lockdep_map dep_map ;
  526};
  527#line 23 "include/linux/rwlock_types.h"
  528typedef struct __anonstruct_rwlock_t_32 rwlock_t;
  529#line 110 "include/linux/seqlock.h"
  530struct seqcount {
  531   unsigned int sequence ;
  532};
  533#line 121 "include/linux/seqlock.h"
  534typedef struct seqcount seqcount_t;
  535#line 233 "include/linux/seqlock.h"
  536struct timespec {
  537   __kernel_time_t tv_sec ;
  538   long tv_nsec ;
  539};
  540#line 286 "include/linux/time.h"
  541struct kstat {
  542   u64 ino ;
  543   dev_t dev ;
  544   umode_t mode ;
  545   unsigned int nlink ;
  546   uid_t uid ;
  547   gid_t gid ;
  548   dev_t rdev ;
  549   loff_t size ;
  550   struct timespec atime ;
  551   struct timespec mtime ;
  552   struct timespec ctime ;
  553   unsigned long blksize ;
  554   unsigned long long blocks ;
  555};
  556#line 49 "include/linux/wait.h"
  557struct __wait_queue_head {
  558   spinlock_t lock ;
  559   struct list_head task_list ;
  560};
  561#line 54 "include/linux/wait.h"
  562typedef struct __wait_queue_head wait_queue_head_t;
  563#line 96 "include/linux/nodemask.h"
  564struct __anonstruct_nodemask_t_34 {
  565   unsigned long bits[16U] ;
  566};
  567#line 96 "include/linux/nodemask.h"
  568typedef struct __anonstruct_nodemask_t_34 nodemask_t;
  569#line 640 "include/linux/mmzone.h"
  570struct mutex {
  571   atomic_t count ;
  572   spinlock_t wait_lock ;
  573   struct list_head wait_list ;
  574   struct task_struct *owner ;
  575   char const   *name ;
  576   void *magic ;
  577   struct lockdep_map dep_map ;
  578};
  579#line 63 "include/linux/mutex.h"
  580struct mutex_waiter {
  581   struct list_head list ;
  582   struct task_struct *task ;
  583   void *magic ;
  584};
  585#line 171
  586struct rw_semaphore;
  587#line 171
  588struct rw_semaphore;
  589#line 172 "include/linux/mutex.h"
  590struct rw_semaphore {
  591   long count ;
  592   spinlock_t wait_lock ;
  593   struct list_head wait_list ;
  594   struct lockdep_map dep_map ;
  595};
  596#line 170 "include/linux/srcu.h"
  597struct notifier_block {
  598   int (*notifier_call)(struct notifier_block * , unsigned long  , void * ) ;
  599   struct notifier_block *next ;
  600   int priority ;
  601};
  602#line 175 "include/linux/ioport.h"
  603struct device;
  604#line 175
  605struct device;
  606#line 312 "include/linux/jiffies.h"
  607union ktime {
  608   s64 tv64 ;
  609};
  610#line 59 "include/linux/ktime.h"
  611typedef union ktime ktime_t;
  612#line 99 "include/linux/debugobjects.h"
  613struct tvec_base;
  614#line 99
  615struct tvec_base;
  616#line 100 "include/linux/debugobjects.h"
  617struct timer_list {
  618   struct list_head entry ;
  619   unsigned long expires ;
  620   struct tvec_base *base ;
  621   void (*function)(unsigned long  ) ;
  622   unsigned long data ;
  623   int slack ;
  624   int start_pid ;
  625   void *start_site ;
  626   char start_comm[16U] ;
  627   struct lockdep_map lockdep_map ;
  628};
  629#line 289 "include/linux/timer.h"
  630struct hrtimer;
  631#line 289
  632struct hrtimer;
  633#line 290
  634enum hrtimer_restart;
  635#line 290
  636enum hrtimer_restart;
  637#line 290
  638enum hrtimer_restart;
  639#line 302
  640struct work_struct;
  641#line 302
  642struct work_struct;
  643#line 45 "include/linux/workqueue.h"
  644struct work_struct {
  645   atomic_long_t data ;
  646   struct list_head entry ;
  647   void (*func)(struct work_struct * ) ;
  648   struct lockdep_map lockdep_map ;
  649};
  650#line 86 "include/linux/workqueue.h"
  651struct delayed_work {
  652   struct work_struct work ;
  653   struct timer_list timer ;
  654};
  655#line 443 "include/linux/workqueue.h"
  656struct completion {
  657   unsigned int done ;
  658   wait_queue_head_t wait ;
  659};
  660#line 46 "include/linux/pm.h"
  661struct pm_message {
  662   int event ;
  663};
  664#line 52 "include/linux/pm.h"
  665typedef struct pm_message pm_message_t;
  666#line 53 "include/linux/pm.h"
  667struct dev_pm_ops {
  668   int (*prepare)(struct device * ) ;
  669   void (*complete)(struct device * ) ;
  670   int (*suspend)(struct device * ) ;
  671   int (*resume)(struct device * ) ;
  672   int (*freeze)(struct device * ) ;
  673   int (*thaw)(struct device * ) ;
  674   int (*poweroff)(struct device * ) ;
  675   int (*restore)(struct device * ) ;
  676   int (*suspend_noirq)(struct device * ) ;
  677   int (*resume_noirq)(struct device * ) ;
  678   int (*freeze_noirq)(struct device * ) ;
  679   int (*thaw_noirq)(struct device * ) ;
  680   int (*poweroff_noirq)(struct device * ) ;
  681   int (*restore_noirq)(struct device * ) ;
  682   int (*runtime_suspend)(struct device * ) ;
  683   int (*runtime_resume)(struct device * ) ;
  684   int (*runtime_idle)(struct device * ) ;
  685};
  686#line 272
  687enum rpm_status {
  688    RPM_ACTIVE = 0,
  689    RPM_RESUMING = 1,
  690    RPM_SUSPENDED = 2,
  691    RPM_SUSPENDING = 3
  692} ;
  693#line 279
  694enum rpm_request {
  695    RPM_REQ_NONE = 0,
  696    RPM_REQ_IDLE = 1,
  697    RPM_REQ_SUSPEND = 2,
  698    RPM_REQ_AUTOSUSPEND = 3,
  699    RPM_REQ_RESUME = 4
  700} ;
  701#line 287
  702struct wakeup_source;
  703#line 287
  704struct wakeup_source;
  705#line 288 "include/linux/pm.h"
  706struct dev_pm_info {
  707   pm_message_t power_state ;
  708   unsigned char can_wakeup : 1 ;
  709   unsigned char async_suspend : 1 ;
  710   bool is_prepared ;
  711   bool is_suspended ;
  712   spinlock_t lock ;
  713   struct list_head entry ;
  714   struct completion completion ;
  715   struct wakeup_source *wakeup ;
  716   struct timer_list suspend_timer ;
  717   unsigned long timer_expires ;
  718   struct work_struct work ;
  719   wait_queue_head_t wait_queue ;
  720   atomic_t usage_count ;
  721   atomic_t child_count ;
  722   unsigned char disable_depth : 3 ;
  723   unsigned char ignore_children : 1 ;
  724   unsigned char idle_notification : 1 ;
  725   unsigned char request_pending : 1 ;
  726   unsigned char deferred_resume : 1 ;
  727   unsigned char run_wake : 1 ;
  728   unsigned char runtime_auto : 1 ;
  729   unsigned char no_callbacks : 1 ;
  730   unsigned char irq_safe : 1 ;
  731   unsigned char use_autosuspend : 1 ;
  732   unsigned char timer_autosuspends : 1 ;
  733   enum rpm_request request ;
  734   enum rpm_status runtime_status ;
  735   int runtime_error ;
  736   int autosuspend_delay ;
  737   unsigned long last_busy ;
  738   unsigned long active_jiffies ;
  739   unsigned long suspended_jiffies ;
  740   unsigned long accounting_timestamp ;
  741   void *subsys_data ;
  742};
  743#line 469 "include/linux/pm.h"
  744struct dev_power_domain {
  745   struct dev_pm_ops ops ;
  746};
  747#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
  748struct __anonstruct_mm_context_t_99 {
  749   void *ldt ;
  750   int size ;
  751   unsigned short ia32_compat ;
  752   struct mutex lock ;
  753   void *vdso ;
  754};
  755#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
  756typedef struct __anonstruct_mm_context_t_99 mm_context_t;
  757#line 71 "include/asm-generic/iomap.h"
  758struct vm_area_struct;
  759#line 71
  760struct vm_area_struct;
  761#line 53 "include/linux/rcupdate.h"
  762struct rcu_head {
  763   struct rcu_head *next ;
  764   void (*func)(struct rcu_head * ) ;
  765};
  766#line 841
  767struct nsproxy;
  768#line 841
  769struct nsproxy;
  770#line 36 "include/linux/kmod.h"
  771struct cred;
  772#line 36
  773struct cred;
  774#line 27 "include/linux/elf.h"
  775typedef __u64 Elf64_Addr;
  776#line 28 "include/linux/elf.h"
  777typedef __u16 Elf64_Half;
  778#line 32 "include/linux/elf.h"
  779typedef __u32 Elf64_Word;
  780#line 33 "include/linux/elf.h"
  781typedef __u64 Elf64_Xword;
  782#line 202 "include/linux/elf.h"
  783struct elf64_sym {
  784   Elf64_Word st_name ;
  785   unsigned char st_info ;
  786   unsigned char st_other ;
  787   Elf64_Half st_shndx ;
  788   Elf64_Addr st_value ;
  789   Elf64_Xword st_size ;
  790};
  791#line 210 "include/linux/elf.h"
  792typedef struct elf64_sym Elf64_Sym;
  793#line 444
  794struct sock;
  795#line 444
  796struct sock;
  797#line 445
  798struct kobject;
  799#line 445
  800struct kobject;
  801#line 446
  802enum kobj_ns_type {
  803    KOBJ_NS_TYPE_NONE = 0,
  804    KOBJ_NS_TYPE_NET = 1,
  805    KOBJ_NS_TYPES = 2
  806} ;
  807#line 452 "include/linux/elf.h"
  808struct kobj_ns_type_operations {
  809   enum kobj_ns_type type ;
  810   void *(*grab_current_ns)(void) ;
  811   void const   *(*netlink_ns)(struct sock * ) ;
  812   void const   *(*initial_ns)(void) ;
  813   void (*drop_ns)(void * ) ;
  814};
  815#line 57 "include/linux/kobject_ns.h"
  816struct attribute {
  817   char const   *name ;
  818   mode_t mode ;
  819   struct lock_class_key *key ;
  820   struct lock_class_key skey ;
  821};
  822#line 33 "include/linux/sysfs.h"
  823struct attribute_group {
  824   char const   *name ;
  825   mode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
  826   struct attribute **attrs ;
  827};
  828#line 62 "include/linux/sysfs.h"
  829struct bin_attribute {
  830   struct attribute attr ;
  831   size_t size ;
  832   void *private ;
  833   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
  834                   loff_t  , size_t  ) ;
  835   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
  836                    loff_t  , size_t  ) ;
  837   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
  838};
  839#line 98 "include/linux/sysfs.h"
  840struct sysfs_ops {
  841   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
  842   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
  843};
  844#line 116
  845struct sysfs_dirent;
  846#line 116
  847struct sysfs_dirent;
  848#line 181 "include/linux/sysfs.h"
  849struct kref {
  850   atomic_t refcount ;
  851};
  852#line 49 "include/linux/kobject.h"
  853struct kset;
  854#line 49
  855struct kset;
  856#line 49
  857struct kobj_type;
  858#line 49
  859struct kobj_type;
  860#line 49 "include/linux/kobject.h"
  861struct kobject {
  862   char const   *name ;
  863   struct list_head entry ;
  864   struct kobject *parent ;
  865   struct kset *kset ;
  866   struct kobj_type *ktype ;
  867   struct sysfs_dirent *sd ;
  868   struct kref kref ;
  869   unsigned char state_initialized : 1 ;
  870   unsigned char state_in_sysfs : 1 ;
  871   unsigned char state_add_uevent_sent : 1 ;
  872   unsigned char state_remove_uevent_sent : 1 ;
  873   unsigned char uevent_suppress : 1 ;
  874};
  875#line 109 "include/linux/kobject.h"
  876struct kobj_type {
  877   void (*release)(struct kobject * ) ;
  878   struct sysfs_ops  const  *sysfs_ops ;
  879   struct attribute **default_attrs ;
  880   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
  881   void const   *(*namespace)(struct kobject * ) ;
  882};
  883#line 117 "include/linux/kobject.h"
  884struct kobj_uevent_env {
  885   char *envp[32U] ;
  886   int envp_idx ;
  887   char buf[2048U] ;
  888   int buflen ;
  889};
  890#line 124 "include/linux/kobject.h"
  891struct kset_uevent_ops {
  892   int (* const  filter)(struct kset * , struct kobject * ) ;
  893   char const   *(* const  name)(struct kset * , struct kobject * ) ;
  894   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
  895};
  896#line 141 "include/linux/kobject.h"
  897struct kset {
  898   struct list_head list ;
  899   spinlock_t list_lock ;
  900   struct kobject kobj ;
  901   struct kset_uevent_ops  const  *uevent_ops ;
  902};
  903#line 219
  904struct kernel_param;
  905#line 219
  906struct kernel_param;
  907#line 220 "include/linux/kobject.h"
  908struct kernel_param_ops {
  909   int (*set)(char const   * , struct kernel_param  const  * ) ;
  910   int (*get)(char * , struct kernel_param  const  * ) ;
  911   void (*free)(void * ) ;
  912};
  913#line 44 "include/linux/moduleparam.h"
  914struct kparam_string;
  915#line 44
  916struct kparam_string;
  917#line 44
  918struct kparam_array;
  919#line 44
  920struct kparam_array;
  921#line 44 "include/linux/moduleparam.h"
  922union __anonunion_ldv_12924_129 {
  923   void *arg ;
  924   struct kparam_string  const  *str ;
  925   struct kparam_array  const  *arr ;
  926};
  927#line 44 "include/linux/moduleparam.h"
  928struct kernel_param {
  929   char const   *name ;
  930   struct kernel_param_ops  const  *ops ;
  931   u16 perm ;
  932   u16 flags ;
  933   union __anonunion_ldv_12924_129 ldv_12924 ;
  934};
  935#line 59 "include/linux/moduleparam.h"
  936struct kparam_string {
  937   unsigned int maxlen ;
  938   char *string ;
  939};
  940#line 65 "include/linux/moduleparam.h"
  941struct kparam_array {
  942   unsigned int max ;
  943   unsigned int elemsize ;
  944   unsigned int *num ;
  945   struct kernel_param_ops  const  *ops ;
  946   void *elem ;
  947};
  948#line 404 "include/linux/moduleparam.h"
  949struct jump_label_key {
  950   atomic_t enabled ;
  951};
  952#line 99 "include/linux/jump_label.h"
  953struct tracepoint;
  954#line 99
  955struct tracepoint;
  956#line 100 "include/linux/jump_label.h"
  957struct tracepoint_func {
  958   void *func ;
  959   void *data ;
  960};
  961#line 29 "include/linux/tracepoint.h"
  962struct tracepoint {
  963   char const   *name ;
  964   struct jump_label_key key ;
  965   void (*regfunc)(void) ;
  966   void (*unregfunc)(void) ;
  967   struct tracepoint_func *funcs ;
  968};
  969#line 84 "include/linux/tracepoint.h"
  970struct mod_arch_specific {
  971
  972};
  973#line 127 "include/trace/events/module.h"
  974struct kernel_symbol {
  975   unsigned long value ;
  976   char const   *name ;
  977};
  978#line 48 "include/linux/module.h"
  979struct module_attribute {
  980   struct attribute attr ;
  981   ssize_t (*show)(struct module_attribute * , struct module * , char * ) ;
  982   ssize_t (*store)(struct module_attribute * , struct module * , char const   * ,
  983                    size_t  ) ;
  984   void (*setup)(struct module * , char const   * ) ;
  985   int (*test)(struct module * ) ;
  986   void (*free)(struct module * ) ;
  987};
  988#line 68
  989struct module_param_attrs;
  990#line 68
  991struct module_param_attrs;
  992#line 68 "include/linux/module.h"
  993struct module_kobject {
  994   struct kobject kobj ;
  995   struct module *mod ;
  996   struct kobject *drivers_dir ;
  997   struct module_param_attrs *mp ;
  998};
  999#line 81
 1000struct exception_table_entry;
 1001#line 81
 1002struct exception_table_entry;
 1003#line 218
 1004enum module_state {
 1005    MODULE_STATE_LIVE = 0,
 1006    MODULE_STATE_COMING = 1,
 1007    MODULE_STATE_GOING = 2
 1008} ;
 1009#line 224 "include/linux/module.h"
 1010struct module_ref {
 1011   unsigned int incs ;
 1012   unsigned int decs ;
 1013};
 1014#line 418
 1015struct module_sect_attrs;
 1016#line 418
 1017struct module_sect_attrs;
 1018#line 418
 1019struct module_notes_attrs;
 1020#line 418
 1021struct module_notes_attrs;
 1022#line 418
 1023struct ftrace_event_call;
 1024#line 418
 1025struct ftrace_event_call;
 1026#line 418 "include/linux/module.h"
 1027struct module {
 1028   enum module_state state ;
 1029   struct list_head list ;
 1030   char name[56U] ;
 1031   struct module_kobject mkobj ;
 1032   struct module_attribute *modinfo_attrs ;
 1033   char const   *version ;
 1034   char const   *srcversion ;
 1035   struct kobject *holders_dir ;
 1036   struct kernel_symbol  const  *syms ;
 1037   unsigned long const   *crcs ;
 1038   unsigned int num_syms ;
 1039   struct kernel_param *kp ;
 1040   unsigned int num_kp ;
 1041   unsigned int num_gpl_syms ;
 1042   struct kernel_symbol  const  *gpl_syms ;
 1043   unsigned long const   *gpl_crcs ;
 1044   struct kernel_symbol  const  *unused_syms ;
 1045   unsigned long const   *unused_crcs ;
 1046   unsigned int num_unused_syms ;
 1047   unsigned int num_unused_gpl_syms ;
 1048   struct kernel_symbol  const  *unused_gpl_syms ;
 1049   unsigned long const   *unused_gpl_crcs ;
 1050   struct kernel_symbol  const  *gpl_future_syms ;
 1051   unsigned long const   *gpl_future_crcs ;
 1052   unsigned int num_gpl_future_syms ;
 1053   unsigned int num_exentries ;
 1054   struct exception_table_entry *extable ;
 1055   int (*init)(void) ;
 1056   void *module_init ;
 1057   void *module_core ;
 1058   unsigned int init_size ;
 1059   unsigned int core_size ;
 1060   unsigned int init_text_size ;
 1061   unsigned int core_text_size ;
 1062   unsigned int init_ro_size ;
 1063   unsigned int core_ro_size ;
 1064   struct mod_arch_specific arch ;
 1065   unsigned int taints ;
 1066   unsigned int num_bugs ;
 1067   struct list_head bug_list ;
 1068   struct bug_entry *bug_table ;
 1069   Elf64_Sym *symtab ;
 1070   Elf64_Sym *core_symtab ;
 1071   unsigned int num_symtab ;
 1072   unsigned int core_num_syms ;
 1073   char *strtab ;
 1074   char *core_strtab ;
 1075   struct module_sect_attrs *sect_attrs ;
 1076   struct module_notes_attrs *notes_attrs ;
 1077   char *args ;
 1078   void *percpu ;
 1079   unsigned int percpu_size ;
 1080   unsigned int num_tracepoints ;
 1081   struct tracepoint * const  *tracepoints_ptrs ;
 1082   unsigned int num_trace_bprintk_fmt ;
 1083   char const   **trace_bprintk_fmt_start ;
 1084   struct ftrace_event_call **trace_events ;
 1085   unsigned int num_trace_events ;
 1086   unsigned int num_ftrace_callsites ;
 1087   unsigned long *ftrace_callsites ;
 1088   struct list_head source_list ;
 1089   struct list_head target_list ;
 1090   struct task_struct *waiter ;
 1091   void (*exit)(void) ;
 1092   struct module_ref *refptr ;
 1093   ctor_fn_t (**ctors)(void) ;
 1094   unsigned int num_ctors ;
 1095};
 1096#line 118 "include/linux/kmemleak.h"
 1097struct kmem_cache_cpu {
 1098   void **freelist ;
 1099   unsigned long tid ;
 1100   struct page *page ;
 1101   int node ;
 1102   unsigned int stat[19U] ;
 1103};
 1104#line 46 "include/linux/slub_def.h"
 1105struct kmem_cache_node {
 1106   spinlock_t list_lock ;
 1107   unsigned long nr_partial ;
 1108   struct list_head partial ;
 1109   atomic_long_t nr_slabs ;
 1110   atomic_long_t total_objects ;
 1111   struct list_head full ;
 1112};
 1113#line 57 "include/linux/slub_def.h"
 1114struct kmem_cache_order_objects {
 1115   unsigned long x ;
 1116};
 1117#line 67 "include/linux/slub_def.h"
 1118struct kmem_cache {
 1119   struct kmem_cache_cpu *cpu_slab ;
 1120   unsigned long flags ;
 1121   unsigned long min_partial ;
 1122   int size ;
 1123   int objsize ;
 1124   int offset ;
 1125   struct kmem_cache_order_objects oo ;
 1126   struct kmem_cache_order_objects max ;
 1127   struct kmem_cache_order_objects min ;
 1128   gfp_t allocflags ;
 1129   int refcount ;
 1130   void (*ctor)(void * ) ;
 1131   int inuse ;
 1132   int align ;
 1133   int reserved ;
 1134   char const   *name ;
 1135   struct list_head list ;
 1136   struct kobject kobj ;
 1137   int remote_node_defrag_ratio ;
 1138   struct kmem_cache_node *node[1024U] ;
 1139};
 1140#line 335 "include/linux/slab.h"
 1141enum irqreturn {
 1142    IRQ_NONE = 0,
 1143    IRQ_HANDLED = 1,
 1144    IRQ_WAKE_THREAD = 2
 1145} ;
 1146#line 16 "include/linux/irqreturn.h"
 1147typedef enum irqreturn irqreturn_t;
 1148#line 331 "include/linux/irq.h"
 1149struct proc_dir_entry;
 1150#line 331
 1151struct proc_dir_entry;
 1152#line 333
 1153struct irqaction;
 1154#line 333
 1155struct irqaction;
 1156#line 41 "include/asm-generic/sections.h"
 1157struct exception_table_entry {
 1158   unsigned long insn ;
 1159   unsigned long fixup ;
 1160};
 1161#line 210 "include/linux/hardirq.h"
 1162struct rb_node {
 1163   unsigned long rb_parent_color ;
 1164   struct rb_node *rb_right ;
 1165   struct rb_node *rb_left ;
 1166};
 1167#line 108 "include/linux/rbtree.h"
 1168struct rb_root {
 1169   struct rb_node *rb_node ;
 1170};
 1171#line 176 "include/linux/rbtree.h"
 1172struct timerqueue_node {
 1173   struct rb_node node ;
 1174   ktime_t expires ;
 1175};
 1176#line 12 "include/linux/timerqueue.h"
 1177struct timerqueue_head {
 1178   struct rb_root head ;
 1179   struct timerqueue_node *next ;
 1180};
 1181#line 50
 1182struct hrtimer_clock_base;
 1183#line 50
 1184struct hrtimer_clock_base;
 1185#line 51
 1186struct hrtimer_cpu_base;
 1187#line 51
 1188struct hrtimer_cpu_base;
 1189#line 60
 1190enum hrtimer_restart {
 1191    HRTIMER_NORESTART = 0,
 1192    HRTIMER_RESTART = 1
 1193} ;
 1194#line 65 "include/linux/timerqueue.h"
 1195struct hrtimer {
 1196   struct timerqueue_node node ;
 1197   ktime_t _softexpires ;
 1198   enum hrtimer_restart (*function)(struct hrtimer * ) ;
 1199   struct hrtimer_clock_base *base ;
 1200   unsigned long state ;
 1201   int start_pid ;
 1202   void *start_site ;
 1203   char start_comm[16U] ;
 1204};
 1205#line 132 "include/linux/hrtimer.h"
 1206struct hrtimer_clock_base {
 1207   struct hrtimer_cpu_base *cpu_base ;
 1208   int index ;
 1209   clockid_t clockid ;
 1210   struct timerqueue_head active ;
 1211   ktime_t resolution ;
 1212   ktime_t (*get_time)(void) ;
 1213   ktime_t softirq_time ;
 1214   ktime_t offset ;
 1215};
 1216#line 162 "include/linux/hrtimer.h"
 1217struct hrtimer_cpu_base {
 1218   raw_spinlock_t lock ;
 1219   unsigned long active_bases ;
 1220   ktime_t expires_next ;
 1221   int hres_active ;
 1222   int hang_detected ;
 1223   unsigned long nr_events ;
 1224   unsigned long nr_retries ;
 1225   unsigned long nr_hangs ;
 1226   ktime_t max_hang_time ;
 1227   struct hrtimer_clock_base clock_base[3U] ;
 1228};
 1229#line 91 "include/linux/interrupt.h"
 1230struct irqaction {
 1231   irqreturn_t (*handler)(int  , void * ) ;
 1232   unsigned long flags ;
 1233   void *dev_id ;
 1234   struct irqaction *next ;
 1235   int irq ;
 1236   irqreturn_t (*thread_fn)(int  , void * ) ;
 1237   struct task_struct *thread ;
 1238   unsigned long thread_flags ;
 1239   unsigned long thread_mask ;
 1240   char const   *name ;
 1241   struct proc_dir_entry *dir ;
 1242};
 1243#line 12 "include/linux/mod_devicetable.h"
 1244typedef unsigned long kernel_ulong_t;
 1245#line 38 "include/linux/mod_devicetable.h"
 1246struct usb_device_id {
 1247   __u16 match_flags ;
 1248   __u16 idVendor ;
 1249   __u16 idProduct ;
 1250   __u16 bcdDevice_lo ;
 1251   __u16 bcdDevice_hi ;
 1252   __u8 bDeviceClass ;
 1253   __u8 bDeviceSubClass ;
 1254   __u8 bDeviceProtocol ;
 1255   __u8 bInterfaceClass ;
 1256   __u8 bInterfaceSubClass ;
 1257   __u8 bInterfaceProtocol ;
 1258   kernel_ulong_t driver_info ;
 1259};
 1260#line 215 "include/linux/mod_devicetable.h"
 1261struct of_device_id {
 1262   char name[32U] ;
 1263   char type[32U] ;
 1264   char compatible[128U] ;
 1265   void *data ;
 1266};
 1267#line 178 "include/linux/usb/ch9.h"
 1268struct usb_descriptor_header {
 1269   __u8 bLength ;
 1270   __u8 bDescriptorType ;
 1271};
 1272#line 239 "include/linux/usb/ch9.h"
 1273struct usb_device_descriptor {
 1274   __u8 bLength ;
 1275   __u8 bDescriptorType ;
 1276   __le16 bcdUSB ;
 1277   __u8 bDeviceClass ;
 1278   __u8 bDeviceSubClass ;
 1279   __u8 bDeviceProtocol ;
 1280   __u8 bMaxPacketSize0 ;
 1281   __le16 idVendor ;
 1282   __le16 idProduct ;
 1283   __le16 bcdDevice ;
 1284   __u8 iManufacturer ;
 1285   __u8 iProduct ;
 1286   __u8 iSerialNumber ;
 1287   __u8 bNumConfigurations ;
 1288};
 1289#line 261 "include/linux/usb/ch9.h"
 1290struct usb_config_descriptor {
 1291   __u8 bLength ;
 1292   __u8 bDescriptorType ;
 1293   __le16 wTotalLength ;
 1294   __u8 bNumInterfaces ;
 1295   __u8 bConfigurationValue ;
 1296   __u8 iConfiguration ;
 1297   __u8 bmAttributes ;
 1298   __u8 bMaxPower ;
 1299};
 1300#line 329 "include/linux/usb/ch9.h"
 1301struct usb_interface_descriptor {
 1302   __u8 bLength ;
 1303   __u8 bDescriptorType ;
 1304   __u8 bInterfaceNumber ;
 1305   __u8 bAlternateSetting ;
 1306   __u8 bNumEndpoints ;
 1307   __u8 bInterfaceClass ;
 1308   __u8 bInterfaceSubClass ;
 1309   __u8 bInterfaceProtocol ;
 1310   __u8 iInterface ;
 1311};
 1312#line 349 "include/linux/usb/ch9.h"
 1313struct usb_endpoint_descriptor {
 1314   __u8 bLength ;
 1315   __u8 bDescriptorType ;
 1316   __u8 bEndpointAddress ;
 1317   __u8 bmAttributes ;
 1318   __le16 wMaxPacketSize ;
 1319   __u8 bInterval ;
 1320   __u8 bRefresh ;
 1321   __u8 bSynchAddress ;
 1322};
 1323#line 572 "include/linux/usb/ch9.h"
 1324struct usb_ss_ep_comp_descriptor {
 1325   __u8 bLength ;
 1326   __u8 bDescriptorType ;
 1327   __u8 bMaxBurst ;
 1328   __u8 bmAttributes ;
 1329   __le16 wBytesPerInterval ;
 1330};
 1331#line 633 "include/linux/usb/ch9.h"
 1332struct usb_interface_assoc_descriptor {
 1333   __u8 bLength ;
 1334   __u8 bDescriptorType ;
 1335   __u8 bFirstInterface ;
 1336   __u8 bInterfaceCount ;
 1337   __u8 bFunctionClass ;
 1338   __u8 bFunctionSubClass ;
 1339   __u8 bFunctionProtocol ;
 1340   __u8 iFunction ;
 1341};
 1342#line 841
 1343enum usb_device_speed {
 1344    USB_SPEED_UNKNOWN = 0,
 1345    USB_SPEED_LOW = 1,
 1346    USB_SPEED_FULL = 2,
 1347    USB_SPEED_HIGH = 3,
 1348    USB_SPEED_WIRELESS = 4,
 1349    USB_SPEED_SUPER = 5
 1350} ;
 1351#line 850
 1352enum usb_device_state {
 1353    USB_STATE_NOTATTACHED = 0,
 1354    USB_STATE_ATTACHED = 1,
 1355    USB_STATE_POWERED = 2,
 1356    USB_STATE_RECONNECTING = 3,
 1357    USB_STATE_UNAUTHENTICATED = 4,
 1358    USB_STATE_DEFAULT = 5,
 1359    USB_STATE_ADDRESS = 6,
 1360    USB_STATE_CONFIGURED = 7,
 1361    USB_STATE_SUSPENDED = 8
 1362} ;
 1363#line 54 "include/linux/delay.h"
 1364struct klist_node;
 1365#line 54
 1366struct klist_node;
 1367#line 37 "include/linux/klist.h"
 1368struct klist_node {
 1369   void *n_klist ;
 1370   struct list_head n_node ;
 1371   struct kref n_ref ;
 1372};
 1373#line 67
 1374struct dma_map_ops;
 1375#line 67
 1376struct dma_map_ops;
 1377#line 67 "include/linux/klist.h"
 1378struct dev_archdata {
 1379   void *acpi_handle ;
 1380   struct dma_map_ops *dma_ops ;
 1381   void *iommu ;
 1382};
 1383#line 17 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 1384struct device_private;
 1385#line 17
 1386struct device_private;
 1387#line 18
 1388struct device_driver;
 1389#line 18
 1390struct device_driver;
 1391#line 19
 1392struct driver_private;
 1393#line 19
 1394struct driver_private;
 1395#line 20
 1396struct class;
 1397#line 20
 1398struct class;
 1399#line 21
 1400struct subsys_private;
 1401#line 21
 1402struct subsys_private;
 1403#line 22
 1404struct bus_type;
 1405#line 22
 1406struct bus_type;
 1407#line 23
 1408struct device_node;
 1409#line 23
 1410struct device_node;
 1411#line 24 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 1412struct bus_attribute {
 1413   struct attribute attr ;
 1414   ssize_t (*show)(struct bus_type * , char * ) ;
 1415   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
 1416};
 1417#line 49 "include/linux/device.h"
 1418struct device_attribute;
 1419#line 49
 1420struct device_attribute;
 1421#line 49
 1422struct driver_attribute;
 1423#line 49
 1424struct driver_attribute;
 1425#line 49 "include/linux/device.h"
 1426struct bus_type {
 1427   char const   *name ;
 1428   struct bus_attribute *bus_attrs ;
 1429   struct device_attribute *dev_attrs ;
 1430   struct driver_attribute *drv_attrs ;
 1431   int (*match)(struct device * , struct device_driver * ) ;
 1432   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 1433   int (*probe)(struct device * ) ;
 1434   int (*remove)(struct device * ) ;
 1435   void (*shutdown)(struct device * ) ;
 1436   int (*suspend)(struct device * , pm_message_t  ) ;
 1437   int (*resume)(struct device * ) ;
 1438   struct dev_pm_ops  const  *pm ;
 1439   struct subsys_private *p ;
 1440};
 1441#line 153 "include/linux/device.h"
 1442struct device_driver {
 1443   char const   *name ;
 1444   struct bus_type *bus ;
 1445   struct module *owner ;
 1446   char const   *mod_name ;
 1447   bool suppress_bind_attrs ;
 1448   struct of_device_id  const  *of_match_table ;
 1449   int (*probe)(struct device * ) ;
 1450   int (*remove)(struct device * ) ;
 1451   void (*shutdown)(struct device * ) ;
 1452   int (*suspend)(struct device * , pm_message_t  ) ;
 1453   int (*resume)(struct device * ) ;
 1454   struct attribute_group  const  **groups ;
 1455   struct dev_pm_ops  const  *pm ;
 1456   struct driver_private *p ;
 1457};
 1458#line 218 "include/linux/device.h"
 1459struct driver_attribute {
 1460   struct attribute attr ;
 1461   ssize_t (*show)(struct device_driver * , char * ) ;
 1462   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
 1463};
 1464#line 248
 1465struct class_attribute;
 1466#line 248
 1467struct class_attribute;
 1468#line 248 "include/linux/device.h"
 1469struct class {
 1470   char const   *name ;
 1471   struct module *owner ;
 1472   struct class_attribute *class_attrs ;
 1473   struct device_attribute *dev_attrs ;
 1474   struct bin_attribute *dev_bin_attrs ;
 1475   struct kobject *dev_kobj ;
 1476   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
 1477   char *(*devnode)(struct device * , mode_t * ) ;
 1478   void (*class_release)(struct class * ) ;
 1479   void (*dev_release)(struct device * ) ;
 1480   int (*suspend)(struct device * , pm_message_t  ) ;
 1481   int (*resume)(struct device * ) ;
 1482   struct kobj_ns_type_operations  const  *ns_type ;
 1483   void const   *(*namespace)(struct device * ) ;
 1484   struct dev_pm_ops  const  *pm ;
 1485   struct subsys_private *p ;
 1486};
 1487#line 305
 1488struct device_type;
 1489#line 305
 1490struct device_type;
 1491#line 344 "include/linux/device.h"
 1492struct class_attribute {
 1493   struct attribute attr ;
 1494   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
 1495   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
 1496};
 1497#line 395 "include/linux/device.h"
 1498struct device_type {
 1499   char const   *name ;
 1500   struct attribute_group  const  **groups ;
 1501   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 1502   char *(*devnode)(struct device * , mode_t * ) ;
 1503   void (*release)(struct device * ) ;
 1504   struct dev_pm_ops  const  *pm ;
 1505};
 1506#line 422 "include/linux/device.h"
 1507struct device_attribute {
 1508   struct attribute attr ;
 1509   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
 1510   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
 1511                    size_t  ) ;
 1512};
 1513#line 483 "include/linux/device.h"
 1514struct device_dma_parameters {
 1515   unsigned int max_segment_size ;
 1516   unsigned long segment_boundary_mask ;
 1517};
 1518#line 492
 1519struct dma_coherent_mem;
 1520#line 492
 1521struct dma_coherent_mem;
 1522#line 492 "include/linux/device.h"
 1523struct device {
 1524   struct device *parent ;
 1525   struct device_private *p ;
 1526   struct kobject kobj ;
 1527   char const   *init_name ;
 1528   struct device_type  const  *type ;
 1529   struct mutex mutex ;
 1530   struct bus_type *bus ;
 1531   struct device_driver *driver ;
 1532   void *platform_data ;
 1533   struct dev_pm_info power ;
 1534   struct dev_power_domain *pwr_domain ;
 1535   int numa_node ;
 1536   u64 *dma_mask ;
 1537   u64 coherent_dma_mask ;
 1538   struct device_dma_parameters *dma_parms ;
 1539   struct list_head dma_pools ;
 1540   struct dma_coherent_mem *dma_mem ;
 1541   struct dev_archdata archdata ;
 1542   struct device_node *of_node ;
 1543   dev_t devt ;
 1544   spinlock_t devres_lock ;
 1545   struct list_head devres_head ;
 1546   struct klist_node knode_class ;
 1547   struct class *class ;
 1548   struct attribute_group  const  **groups ;
 1549   void (*release)(struct device * ) ;
 1550};
 1551#line 604 "include/linux/device.h"
 1552struct wakeup_source {
 1553   char *name ;
 1554   struct list_head entry ;
 1555   spinlock_t lock ;
 1556   struct timer_list timer ;
 1557   unsigned long timer_expires ;
 1558   ktime_t total_time ;
 1559   ktime_t max_time ;
 1560   ktime_t last_time ;
 1561   unsigned long event_count ;
 1562   unsigned long active_count ;
 1563   unsigned long relax_count ;
 1564   unsigned long hit_count ;
 1565   unsigned char active : 1 ;
 1566};
 1567#line 906
 1568struct block_device;
 1569#line 906
 1570struct block_device;
 1571#line 92 "include/linux/bit_spinlock.h"
 1572struct hlist_bl_node;
 1573#line 92
 1574struct hlist_bl_node;
 1575#line 92 "include/linux/bit_spinlock.h"
 1576struct hlist_bl_head {
 1577   struct hlist_bl_node *first ;
 1578};
 1579#line 36 "include/linux/list_bl.h"
 1580struct hlist_bl_node {
 1581   struct hlist_bl_node *next ;
 1582   struct hlist_bl_node **pprev ;
 1583};
 1584#line 114 "include/linux/rculist_bl.h"
 1585struct nameidata;
 1586#line 114
 1587struct nameidata;
 1588#line 115
 1589struct path;
 1590#line 115
 1591struct path;
 1592#line 116
 1593struct vfsmount;
 1594#line 116
 1595struct vfsmount;
 1596#line 117 "include/linux/rculist_bl.h"
 1597struct qstr {
 1598   unsigned int hash ;
 1599   unsigned int len ;
 1600   unsigned char const   *name ;
 1601};
 1602#line 100 "include/linux/dcache.h"
 1603struct inode;
 1604#line 100
 1605struct inode;
 1606#line 100
 1607struct dentry_operations;
 1608#line 100
 1609struct dentry_operations;
 1610#line 100
 1611struct super_block;
 1612#line 100
 1613struct super_block;
 1614#line 100 "include/linux/dcache.h"
 1615union __anonunion_d_u_132 {
 1616   struct list_head d_child ;
 1617   struct rcu_head d_rcu ;
 1618};
 1619#line 100 "include/linux/dcache.h"
 1620struct dentry {
 1621   unsigned int d_flags ;
 1622   seqcount_t d_seq ;
 1623   struct hlist_bl_node d_hash ;
 1624   struct dentry *d_parent ;
 1625   struct qstr d_name ;
 1626   struct inode *d_inode ;
 1627   unsigned char d_iname[32U] ;
 1628   unsigned int d_count ;
 1629   spinlock_t d_lock ;
 1630   struct dentry_operations  const  *d_op ;
 1631   struct super_block *d_sb ;
 1632   unsigned long d_time ;
 1633   void *d_fsdata ;
 1634   struct list_head d_lru ;
 1635   union __anonunion_d_u_132 d_u ;
 1636   struct list_head d_subdirs ;
 1637   struct list_head d_alias ;
 1638};
 1639#line 151 "include/linux/dcache.h"
 1640struct dentry_operations {
 1641   int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
 1642   int (*d_hash)(struct dentry  const  * , struct inode  const  * , struct qstr * ) ;
 1643   int (*d_compare)(struct dentry  const  * , struct inode  const  * , struct dentry  const  * ,
 1644                    struct inode  const  * , unsigned int  , char const   * , struct qstr  const  * ) ;
 1645   int (*d_delete)(struct dentry  const  * ) ;
 1646   void (*d_release)(struct dentry * ) ;
 1647   void (*d_iput)(struct dentry * , struct inode * ) ;
 1648   char *(*d_dname)(struct dentry * , char * , int  ) ;
 1649   struct vfsmount *(*d_automount)(struct path * ) ;
 1650   int (*d_manage)(struct dentry * , bool  ) ;
 1651};
 1652#line 422 "include/linux/dcache.h"
 1653struct path {
 1654   struct vfsmount *mnt ;
 1655   struct dentry *dentry ;
 1656};
 1657#line 51 "include/linux/radix-tree.h"
 1658struct radix_tree_node;
 1659#line 51
 1660struct radix_tree_node;
 1661#line 51 "include/linux/radix-tree.h"
 1662struct radix_tree_root {
 1663   unsigned int height ;
 1664   gfp_t gfp_mask ;
 1665   struct radix_tree_node *rnode ;
 1666};
 1667#line 229
 1668struct prio_tree_node;
 1669#line 229
 1670struct prio_tree_node;
 1671#line 229 "include/linux/radix-tree.h"
 1672struct raw_prio_tree_node {
 1673   struct prio_tree_node *left ;
 1674   struct prio_tree_node *right ;
 1675   struct prio_tree_node *parent ;
 1676};
 1677#line 19 "include/linux/prio_tree.h"
 1678struct prio_tree_node {
 1679   struct prio_tree_node *left ;
 1680   struct prio_tree_node *right ;
 1681   struct prio_tree_node *parent ;
 1682   unsigned long start ;
 1683   unsigned long last ;
 1684};
 1685#line 27 "include/linux/prio_tree.h"
 1686struct prio_tree_root {
 1687   struct prio_tree_node *prio_tree_node ;
 1688   unsigned short index_bits ;
 1689   unsigned short raw ;
 1690};
 1691#line 111
 1692enum pid_type {
 1693    PIDTYPE_PID = 0,
 1694    PIDTYPE_PGID = 1,
 1695    PIDTYPE_SID = 2,
 1696    PIDTYPE_MAX = 3
 1697} ;
 1698#line 118
 1699struct pid_namespace;
 1700#line 118
 1701struct pid_namespace;
 1702#line 118 "include/linux/prio_tree.h"
 1703struct upid {
 1704   int nr ;
 1705   struct pid_namespace *ns ;
 1706   struct hlist_node pid_chain ;
 1707};
 1708#line 56 "include/linux/pid.h"
 1709struct pid {
 1710   atomic_t count ;
 1711   unsigned int level ;
 1712   struct hlist_head tasks[3U] ;
 1713   struct rcu_head rcu ;
 1714   struct upid numbers[1U] ;
 1715};
 1716#line 68 "include/linux/pid.h"
 1717struct pid_link {
 1718   struct hlist_node node ;
 1719   struct pid *pid ;
 1720};
 1721#line 93 "include/linux/capability.h"
 1722struct kernel_cap_struct {
 1723   __u32 cap[2U] ;
 1724};
 1725#line 96 "include/linux/capability.h"
 1726typedef struct kernel_cap_struct kernel_cap_t;
 1727#line 104
 1728struct user_namespace;
 1729#line 104
 1730struct user_namespace;
 1731#line 45 "include/linux/semaphore.h"
 1732struct fiemap_extent {
 1733   __u64 fe_logical ;
 1734   __u64 fe_physical ;
 1735   __u64 fe_length ;
 1736   __u64 fe_reserved64[2U] ;
 1737   __u32 fe_flags ;
 1738   __u32 fe_reserved[3U] ;
 1739};
 1740#line 38 "include/linux/fiemap.h"
 1741struct export_operations;
 1742#line 38
 1743struct export_operations;
 1744#line 40
 1745struct iovec;
 1746#line 40
 1747struct iovec;
 1748#line 41
 1749struct kiocb;
 1750#line 41
 1751struct kiocb;
 1752#line 42
 1753struct pipe_inode_info;
 1754#line 42
 1755struct pipe_inode_info;
 1756#line 43
 1757struct poll_table_struct;
 1758#line 43
 1759struct poll_table_struct;
 1760#line 44
 1761struct kstatfs;
 1762#line 44
 1763struct kstatfs;
 1764#line 426 "include/linux/fs.h"
 1765struct iattr {
 1766   unsigned int ia_valid ;
 1767   umode_t ia_mode ;
 1768   uid_t ia_uid ;
 1769   gid_t ia_gid ;
 1770   loff_t ia_size ;
 1771   struct timespec ia_atime ;
 1772   struct timespec ia_mtime ;
 1773   struct timespec ia_ctime ;
 1774   struct file *ia_file ;
 1775};
 1776#line 119 "include/linux/quota.h"
 1777struct if_dqinfo {
 1778   __u64 dqi_bgrace ;
 1779   __u64 dqi_igrace ;
 1780   __u32 dqi_flags ;
 1781   __u32 dqi_valid ;
 1782};
 1783#line 176 "include/linux/percpu_counter.h"
 1784struct fs_disk_quota {
 1785   __s8 d_version ;
 1786   __s8 d_flags ;
 1787   __u16 d_fieldmask ;
 1788   __u32 d_id ;
 1789   __u64 d_blk_hardlimit ;
 1790   __u64 d_blk_softlimit ;
 1791   __u64 d_ino_hardlimit ;
 1792   __u64 d_ino_softlimit ;
 1793   __u64 d_bcount ;
 1794   __u64 d_icount ;
 1795   __s32 d_itimer ;
 1796   __s32 d_btimer ;
 1797   __u16 d_iwarns ;
 1798   __u16 d_bwarns ;
 1799   __s32 d_padding2 ;
 1800   __u64 d_rtb_hardlimit ;
 1801   __u64 d_rtb_softlimit ;
 1802   __u64 d_rtbcount ;
 1803   __s32 d_rtbtimer ;
 1804   __u16 d_rtbwarns ;
 1805   __s16 d_padding3 ;
 1806   char d_padding4[8U] ;
 1807};
 1808#line 75 "include/linux/dqblk_xfs.h"
 1809struct fs_qfilestat {
 1810   __u64 qfs_ino ;
 1811   __u64 qfs_nblks ;
 1812   __u32 qfs_nextents ;
 1813};
 1814#line 150 "include/linux/dqblk_xfs.h"
 1815typedef struct fs_qfilestat fs_qfilestat_t;
 1816#line 151 "include/linux/dqblk_xfs.h"
 1817struct fs_quota_stat {
 1818   __s8 qs_version ;
 1819   __u16 qs_flags ;
 1820   __s8 qs_pad ;
 1821   fs_qfilestat_t qs_uquota ;
 1822   fs_qfilestat_t qs_gquota ;
 1823   __u32 qs_incoredqs ;
 1824   __s32 qs_btimelimit ;
 1825   __s32 qs_itimelimit ;
 1826   __s32 qs_rtbtimelimit ;
 1827   __u16 qs_bwarnlimit ;
 1828   __u16 qs_iwarnlimit ;
 1829};
 1830#line 165
 1831struct dquot;
 1832#line 165
 1833struct dquot;
 1834#line 185 "include/linux/quota.h"
 1835typedef __kernel_uid32_t qid_t;
 1836#line 186 "include/linux/quota.h"
 1837typedef long long qsize_t;
 1838#line 189 "include/linux/quota.h"
 1839struct mem_dqblk {
 1840   qsize_t dqb_bhardlimit ;
 1841   qsize_t dqb_bsoftlimit ;
 1842   qsize_t dqb_curspace ;
 1843   qsize_t dqb_rsvspace ;
 1844   qsize_t dqb_ihardlimit ;
 1845   qsize_t dqb_isoftlimit ;
 1846   qsize_t dqb_curinodes ;
 1847   time_t dqb_btime ;
 1848   time_t dqb_itime ;
 1849};
 1850#line 211
 1851struct quota_format_type;
 1852#line 211
 1853struct quota_format_type;
 1854#line 212 "include/linux/quota.h"
 1855struct mem_dqinfo {
 1856   struct quota_format_type *dqi_format ;
 1857   int dqi_fmt_id ;
 1858   struct list_head dqi_dirty_list ;
 1859   unsigned long dqi_flags ;
 1860   unsigned int dqi_bgrace ;
 1861   unsigned int dqi_igrace ;
 1862   qsize_t dqi_maxblimit ;
 1863   qsize_t dqi_maxilimit ;
 1864   void *dqi_priv ;
 1865};
 1866#line 271 "include/linux/quota.h"
 1867struct dquot {
 1868   struct hlist_node dq_hash ;
 1869   struct list_head dq_inuse ;
 1870   struct list_head dq_free ;
 1871   struct list_head dq_dirty ;
 1872   struct mutex dq_lock ;
 1873   atomic_t dq_count ;
 1874   wait_queue_head_t dq_wait_unused ;
 1875   struct super_block *dq_sb ;
 1876   unsigned int dq_id ;
 1877   loff_t dq_off ;
 1878   unsigned long dq_flags ;
 1879   short dq_type ;
 1880   struct mem_dqblk dq_dqb ;
 1881};
 1882#line 299 "include/linux/quota.h"
 1883struct quota_format_ops {
 1884   int (*check_quota_file)(struct super_block * , int  ) ;
 1885   int (*read_file_info)(struct super_block * , int  ) ;
 1886   int (*write_file_info)(struct super_block * , int  ) ;
 1887   int (*free_file_info)(struct super_block * , int  ) ;
 1888   int (*read_dqblk)(struct dquot * ) ;
 1889   int (*commit_dqblk)(struct dquot * ) ;
 1890   int (*release_dqblk)(struct dquot * ) ;
 1891};
 1892#line 310 "include/linux/quota.h"
 1893struct dquot_operations {
 1894   int (*write_dquot)(struct dquot * ) ;
 1895   struct dquot *(*alloc_dquot)(struct super_block * , int  ) ;
 1896   void (*destroy_dquot)(struct dquot * ) ;
 1897   int (*acquire_dquot)(struct dquot * ) ;
 1898   int (*release_dquot)(struct dquot * ) ;
 1899   int (*mark_dirty)(struct dquot * ) ;
 1900   int (*write_info)(struct super_block * , int  ) ;
 1901   qsize_t *(*get_reserved_space)(struct inode * ) ;
 1902};
 1903#line 324 "include/linux/quota.h"
 1904struct quotactl_ops {
 1905   int (*quota_on)(struct super_block * , int  , int  , struct path * ) ;
 1906   int (*quota_on_meta)(struct super_block * , int  , int  ) ;
 1907   int (*quota_off)(struct super_block * , int  ) ;
 1908   int (*quota_sync)(struct super_block * , int  , int  ) ;
 1909   int (*get_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 1910   int (*set_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 1911   int (*get_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 1912   int (*set_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 1913   int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
 1914   int (*set_xstate)(struct super_block * , unsigned int  , int  ) ;
 1915};
 1916#line 340 "include/linux/quota.h"
 1917struct quota_format_type {
 1918   int qf_fmt_id ;
 1919   struct quota_format_ops  const  *qf_ops ;
 1920   struct module *qf_owner ;
 1921   struct quota_format_type *qf_next ;
 1922};
 1923#line 386 "include/linux/quota.h"
 1924struct quota_info {
 1925   unsigned int flags ;
 1926   struct mutex dqio_mutex ;
 1927   struct mutex dqonoff_mutex ;
 1928   struct rw_semaphore dqptr_sem ;
 1929   struct inode *files[2U] ;
 1930   struct mem_dqinfo info[2U] ;
 1931   struct quota_format_ops  const  *ops[2U] ;
 1932};
 1933#line 417
 1934struct address_space;
 1935#line 417
 1936struct address_space;
 1937#line 418
 1938struct writeback_control;
 1939#line 418
 1940struct writeback_control;
 1941#line 576 "include/linux/fs.h"
 1942union __anonunion_arg_135 {
 1943   char *buf ;
 1944   void *data ;
 1945};
 1946#line 576 "include/linux/fs.h"
 1947struct __anonstruct_read_descriptor_t_134 {
 1948   size_t written ;
 1949   size_t count ;
 1950   union __anonunion_arg_135 arg ;
 1951   int error ;
 1952};
 1953#line 576 "include/linux/fs.h"
 1954typedef struct __anonstruct_read_descriptor_t_134 read_descriptor_t;
 1955#line 579 "include/linux/fs.h"
 1956struct address_space_operations {
 1957   int (*writepage)(struct page * , struct writeback_control * ) ;
 1958   int (*readpage)(struct file * , struct page * ) ;
 1959   int (*writepages)(struct address_space * , struct writeback_control * ) ;
 1960   int (*set_page_dirty)(struct page * ) ;
 1961   int (*readpages)(struct file * , struct address_space * , struct list_head * ,
 1962                    unsigned int  ) ;
 1963   int (*write_begin)(struct file * , struct address_space * , loff_t  , unsigned int  ,
 1964                      unsigned int  , struct page ** , void ** ) ;
 1965   int (*write_end)(struct file * , struct address_space * , loff_t  , unsigned int  ,
 1966                    unsigned int  , struct page * , void * ) ;
 1967   sector_t (*bmap)(struct address_space * , sector_t  ) ;
 1968   void (*invalidatepage)(struct page * , unsigned long  ) ;
 1969   int (*releasepage)(struct page * , gfp_t  ) ;
 1970   void (*freepage)(struct page * ) ;
 1971   ssize_t (*direct_IO)(int  , struct kiocb * , struct iovec  const  * , loff_t  ,
 1972                        unsigned long  ) ;
 1973   int (*get_xip_mem)(struct address_space * , unsigned long  , int  , void ** , unsigned long * ) ;
 1974   int (*migratepage)(struct address_space * , struct page * , struct page * ) ;
 1975   int (*launder_page)(struct page * ) ;
 1976   int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long  ) ;
 1977   int (*error_remove_page)(struct address_space * , struct page * ) ;
 1978};
 1979#line 630
 1980struct backing_dev_info;
 1981#line 630
 1982struct backing_dev_info;
 1983#line 631 "include/linux/fs.h"
 1984struct address_space {
 1985   struct inode *host ;
 1986   struct radix_tree_root page_tree ;
 1987   spinlock_t tree_lock ;
 1988   unsigned int i_mmap_writable ;
 1989   struct prio_tree_root i_mmap ;
 1990   struct list_head i_mmap_nonlinear ;
 1991   struct mutex i_mmap_mutex ;
 1992   unsigned long nrpages ;
 1993   unsigned long writeback_index ;
 1994   struct address_space_operations  const  *a_ops ;
 1995   unsigned long flags ;
 1996   struct backing_dev_info *backing_dev_info ;
 1997   spinlock_t private_lock ;
 1998   struct list_head private_list ;
 1999   struct address_space *assoc_mapping ;
 2000};
 2001#line 652
 2002struct hd_struct;
 2003#line 652
 2004struct hd_struct;
 2005#line 652
 2006struct gendisk;
 2007#line 652
 2008struct gendisk;
 2009#line 652 "include/linux/fs.h"
 2010struct block_device {
 2011   dev_t bd_dev ;
 2012   int bd_openers ;
 2013   struct inode *bd_inode ;
 2014   struct super_block *bd_super ;
 2015   struct mutex bd_mutex ;
 2016   struct list_head bd_inodes ;
 2017   void *bd_claiming ;
 2018   void *bd_holder ;
 2019   int bd_holders ;
 2020   bool bd_write_holder ;
 2021   struct list_head bd_holder_disks ;
 2022   struct block_device *bd_contains ;
 2023   unsigned int bd_block_size ;
 2024   struct hd_struct *bd_part ;
 2025   unsigned int bd_part_count ;
 2026   int bd_invalidated ;
 2027   struct gendisk *bd_disk ;
 2028   struct list_head bd_list ;
 2029   unsigned long bd_private ;
 2030   int bd_fsfreeze_count ;
 2031   struct mutex bd_fsfreeze_mutex ;
 2032};
 2033#line 723
 2034struct posix_acl;
 2035#line 723
 2036struct posix_acl;
 2037#line 724
 2038struct inode_operations;
 2039#line 724
 2040struct inode_operations;
 2041#line 724 "include/linux/fs.h"
 2042union __anonunion_ldv_18350_136 {
 2043   struct list_head i_dentry ;
 2044   struct rcu_head i_rcu ;
 2045};
 2046#line 724
 2047struct file_operations;
 2048#line 724
 2049struct file_operations;
 2050#line 724
 2051struct file_lock;
 2052#line 724
 2053struct file_lock;
 2054#line 724
 2055struct cdev;
 2056#line 724
 2057struct cdev;
 2058#line 724 "include/linux/fs.h"
 2059union __anonunion_ldv_18377_137 {
 2060   struct pipe_inode_info *i_pipe ;
 2061   struct block_device *i_bdev ;
 2062   struct cdev *i_cdev ;
 2063};
 2064#line 724 "include/linux/fs.h"
 2065struct inode {
 2066   umode_t i_mode ;
 2067   uid_t i_uid ;
 2068   gid_t i_gid ;
 2069   struct inode_operations  const  *i_op ;
 2070   struct super_block *i_sb ;
 2071   spinlock_t i_lock ;
 2072   unsigned int i_flags ;
 2073   unsigned long i_state ;
 2074   void *i_security ;
 2075   struct mutex i_mutex ;
 2076   unsigned long dirtied_when ;
 2077   struct hlist_node i_hash ;
 2078   struct list_head i_wb_list ;
 2079   struct list_head i_lru ;
 2080   struct list_head i_sb_list ;
 2081   union __anonunion_ldv_18350_136 ldv_18350 ;
 2082   unsigned long i_ino ;
 2083   atomic_t i_count ;
 2084   unsigned int i_nlink ;
 2085   dev_t i_rdev ;
 2086   unsigned int i_blkbits ;
 2087   u64 i_version ;
 2088   loff_t i_size ;
 2089   struct timespec i_atime ;
 2090   struct timespec i_mtime ;
 2091   struct timespec i_ctime ;
 2092   blkcnt_t i_blocks ;
 2093   unsigned short i_bytes ;
 2094   struct rw_semaphore i_alloc_sem ;
 2095   struct file_operations  const  *i_fop ;
 2096   struct file_lock *i_flock ;
 2097   struct address_space *i_mapping ;
 2098   struct address_space i_data ;
 2099   struct dquot *i_dquot[2U] ;
 2100   struct list_head i_devices ;
 2101   union __anonunion_ldv_18377_137 ldv_18377 ;
 2102   __u32 i_generation ;
 2103   __u32 i_fsnotify_mask ;
 2104   struct hlist_head i_fsnotify_marks ;
 2105   atomic_t i_readcount ;
 2106   atomic_t i_writecount ;
 2107   struct posix_acl *i_acl ;
 2108   struct posix_acl *i_default_acl ;
 2109   void *i_private ;
 2110};
 2111#line 902 "include/linux/fs.h"
 2112struct fown_struct {
 2113   rwlock_t lock ;
 2114   struct pid *pid ;
 2115   enum pid_type pid_type ;
 2116   uid_t uid ;
 2117   uid_t euid ;
 2118   int signum ;
 2119};
 2120#line 910 "include/linux/fs.h"
 2121struct file_ra_state {
 2122   unsigned long start ;
 2123   unsigned int size ;
 2124   unsigned int async_size ;
 2125   unsigned int ra_pages ;
 2126   unsigned int mmap_miss ;
 2127   loff_t prev_pos ;
 2128};
 2129#line 933 "include/linux/fs.h"
 2130union __anonunion_f_u_138 {
 2131   struct list_head fu_list ;
 2132   struct rcu_head fu_rcuhead ;
 2133};
 2134#line 933 "include/linux/fs.h"
 2135struct file {
 2136   union __anonunion_f_u_138 f_u ;
 2137   struct path f_path ;
 2138   struct file_operations  const  *f_op ;
 2139   spinlock_t f_lock ;
 2140   int f_sb_list_cpu ;
 2141   atomic_long_t f_count ;
 2142   unsigned int f_flags ;
 2143   fmode_t f_mode ;
 2144   loff_t f_pos ;
 2145   struct fown_struct f_owner ;
 2146   struct cred  const  *f_cred ;
 2147   struct file_ra_state f_ra ;
 2148   u64 f_version ;
 2149   void *f_security ;
 2150   void *private_data ;
 2151   struct list_head f_ep_links ;
 2152   struct address_space *f_mapping ;
 2153   unsigned long f_mnt_write_state ;
 2154};
 2155#line 1064
 2156struct files_struct;
 2157#line 1064
 2158struct files_struct;
 2159#line 1064 "include/linux/fs.h"
 2160typedef struct files_struct *fl_owner_t;
 2161#line 1065 "include/linux/fs.h"
 2162struct file_lock_operations {
 2163   void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
 2164   void (*fl_release_private)(struct file_lock * ) ;
 2165};
 2166#line 1070 "include/linux/fs.h"
 2167struct lock_manager_operations {
 2168   int (*fl_compare_owner)(struct file_lock * , struct file_lock * ) ;
 2169   void (*fl_notify)(struct file_lock * ) ;
 2170   int (*fl_grant)(struct file_lock * , struct file_lock * , int  ) ;
 2171   void (*fl_release_private)(struct file_lock * ) ;
 2172   void (*fl_break)(struct file_lock * ) ;
 2173   int (*fl_change)(struct file_lock ** , int  ) ;
 2174};
 2175#line 163 "include/linux/nfs.h"
 2176struct nlm_lockowner;
 2177#line 163
 2178struct nlm_lockowner;
 2179#line 164 "include/linux/nfs.h"
 2180struct nfs_lock_info {
 2181   u32 state ;
 2182   struct nlm_lockowner *owner ;
 2183   struct list_head list ;
 2184};
 2185#line 18 "include/linux/nfs_fs_i.h"
 2186struct nfs4_lock_state;
 2187#line 18
 2188struct nfs4_lock_state;
 2189#line 19 "include/linux/nfs_fs_i.h"
 2190struct nfs4_lock_info {
 2191   struct nfs4_lock_state *owner ;
 2192};
 2193#line 23
 2194struct fasync_struct;
 2195#line 23
 2196struct fasync_struct;
 2197#line 23 "include/linux/nfs_fs_i.h"
 2198struct __anonstruct_afs_140 {
 2199   struct list_head link ;
 2200   int state ;
 2201};
 2202#line 23 "include/linux/nfs_fs_i.h"
 2203union __anonunion_fl_u_139 {
 2204   struct nfs_lock_info nfs_fl ;
 2205   struct nfs4_lock_info nfs4_fl ;
 2206   struct __anonstruct_afs_140 afs ;
 2207};
 2208#line 23 "include/linux/nfs_fs_i.h"
 2209struct file_lock {
 2210   struct file_lock *fl_next ;
 2211   struct list_head fl_link ;
 2212   struct list_head fl_block ;
 2213   fl_owner_t fl_owner ;
 2214   unsigned char fl_flags ;
 2215   unsigned char fl_type ;
 2216   unsigned int fl_pid ;
 2217   struct pid *fl_nspid ;
 2218   wait_queue_head_t fl_wait ;
 2219   struct file *fl_file ;
 2220   loff_t fl_start ;
 2221   loff_t fl_end ;
 2222   struct fasync_struct *fl_fasync ;
 2223   unsigned long fl_break_time ;
 2224   struct file_lock_operations  const  *fl_ops ;
 2225   struct lock_manager_operations  const  *fl_lmops ;
 2226   union __anonunion_fl_u_139 fl_u ;
 2227};
 2228#line 1171 "include/linux/fs.h"
 2229struct fasync_struct {
 2230   spinlock_t fa_lock ;
 2231   int magic ;
 2232   int fa_fd ;
 2233   struct fasync_struct *fa_next ;
 2234   struct file *fa_file ;
 2235   struct rcu_head fa_rcu ;
 2236};
 2237#line 1363
 2238struct file_system_type;
 2239#line 1363
 2240struct file_system_type;
 2241#line 1363
 2242struct super_operations;
 2243#line 1363
 2244struct super_operations;
 2245#line 1363
 2246struct xattr_handler;
 2247#line 1363
 2248struct xattr_handler;
 2249#line 1363
 2250struct mtd_info;
 2251#line 1363
 2252struct mtd_info;
 2253#line 1363 "include/linux/fs.h"
 2254struct super_block {
 2255   struct list_head s_list ;
 2256   dev_t s_dev ;
 2257   unsigned char s_dirt ;
 2258   unsigned char s_blocksize_bits ;
 2259   unsigned long s_blocksize ;
 2260   loff_t s_maxbytes ;
 2261   struct file_system_type *s_type ;
 2262   struct super_operations  const  *s_op ;
 2263   struct dquot_operations  const  *dq_op ;
 2264   struct quotactl_ops  const  *s_qcop ;
 2265   struct export_operations  const  *s_export_op ;
 2266   unsigned long s_flags ;
 2267   unsigned long s_magic ;
 2268   struct dentry *s_root ;
 2269   struct rw_semaphore s_umount ;
 2270   struct mutex s_lock ;
 2271   int s_count ;
 2272   atomic_t s_active ;
 2273   void *s_security ;
 2274   struct xattr_handler  const  **s_xattr ;
 2275   struct list_head s_inodes ;
 2276   struct hlist_bl_head s_anon ;
 2277   struct list_head *s_files ;
 2278   struct list_head s_dentry_lru ;
 2279   int s_nr_dentry_unused ;
 2280   struct block_device *s_bdev ;
 2281   struct backing_dev_info *s_bdi ;
 2282   struct mtd_info *s_mtd ;
 2283   struct list_head s_instances ;
 2284   struct quota_info s_dquot ;
 2285   int s_frozen ;
 2286   wait_queue_head_t s_wait_unfrozen ;
 2287   char s_id[32U] ;
 2288   u8 s_uuid[16U] ;
 2289   void *s_fs_info ;
 2290   fmode_t s_mode ;
 2291   u32 s_time_gran ;
 2292   struct mutex s_vfs_rename_mutex ;
 2293   char *s_subtype ;
 2294   char *s_options ;
 2295   struct dentry_operations  const  *s_d_op ;
 2296   int cleancache_poolid ;
 2297};
 2298#line 1495 "include/linux/fs.h"
 2299struct fiemap_extent_info {
 2300   unsigned int fi_flags ;
 2301   unsigned int fi_extents_mapped ;
 2302   unsigned int fi_extents_max ;
 2303   struct fiemap_extent *fi_extents_start ;
 2304};
 2305#line 1534 "include/linux/fs.h"
 2306struct file_operations {
 2307   struct module *owner ;
 2308   loff_t (*llseek)(struct file * , loff_t  , int  ) ;
 2309   ssize_t (*read)(struct file * , char * , size_t  , loff_t * ) ;
 2310   ssize_t (*write)(struct file * , char const   * , size_t  , loff_t * ) ;
 2311   ssize_t (*aio_read)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 2312                       loff_t  ) ;
 2313   ssize_t (*aio_write)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 2314                        loff_t  ) ;
 2315   int (*readdir)(struct file * , void * , int (*)(void * , char const   * , int  ,
 2316                                                   loff_t  , u64  , unsigned int  ) ) ;
 2317   unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
 2318   long (*unlocked_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 2319   long (*compat_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 2320   int (*mmap)(struct file * , struct vm_area_struct * ) ;
 2321   int (*open)(struct inode * , struct file * ) ;
 2322   int (*flush)(struct file * , fl_owner_t  ) ;
 2323   int (*release)(struct inode * , struct file * ) ;
 2324   int (*fsync)(struct file * , int  ) ;
 2325   int (*aio_fsync)(struct kiocb * , int  ) ;
 2326   int (*fasync)(int  , struct file * , int  ) ;
 2327   int (*lock)(struct file * , int  , struct file_lock * ) ;
 2328   ssize_t (*sendpage)(struct file * , struct page * , int  , size_t  , loff_t * ,
 2329                       int  ) ;
 2330   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 2331                                      unsigned long  , unsigned long  ) ;
 2332   int (*check_flags)(int  ) ;
 2333   int (*flock)(struct file * , int  , struct file_lock * ) ;
 2334   ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t  ,
 2335                           unsigned int  ) ;
 2336   ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t  ,
 2337                          unsigned int  ) ;
 2338   int (*setlease)(struct file * , long  , struct file_lock ** ) ;
 2339   long (*fallocate)(struct file * , int  , loff_t  , loff_t  ) ;
 2340};
 2341#line 1574 "include/linux/fs.h"
 2342struct inode_operations {
 2343   struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
 2344   void *(*follow_link)(struct dentry * , struct nameidata * ) ;
 2345   int (*permission)(struct inode * , int  , unsigned int  ) ;
 2346   int (*check_acl)(struct inode * , int  , unsigned int  ) ;
 2347   int (*readlink)(struct dentry * , char * , int  ) ;
 2348   void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
 2349   int (*create)(struct inode * , struct dentry * , int  , struct nameidata * ) ;
 2350   int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
 2351   int (*unlink)(struct inode * , struct dentry * ) ;
 2352   int (*symlink)(struct inode * , struct dentry * , char const   * ) ;
 2353   int (*mkdir)(struct inode * , struct dentry * , int  ) ;
 2354   int (*rmdir)(struct inode * , struct dentry * ) ;
 2355   int (*mknod)(struct inode * , struct dentry * , int  , dev_t  ) ;
 2356   int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
 2357   void (*truncate)(struct inode * ) ;
 2358   int (*setattr)(struct dentry * , struct iattr * ) ;
 2359   int (*getattr)(struct vfsmount * , struct dentry * , struct kstat * ) ;
 2360   int (*setxattr)(struct dentry * , char const   * , void const   * , size_t  , int  ) ;
 2361   ssize_t (*getxattr)(struct dentry * , char const   * , void * , size_t  ) ;
 2362   ssize_t (*listxattr)(struct dentry * , char * , size_t  ) ;
 2363   int (*removexattr)(struct dentry * , char const   * ) ;
 2364   void (*truncate_range)(struct inode * , loff_t  , loff_t  ) ;
 2365   int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64  , u64  ) ;
 2366};
 2367#line 1620 "include/linux/fs.h"
 2368struct super_operations {
 2369   struct inode *(*alloc_inode)(struct super_block * ) ;
 2370   void (*destroy_inode)(struct inode * ) ;
 2371   void (*dirty_inode)(struct inode * , int  ) ;
 2372   int (*write_inode)(struct inode * , struct writeback_control * ) ;
 2373   int (*drop_inode)(struct inode * ) ;
 2374   void (*evict_inode)(struct inode * ) ;
 2375   void (*put_super)(struct super_block * ) ;
 2376   void (*write_super)(struct super_block * ) ;
 2377   int (*sync_fs)(struct super_block * , int  ) ;
 2378   int (*freeze_fs)(struct super_block * ) ;
 2379   int (*unfreeze_fs)(struct super_block * ) ;
 2380   int (*statfs)(struct dentry * , struct kstatfs * ) ;
 2381   int (*remount_fs)(struct super_block * , int * , char * ) ;
 2382   void (*umount_begin)(struct super_block * ) ;
 2383   int (*show_options)(struct seq_file * , struct vfsmount * ) ;
 2384   int (*show_devname)(struct seq_file * , struct vfsmount * ) ;
 2385   int (*show_path)(struct seq_file * , struct vfsmount * ) ;
 2386   int (*show_stats)(struct seq_file * , struct vfsmount * ) ;
 2387   ssize_t (*quota_read)(struct super_block * , int  , char * , size_t  , loff_t  ) ;
 2388   ssize_t (*quota_write)(struct super_block * , int  , char const   * , size_t  ,
 2389                          loff_t  ) ;
 2390   int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t  ) ;
 2391};
 2392#line 1801 "include/linux/fs.h"
 2393struct file_system_type {
 2394   char const   *name ;
 2395   int fs_flags ;
 2396   struct dentry *(*mount)(struct file_system_type * , int  , char const   * , void * ) ;
 2397   void (*kill_sb)(struct super_block * ) ;
 2398   struct module *owner ;
 2399   struct file_system_type *next ;
 2400   struct list_head fs_supers ;
 2401   struct lock_class_key s_lock_key ;
 2402   struct lock_class_key s_umount_key ;
 2403   struct lock_class_key s_vfs_rename_key ;
 2404   struct lock_class_key i_lock_key ;
 2405   struct lock_class_key i_mutex_key ;
 2406   struct lock_class_key i_mutex_dir_key ;
 2407   struct lock_class_key i_alloc_sem_key ;
 2408};
 2409#line 54 "include/linux/sched.h"
 2410struct __anonstruct_ldv_20389_142 {
 2411   u16 inuse ;
 2412   u16 objects ;
 2413};
 2414#line 54 "include/linux/sched.h"
 2415union __anonunion_ldv_20390_141 {
 2416   atomic_t _mapcount ;
 2417   struct __anonstruct_ldv_20389_142 ldv_20389 ;
 2418};
 2419#line 54 "include/linux/sched.h"
 2420struct __anonstruct_ldv_20395_144 {
 2421   unsigned long private ;
 2422   struct address_space *mapping ;
 2423};
 2424#line 54 "include/linux/sched.h"
 2425union __anonunion_ldv_20398_143 {
 2426   struct __anonstruct_ldv_20395_144 ldv_20395 ;
 2427   struct kmem_cache *slab ;
 2428   struct page *first_page ;
 2429};
 2430#line 54 "include/linux/sched.h"
 2431union __anonunion_ldv_20402_145 {
 2432   unsigned long index ;
 2433   void *freelist ;
 2434};
 2435#line 54 "include/linux/sched.h"
 2436struct page {
 2437   unsigned long flags ;
 2438   atomic_t _count ;
 2439   union __anonunion_ldv_20390_141 ldv_20390 ;
 2440   union __anonunion_ldv_20398_143 ldv_20398 ;
 2441   union __anonunion_ldv_20402_145 ldv_20402 ;
 2442   struct list_head lru ;
 2443};
 2444#line 124 "include/linux/mm_types.h"
 2445struct __anonstruct_vm_set_147 {
 2446   struct list_head list ;
 2447   void *parent ;
 2448   struct vm_area_struct *head ;
 2449};
 2450#line 124 "include/linux/mm_types.h"
 2451union __anonunion_shared_146 {
 2452   struct __anonstruct_vm_set_147 vm_set ;
 2453   struct raw_prio_tree_node prio_tree_node ;
 2454};
 2455#line 124
 2456struct anon_vma;
 2457#line 124
 2458struct anon_vma;
 2459#line 124
 2460struct vm_operations_struct;
 2461#line 124
 2462struct vm_operations_struct;
 2463#line 124
 2464struct mempolicy;
 2465#line 124
 2466struct mempolicy;
 2467#line 124 "include/linux/mm_types.h"
 2468struct vm_area_struct {
 2469   struct mm_struct *vm_mm ;
 2470   unsigned long vm_start ;
 2471   unsigned long vm_end ;
 2472   struct vm_area_struct *vm_next ;
 2473   struct vm_area_struct *vm_prev ;
 2474   pgprot_t vm_page_prot ;
 2475   unsigned long vm_flags ;
 2476   struct rb_node vm_rb ;
 2477   union __anonunion_shared_146 shared ;
 2478   struct list_head anon_vma_chain ;
 2479   struct anon_vma *anon_vma ;
 2480   struct vm_operations_struct  const  *vm_ops ;
 2481   unsigned long vm_pgoff ;
 2482   struct file *vm_file ;
 2483   void *vm_private_data ;
 2484   struct mempolicy *vm_policy ;
 2485};
 2486#line 187 "include/linux/mm_types.h"
 2487struct core_thread {
 2488   struct task_struct *task ;
 2489   struct core_thread *next ;
 2490};
 2491#line 193 "include/linux/mm_types.h"
 2492struct core_state {
 2493   atomic_t nr_threads ;
 2494   struct core_thread dumper ;
 2495   struct completion startup ;
 2496};
 2497#line 206 "include/linux/mm_types.h"
 2498struct mm_rss_stat {
 2499   atomic_long_t count[3U] ;
 2500};
 2501#line 219
 2502struct linux_binfmt;
 2503#line 219
 2504struct linux_binfmt;
 2505#line 219
 2506struct mmu_notifier_mm;
 2507#line 219
 2508struct mmu_notifier_mm;
 2509#line 219 "include/linux/mm_types.h"
 2510struct mm_struct {
 2511   struct vm_area_struct *mmap ;
 2512   struct rb_root mm_rb ;
 2513   struct vm_area_struct *mmap_cache ;
 2514   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 2515                                      unsigned long  , unsigned long  ) ;
 2516   void (*unmap_area)(struct mm_struct * , unsigned long  ) ;
 2517   unsigned long mmap_base ;
 2518   unsigned long task_size ;
 2519   unsigned long cached_hole_size ;
 2520   unsigned long free_area_cache ;
 2521   pgd_t *pgd ;
 2522   atomic_t mm_users ;
 2523   atomic_t mm_count ;
 2524   int map_count ;
 2525   spinlock_t page_table_lock ;
 2526   struct rw_semaphore mmap_sem ;
 2527   struct list_head mmlist ;
 2528   unsigned long hiwater_rss ;
 2529   unsigned long hiwater_vm ;
 2530   unsigned long total_vm ;
 2531   unsigned long locked_vm ;
 2532   unsigned long shared_vm ;
 2533   unsigned long exec_vm ;
 2534   unsigned long stack_vm ;
 2535   unsigned long reserved_vm ;
 2536   unsigned long def_flags ;
 2537   unsigned long nr_ptes ;
 2538   unsigned long start_code ;
 2539   unsigned long end_code ;
 2540   unsigned long start_data ;
 2541   unsigned long end_data ;
 2542   unsigned long start_brk ;
 2543   unsigned long brk ;
 2544   unsigned long start_stack ;
 2545   unsigned long arg_start ;
 2546   unsigned long arg_end ;
 2547   unsigned long env_start ;
 2548   unsigned long env_end ;
 2549   unsigned long saved_auxv[44U] ;
 2550   struct mm_rss_stat rss_stat ;
 2551   struct linux_binfmt *binfmt ;
 2552   cpumask_var_t cpu_vm_mask_var ;
 2553   mm_context_t context ;
 2554   unsigned int faultstamp ;
 2555   unsigned int token_priority ;
 2556   unsigned int last_interval ;
 2557   atomic_t oom_disable_count ;
 2558   unsigned long flags ;
 2559   struct core_state *core_state ;
 2560   spinlock_t ioctx_lock ;
 2561   struct hlist_head ioctx_list ;
 2562   struct task_struct *owner ;
 2563   struct file *exe_file ;
 2564   unsigned long num_exe_file_vmas ;
 2565   struct mmu_notifier_mm *mmu_notifier_mm ;
 2566   pgtable_t pmd_huge_pte ;
 2567   struct cpumask cpumask_allocation ;
 2568};
 2569#line 7 "include/asm-generic/cputime.h"
 2570typedef unsigned long cputime_t;
 2571#line 118 "include/linux/sem.h"
 2572struct sem_undo_list;
 2573#line 118
 2574struct sem_undo_list;
 2575#line 131 "include/linux/sem.h"
 2576struct sem_undo_list {
 2577   atomic_t refcnt ;
 2578   spinlock_t lock ;
 2579   struct list_head list_proc ;
 2580};
 2581#line 140 "include/linux/sem.h"
 2582struct sysv_sem {
 2583   struct sem_undo_list *undo_list ;
 2584};
 2585#line 149
 2586struct siginfo;
 2587#line 149
 2588struct siginfo;
 2589#line 32 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2590struct __anonstruct_sigset_t_148 {
 2591   unsigned long sig[1U] ;
 2592};
 2593#line 32 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2594typedef struct __anonstruct_sigset_t_148 sigset_t;
 2595#line 17 "include/asm-generic/signal-defs.h"
 2596typedef void __signalfn_t(int  );
 2597#line 18 "include/asm-generic/signal-defs.h"
 2598typedef __signalfn_t *__sighandler_t;
 2599#line 20 "include/asm-generic/signal-defs.h"
 2600typedef void __restorefn_t(void);
 2601#line 21 "include/asm-generic/signal-defs.h"
 2602typedef __restorefn_t *__sigrestore_t;
 2603#line 126 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2604struct sigaction {
 2605   __sighandler_t sa_handler ;
 2606   unsigned long sa_flags ;
 2607   __sigrestore_t sa_restorer ;
 2608   sigset_t sa_mask ;
 2609};
 2610#line 173 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2611struct k_sigaction {
 2612   struct sigaction sa ;
 2613};
 2614#line 185 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2615union sigval {
 2616   int sival_int ;
 2617   void *sival_ptr ;
 2618};
 2619#line 10 "include/asm-generic/siginfo.h"
 2620typedef union sigval sigval_t;
 2621#line 11 "include/asm-generic/siginfo.h"
 2622struct __anonstruct__kill_150 {
 2623   __kernel_pid_t _pid ;
 2624   __kernel_uid32_t _uid ;
 2625};
 2626#line 11 "include/asm-generic/siginfo.h"
 2627struct __anonstruct__timer_151 {
 2628   __kernel_timer_t _tid ;
 2629   int _overrun ;
 2630   char _pad[0U] ;
 2631   sigval_t _sigval ;
 2632   int _sys_private ;
 2633};
 2634#line 11 "include/asm-generic/siginfo.h"
 2635struct __anonstruct__rt_152 {
 2636   __kernel_pid_t _pid ;
 2637   __kernel_uid32_t _uid ;
 2638   sigval_t _sigval ;
 2639};
 2640#line 11 "include/asm-generic/siginfo.h"
 2641struct __anonstruct__sigchld_153 {
 2642   __kernel_pid_t _pid ;
 2643   __kernel_uid32_t _uid ;
 2644   int _status ;
 2645   __kernel_clock_t _utime ;
 2646   __kernel_clock_t _stime ;
 2647};
 2648#line 11 "include/asm-generic/siginfo.h"
 2649struct __anonstruct__sigfault_154 {
 2650   void *_addr ;
 2651   short _addr_lsb ;
 2652};
 2653#line 11 "include/asm-generic/siginfo.h"
 2654struct __anonstruct__sigpoll_155 {
 2655   long _band ;
 2656   int _fd ;
 2657};
 2658#line 11 "include/asm-generic/siginfo.h"
 2659union __anonunion__sifields_149 {
 2660   int _pad[28U] ;
 2661   struct __anonstruct__kill_150 _kill ;
 2662   struct __anonstruct__timer_151 _timer ;
 2663   struct __anonstruct__rt_152 _rt ;
 2664   struct __anonstruct__sigchld_153 _sigchld ;
 2665   struct __anonstruct__sigfault_154 _sigfault ;
 2666   struct __anonstruct__sigpoll_155 _sigpoll ;
 2667};
 2668#line 11 "include/asm-generic/siginfo.h"
 2669struct siginfo {
 2670   int si_signo ;
 2671   int si_errno ;
 2672   int si_code ;
 2673   union __anonunion__sifields_149 _sifields ;
 2674};
 2675#line 94 "include/asm-generic/siginfo.h"
 2676typedef struct siginfo siginfo_t;
 2677#line 14 "include/linux/signal.h"
 2678struct user_struct;
 2679#line 14
 2680struct user_struct;
 2681#line 24 "include/linux/signal.h"
 2682struct sigpending {
 2683   struct list_head list ;
 2684   sigset_t signal ;
 2685};
 2686#line 90 "include/linux/proportions.h"
 2687struct prop_local_single {
 2688   unsigned long events ;
 2689   unsigned long period ;
 2690   int shift ;
 2691   spinlock_t lock ;
 2692};
 2693#line 10 "include/linux/seccomp.h"
 2694struct __anonstruct_seccomp_t_158 {
 2695   int mode ;
 2696};
 2697#line 10 "include/linux/seccomp.h"
 2698typedef struct __anonstruct_seccomp_t_158 seccomp_t;
 2699#line 21 "include/linux/seccomp.h"
 2700struct plist_head {
 2701   struct list_head node_list ;
 2702   raw_spinlock_t *rawlock ;
 2703   spinlock_t *spinlock ;
 2704};
 2705#line 88 "include/linux/plist.h"
 2706struct plist_node {
 2707   int prio ;
 2708   struct list_head prio_list ;
 2709   struct list_head node_list ;
 2710};
 2711#line 38 "include/linux/rtmutex.h"
 2712struct rt_mutex_waiter;
 2713#line 38
 2714struct rt_mutex_waiter;
 2715#line 41 "include/linux/resource.h"
 2716struct rlimit {
 2717   unsigned long rlim_cur ;
 2718   unsigned long rlim_max ;
 2719};
 2720#line 85 "include/linux/resource.h"
 2721struct task_io_accounting {
 2722   u64 rchar ;
 2723   u64 wchar ;
 2724   u64 syscr ;
 2725   u64 syscw ;
 2726   u64 read_bytes ;
 2727   u64 write_bytes ;
 2728   u64 cancelled_write_bytes ;
 2729};
 2730#line 45 "include/linux/task_io_accounting.h"
 2731struct latency_record {
 2732   unsigned long backtrace[12U] ;
 2733   unsigned int count ;
 2734   unsigned long time ;
 2735   unsigned long max ;
 2736};
 2737#line 29 "include/linux/key.h"
 2738typedef int32_t key_serial_t;
 2739#line 32 "include/linux/key.h"
 2740typedef uint32_t key_perm_t;
 2741#line 33
 2742struct key;
 2743#line 33
 2744struct key;
 2745#line 34
 2746struct signal_struct;
 2747#line 34
 2748struct signal_struct;
 2749#line 35
 2750struct key_type;
 2751#line 35
 2752struct key_type;
 2753#line 37
 2754struct keyring_list;
 2755#line 37
 2756struct keyring_list;
 2757#line 115
 2758struct key_user;
 2759#line 115
 2760struct key_user;
 2761#line 115 "include/linux/key.h"
 2762union __anonunion_ldv_21220_159 {
 2763   time_t expiry ;
 2764   time_t revoked_at ;
 2765};
 2766#line 115 "include/linux/key.h"
 2767union __anonunion_type_data_160 {
 2768   struct list_head link ;
 2769   unsigned long x[2U] ;
 2770   void *p[2U] ;
 2771   int reject_error ;
 2772};
 2773#line 115 "include/linux/key.h"
 2774union __anonunion_payload_161 {
 2775   unsigned long value ;
 2776   void *rcudata ;
 2777   void *data ;
 2778   struct keyring_list *subscriptions ;
 2779};
 2780#line 115 "include/linux/key.h"
 2781struct key {
 2782   atomic_t usage ;
 2783   key_serial_t serial ;
 2784   struct rb_node serial_node ;
 2785   struct key_type *type ;
 2786   struct rw_semaphore sem ;
 2787   struct key_user *user ;
 2788   void *security ;
 2789   union __anonunion_ldv_21220_159 ldv_21220 ;
 2790   uid_t uid ;
 2791   gid_t gid ;
 2792   key_perm_t perm ;
 2793   unsigned short quotalen ;
 2794   unsigned short datalen ;
 2795   unsigned long flags ;
 2796   char *description ;
 2797   union __anonunion_type_data_160 type_data ;
 2798   union __anonunion_payload_161 payload ;
 2799};
 2800#line 310
 2801struct audit_context;
 2802#line 310
 2803struct audit_context;
 2804#line 27 "include/linux/selinux.h"
 2805struct group_info {
 2806   atomic_t usage ;
 2807   int ngroups ;
 2808   int nblocks ;
 2809   gid_t small_block[32U] ;
 2810   gid_t *blocks[0U] ;
 2811};
 2812#line 77 "include/linux/cred.h"
 2813struct thread_group_cred {
 2814   atomic_t usage ;
 2815   pid_t tgid ;
 2816   spinlock_t lock ;
 2817   struct key *session_keyring ;
 2818   struct key *process_keyring ;
 2819   struct rcu_head rcu ;
 2820};
 2821#line 91 "include/linux/cred.h"
 2822struct cred {
 2823   atomic_t usage ;
 2824   atomic_t subscribers ;
 2825   void *put_addr ;
 2826   unsigned int magic ;
 2827   uid_t uid ;
 2828   gid_t gid ;
 2829   uid_t suid ;
 2830   gid_t sgid ;
 2831   uid_t euid ;
 2832   gid_t egid ;
 2833   uid_t fsuid ;
 2834   gid_t fsgid ;
 2835   unsigned int securebits ;
 2836   kernel_cap_t cap_inheritable ;
 2837   kernel_cap_t cap_permitted ;
 2838   kernel_cap_t cap_effective ;
 2839   kernel_cap_t cap_bset ;
 2840   unsigned char jit_keyring ;
 2841   struct key *thread_keyring ;
 2842   struct key *request_key_auth ;
 2843   struct thread_group_cred *tgcred ;
 2844   void *security ;
 2845   struct user_struct *user ;
 2846   struct user_namespace *user_ns ;
 2847   struct group_info *group_info ;
 2848   struct rcu_head rcu ;
 2849};
 2850#line 264
 2851struct futex_pi_state;
 2852#line 264
 2853struct futex_pi_state;
 2854#line 265
 2855struct robust_list_head;
 2856#line 265
 2857struct robust_list_head;
 2858#line 266
 2859struct bio_list;
 2860#line 266
 2861struct bio_list;
 2862#line 267
 2863struct fs_struct;
 2864#line 267
 2865struct fs_struct;
 2866#line 268
 2867struct perf_event_context;
 2868#line 268
 2869struct perf_event_context;
 2870#line 269
 2871struct blk_plug;
 2872#line 269
 2873struct blk_plug;
 2874#line 149 "include/linux/sched.h"
 2875struct cfs_rq;
 2876#line 149
 2877struct cfs_rq;
 2878#line 44 "include/linux/aio_abi.h"
 2879struct io_event {
 2880   __u64 data ;
 2881   __u64 obj ;
 2882   __s64 res ;
 2883   __s64 res2 ;
 2884};
 2885#line 106 "include/linux/aio_abi.h"
 2886struct iovec {
 2887   void *iov_base ;
 2888   __kernel_size_t iov_len ;
 2889};
 2890#line 54 "include/linux/uio.h"
 2891struct kioctx;
 2892#line 54
 2893struct kioctx;
 2894#line 55 "include/linux/uio.h"
 2895union __anonunion_ki_obj_162 {
 2896   void *user ;
 2897   struct task_struct *tsk ;
 2898};
 2899#line 55
 2900struct eventfd_ctx;
 2901#line 55
 2902struct eventfd_ctx;
 2903#line 55 "include/linux/uio.h"
 2904struct kiocb {
 2905   struct list_head ki_run_list ;
 2906   unsigned long ki_flags ;
 2907   int ki_users ;
 2908   unsigned int ki_key ;
 2909   struct file *ki_filp ;
 2910   struct kioctx *ki_ctx ;
 2911   int (*ki_cancel)(struct kiocb * , struct io_event * ) ;
 2912   ssize_t (*ki_retry)(struct kiocb * ) ;
 2913   void (*ki_dtor)(struct kiocb * ) ;
 2914   union __anonunion_ki_obj_162 ki_obj ;
 2915   __u64 ki_user_data ;
 2916   loff_t ki_pos ;
 2917   void *private ;
 2918   unsigned short ki_opcode ;
 2919   size_t ki_nbytes ;
 2920   char *ki_buf ;
 2921   size_t ki_left ;
 2922   struct iovec ki_inline_vec ;
 2923   struct iovec *ki_iovec ;
 2924   unsigned long ki_nr_segs ;
 2925   unsigned long ki_cur_seg ;
 2926   struct list_head ki_list ;
 2927   struct eventfd_ctx *ki_eventfd ;
 2928};
 2929#line 161 "include/linux/aio.h"
 2930struct aio_ring_info {
 2931   unsigned long mmap_base ;
 2932   unsigned long mmap_size ;
 2933   struct page **ring_pages ;
 2934   spinlock_t ring_lock ;
 2935   long nr_pages ;
 2936   unsigned int nr ;
 2937   unsigned int tail ;
 2938   struct page *internal_pages[8U] ;
 2939};
 2940#line 177 "include/linux/aio.h"
 2941struct kioctx {
 2942   atomic_t users ;
 2943   int dead ;
 2944   struct mm_struct *mm ;
 2945   unsigned long user_id ;
 2946   struct hlist_node list ;
 2947   wait_queue_head_t wait ;
 2948   spinlock_t ctx_lock ;
 2949   int reqs_active ;
 2950   struct list_head active_reqs ;
 2951   struct list_head run_list ;
 2952   unsigned int max_reqs ;
 2953   struct aio_ring_info ring_info ;
 2954   struct delayed_work wq ;
 2955   struct rcu_head rcu_head ;
 2956};
 2957#line 404 "include/linux/sched.h"
 2958struct sighand_struct {
 2959   atomic_t count ;
 2960   struct k_sigaction action[64U] ;
 2961   spinlock_t siglock ;
 2962   wait_queue_head_t signalfd_wqh ;
 2963};
 2964#line 447 "include/linux/sched.h"
 2965struct pacct_struct {
 2966   int ac_flag ;
 2967   long ac_exitcode ;
 2968   unsigned long ac_mem ;
 2969   cputime_t ac_utime ;
 2970   cputime_t ac_stime ;
 2971   unsigned long ac_minflt ;
 2972   unsigned long ac_majflt ;
 2973};
 2974#line 455 "include/linux/sched.h"
 2975struct cpu_itimer {
 2976   cputime_t expires ;
 2977   cputime_t incr ;
 2978   u32 error ;
 2979   u32 incr_error ;
 2980};
 2981#line 462 "include/linux/sched.h"
 2982struct task_cputime {
 2983   cputime_t utime ;
 2984   cputime_t stime ;
 2985   unsigned long long sum_exec_runtime ;
 2986};
 2987#line 479 "include/linux/sched.h"
 2988struct thread_group_cputimer {
 2989   struct task_cputime cputime ;
 2990   int running ;
 2991   spinlock_t lock ;
 2992};
 2993#line 515
 2994struct autogroup;
 2995#line 515
 2996struct autogroup;
 2997#line 516
 2998struct tty_struct;
 2999#line 516
 3000struct tty_struct;
 3001#line 516
 3002struct taskstats;
 3003#line 516
 3004struct taskstats;
 3005#line 516
 3006struct tty_audit_buf;
 3007#line 516
 3008struct tty_audit_buf;
 3009#line 516 "include/linux/sched.h"
 3010struct signal_struct {
 3011   atomic_t sigcnt ;
 3012   atomic_t live ;
 3013   int nr_threads ;
 3014   wait_queue_head_t wait_chldexit ;
 3015   struct task_struct *curr_target ;
 3016   struct sigpending shared_pending ;
 3017   int group_exit_code ;
 3018   int notify_count ;
 3019   struct task_struct *group_exit_task ;
 3020   int group_stop_count ;
 3021   unsigned int flags ;
 3022   struct list_head posix_timers ;
 3023   struct hrtimer real_timer ;
 3024   struct pid *leader_pid ;
 3025   ktime_t it_real_incr ;
 3026   struct cpu_itimer it[2U] ;
 3027   struct thread_group_cputimer cputimer ;
 3028   struct task_cputime cputime_expires ;
 3029   struct list_head cpu_timers[3U] ;
 3030   struct pid *tty_old_pgrp ;
 3031   int leader ;
 3032   struct tty_struct *tty ;
 3033   struct autogroup *autogroup ;
 3034   cputime_t utime ;
 3035   cputime_t stime ;
 3036   cputime_t cutime ;
 3037   cputime_t cstime ;
 3038   cputime_t gtime ;
 3039   cputime_t cgtime ;
 3040   cputime_t prev_utime ;
 3041   cputime_t prev_stime ;
 3042   unsigned long nvcsw ;
 3043   unsigned long nivcsw ;
 3044   unsigned long cnvcsw ;
 3045   unsigned long cnivcsw ;
 3046   unsigned long min_flt ;
 3047   unsigned long maj_flt ;
 3048   unsigned long cmin_flt ;
 3049   unsigned long cmaj_flt ;
 3050   unsigned long inblock ;
 3051   unsigned long oublock ;
 3052   unsigned long cinblock ;
 3053   unsigned long coublock ;
 3054   unsigned long maxrss ;
 3055   unsigned long cmaxrss ;
 3056   struct task_io_accounting ioac ;
 3057   unsigned long long sum_sched_runtime ;
 3058   struct rlimit rlim[16U] ;
 3059   struct pacct_struct pacct ;
 3060   struct taskstats *stats ;
 3061   unsigned int audit_tty ;
 3062   struct tty_audit_buf *tty_audit_buf ;
 3063   struct rw_semaphore threadgroup_fork_lock ;
 3064   int oom_adj ;
 3065   int oom_score_adj ;
 3066   int oom_score_adj_min ;
 3067   struct mutex cred_guard_mutex ;
 3068};
 3069#line 683 "include/linux/sched.h"
 3070struct user_struct {
 3071   atomic_t __count ;
 3072   atomic_t processes ;
 3073   atomic_t files ;
 3074   atomic_t sigpending ;
 3075   atomic_t inotify_watches ;
 3076   atomic_t inotify_devs ;
 3077   atomic_t fanotify_listeners ;
 3078   atomic_long_t epoll_watches ;
 3079   unsigned long mq_bytes ;
 3080   unsigned long locked_shm ;
 3081   struct key *uid_keyring ;
 3082   struct key *session_keyring ;
 3083   struct hlist_node uidhash_node ;
 3084   uid_t uid ;
 3085   struct user_namespace *user_ns ;
 3086   atomic_long_t locked_vm ;
 3087};
 3088#line 728
 3089struct reclaim_state;
 3090#line 728
 3091struct reclaim_state;
 3092#line 729 "include/linux/sched.h"
 3093struct sched_info {
 3094   unsigned long pcount ;
 3095   unsigned long long run_delay ;
 3096   unsigned long long last_arrival ;
 3097   unsigned long long last_queued ;
 3098};
 3099#line 744 "include/linux/sched.h"
 3100struct task_delay_info {
 3101   spinlock_t lock ;
 3102   unsigned int flags ;
 3103   struct timespec blkio_start ;
 3104   struct timespec blkio_end ;
 3105   u64 blkio_delay ;
 3106   u64 swapin_delay ;
 3107   u32 blkio_count ;
 3108   u32 swapin_count ;
 3109   struct timespec freepages_start ;
 3110   struct timespec freepages_end ;
 3111   u64 freepages_delay ;
 3112   u32 freepages_count ;
 3113};
 3114#line 1037
 3115struct io_context;
 3116#line 1037
 3117struct io_context;
 3118#line 1060
 3119struct rq;
 3120#line 1060
 3121struct rq;
 3122#line 1061 "include/linux/sched.h"
 3123struct sched_class {
 3124   struct sched_class  const  *next ;
 3125   void (*enqueue_task)(struct rq * , struct task_struct * , int  ) ;
 3126   void (*dequeue_task)(struct rq * , struct task_struct * , int  ) ;
 3127   void (*yield_task)(struct rq * ) ;
 3128   bool (*yield_to_task)(struct rq * , struct task_struct * , bool  ) ;
 3129   void (*check_preempt_curr)(struct rq * , struct task_struct * , int  ) ;
 3130   struct task_struct *(*pick_next_task)(struct rq * ) ;
 3131   void (*put_prev_task)(struct rq * , struct task_struct * ) ;
 3132   int (*select_task_rq)(struct task_struct * , int  , int  ) ;
 3133   void (*pre_schedule)(struct rq * , struct task_struct * ) ;
 3134   void (*post_schedule)(struct rq * ) ;
 3135   void (*task_waking)(struct task_struct * ) ;
 3136   void (*task_woken)(struct rq * , struct task_struct * ) ;
 3137   void (*set_cpus_allowed)(struct task_struct * , struct cpumask  const  * ) ;
 3138   void (*rq_online)(struct rq * ) ;
 3139   void (*rq_offline)(struct rq * ) ;
 3140   void (*set_curr_task)(struct rq * ) ;
 3141   void (*task_tick)(struct rq * , struct task_struct * , int  ) ;
 3142   void (*task_fork)(struct task_struct * ) ;
 3143   void (*switched_from)(struct rq * , struct task_struct * ) ;
 3144   void (*switched_to)(struct rq * , struct task_struct * ) ;
 3145   void (*prio_changed)(struct rq * , struct task_struct * , int  ) ;
 3146   unsigned int (*get_rr_interval)(struct rq * , struct task_struct * ) ;
 3147   void (*task_move_group)(struct task_struct * , int  ) ;
 3148};
 3149#line 1127 "include/linux/sched.h"
 3150struct load_weight {
 3151   unsigned long weight ;
 3152   unsigned long inv_weight ;
 3153};
 3154#line 1132 "include/linux/sched.h"
 3155struct sched_statistics {
 3156   u64 wait_start ;
 3157   u64 wait_max ;
 3158   u64 wait_count ;
 3159   u64 wait_sum ;
 3160   u64 iowait_count ;
 3161   u64 iowait_sum ;
 3162   u64 sleep_start ;
 3163   u64 sleep_max ;
 3164   s64 sum_sleep_runtime ;
 3165   u64 block_start ;
 3166   u64 block_max ;
 3167   u64 exec_max ;
 3168   u64 slice_max ;
 3169   u64 nr_migrations_cold ;
 3170   u64 nr_failed_migrations_affine ;
 3171   u64 nr_failed_migrations_running ;
 3172   u64 nr_failed_migrations_hot ;
 3173   u64 nr_forced_migrations ;
 3174   u64 nr_wakeups ;
 3175   u64 nr_wakeups_sync ;
 3176   u64 nr_wakeups_migrate ;
 3177   u64 nr_wakeups_local ;
 3178   u64 nr_wakeups_remote ;
 3179   u64 nr_wakeups_affine ;
 3180   u64 nr_wakeups_affine_attempts ;
 3181   u64 nr_wakeups_passive ;
 3182   u64 nr_wakeups_idle ;
 3183};
 3184#line 1167 "include/linux/sched.h"
 3185struct sched_entity {
 3186   struct load_weight load ;
 3187   struct rb_node run_node ;
 3188   struct list_head group_node ;
 3189   unsigned int on_rq ;
 3190   u64 exec_start ;
 3191   u64 sum_exec_runtime ;
 3192   u64 vruntime ;
 3193   u64 prev_sum_exec_runtime ;
 3194   u64 nr_migrations ;
 3195   struct sched_statistics statistics ;
 3196   struct sched_entity *parent ;
 3197   struct cfs_rq *cfs_rq ;
 3198   struct cfs_rq *my_q ;
 3199};
 3200#line 1193
 3201struct rt_rq;
 3202#line 1193
 3203struct rt_rq;
 3204#line 1193 "include/linux/sched.h"
 3205struct sched_rt_entity {
 3206   struct list_head run_list ;
 3207   unsigned long timeout ;
 3208   unsigned int time_slice ;
 3209   int nr_cpus_allowed ;
 3210   struct sched_rt_entity *back ;
 3211   struct sched_rt_entity *parent ;
 3212   struct rt_rq *rt_rq ;
 3213   struct rt_rq *my_q ;
 3214};
 3215#line 1217
 3216struct mem_cgroup;
 3217#line 1217
 3218struct mem_cgroup;
 3219#line 1217 "include/linux/sched.h"
 3220struct memcg_batch_info {
 3221   int do_batch ;
 3222   struct mem_cgroup *memcg ;
 3223   unsigned long nr_pages ;
 3224   unsigned long memsw_nr_pages ;
 3225};
 3226#line 1569
 3227struct css_set;
 3228#line 1569
 3229struct css_set;
 3230#line 1569
 3231struct compat_robust_list_head;
 3232#line 1569
 3233struct compat_robust_list_head;
 3234#line 1569
 3235struct ftrace_ret_stack;
 3236#line 1569
 3237struct ftrace_ret_stack;
 3238#line 1569 "include/linux/sched.h"
 3239struct task_struct {
 3240   long volatile   state ;
 3241   void *stack ;
 3242   atomic_t usage ;
 3243   unsigned int flags ;
 3244   unsigned int ptrace ;
 3245   struct task_struct *wake_entry ;
 3246   int on_cpu ;
 3247   int on_rq ;
 3248   int prio ;
 3249   int static_prio ;
 3250   int normal_prio ;
 3251   unsigned int rt_priority ;
 3252   struct sched_class  const  *sched_class ;
 3253   struct sched_entity se ;
 3254   struct sched_rt_entity rt ;
 3255   struct hlist_head preempt_notifiers ;
 3256   unsigned char fpu_counter ;
 3257   unsigned int btrace_seq ;
 3258   unsigned int policy ;
 3259   cpumask_t cpus_allowed ;
 3260   struct sched_info sched_info ;
 3261   struct list_head tasks ;
 3262   struct plist_node pushable_tasks ;
 3263   struct mm_struct *mm ;
 3264   struct mm_struct *active_mm ;
 3265   unsigned char brk_randomized : 1 ;
 3266   int exit_state ;
 3267   int exit_code ;
 3268   int exit_signal ;
 3269   int pdeath_signal ;
 3270   unsigned int group_stop ;
 3271   unsigned int personality ;
 3272   unsigned char did_exec : 1 ;
 3273   unsigned char in_execve : 1 ;
 3274   unsigned char in_iowait : 1 ;
 3275   unsigned char sched_reset_on_fork : 1 ;
 3276   unsigned char sched_contributes_to_load : 1 ;
 3277   pid_t pid ;
 3278   pid_t tgid ;
 3279   unsigned long stack_canary ;
 3280   struct task_struct *real_parent ;
 3281   struct task_struct *parent ;
 3282   struct list_head children ;
 3283   struct list_head sibling ;
 3284   struct task_struct *group_leader ;
 3285   struct list_head ptraced ;
 3286   struct list_head ptrace_entry ;
 3287   struct pid_link pids[3U] ;
 3288   struct list_head thread_group ;
 3289   struct completion *vfork_done ;
 3290   int *set_child_tid ;
 3291   int *clear_child_tid ;
 3292   cputime_t utime ;
 3293   cputime_t stime ;
 3294   cputime_t utimescaled ;
 3295   cputime_t stimescaled ;
 3296   cputime_t gtime ;
 3297   cputime_t prev_utime ;
 3298   cputime_t prev_stime ;
 3299   unsigned long nvcsw ;
 3300   unsigned long nivcsw ;
 3301   struct timespec start_time ;
 3302   struct timespec real_start_time ;
 3303   unsigned long min_flt ;
 3304   unsigned long maj_flt ;
 3305   struct task_cputime cputime_expires ;
 3306   struct list_head cpu_timers[3U] ;
 3307   struct cred  const  *real_cred ;
 3308   struct cred  const  *cred ;
 3309   struct cred *replacement_session_keyring ;
 3310   char comm[16U] ;
 3311   int link_count ;
 3312   int total_link_count ;
 3313   struct sysv_sem sysvsem ;
 3314   unsigned long last_switch_count ;
 3315   struct thread_struct thread ;
 3316   struct fs_struct *fs ;
 3317   struct files_struct *files ;
 3318   struct nsproxy *nsproxy ;
 3319   struct signal_struct *signal ;
 3320   struct sighand_struct *sighand ;
 3321   sigset_t blocked ;
 3322   sigset_t real_blocked ;
 3323   sigset_t saved_sigmask ;
 3324   struct sigpending pending ;
 3325   unsigned long sas_ss_sp ;
 3326   size_t sas_ss_size ;
 3327   int (*notifier)(void * ) ;
 3328   void *notifier_data ;
 3329   sigset_t *notifier_mask ;
 3330   struct audit_context *audit_context ;
 3331   uid_t loginuid ;
 3332   unsigned int sessionid ;
 3333   seccomp_t seccomp ;
 3334   u32 parent_exec_id ;
 3335   u32 self_exec_id ;
 3336   spinlock_t alloc_lock ;
 3337   struct irqaction *irqaction ;
 3338   raw_spinlock_t pi_lock ;
 3339   struct plist_head pi_waiters ;
 3340   struct rt_mutex_waiter *pi_blocked_on ;
 3341   struct mutex_waiter *blocked_on ;
 3342   unsigned int irq_events ;
 3343   unsigned long hardirq_enable_ip ;
 3344   unsigned long hardirq_disable_ip ;
 3345   unsigned int hardirq_enable_event ;
 3346   unsigned int hardirq_disable_event ;
 3347   int hardirqs_enabled ;
 3348   int hardirq_context ;
 3349   unsigned long softirq_disable_ip ;
 3350   unsigned long softirq_enable_ip ;
 3351   unsigned int softirq_disable_event ;
 3352   unsigned int softirq_enable_event ;
 3353   int softirqs_enabled ;
 3354   int softirq_context ;
 3355   u64 curr_chain_key ;
 3356   int lockdep_depth ;
 3357   unsigned int lockdep_recursion ;
 3358   struct held_lock held_locks[48U] ;
 3359   gfp_t lockdep_reclaim_gfp ;
 3360   void *journal_info ;
 3361   struct bio_list *bio_list ;
 3362   struct blk_plug *plug ;
 3363   struct reclaim_state *reclaim_state ;
 3364   struct backing_dev_info *backing_dev_info ;
 3365   struct io_context *io_context ;
 3366   unsigned long ptrace_message ;
 3367   siginfo_t *last_siginfo ;
 3368   struct task_io_accounting ioac ;
 3369   u64 acct_rss_mem1 ;
 3370   u64 acct_vm_mem1 ;
 3371   cputime_t acct_timexpd ;
 3372   nodemask_t mems_allowed ;
 3373   int mems_allowed_change_disable ;
 3374   int cpuset_mem_spread_rotor ;
 3375   int cpuset_slab_spread_rotor ;
 3376   struct css_set *cgroups ;
 3377   struct list_head cg_list ;
 3378   struct robust_list_head *robust_list ;
 3379   struct compat_robust_list_head *compat_robust_list ;
 3380   struct list_head pi_state_list ;
 3381   struct futex_pi_state *pi_state_cache ;
 3382   struct perf_event_context *perf_event_ctxp[2U] ;
 3383   struct mutex perf_event_mutex ;
 3384   struct list_head perf_event_list ;
 3385   struct mempolicy *mempolicy ;
 3386   short il_next ;
 3387   short pref_node_fork ;
 3388   atomic_t fs_excl ;
 3389   struct rcu_head rcu ;
 3390   struct pipe_inode_info *splice_pipe ;
 3391   struct task_delay_info *delays ;
 3392   int make_it_fail ;
 3393   struct prop_local_single dirties ;
 3394   int latency_record_count ;
 3395   struct latency_record latency_record[32U] ;
 3396   unsigned long timer_slack_ns ;
 3397   unsigned long default_timer_slack_ns ;
 3398   struct list_head *scm_work_list ;
 3399   int curr_ret_stack ;
 3400   struct ftrace_ret_stack *ret_stack ;
 3401   unsigned long long ftrace_timestamp ;
 3402   atomic_t trace_overrun ;
 3403   atomic_t tracing_graph_pause ;
 3404   unsigned long trace ;
 3405   unsigned long trace_recursion ;
 3406   struct memcg_batch_info memcg_batch ;
 3407   atomic_t ptrace_bp_refcnt ;
 3408};
 3409#line 287 "include/linux/pm_runtime.h"
 3410struct usb_device;
 3411#line 287
 3412struct usb_device;
 3413#line 288
 3414struct usb_driver;
 3415#line 288
 3416struct usb_driver;
 3417#line 289
 3418struct wusb_dev;
 3419#line 289
 3420struct wusb_dev;
 3421#line 290
 3422struct ep_device;
 3423#line 290
 3424struct ep_device;
 3425#line 291 "include/linux/pm_runtime.h"
 3426struct usb_host_endpoint {
 3427   struct usb_endpoint_descriptor desc ;
 3428   struct usb_ss_ep_comp_descriptor ss_ep_comp ;
 3429   struct list_head urb_list ;
 3430   void *hcpriv ;
 3431   struct ep_device *ep_dev ;
 3432   unsigned char *extra ;
 3433   int extralen ;
 3434   int enabled ;
 3435};
 3436#line 75 "include/linux/usb.h"
 3437struct usb_host_interface {
 3438   struct usb_interface_descriptor desc ;
 3439   struct usb_host_endpoint *endpoint ;
 3440   char *string ;
 3441   unsigned char *extra ;
 3442   int extralen ;
 3443};
 3444#line 89
 3445enum usb_interface_condition {
 3446    USB_INTERFACE_UNBOUND = 0,
 3447    USB_INTERFACE_BINDING = 1,
 3448    USB_INTERFACE_BOUND = 2,
 3449    USB_INTERFACE_UNBINDING = 3
 3450} ;
 3451#line 96 "include/linux/usb.h"
 3452struct usb_interface {
 3453   struct usb_host_interface *altsetting ;
 3454   struct usb_host_interface *cur_altsetting ;
 3455   unsigned int num_altsetting ;
 3456   struct usb_interface_assoc_descriptor *intf_assoc ;
 3457   int minor ;
 3458   enum usb_interface_condition condition ;
 3459   unsigned char sysfs_files_created : 1 ;
 3460   unsigned char ep_devs_created : 1 ;
 3461   unsigned char unregistering : 1 ;
 3462   unsigned char needs_remote_wakeup : 1 ;
 3463   unsigned char needs_altsetting0 : 1 ;
 3464   unsigned char needs_binding : 1 ;
 3465   unsigned char reset_running : 1 ;
 3466   unsigned char resetting_device : 1 ;
 3467   struct device dev ;
 3468   struct device *usb_dev ;
 3469   atomic_t pm_usage_cnt ;
 3470   struct work_struct reset_ws ;
 3471};
 3472#line 203 "include/linux/usb.h"
 3473struct usb_interface_cache {
 3474   unsigned int num_altsetting ;
 3475   struct kref ref ;
 3476   struct usb_host_interface altsetting[0U] ;
 3477};
 3478#line 230 "include/linux/usb.h"
 3479struct usb_host_config {
 3480   struct usb_config_descriptor desc ;
 3481   char *string ;
 3482   struct usb_interface_assoc_descriptor *intf_assoc[16U] ;
 3483   struct usb_interface *interface[32U] ;
 3484   struct usb_interface_cache *intf_cache[32U] ;
 3485   unsigned char *extra ;
 3486   int extralen ;
 3487};
 3488#line 296 "include/linux/usb.h"
 3489struct usb_devmap {
 3490   unsigned long devicemap[2U] ;
 3491};
 3492#line 308
 3493struct mon_bus;
 3494#line 308
 3495struct mon_bus;
 3496#line 308 "include/linux/usb.h"
 3497struct usb_bus {
 3498   struct device *controller ;
 3499   int busnum ;
 3500   char const   *bus_name ;
 3501   u8 uses_dma ;
 3502   u8 uses_pio_for_control ;
 3503   u8 otg_port ;
 3504   unsigned char is_b_host : 1 ;
 3505   unsigned char b_hnp_enable : 1 ;
 3506   unsigned int sg_tablesize ;
 3507   int devnum_next ;
 3508   struct usb_devmap devmap ;
 3509   struct usb_device *root_hub ;
 3510   struct usb_bus *hs_companion ;
 3511   struct list_head bus_list ;
 3512   int bandwidth_allocated ;
 3513   int bandwidth_int_reqs ;
 3514   int bandwidth_isoc_reqs ;
 3515   struct dentry *usbfs_dentry ;
 3516   struct mon_bus *mon_bus ;
 3517   int monitored ;
 3518};
 3519#line 352
 3520struct usb_tt;
 3521#line 352
 3522struct usb_tt;
 3523#line 353 "include/linux/usb.h"
 3524struct usb_device {
 3525   int devnum ;
 3526   char devpath[16U] ;
 3527   u32 route ;
 3528   enum usb_device_state state ;
 3529   enum usb_device_speed speed ;
 3530   struct usb_tt *tt ;
 3531   int ttport ;
 3532   unsigned int toggle[2U] ;
 3533   struct usb_device *parent ;
 3534   struct usb_bus *bus ;
 3535   struct usb_host_endpoint ep0 ;
 3536   struct device dev ;
 3537   struct usb_device_descriptor descriptor ;
 3538   struct usb_host_config *config ;
 3539   struct usb_host_config *actconfig ;
 3540   struct usb_host_endpoint *ep_in[16U] ;
 3541   struct usb_host_endpoint *ep_out[16U] ;
 3542   char **rawdescriptors ;
 3543   unsigned short bus_mA ;
 3544   u8 portnum ;
 3545   u8 level ;
 3546   unsigned char can_submit : 1 ;
 3547   unsigned char persist_enabled : 1 ;
 3548   unsigned char have_langid : 1 ;
 3549   unsigned char authorized : 1 ;
 3550   unsigned char authenticated : 1 ;
 3551   unsigned char wusb : 1 ;
 3552   int string_langid ;
 3553   char *product ;
 3554   char *manufacturer ;
 3555   char *serial ;
 3556   struct list_head filelist ;
 3557   struct device *usb_classdev ;
 3558   struct dentry *usbfs_dentry ;
 3559   int maxchild ;
 3560   struct usb_device *children[31U] ;
 3561   u32 quirks ;
 3562   atomic_t urbnum ;
 3563   unsigned long active_duration ;
 3564   unsigned long connect_time ;
 3565   unsigned char do_remote_wakeup : 1 ;
 3566   unsigned char reset_resume : 1 ;
 3567   struct wusb_dev *wusb_dev ;
 3568   int slot_id ;
 3569};
 3570#line 644 "include/linux/usb.h"
 3571struct usb_dynids {
 3572   spinlock_t lock ;
 3573   struct list_head list ;
 3574};
 3575#line 774 "include/linux/usb.h"
 3576struct usbdrv_wrap {
 3577   struct device_driver driver ;
 3578   int for_devices ;
 3579};
 3580#line 786 "include/linux/usb.h"
 3581struct usb_driver {
 3582   char const   *name ;
 3583   int (*probe)(struct usb_interface * , struct usb_device_id  const  * ) ;
 3584   void (*disconnect)(struct usb_interface * ) ;
 3585   int (*unlocked_ioctl)(struct usb_interface * , unsigned int  , void * ) ;
 3586   int (*suspend)(struct usb_interface * , pm_message_t  ) ;
 3587   int (*resume)(struct usb_interface * ) ;
 3588   int (*reset_resume)(struct usb_interface * ) ;
 3589   int (*pre_reset)(struct usb_interface * ) ;
 3590   int (*post_reset)(struct usb_interface * ) ;
 3591   struct usb_device_id  const  *id_table ;
 3592   struct usb_dynids dynids ;
 3593   struct usbdrv_wrap drvwrap ;
 3594   unsigned char no_dynamic_id : 1 ;
 3595   unsigned char supports_autosuspend : 1 ;
 3596   unsigned char soft_unbind : 1 ;
 3597};
 3598#line 869 "include/linux/usb.h"
 3599struct usb_device_driver {
 3600   char const   *name ;
 3601   int (*probe)(struct usb_device * ) ;
 3602   void (*disconnect)(struct usb_device * ) ;
 3603   int (*suspend)(struct usb_device * , pm_message_t  ) ;
 3604   int (*resume)(struct usb_device * , pm_message_t  ) ;
 3605   struct usbdrv_wrap drvwrap ;
 3606   unsigned char supports_autosuspend : 1 ;
 3607};
 3608#line 947 "include/linux/usb.h"
 3609struct usb_iso_packet_descriptor {
 3610   unsigned int offset ;
 3611   unsigned int length ;
 3612   unsigned int actual_length ;
 3613   int status ;
 3614};
 3615#line 989
 3616struct urb;
 3617#line 989
 3618struct urb;
 3619#line 990 "include/linux/usb.h"
 3620struct usb_anchor {
 3621   struct list_head urb_list ;
 3622   wait_queue_head_t wait ;
 3623   spinlock_t lock ;
 3624   unsigned char poisoned : 1 ;
 3625};
 3626#line 1007
 3627struct scatterlist;
 3628#line 1007
 3629struct scatterlist;
 3630#line 1007 "include/linux/usb.h"
 3631struct urb {
 3632   struct kref kref ;
 3633   void *hcpriv ;
 3634   atomic_t use_count ;
 3635   atomic_t reject ;
 3636   int unlinked ;
 3637   struct list_head urb_list ;
 3638   struct list_head anchor_list ;
 3639   struct usb_anchor *anchor ;
 3640   struct usb_device *dev ;
 3641   struct usb_host_endpoint *ep ;
 3642   unsigned int pipe ;
 3643   unsigned int stream_id ;
 3644   int status ;
 3645   unsigned int transfer_flags ;
 3646   void *transfer_buffer ;
 3647   dma_addr_t transfer_dma ;
 3648   struct scatterlist *sg ;
 3649   int num_sgs ;
 3650   u32 transfer_buffer_length ;
 3651   u32 actual_length ;
 3652   unsigned char *setup_packet ;
 3653   dma_addr_t setup_dma ;
 3654   int start_frame ;
 3655   int number_of_packets ;
 3656   int interval ;
 3657   int error_count ;
 3658   void *context ;
 3659   void (*complete)(struct urb * ) ;
 3660   struct usb_iso_packet_descriptor iso_frame_desc[0U] ;
 3661};
 3662#line 1606
 3663struct hc_driver;
 3664#line 1606
 3665struct hc_driver;
 3666#line 1606
 3667struct dma_pool;
 3668#line 1606
 3669struct dma_pool;
 3670#line 1606 "include/linux/usb.h"
 3671struct usb_hcd {
 3672   struct usb_bus self ;
 3673   struct kref kref ;
 3674   char const   *product_desc ;
 3675   int speed ;
 3676   char irq_descr[24U] ;
 3677   struct timer_list rh_timer ;
 3678   struct urb *status_urb ;
 3679   struct work_struct wakeup_work ;
 3680   struct hc_driver  const  *driver ;
 3681   unsigned long flags ;
 3682   unsigned char rh_registered : 1 ;
 3683   unsigned char rh_pollable : 1 ;
 3684   unsigned char msix_enabled : 1 ;
 3685   unsigned char uses_new_polling : 1 ;
 3686   unsigned char wireless : 1 ;
 3687   unsigned char authorized_default : 1 ;
 3688   unsigned char has_tt : 1 ;
 3689   int irq ;
 3690   void *regs ;
 3691   u64 rsrc_start ;
 3692   u64 rsrc_len ;
 3693   unsigned int power_budget ;
 3694   struct mutex *bandwidth_mutex ;
 3695   struct usb_hcd *shared_hcd ;
 3696   struct usb_hcd *primary_hcd ;
 3697   struct dma_pool *pool[4U] ;
 3698   int state ;
 3699   unsigned long hcd_priv[0U] ;
 3700};
 3701#line 199 "include/linux/usb/hcd.h"
 3702struct hc_driver {
 3703   char const   *description ;
 3704   char const   *product_desc ;
 3705   size_t hcd_priv_size ;
 3706   irqreturn_t (*irq)(struct usb_hcd * ) ;
 3707   int flags ;
 3708   int (*reset)(struct usb_hcd * ) ;
 3709   int (*start)(struct usb_hcd * ) ;
 3710   int (*pci_suspend)(struct usb_hcd * , bool  ) ;
 3711   int (*pci_resume)(struct usb_hcd * , bool  ) ;
 3712   void (*stop)(struct usb_hcd * ) ;
 3713   void (*shutdown)(struct usb_hcd * ) ;
 3714   int (*get_frame_number)(struct usb_hcd * ) ;
 3715   int (*urb_enqueue)(struct usb_hcd * , struct urb * , gfp_t  ) ;
 3716   int (*urb_dequeue)(struct usb_hcd * , struct urb * , int  ) ;
 3717   int (*map_urb_for_dma)(struct usb_hcd * , struct urb * , gfp_t  ) ;
 3718   void (*unmap_urb_for_dma)(struct usb_hcd * , struct urb * ) ;
 3719   void (*endpoint_disable)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 3720   void (*endpoint_reset)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 3721   int (*hub_status_data)(struct usb_hcd * , char * ) ;
 3722   int (*hub_control)(struct usb_hcd * , u16  , u16  , u16  , char * , u16  ) ;
 3723   int (*bus_suspend)(struct usb_hcd * ) ;
 3724   int (*bus_resume)(struct usb_hcd * ) ;
 3725   int (*start_port_reset)(struct usb_hcd * , unsigned int  ) ;
 3726   void (*relinquish_port)(struct usb_hcd * , int  ) ;
 3727   int (*port_handed_over)(struct usb_hcd * , int  ) ;
 3728   void (*clear_tt_buffer_complete)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 3729   int (*alloc_dev)(struct usb_hcd * , struct usb_device * ) ;
 3730   void (*free_dev)(struct usb_hcd * , struct usb_device * ) ;
 3731   int (*alloc_streams)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
 3732                        unsigned int  , unsigned int  , gfp_t  ) ;
 3733   int (*free_streams)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
 3734                       unsigned int  , gfp_t  ) ;
 3735   int (*add_endpoint)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
 3736   int (*drop_endpoint)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
 3737   int (*check_bandwidth)(struct usb_hcd * , struct usb_device * ) ;
 3738   void (*reset_bandwidth)(struct usb_hcd * , struct usb_device * ) ;
 3739   int (*address_device)(struct usb_hcd * , struct usb_device * ) ;
 3740   int (*update_hub_device)(struct usb_hcd * , struct usb_device * , struct usb_tt * ,
 3741                            gfp_t  ) ;
 3742   int (*reset_device)(struct usb_hcd * , struct usb_device * ) ;
 3743   int (*update_device)(struct usb_hcd * , struct usb_device * ) ;
 3744};
 3745#line 235 "include/linux/usb/ch11.h"
 3746struct usb_tt {
 3747   struct usb_device *hub ;
 3748   int multi ;
 3749   unsigned int think_time ;
 3750   spinlock_t lock ;
 3751   struct list_head clear_list ;
 3752   struct work_struct clear_work ;
 3753};
 3754#line 78 "include/linux/debugfs.h"
 3755struct scatterlist {
 3756   unsigned long sg_magic ;
 3757   unsigned long page_link ;
 3758   unsigned int offset ;
 3759   unsigned int length ;
 3760   dma_addr_t dma_address ;
 3761   unsigned int dma_length ;
 3762};
 3763#line 175 "include/linux/mm.h"
 3764struct vm_fault {
 3765   unsigned int flags ;
 3766   unsigned long pgoff ;
 3767   void *virtual_address ;
 3768   struct page *page ;
 3769};
 3770#line 192 "include/linux/mm.h"
 3771struct vm_operations_struct {
 3772   void (*open)(struct vm_area_struct * ) ;
 3773   void (*close)(struct vm_area_struct * ) ;
 3774   int (*fault)(struct vm_area_struct * , struct vm_fault * ) ;
 3775   int (*page_mkwrite)(struct vm_area_struct * , struct vm_fault * ) ;
 3776   int (*access)(struct vm_area_struct * , unsigned long  , void * , int  , int  ) ;
 3777   int (*set_policy)(struct vm_area_struct * , struct mempolicy * ) ;
 3778   struct mempolicy *(*get_policy)(struct vm_area_struct * , unsigned long  ) ;
 3779   int (*migrate)(struct vm_area_struct * , nodemask_t const   * , nodemask_t const   * ,
 3780                  unsigned long  ) ;
 3781};
 3782#line 34 "include/linux/bug.h"
 3783struct dma_attrs {
 3784   unsigned long flags[1U] ;
 3785};
 3786#line 65 "include/linux/dma-attrs.h"
 3787enum dma_data_direction {
 3788    DMA_BIDIRECTIONAL = 0,
 3789    DMA_TO_DEVICE = 1,
 3790    DMA_FROM_DEVICE = 2,
 3791    DMA_NONE = 3
 3792} ;
 3793#line 72 "include/linux/dma-attrs.h"
 3794struct dma_map_ops {
 3795   void *(*alloc_coherent)(struct device * , size_t  , dma_addr_t * , gfp_t  ) ;
 3796   void (*free_coherent)(struct device * , size_t  , void * , dma_addr_t  ) ;
 3797   dma_addr_t (*map_page)(struct device * , struct page * , unsigned long  , size_t  ,
 3798                          enum dma_data_direction  , struct dma_attrs * ) ;
 3799   void (*unmap_page)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
 3800                      struct dma_attrs * ) ;
 3801   int (*map_sg)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
 3802                 struct dma_attrs * ) ;
 3803   void (*unmap_sg)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
 3804                    struct dma_attrs * ) ;
 3805   void (*sync_single_for_cpu)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ) ;
 3806   void (*sync_single_for_device)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ) ;
 3807   void (*sync_sg_for_cpu)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ) ;
 3808   void (*sync_sg_for_device)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ) ;
 3809   int (*mapping_error)(struct device * , dma_addr_t  ) ;
 3810   int (*dma_supported)(struct device * , u64  ) ;
 3811   int (*set_dma_mask)(struct device * , u64  ) ;
 3812   int is_phys ;
 3813};
 3814#line 174 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 3815struct find_interface_arg {
 3816   int minor ;
 3817   struct device_driver *drv ;
 3818};
 3819#line 48 "include/asm-generic/int-ll64.h"
 3820typedef int s32;
 3821#line 672 "include/linux/kernel.h"
 3822struct compat_timespec;
 3823#line 672
 3824struct compat_timespec;
 3825#line 673 "include/linux/kernel.h"
 3826struct __anonstruct_futex_9 {
 3827   u32 *uaddr ;
 3828   u32 val ;
 3829   u32 flags ;
 3830   u32 bitset ;
 3831   u64 time ;
 3832   u32 *uaddr2 ;
 3833};
 3834#line 673 "include/linux/kernel.h"
 3835struct __anonstruct_nanosleep_10 {
 3836   clockid_t clockid ;
 3837   struct timespec *rmtp ;
 3838   struct compat_timespec *compat_rmtp ;
 3839   u64 expires ;
 3840};
 3841#line 673
 3842struct pollfd;
 3843#line 673
 3844struct pollfd;
 3845#line 673 "include/linux/kernel.h"
 3846struct __anonstruct_poll_11 {
 3847   struct pollfd *ufds ;
 3848   int nfds ;
 3849   int has_timeout ;
 3850   unsigned long tv_sec ;
 3851   unsigned long tv_nsec ;
 3852};
 3853#line 673 "include/linux/kernel.h"
 3854union __anonunion_ldv_2052_8 {
 3855   struct __anonstruct_futex_9 futex ;
 3856   struct __anonstruct_nanosleep_10 nanosleep ;
 3857   struct __anonstruct_poll_11 poll ;
 3858};
 3859#line 673 "include/linux/kernel.h"
 3860struct restart_block {
 3861   long (*fn)(struct restart_block * ) ;
 3862   union __anonunion_ldv_2052_8 ldv_2052 ;
 3863};
 3864#line 22 "include/asm-generic/getorder.h"
 3865struct exec_domain;
 3866#line 22
 3867struct exec_domain;
 3868#line 90 "include/linux/personality.h"
 3869struct map_segment;
 3870#line 90
 3871struct map_segment;
 3872#line 90 "include/linux/personality.h"
 3873struct exec_domain {
 3874   char const   *name ;
 3875   void (*handler)(int  , struct pt_regs * ) ;
 3876   unsigned char pers_low ;
 3877   unsigned char pers_high ;
 3878   unsigned long *signal_map ;
 3879   unsigned long *signal_invmap ;
 3880   struct map_segment *err_map ;
 3881   struct map_segment *socktype_map ;
 3882   struct map_segment *sockopt_map ;
 3883   struct map_segment *af_map ;
 3884   struct module *module ;
 3885   struct exec_domain *next ;
 3886};
 3887#line 622 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
 3888struct __anonstruct_mm_segment_t_28 {
 3889   unsigned long seg ;
 3890};
 3891#line 622 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
 3892typedef struct __anonstruct_mm_segment_t_28 mm_segment_t;
 3893#line 131 "include/asm-generic/atomic-long.h"
 3894struct thread_info {
 3895   struct task_struct *task ;
 3896   struct exec_domain *exec_domain ;
 3897   __u32 flags ;
 3898   __u32 status ;
 3899   __u32 cpu ;
 3900   int preempt_count ;
 3901   mm_segment_t addr_limit ;
 3902   struct restart_block restart_block ;
 3903   void *sysenter_return ;
 3904   int uaccess_err ;
 3905};
 3906#line 28 "include/linux/wait.h"
 3907struct __wait_queue;
 3908#line 28
 3909struct __wait_queue;
 3910#line 28 "include/linux/wait.h"
 3911typedef struct __wait_queue wait_queue_t;
 3912#line 31 "include/linux/wait.h"
 3913struct __wait_queue {
 3914   unsigned int flags ;
 3915   void *private ;
 3916   int (*func)(wait_queue_t * , unsigned int  , int  , void * ) ;
 3917   struct list_head task_list ;
 3918};
 3919#line 290 "include/linux/timer.h"
 3920enum hrtimer_restart;
 3921#line 290
 3922enum hrtimer_restart;
 3923#line 584 "include/linux/usb/ch9.h"
 3924struct usb_qualifier_descriptor {
 3925   __u8 bLength ;
 3926   __u8 bDescriptorType ;
 3927   __le16 bcdUSB ;
 3928   __u8 bDeviceClass ;
 3929   __u8 bDeviceSubClass ;
 3930   __u8 bDeviceProtocol ;
 3931   __u8 bMaxPacketSize0 ;
 3932   __u8 bNumConfigurations ;
 3933   __u8 bRESERVED ;
 3934};
 3935#line 606 "include/linux/usb/ch9.h"
 3936struct usb_otg_descriptor {
 3937   __u8 bLength ;
 3938   __u8 bDescriptorType ;
 3939   __u8 bmAttributes ;
 3940};
 3941#line 120 "include/linux/usbdevice_fs.h"
 3942struct usbdevfs_hub_portinfo {
 3943   char nports ;
 3944   char port[127U] ;
 3945};
 3946#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3947typedef s32 compat_time_t;
 3948#line 37 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3949typedef s32 compat_long_t;
 3950#line 42 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3951struct compat_timespec {
 3952   compat_time_t tv_sec ;
 3953   s32 tv_nsec ;
 3954};
 3955#line 196 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3956typedef u32 compat_uptr_t;
 3957#line 205 "include/linux/compat.h"
 3958struct compat_robust_list {
 3959   compat_uptr_t next ;
 3960};
 3961#line 209 "include/linux/compat.h"
 3962struct compat_robust_list_head {
 3963   struct compat_robust_list list ;
 3964   compat_long_t futex_offset ;
 3965   compat_uptr_t list_op_pending ;
 3966};
 3967#line 434 "include/linux/usb/hcd.h"
 3968struct usb_port_status {
 3969   __le16 wPortStatus ;
 3970   __le16 wPortChange ;
 3971};
 3972#line 94 "include/linux/usb/ch11.h"
 3973struct usb_hub_status {
 3974   __le16 wHubStatus ;
 3975   __le16 wHubChange ;
 3976};
 3977#line 178 "include/linux/usb/ch11.h"
 3978struct __anonstruct_hs_181 {
 3979   __u8 DeviceRemovable[4U] ;
 3980   __u8 PortPwrCtrlMask[4U] ;
 3981};
 3982#line 178 "include/linux/usb/ch11.h"
 3983struct __anonstruct_ss_182 {
 3984   __u8 bHubHdrDecLat ;
 3985   __u16 wHubDelay ;
 3986   __u16 DeviceRemovable ;
 3987};
 3988#line 178 "include/linux/usb/ch11.h"
 3989union __anonunion_u_180 {
 3990   struct __anonstruct_hs_181 hs ;
 3991   struct __anonstruct_ss_182 ss ;
 3992};
 3993#line 178 "include/linux/usb/ch11.h"
 3994struct usb_hub_descriptor {
 3995   __u8 bDescLength ;
 3996   __u8 bDescriptorType ;
 3997   __u8 bNbrPorts ;
 3998   __le16 wHubCharacteristics ;
 3999   __u8 bPwrOn2PwrGood ;
 4000   __u8 bHubContrCurrent ;
 4001   union __anonunion_u_180 u ;
 4002};
 4003#line 466 "include/linux/usb/hcd.h"
 4004struct usb_tt_clear {
 4005   struct list_head clear_list ;
 4006   unsigned int tt ;
 4007   u16 devinfo ;
 4008   struct usb_hcd *hcd ;
 4009   struct usb_host_endpoint *ep ;
 4010};
 4011#line 164 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 4012union __anonunion_status_183 {
 4013   struct usb_hub_status hub ;
 4014   struct usb_port_status port ;
 4015};
 4016#line 164 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 4017struct usb_hub {
 4018   struct device *intfdev ;
 4019   struct usb_device *hdev ;
 4020   struct kref kref ;
 4021   struct urb *urb ;
 4022   char (*buffer)[8U] ;
 4023   union __anonunion_status_183 *status ;
 4024   struct mutex status_mutex ;
 4025   int error ;
 4026   int nerrors ;
 4027   struct list_head event_list ;
 4028   unsigned long event_bits[1U] ;
 4029   unsigned long change_bits[1U] ;
 4030   unsigned long busy_bits[1U] ;
 4031   unsigned long removed_bits[1U] ;
 4032   struct usb_hub_descriptor *descriptor ;
 4033   struct usb_tt tt ;
 4034   unsigned int mA_per_port ;
 4035   unsigned char limited_power : 1 ;
 4036   unsigned char quiescing : 1 ;
 4037   unsigned char disconnected : 1 ;
 4038   unsigned char has_indicators : 1 ;
 4039   u8 indicator[31U] ;
 4040   struct delayed_work leds ;
 4041   struct delayed_work init_work ;
 4042   void **port_owners ;
 4043};
 4044#line 691 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 4045enum hub_activation_type {
 4046    HUB_INIT = 0,
 4047    HUB_INIT2 = 1,
 4048    HUB_INIT3 = 2,
 4049    HUB_POST_RESET = 3,
 4050    HUB_RESUME = 4,
 4051    HUB_RESET_RESUME = 5
 4052} ;
 4053#line 912
 4054enum hub_quiescing_type {
 4055    HUB_DISCONNECT = 0,
 4056    HUB_PRE_RESET = 1,
 4057    HUB_SUSPEND = 2
 4058} ;
 4059#line 979 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 4060union __anonunion_185 {
 4061   struct usb_hub_status hub ;
 4062   struct usb_port_status port ;
 4063};
 4064#line 179 "include/linux/types.h"
 4065typedef __u32 __le32;
 4066#line 181 "include/linux/types.h"
 4067typedef __u64 __le64;
 4068#line 205 "include/linux/types.h"
 4069typedef u64 phys_addr_t;
 4070#line 210 "include/linux/types.h"
 4071typedef phys_addr_t resource_size_t;
 4072#line 125 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
 4073struct paravirt_callee_save {
 4074   void *func ;
 4075};
 4076#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
 4077struct pv_irq_ops {
 4078   struct paravirt_callee_save save_fl ;
 4079   struct paravirt_callee_save restore_fl ;
 4080   struct paravirt_callee_save irq_disable ;
 4081   struct paravirt_callee_save irq_enable ;
 4082   void (*safe_halt)(void) ;
 4083   void (*halt)(void) ;
 4084   void (*adjust_exception_frame)(void) ;
 4085};
 4086#line 139 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/e820.h"
 4087struct resource {
 4088   resource_size_t start ;
 4089   resource_size_t end ;
 4090   char const   *name ;
 4091   unsigned long flags ;
 4092   struct resource *parent ;
 4093   struct resource *sibling ;
 4094   struct resource *child ;
 4095};
 4096#line 290 "include/linux/timer.h"
 4097enum hrtimer_restart;
 4098#line 290
 4099enum hrtimer_restart;
 4100#line 301
 4101struct workqueue_struct;
 4102#line 301
 4103struct workqueue_struct;
 4104#line 23 "include/linux/utsname.h"
 4105struct new_utsname {
 4106   char sysname[65U] ;
 4107   char nodename[65U] ;
 4108   char release[65U] ;
 4109   char version[65U] ;
 4110   char machine[65U] ;
 4111   char domainname[65U] ;
 4112};
 4113#line 1060 "include/linux/sched.h"
 4114struct uts_namespace;
 4115#line 1060
 4116struct uts_namespace;
 4117#line 2698
 4118struct mnt_namespace;
 4119#line 2698
 4120struct mnt_namespace;
 4121#line 2699
 4122struct ipc_namespace;
 4123#line 2699
 4124struct ipc_namespace;
 4125#line 2700
 4126struct net;
 4127#line 2700
 4128struct net;
 4129#line 2700 "include/linux/sched.h"
 4130struct nsproxy {
 4131   atomic_t count ;
 4132   struct uts_namespace *uts_ns ;
 4133   struct ipc_namespace *ipc_ns ;
 4134   struct mnt_namespace *mnt_ns ;
 4135   struct pid_namespace *pid_ns ;
 4136   struct net *net_ns ;
 4137};
 4138#line 42 "include/linux/utsname.h"
 4139struct uts_namespace {
 4140   struct kref kref ;
 4141   struct new_utsname name ;
 4142   struct user_namespace *user_ns ;
 4143};
 4144#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 4145struct pdev_archdata {
 4146
 4147};
 4148#line 474 "include/linux/mod_devicetable.h"
 4149struct platform_device_id {
 4150   char name[20U] ;
 4151   kernel_ulong_t driver_data ;
 4152};
 4153#line 535
 4154struct mfd_cell;
 4155#line 535
 4156struct mfd_cell;
 4157#line 536 "include/linux/mod_devicetable.h"
 4158struct platform_device {
 4159   char const   *name ;
 4160   int id ;
 4161   struct device dev ;
 4162   u32 num_resources ;
 4163   struct resource *resource ;
 4164   struct platform_device_id  const  *id_entry ;
 4165   struct mfd_cell *mfd_cell ;
 4166   struct pdev_archdata archdata ;
 4167};
 4168#line 234 "include/linux/platform_device.h"
 4169struct usb_ctrlrequest {
 4170   __u8 bRequestType ;
 4171   __u8 bRequest ;
 4172   __le16 wValue ;
 4173   __le16 wIndex ;
 4174   __le16 wLength ;
 4175};
 4176#line 598 "include/linux/usb/hcd.h"
 4177struct usb_mon_operations {
 4178   void (*urb_submit)(struct usb_bus * , struct urb * ) ;
 4179   void (*urb_submit_error)(struct usb_bus * , struct urb * , int  ) ;
 4180   void (*urb_complete)(struct usb_bus * , struct urb * , int  ) ;
 4181};
 4182#line 98 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
 4183struct usb_busmap {
 4184   unsigned long busmap[1U] ;
 4185};
 4186#line 290 "include/linux/timer.h"
 4187enum hrtimer_restart;
 4188#line 290
 4189enum hrtimer_restart;
 4190#line 290
 4191enum hrtimer_restart;
 4192#line 290
 4193enum hrtimer_restart;
 4194#line 1427 "include/linux/usb.h"
 4195struct usb_sg_request {
 4196   int status ;
 4197   size_t bytes ;
 4198   spinlock_t lock ;
 4199   struct usb_device *dev ;
 4200   int pipe ;
 4201   int entries ;
 4202   struct urb **urbs ;
 4203   int count ;
 4204   struct completion complete ;
 4205};
 4206#line 18 "include/linux/nls.h"
 4207typedef u16 wchar_t;
 4208#line 35
 4209enum utf16_endian {
 4210    UTF16_HOST_ENDIAN = 0,
 4211    UTF16_LITTLE_ENDIAN = 1,
 4212    UTF16_BIG_ENDIAN = 2
 4213} ;
 4214#line 31 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
 4215struct api_context {
 4216   struct completion done ;
 4217   int status ;
 4218};
 4219#line 1877 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
 4220struct set_config_request {
 4221   struct usb_device *udev ;
 4222   int config ;
 4223   struct work_struct work ;
 4224   struct list_head node ;
 4225};
 4226#line 290 "include/linux/timer.h"
 4227enum hrtimer_restart;
 4228#line 290
 4229enum hrtimer_restart;
 4230#line 767 "include/linux/usb.h"
 4231struct usb_dynid {
 4232   struct list_head node ;
 4233   struct usb_device_id id ;
 4234};
 4235#line 290 "include/linux/timer.h"
 4236enum hrtimer_restart;
 4237#line 290
 4238enum hrtimer_restart;
 4239#line 290
 4240enum hrtimer_restart;
 4241#line 290
 4242enum hrtimer_restart;
 4243#line 905 "include/linux/usb.h"
 4244struct usb_class_driver {
 4245   char *name ;
 4246   char *(*devnode)(struct device * , mode_t * ) ;
 4247   struct file_operations  const  *fops ;
 4248   int minor_base ;
 4249};
 4250#line 69 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
 4251struct usb_class {
 4252   struct kref kref ;
 4253   struct class *class ;
 4254};
 4255#line 290 "include/linux/timer.h"
 4256enum hrtimer_restart;
 4257#line 290
 4258enum hrtimer_restart;
 4259#line 290
 4260enum hrtimer_restart;
 4261#line 290
 4262enum hrtimer_restart;
 4263#line 290
 4264enum hrtimer_restart;
 4265#line 290
 4266enum hrtimer_restart;
 4267#line 164 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 4268struct ep_device {
 4269   struct usb_endpoint_descriptor *desc ;
 4270   struct usb_device *udev ;
 4271   struct device dev ;
 4272};
 4273#line 290 "include/linux/timer.h"
 4274enum hrtimer_restart;
 4275#line 290
 4276enum hrtimer_restart;
 4277#line 229 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/elf.h"
 4278struct linux_binprm;
 4279#line 229
 4280struct linux_binprm;
 4281#line 387 "include/linux/signal.h"
 4282struct pollfd {
 4283   int fd ;
 4284   short events ;
 4285   short revents ;
 4286};
 4287#line 230 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
 4288struct __large_struct {
 4289   unsigned long buf[100U] ;
 4290};
 4291#line 34 "include/linux/poll.h"
 4292struct poll_table_struct {
 4293   void (*qproc)(struct file * , wait_queue_head_t * , struct poll_table_struct * ) ;
 4294   unsigned long key ;
 4295};
 4296#line 38 "include/linux/poll.h"
 4297typedef struct poll_table_struct poll_table;
 4298#line 1606 "include/linux/usb.h"
 4299struct usbdevfs_ctrltransfer {
 4300   __u8 bRequestType ;
 4301   __u8 bRequest ;
 4302   __u16 wValue ;
 4303   __u16 wIndex ;
 4304   __u16 wLength ;
 4305   __u32 timeout ;
 4306   void *data ;
 4307};
 4308#line 48 "include/linux/usbdevice_fs.h"
 4309struct usbdevfs_bulktransfer {
 4310   unsigned int ep ;
 4311   unsigned int len ;
 4312   unsigned int timeout ;
 4313   void *data ;
 4314};
 4315#line 55 "include/linux/usbdevice_fs.h"
 4316struct usbdevfs_setinterface {
 4317   unsigned int interface ;
 4318   unsigned int altsetting ;
 4319};
 4320#line 60 "include/linux/usbdevice_fs.h"
 4321struct usbdevfs_disconnectsignal {
 4322   unsigned int signr ;
 4323   void *context ;
 4324};
 4325#line 65 "include/linux/usbdevice_fs.h"
 4326struct usbdevfs_getdriver {
 4327   unsigned int interface ;
 4328   char driver[256U] ;
 4329};
 4330#line 72 "include/linux/usbdevice_fs.h"
 4331struct usbdevfs_connectinfo {
 4332   unsigned int devnum ;
 4333   unsigned char slow ;
 4334};
 4335#line 77 "include/linux/usbdevice_fs.h"
 4336struct usbdevfs_iso_packet_desc {
 4337   unsigned int length ;
 4338   unsigned int actual_length ;
 4339   unsigned int status ;
 4340};
 4341#line 95 "include/linux/usbdevice_fs.h"
 4342struct usbdevfs_urb {
 4343   unsigned char type ;
 4344   unsigned char endpoint ;
 4345   int status ;
 4346   unsigned int flags ;
 4347   void *buffer ;
 4348   int buffer_length ;
 4349   int actual_length ;
 4350   int start_frame ;
 4351   int number_of_packets ;
 4352   int error_count ;
 4353   unsigned int signr ;
 4354   void *usercontext ;
 4355   struct usbdevfs_iso_packet_desc iso_frame_desc[0U] ;
 4356};
 4357#line 112 "include/linux/usbdevice_fs.h"
 4358struct usbdevfs_ioctl {
 4359   int ifno ;
 4360   int ioctl_code ;
 4361   void *data ;
 4362};
 4363#line 31 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 4364typedef u32 compat_caddr_t;
 4365#line 36 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 4366typedef s32 compat_int_t;
 4367#line 39 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 4368typedef u32 compat_uint_t;
 4369#line 563 "include/linux/compat.h"
 4370struct usbdevfs_ctrltransfer32 {
 4371   u8 bRequestType ;
 4372   u8 bRequest ;
 4373   u16 wValue ;
 4374   u16 wIndex ;
 4375   u16 wLength ;
 4376   u32 timeout ;
 4377   compat_caddr_t data ;
 4378};
 4379#line 141 "include/linux/usbdevice_fs.h"
 4380struct usbdevfs_bulktransfer32 {
 4381   compat_uint_t ep ;
 4382   compat_uint_t len ;
 4383   compat_uint_t timeout ;
 4384   compat_caddr_t data ;
 4385};
 4386#line 148 "include/linux/usbdevice_fs.h"
 4387struct usbdevfs_disconnectsignal32 {
 4388   compat_int_t signr ;
 4389   compat_caddr_t context ;
 4390};
 4391#line 153 "include/linux/usbdevice_fs.h"
 4392struct usbdevfs_urb32 {
 4393   unsigned char type ;
 4394   unsigned char endpoint ;
 4395   compat_int_t status ;
 4396   compat_uint_t flags ;
 4397   compat_caddr_t buffer ;
 4398   compat_int_t buffer_length ;
 4399   compat_int_t actual_length ;
 4400   compat_int_t start_frame ;
 4401   compat_int_t number_of_packets ;
 4402   compat_int_t error_count ;
 4403   compat_uint_t signr ;
 4404   compat_caddr_t usercontext ;
 4405   struct usbdevfs_iso_packet_desc iso_frame_desc[0U] ;
 4406};
 4407#line 169 "include/linux/usbdevice_fs.h"
 4408struct usbdevfs_ioctl32 {
 4409   s32 ifno ;
 4410   s32 ioctl_code ;
 4411   compat_caddr_t data ;
 4412};
 4413#line 671 "include/linux/usb/hcd.h"
 4414struct cdev {
 4415   struct kobject kobj ;
 4416   struct module *owner ;
 4417   struct file_operations  const  *ops ;
 4418   struct list_head list ;
 4419   dev_t dev ;
 4420   unsigned int count ;
 4421};
 4422#line 327 "include/linux/fsnotify.h"
 4423struct linux_binprm {
 4424   char buf[128U] ;
 4425   struct vm_area_struct *vma ;
 4426   unsigned long vma_pages ;
 4427   struct mm_struct *mm ;
 4428   unsigned long p ;
 4429   unsigned char cred_prepared : 1 ;
 4430   unsigned char cap_effective : 1 ;
 4431   unsigned int recursion_depth ;
 4432   struct file *file ;
 4433   struct cred *cred ;
 4434   int unsafe ;
 4435   unsigned int per_clear ;
 4436   int argc ;
 4437   int envc ;
 4438   char const   *filename ;
 4439   char const   *interp ;
 4440   unsigned int interp_flags ;
 4441   unsigned int interp_data ;
 4442   unsigned long loader ;
 4443   unsigned long exec ;
 4444};
 4445#line 62 "include/linux/binfmts.h"
 4446struct coredump_params {
 4447   long signr ;
 4448   struct pt_regs *regs ;
 4449   struct file *file ;
 4450   unsigned long limit ;
 4451   unsigned long mm_flags ;
 4452};
 4453#line 80 "include/linux/binfmts.h"
 4454struct linux_binfmt {
 4455   struct list_head lh ;
 4456   struct module *module ;
 4457   int (*load_binary)(struct linux_binprm * , struct pt_regs * ) ;
 4458   int (*load_shlib)(struct file * ) ;
 4459   int (*core_dump)(struct coredump_params * ) ;
 4460   unsigned long min_coredump ;
 4461};
 4462#line 68 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
 4463struct dev_state {
 4464   struct list_head list ;
 4465   struct usb_device *dev ;
 4466   struct file *file ;
 4467   spinlock_t lock ;
 4468   struct list_head async_pending ;
 4469   struct list_head async_completed ;
 4470   wait_queue_head_t wait ;
 4471   unsigned int discsignr ;
 4472   struct pid *disc_pid ;
 4473   uid_t disc_uid ;
 4474   uid_t disc_euid ;
 4475   void *disccontext ;
 4476   unsigned long ifclaimed ;
 4477   u32 secid ;
 4478   u32 disabled_bulk_eps ;
 4479};
 4480#line 85 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
 4481struct async {
 4482   struct list_head asynclist ;
 4483   struct dev_state *ps ;
 4484   struct pid *pid ;
 4485   uid_t uid ;
 4486   uid_t euid ;
 4487   unsigned int signr ;
 4488   unsigned int ifnum ;
 4489   void *userbuffer ;
 4490   void *userurb ;
 4491   struct urb *urb ;
 4492   int status ;
 4493   u32 secid ;
 4494   u8 bulk_addr ;
 4495   u8 bulk_status ;
 4496};
 4497#line 105
 4498enum snoop_when {
 4499    SUBMIT = 0,
 4500    COMPLETE = 1
 4501} ;
 4502#line 60 "include/linux/notifier.h"
 4503struct blocking_notifier_head {
 4504   struct rw_semaphore rwsem ;
 4505   struct notifier_block *head ;
 4506};
 4507#line 290 "include/linux/timer.h"
 4508enum hrtimer_restart;
 4509#line 290
 4510enum hrtimer_restart;
 4511#line 290
 4512enum hrtimer_restart;
 4513#line 290
 4514enum hrtimer_restart;
 4515#line 290
 4516enum hrtimer_restart;
 4517#line 290
 4518enum hrtimer_restart;
 4519#line 290
 4520enum hrtimer_restart;
 4521#line 290
 4522enum hrtimer_restart;
 4523#line 118 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
 4524struct device_connect_event {
 4525   atomic_t count ;
 4526   wait_queue_head_t wait ;
 4527};
 4528#line 142 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
 4529struct class_info {
 4530   int class ;
 4531   char *class_name ;
 4532};
 4533#line 25 "include/linux/ioport.h"
 4534struct pci_dev;
 4535#line 25
 4536struct pci_dev;
 4537#line 290 "include/linux/timer.h"
 4538enum hrtimer_restart;
 4539#line 290
 4540enum hrtimer_restart;
 4541#line 175 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/topology.h"
 4542struct pci_bus;
 4543#line 175
 4544struct pci_bus;
 4545#line 13 "include/linux/mod_devicetable.h"
 4546struct pci_device_id {
 4547   __u32 vendor ;
 4548   __u32 device ;
 4549   __u32 subvendor ;
 4550   __u32 subdevice ;
 4551   __u32 class ;
 4552   __u32 class_mask ;
 4553   kernel_ulong_t driver_data ;
 4554};
 4555#line 17 "include/linux/irqreturn.h"
 4556struct hotplug_slot;
 4557#line 17
 4558struct hotplug_slot;
 4559#line 17 "include/linux/irqreturn.h"
 4560struct pci_slot {
 4561   struct pci_bus *bus ;
 4562   struct list_head list ;
 4563   struct hotplug_slot *hotplug ;
 4564   unsigned char number ;
 4565   struct kobject kobj ;
 4566};
 4567#line 117 "include/linux/pci.h"
 4568typedef int pci_power_t;
 4569#line 143 "include/linux/pci.h"
 4570typedef unsigned int pci_channel_state_t;
 4571#line 144
 4572enum pci_channel_state {
 4573    pci_channel_io_normal = 1,
 4574    pci_channel_io_frozen = 2,
 4575    pci_channel_io_perm_failure = 3
 4576} ;
 4577#line 169 "include/linux/pci.h"
 4578typedef unsigned short pci_dev_flags_t;
 4579#line 184 "include/linux/pci.h"
 4580typedef unsigned short pci_bus_flags_t;
 4581#line 227
 4582struct pcie_link_state;
 4583#line 227
 4584struct pcie_link_state;
 4585#line 228
 4586struct pci_vpd;
 4587#line 228
 4588struct pci_vpd;
 4589#line 229
 4590struct pci_sriov;
 4591#line 229
 4592struct pci_sriov;
 4593#line 230
 4594struct pci_ats;
 4595#line 230
 4596struct pci_ats;
 4597#line 231
 4598struct pci_driver;
 4599#line 231
 4600struct pci_driver;
 4601#line 231 "include/linux/pci.h"
 4602union __anonunion_ldv_14722_131 {
 4603   struct pci_sriov *sriov ;
 4604   struct pci_dev *physfn ;
 4605};
 4606#line 231 "include/linux/pci.h"
 4607struct pci_dev {
 4608   struct list_head bus_list ;
 4609   struct pci_bus *bus ;
 4610   struct pci_bus *subordinate ;
 4611   void *sysdata ;
 4612   struct proc_dir_entry *procent ;
 4613   struct pci_slot *slot ;
 4614   unsigned int devfn ;
 4615   unsigned short vendor ;
 4616   unsigned short device ;
 4617   unsigned short subsystem_vendor ;
 4618   unsigned short subsystem_device ;
 4619   unsigned int class ;
 4620   u8 revision ;
 4621   u8 hdr_type ;
 4622   u8 pcie_cap ;
 4623   u8 pcie_type ;
 4624   u8 rom_base_reg ;
 4625   u8 pin ;
 4626   struct pci_driver *driver ;
 4627   u64 dma_mask ;
 4628   struct device_dma_parameters dma_parms ;
 4629   pci_power_t current_state ;
 4630   int pm_cap ;
 4631   unsigned char pme_support : 5 ;
 4632   unsigned char pme_interrupt : 1 ;
 4633   unsigned char d1_support : 1 ;
 4634   unsigned char d2_support : 1 ;
 4635   unsigned char no_d1d2 : 1 ;
 4636   unsigned char mmio_always_on : 1 ;
 4637   unsigned char wakeup_prepared : 1 ;
 4638   unsigned int d3_delay ;
 4639   struct pcie_link_state *link_state ;
 4640   pci_channel_state_t error_state ;
 4641   struct device dev ;
 4642   int cfg_size ;
 4643   unsigned int irq ;
 4644   struct resource resource[18U] ;
 4645   resource_size_t fw_addr[18U] ;
 4646   unsigned char transparent : 1 ;
 4647   unsigned char multifunction : 1 ;
 4648   unsigned char is_added : 1 ;
 4649   unsigned char is_busmaster : 1 ;
 4650   unsigned char no_msi : 1 ;
 4651   unsigned char block_ucfg_access : 1 ;
 4652   unsigned char broken_parity_status : 1 ;
 4653   unsigned char irq_reroute_variant : 2 ;
 4654   unsigned char msi_enabled : 1 ;
 4655   unsigned char msix_enabled : 1 ;
 4656   unsigned char ari_enabled : 1 ;
 4657   unsigned char is_managed : 1 ;
 4658   unsigned char is_pcie : 1 ;
 4659   unsigned char needs_freset : 1 ;
 4660   unsigned char state_saved : 1 ;
 4661   unsigned char is_physfn : 1 ;
 4662   unsigned char is_virtfn : 1 ;
 4663   unsigned char reset_fn : 1 ;
 4664   unsigned char is_hotplug_bridge : 1 ;
 4665   unsigned char __aer_firmware_first_valid : 1 ;
 4666   unsigned char __aer_firmware_first : 1 ;
 4667   pci_dev_flags_t dev_flags ;
 4668   atomic_t enable_cnt ;
 4669   u32 saved_config_space[16U] ;
 4670   struct hlist_head saved_cap_space ;
 4671   struct bin_attribute *rom_attr ;
 4672   int rom_attr_enabled ;
 4673   struct bin_attribute *res_attr[18U] ;
 4674   struct bin_attribute *res_attr_wc[18U] ;
 4675   struct list_head msi_list ;
 4676   struct pci_vpd *vpd ;
 4677   union __anonunion_ldv_14722_131 ldv_14722 ;
 4678   struct pci_ats *ats ;
 4679};
 4680#line 406
 4681struct pci_ops;
 4682#line 406
 4683struct pci_ops;
 4684#line 406 "include/linux/pci.h"
 4685struct pci_bus {
 4686   struct list_head node ;
 4687   struct pci_bus *parent ;
 4688   struct list_head children ;
 4689   struct list_head devices ;
 4690   struct pci_dev *self ;
 4691   struct list_head slots ;
 4692   struct resource *resource[4U] ;
 4693   struct list_head resources ;
 4694   struct pci_ops *ops ;
 4695   void *sysdata ;
 4696   struct proc_dir_entry *procdir ;
 4697   unsigned char number ;
 4698   unsigned char primary ;
 4699   unsigned char secondary ;
 4700   unsigned char subordinate ;
 4701   unsigned char max_bus_speed ;
 4702   unsigned char cur_bus_speed ;
 4703   char name[48U] ;
 4704   unsigned short bridge_ctl ;
 4705   pci_bus_flags_t bus_flags ;
 4706   struct device *bridge ;
 4707   struct device dev ;
 4708   struct bin_attribute *legacy_io ;
 4709   struct bin_attribute *legacy_mem ;
 4710   unsigned char is_added : 1 ;
 4711};
 4712#line 458 "include/linux/pci.h"
 4713struct pci_ops {
 4714   int (*read)(struct pci_bus * , unsigned int  , int  , int  , u32 * ) ;
 4715   int (*write)(struct pci_bus * , unsigned int  , int  , int  , u32  ) ;
 4716};
 4717#line 493 "include/linux/pci.h"
 4718struct pci_dynids {
 4719   spinlock_t lock ;
 4720   struct list_head list ;
 4721};
 4722#line 506 "include/linux/pci.h"
 4723typedef unsigned int pci_ers_result_t;
 4724#line 515 "include/linux/pci.h"
 4725struct pci_error_handlers {
 4726   pci_ers_result_t (*error_detected)(struct pci_dev * , enum pci_channel_state  ) ;
 4727   pci_ers_result_t (*mmio_enabled)(struct pci_dev * ) ;
 4728   pci_ers_result_t (*link_reset)(struct pci_dev * ) ;
 4729   pci_ers_result_t (*slot_reset)(struct pci_dev * ) ;
 4730   void (*resume)(struct pci_dev * ) ;
 4731};
 4732#line 543 "include/linux/pci.h"
 4733struct pci_driver {
 4734   struct list_head node ;
 4735   char const   *name ;
 4736   struct pci_device_id  const  *id_table ;
 4737   int (*probe)(struct pci_dev * , struct pci_device_id  const  * ) ;
 4738   void (*remove)(struct pci_dev * ) ;
 4739   int (*suspend)(struct pci_dev * , pm_message_t  ) ;
 4740   int (*suspend_late)(struct pci_dev * , pm_message_t  ) ;
 4741   int (*resume_early)(struct pci_dev * ) ;
 4742   int (*resume)(struct pci_dev * ) ;
 4743   void (*shutdown)(struct pci_dev * ) ;
 4744   struct pci_error_handlers *err_handler ;
 4745   struct device_driver driver ;
 4746   struct pci_dynids dynids ;
 4747};
 4748#line 55 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
 4749enum companion_action {
 4750    SET_HS_COMPANION = 0,
 4751    CLEAR_HS_COMPANION = 1,
 4752    WAIT_FOR_COMPANIONS = 2
 4753} ;
 4754#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
 4755typedef unsigned long __kernel_nlink_t;
 4756#line 13 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
 4757typedef long __kernel_off_t;
 4758#line 27 "include/linux/types.h"
 4759typedef __kernel_nlink_t nlink_t;
 4760#line 28 "include/linux/types.h"
 4761typedef __kernel_off_t off_t;
 4762#line 145 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
 4763struct seq_operations;
 4764#line 145
 4765struct seq_operations;
 4766#line 290 "include/linux/timer.h"
 4767enum hrtimer_restart;
 4768#line 290
 4769enum hrtimer_restart;
 4770#line 2601 "include/linux/fs.h"
 4771struct mnt_pcp {
 4772   int mnt_count ;
 4773   int mnt_writers ;
 4774};
 4775#line 54 "include/linux/mount.h"
 4776struct vfsmount {
 4777   struct list_head mnt_hash ;
 4778   struct vfsmount *mnt_parent ;
 4779   struct dentry *mnt_mountpoint ;
 4780   struct dentry *mnt_root ;
 4781   struct super_block *mnt_sb ;
 4782   struct mnt_pcp *mnt_pcp ;
 4783   atomic_t mnt_longterm ;
 4784   struct list_head mnt_mounts ;
 4785   struct list_head mnt_child ;
 4786   int mnt_flags ;
 4787   __u32 mnt_fsnotify_mask ;
 4788   struct hlist_head mnt_fsnotify_marks ;
 4789   char const   *mnt_devname ;
 4790   struct list_head mnt_list ;
 4791   struct list_head mnt_expire ;
 4792   struct list_head mnt_share ;
 4793   struct list_head mnt_slave_list ;
 4794   struct list_head mnt_slave ;
 4795   struct vfsmount *mnt_master ;
 4796   struct mnt_namespace *mnt_ns ;
 4797   int mnt_id ;
 4798   int mnt_group_id ;
 4799   int mnt_expiry_mark ;
 4800   int mnt_pinned ;
 4801   int mnt_ghosts ;
 4802};
 4803#line 46 "include/linux/proc_fs.h"
 4804typedef int read_proc_t(char * , char ** , off_t  , int  , int * , void * );
 4805#line 48 "include/linux/proc_fs.h"
 4806typedef int write_proc_t(struct file * , char const   * , unsigned long  , void * );
 4807#line 49 "include/linux/proc_fs.h"
 4808struct proc_dir_entry {
 4809   unsigned int low_ino ;
 4810   unsigned int namelen ;
 4811   char const   *name ;
 4812   mode_t mode ;
 4813   nlink_t nlink ;
 4814   uid_t uid ;
 4815   gid_t gid ;
 4816   loff_t size ;
 4817   struct inode_operations  const  *proc_iops ;
 4818   struct file_operations  const  *proc_fops ;
 4819   struct proc_dir_entry *next ;
 4820   struct proc_dir_entry *parent ;
 4821   struct proc_dir_entry *subdir ;
 4822   void *data ;
 4823   read_proc_t *read_proc ;
 4824   write_proc_t *write_proc ;
 4825   atomic_t count ;
 4826   int pde_users ;
 4827   spinlock_t pde_unload_lock ;
 4828   struct completion *pde_unload_completion ;
 4829   struct list_head pde_openers ;
 4830};
 4831#line 1606 "include/linux/usb.h"
 4832struct open_intent {
 4833   int flags ;
 4834   int create_mode ;
 4835   struct file *file ;
 4836};
 4837#line 19 "include/linux/namei.h"
 4838union __anonunion_intent_164 {
 4839   struct open_intent open ;
 4840};
 4841#line 19 "include/linux/namei.h"
 4842struct nameidata {
 4843   struct path path ;
 4844   struct qstr last ;
 4845   struct path root ;
 4846   struct inode *inode ;
 4847   unsigned int flags ;
 4848   unsigned int seq ;
 4849   int last_type ;
 4850   unsigned int depth ;
 4851   char *saved_names[9U] ;
 4852   union __anonunion_intent_164 intent ;
 4853};
 4854#line 175 "include/linux/usbdevice_fs.h"
 4855struct match_token {
 4856   int token ;
 4857   char const   *pattern ;
 4858};
 4859#line 26 "include/linux/parser.h"
 4860struct __anonstruct_substring_t_181 {
 4861   char *from ;
 4862   char *to ;
 4863};
 4864#line 26 "include/linux/parser.h"
 4865typedef struct __anonstruct_substring_t_181 substring_t;
 4866#line 34 "include/linux/parser.h"
 4867struct seq_file {
 4868   char *buf ;
 4869   size_t size ;
 4870   size_t from ;
 4871   size_t count ;
 4872   loff_t index ;
 4873   loff_t read_pos ;
 4874   u64 version ;
 4875   struct mutex lock ;
 4876   struct seq_operations  const  *op ;
 4877   void *private ;
 4878};
 4879#line 28 "include/linux/seq_file.h"
 4880struct seq_operations {
 4881   void *(*start)(struct seq_file * , loff_t * ) ;
 4882   void (*stop)(struct seq_file * , void * ) ;
 4883   void *(*next)(struct seq_file * , void * , loff_t * ) ;
 4884   int (*show)(struct seq_file * , void * ) ;
 4885};
 4886#line 1 "<compiler builtins>"
 4887
 4888#line 1
 4889
 4890#line 1
 4891long __builtin_expect(long  , long  ) ;
 4892#line 24 "include/linux/list.h"
 4893__inline static void INIT_LIST_HEAD(struct list_head *list ) 
 4894{ 
 4895
 4896  {
 4897#line 26
 4898  list->next = list;
 4899#line 27
 4900  list->prev = list;
 4901#line 28
 4902  return;
 4903}
 4904}
 4905#line 101 "include/linux/printk.h"
 4906extern int printk(char const   *  , ...) ;
 4907#line 295 "include/linux/kernel.h"
 4908extern int snprintf(char * , size_t  , char const   *  , ...) ;
 4909#line 303
 4910extern char *kasprintf(gfp_t  , char const   *  , ...) ;
 4911#line 35 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
 4912__inline static void atomic_set(atomic_t *v , int i ) 
 4913{ 
 4914
 4915  {
 4916#line 37
 4917  v->counter = i;
 4918#line 38
 4919  return;
 4920}
 4921}
 4922#line 168 "include/linux/mutex.h"
 4923extern int mutex_trylock(struct mutex * ) ;
 4924#line 82 "include/linux/jiffies.h"
 4925extern unsigned long volatile   jiffies ;
 4926#line 830 "include/linux/rcupdate.h"
 4927extern void kfree(void const   * ) ;
 4928#line 215 "include/linux/kobject.h"
 4929extern int add_uevent_var(struct kobj_uevent_env * , char const   *  , ...) ;
 4930#line 99 "include/linux/module.h"
 4931extern struct module __this_module ;
 4932#line 3 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 4933int ldv_try_module_get(struct module *module ) ;
 4934#line 4
 4935void ldv_module_get(struct module *module ) ;
 4936#line 5
 4937void ldv_module_put(struct module *module ) ;
 4938#line 6
 4939unsigned int ldv_module_refcount(void) ;
 4940#line 7
 4941void ldv_module_put_and_exit(void) ;
 4942#line 221 "include/linux/slub_def.h"
 4943extern void *__kmalloc(size_t  , gfp_t  ) ;
 4944#line 255 "include/linux/slub_def.h"
 4945__inline static void *kmalloc(size_t size , gfp_t flags ) 
 4946{ void *tmp___2 ;
 4947
 4948  {
 4949  {
 4950#line 270
 4951  tmp___2 = __kmalloc(size, flags);
 4952  }
 4953#line 270
 4954  return (tmp___2);
 4955}
 4956}
 4957#line 318 "include/linux/slab.h"
 4958__inline static void *kzalloc(size_t size , gfp_t flags ) 
 4959{ void *tmp ;
 4960  unsigned int __cil_tmp4 ;
 4961
 4962  {
 4963  {
 4964#line 320
 4965  __cil_tmp4 = flags | 32768U;
 4966#line 320
 4967  tmp = kmalloc(size, __cil_tmp4);
 4968  }
 4969#line 320
 4970  return (tmp);
 4971}
 4972}
 4973#line 46 "include/linux/delay.h"
 4974extern void msleep(unsigned int  ) ;
 4975#line 111 "include/linux/device.h"
 4976extern struct device *bus_find_device(struct bus_type * , struct device * , void * ,
 4977                                      int (*)(struct device * , void * ) ) ;
 4978#line 617
 4979extern int dev_set_name(struct device * , char const   *  , ...) ;
 4980#line 621 "include/linux/device.h"
 4981__inline static int dev_to_node(struct device *dev ) 
 4982{ 
 4983
 4984  {
 4985#line 623
 4986  return (dev->numa_node);
 4987}
 4988}
 4989#line 625 "include/linux/device.h"
 4990__inline static void set_dev_node(struct device *dev , int node ) 
 4991{ 
 4992
 4993  {
 4994#line 627
 4995  dev->numa_node = node;
 4996#line 628
 4997  return;
 4998}
 4999}
 5000#line 676 "include/linux/device.h"
 5001__inline static int device_trylock(struct device *dev ) 
 5002{ int tmp ;
 5003  struct mutex *__cil_tmp3 ;
 5004
 5005  {
 5006  {
 5007#line 678
 5008  __cil_tmp3 = & dev->mutex;
 5009#line 678
 5010  tmp = mutex_trylock(__cil_tmp3);
 5011  }
 5012#line 678
 5013  return (tmp);
 5014}
 5015}
 5016#line 693
 5017extern void device_initialize(struct device * ) ;
 5018#line 764
 5019extern struct device *get_device(struct device * ) ;
 5020#line 765
 5021extern void put_device(struct device * ) ;
 5022#line 45 "include/linux/pm_runtime.h"
 5023extern void pm_runtime_set_autosuspend_delay(struct device * , int  ) ;
 5024#line 201 "include/linux/usb.h"
 5025struct usb_interface *usb_get_intf(struct usb_interface *intf ) ;
 5026#line 202
 5027void usb_put_intf(struct usb_interface *intf ) ;
 5028#line 295
 5029int __usb_get_extra_descriptor(char *buffer , unsigned int size , unsigned char type ,
 5030                               void **ptr ) ;
 5031#line 502
 5032struct usb_device *usb_get_dev(struct usb_device *dev ) ;
 5033#line 503
 5034void usb_put_dev(struct usb_device *dev ) ;
 5035#line 509
 5036int usb_lock_device_for_reset(struct usb_device *udev , struct usb_interface  const  *iface ) ;
 5037#line 563
 5038int usb_get_current_frame_number(struct usb_device *dev ) ;
 5039#line 601
 5040struct usb_interface *usb_find_interface(struct usb_driver *drv , int minor ) ;
 5041#line 603
 5042struct usb_interface *usb_ifnum_to_if(struct usb_device  const  *dev , unsigned int ifnum ) ;
 5043#line 605
 5044struct usb_host_interface *usb_altnum_to_altsetting(struct usb_interface  const  *intf ,
 5045                                                    unsigned int altnum ) ;
 5046#line 607
 5047struct usb_host_interface *usb_find_alt_setting(struct usb_host_config *config , unsigned int iface_num ,
 5048                                                unsigned int alt_num ) ;
 5049#line 904
 5050struct bus_type usb_bus_type ;
 5051#line 929
 5052int usb_register_driver(struct usb_driver *new_driver , struct module *owner , char const   *mod_name ) ;
 5053#line 931 "include/linux/usb.h"
 5054__inline static int usb_register(struct usb_driver *driver ) 
 5055{ int tmp ;
 5056
 5057  {
 5058  {
 5059#line 933
 5060  tmp = usb_register_driver(driver, & __this_module, "usbcore");
 5061  }
 5062#line 933
 5063  return (tmp);
 5064}
 5065}
 5066#line 935
 5067void usb_deregister(struct usb_driver *driver ) ;
 5068#line 937
 5069int usb_register_device_driver(struct usb_device_driver *new_udriver , struct module *owner ) ;
 5070#line 939
 5071void usb_deregister_device_driver(struct usb_device_driver *udriver ) ;
 5072#line 946
 5073int usb_disabled(void) ;
 5074#line 1377
 5075void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
 5076                         dma_addr_t *dma ) ;
 5077#line 1379
 5078void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) ;
 5079#line 1605 "include/linux/usb.h"
 5080struct dentry *usb_debug_root  ;
 5081#line 190 "include/linux/usb/hcd.h"
 5082__inline static struct usb_hcd *bus_to_hcd(struct usb_bus *bus ) 
 5083{ struct usb_bus  const  *__mptr ;
 5084
 5085  {
 5086#line 192
 5087  __mptr = (struct usb_bus  const  *)bus;
 5088#line 192
 5089  return ((struct usb_hcd *)__mptr);
 5090}
 5091}
 5092#line 372
 5093int usb_hcd_get_frame_number(struct usb_device *udev ) ;
 5094#line 379
 5095struct usb_hcd *usb_get_hcd(struct usb_hcd *hcd ) ;
 5096#line 380
 5097void usb_put_hcd(struct usb_hcd *hcd ) ;
 5098#line 406
 5099void *hcd_buffer_alloc(struct usb_bus *bus , size_t size , gfp_t mem_flags , dma_addr_t *dma ) ;
 5100#line 408
 5101void hcd_buffer_free(struct usb_bus *bus , size_t size , void *addr , dma_addr_t dma ) ;
 5102#line 427
 5103struct usb_device *usb_alloc_dev(struct usb_device *parent , struct usb_bus *bus ,
 5104                                 unsigned int port1 ) ;
 5105#line 433
 5106void usb_destroy_configuration(struct usb_device *dev ) ;
 5107#line 596
 5108int usbfs_init(void) ;
 5109#line 597
 5110void usbfs_cleanup(void) ;
 5111#line 5 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 5112int usb_create_sysfs_dev_files(struct usb_device *udev ) ;
 5113#line 6
 5114void usb_remove_sysfs_dev_files(struct usb_device *udev ) ;
 5115#line 7
 5116void usb_create_sysfs_intf_files(struct usb_interface *intf ) ;
 5117#line 8
 5118void usb_remove_sysfs_intf_files(struct usb_interface *intf ) ;
 5119#line 14
 5120void usb_enable_endpoint(struct usb_device *dev , struct usb_host_endpoint *ep , bool reset_ep ) ;
 5121#line 48
 5122int usb_hub_init(void) ;
 5123#line 49
 5124void usb_hub_cleanup(void) ;
 5125#line 50
 5126int usb_major_init(void) ;
 5127#line 51
 5128void usb_major_cleanup(void) ;
 5129#line 55
 5130int usb_suspend(struct device *dev , pm_message_t msg ) ;
 5131#line 56
 5132int usb_resume(struct device *dev , pm_message_t msg ) ;
 5133#line 80
 5134int usb_runtime_suspend(struct device *dev ) ;
 5135#line 81
 5136int usb_runtime_resume(struct device *dev ) ;
 5137#line 82
 5138int usb_runtime_idle(struct device *dev ) ;
 5139#line 100
 5140struct device_type usb_device_type ;
 5141#line 101
 5142struct device_type usb_if_device_type ;
 5143#line 103
 5144struct usb_device_driver usb_generic_driver ;
 5145#line 110 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 5146__inline static int is_usb_interface(struct device  const  *dev ) 
 5147{ struct device_type  const  *__cil_tmp2 ;
 5148  unsigned long __cil_tmp3 ;
 5149  struct device_type  const  *__cil_tmp4 ;
 5150  struct device_type  const  *__cil_tmp5 ;
 5151  unsigned long __cil_tmp6 ;
 5152
 5153  {
 5154  {
 5155#line 112
 5156  __cil_tmp2 = (struct device_type  const  *)(& usb_if_device_type);
 5157#line 112
 5158  __cil_tmp3 = (unsigned long )__cil_tmp2;
 5159#line 112
 5160  __cil_tmp4 = dev->type;
 5161#line 112
 5162  __cil_tmp5 = (struct device_type  const  *)__cil_tmp4;
 5163#line 112
 5164  __cil_tmp6 = (unsigned long )__cil_tmp5;
 5165#line 112
 5166  return (__cil_tmp6 == __cil_tmp3);
 5167  }
 5168}
 5169}
 5170#line 143
 5171char const   *usbcore_name ;
 5172#line 146
 5173struct attribute_group  const  *usb_device_groups[3U] ;
 5174#line 151
 5175struct usb_driver usbfs_driver ;
 5176#line 152
 5177struct file_operations  const  usbfs_devices_fops ;
 5178#line 156
 5179int usb_devio_init(void) ;
 5180#line 157
 5181void usb_devio_cleanup(void) ;
 5182#line 56 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5183char const   *usbcore_name  =    "usbcore";
 5184#line 58 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5185static int nousb  ;
 5186#line 61 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5187static int usb_autosuspend_delay  =    2;
 5188#line 80 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5189struct usb_host_interface *usb_find_alt_setting(struct usb_host_config *config , unsigned int iface_num ,
 5190                                                unsigned int alt_num ) 
 5191{ struct usb_interface_cache *intf_cache ;
 5192  int i ;
 5193  struct usb_interface_cache *__cil_tmp6 ;
 5194  __u8 __cil_tmp7 ;
 5195  unsigned int __cil_tmp8 ;
 5196  __u8 __cil_tmp9 ;
 5197  int __cil_tmp10 ;
 5198  struct usb_interface_cache *__cil_tmp11 ;
 5199  unsigned long __cil_tmp12 ;
 5200  unsigned long __cil_tmp13 ;
 5201  __u8 __cil_tmp14 ;
 5202  unsigned int __cil_tmp15 ;
 5203  unsigned long __cil_tmp16 ;
 5204  struct usb_host_interface (*__cil_tmp17)[0U] ;
 5205  struct usb_host_interface *__cil_tmp18 ;
 5206  unsigned int __cil_tmp19 ;
 5207  unsigned int __cil_tmp20 ;
 5208  __u8 __cil_tmp21 ;
 5209  int __cil_tmp22 ;
 5210
 5211  {
 5212#line 85
 5213  intf_cache = (struct usb_interface_cache *)0;
 5214#line 88
 5215  i = 0;
 5216#line 88
 5217  goto ldv_27443;
 5218  ldv_27442: ;
 5219  {
 5220#line 89
 5221  __cil_tmp6 = config->intf_cache[i];
 5222#line 89
 5223  __cil_tmp7 = __cil_tmp6->altsetting[0].desc.bInterfaceNumber;
 5224#line 89
 5225  __cil_tmp8 = (unsigned int )__cil_tmp7;
 5226#line 89
 5227  if (__cil_tmp8 == iface_num) {
 5228#line 91
 5229    intf_cache = config->intf_cache[i];
 5230#line 92
 5231    goto ldv_27441;
 5232  } else {
 5233
 5234  }
 5235  }
 5236#line 88
 5237  i = i + 1;
 5238  ldv_27443: ;
 5239  {
 5240#line 88
 5241  __cil_tmp9 = config->desc.bNumInterfaces;
 5242#line 88
 5243  __cil_tmp10 = (int )__cil_tmp9;
 5244#line 88
 5245  if (__cil_tmp10 > i) {
 5246#line 89
 5247    goto ldv_27442;
 5248  } else {
 5249#line 91
 5250    goto ldv_27441;
 5251  }
 5252  }
 5253  ldv_27441: ;
 5254  {
 5255#line 95
 5256  __cil_tmp11 = (struct usb_interface_cache *)0;
 5257#line 95
 5258  __cil_tmp12 = (unsigned long )__cil_tmp11;
 5259#line 95
 5260  __cil_tmp13 = (unsigned long )intf_cache;
 5261#line 95
 5262  if (__cil_tmp13 == __cil_tmp12) {
 5263#line 96
 5264    return ((struct usb_host_interface *)0);
 5265  } else {
 5266
 5267  }
 5268  }
 5269#line 97
 5270  i = 0;
 5271#line 97
 5272  goto ldv_27445;
 5273  ldv_27444: ;
 5274  {
 5275#line 98
 5276  __cil_tmp14 = intf_cache->altsetting[i].desc.bAlternateSetting;
 5277#line 98
 5278  __cil_tmp15 = (unsigned int )__cil_tmp14;
 5279#line 98
 5280  if (__cil_tmp15 == alt_num) {
 5281    {
 5282#line 99
 5283    __cil_tmp16 = (unsigned long )i;
 5284#line 99
 5285    __cil_tmp17 = & intf_cache->altsetting;
 5286#line 99
 5287    __cil_tmp18 = (struct usb_host_interface *)__cil_tmp17;
 5288#line 99
 5289    return (__cil_tmp18 + __cil_tmp16);
 5290    }
 5291  } else {
 5292
 5293  }
 5294  }
 5295#line 97
 5296  i = i + 1;
 5297  ldv_27445: ;
 5298  {
 5299#line 97
 5300  __cil_tmp19 = intf_cache->num_altsetting;
 5301#line 97
 5302  __cil_tmp20 = (unsigned int )i;
 5303#line 97
 5304  if (__cil_tmp20 < __cil_tmp19) {
 5305#line 98
 5306    goto ldv_27444;
 5307  } else {
 5308#line 100
 5309    goto ldv_27446;
 5310  }
 5311  }
 5312  ldv_27446: 
 5313  {
 5314#line 101
 5315  __cil_tmp21 = config->desc.bConfigurationValue;
 5316#line 101
 5317  __cil_tmp22 = (int )__cil_tmp21;
 5318#line 101
 5319  printk("<7>Did not find alt setting %u for intf %u, config %u\n", alt_num, iface_num,
 5320         __cil_tmp22);
 5321  }
 5322#line 104
 5323  return ((struct usb_host_interface *)0);
 5324}
 5325}
 5326#line 127 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5327struct usb_interface *usb_ifnum_to_if(struct usb_device  const  *dev , unsigned int ifnum ) 
 5328{ struct usb_host_config *config ;
 5329  int i ;
 5330  struct usb_host_config *__cil_tmp5 ;
 5331  struct usb_host_config *__cil_tmp6 ;
 5332  unsigned long __cil_tmp7 ;
 5333  unsigned long __cil_tmp8 ;
 5334  struct usb_interface *__cil_tmp9 ;
 5335  struct usb_host_interface *__cil_tmp10 ;
 5336  __u8 __cil_tmp11 ;
 5337  unsigned int __cil_tmp12 ;
 5338  __u8 __cil_tmp13 ;
 5339  int __cil_tmp14 ;
 5340
 5341  {
 5342#line 130
 5343  __cil_tmp5 = dev->actconfig;
 5344#line 130
 5345  config = (struct usb_host_config *)__cil_tmp5;
 5346  {
 5347#line 133
 5348  __cil_tmp6 = (struct usb_host_config *)0;
 5349#line 133
 5350  __cil_tmp7 = (unsigned long )__cil_tmp6;
 5351#line 133
 5352  __cil_tmp8 = (unsigned long )config;
 5353#line 133
 5354  if (__cil_tmp8 == __cil_tmp7) {
 5355#line 134
 5356    return ((struct usb_interface *)0);
 5357  } else {
 5358
 5359  }
 5360  }
 5361#line 135
 5362  i = 0;
 5363#line 135
 5364  goto ldv_27462;
 5365  ldv_27461: ;
 5366  {
 5367#line 136
 5368  __cil_tmp9 = config->interface[i];
 5369#line 136
 5370  __cil_tmp10 = __cil_tmp9->altsetting;
 5371#line 136
 5372  __cil_tmp11 = __cil_tmp10->desc.bInterfaceNumber;
 5373#line 136
 5374  __cil_tmp12 = (unsigned int )__cil_tmp11;
 5375#line 136
 5376  if (__cil_tmp12 == ifnum) {
 5377#line 138
 5378    return (config->interface[i]);
 5379  } else {
 5380
 5381  }
 5382  }
 5383#line 135
 5384  i = i + 1;
 5385  ldv_27462: ;
 5386  {
 5387#line 135
 5388  __cil_tmp13 = config->desc.bNumInterfaces;
 5389#line 135
 5390  __cil_tmp14 = (int )__cil_tmp13;
 5391#line 135
 5392  if (__cil_tmp14 > i) {
 5393#line 136
 5394    goto ldv_27461;
 5395  } else {
 5396#line 138
 5397    goto ldv_27463;
 5398  }
 5399  }
 5400  ldv_27463: ;
 5401#line 140
 5402  return ((struct usb_interface *)0);
 5403}
 5404}
 5405#line 161 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5406struct usb_host_interface *usb_altnum_to_altsetting(struct usb_interface  const  *intf ,
 5407                                                    unsigned int altnum ) 
 5408{ int i ;
 5409  unsigned long __cil_tmp4 ;
 5410  struct usb_host_interface *__cil_tmp5 ;
 5411  struct usb_host_interface *__cil_tmp6 ;
 5412  __u8 __cil_tmp7 ;
 5413  unsigned int __cil_tmp8 ;
 5414  unsigned long __cil_tmp9 ;
 5415  struct usb_host_interface *__cil_tmp10 ;
 5416  struct usb_host_interface *__cil_tmp11 ;
 5417  unsigned int __cil_tmp12 ;
 5418  unsigned int __cil_tmp13 ;
 5419  unsigned int __cil_tmp14 ;
 5420
 5421  {
 5422#line 167
 5423  i = 0;
 5424#line 167
 5425  goto ldv_27477;
 5426  ldv_27476: ;
 5427  {
 5428#line 168
 5429  __cil_tmp4 = (unsigned long )i;
 5430#line 168
 5431  __cil_tmp5 = intf->altsetting;
 5432#line 168
 5433  __cil_tmp6 = __cil_tmp5 + __cil_tmp4;
 5434#line 168
 5435  __cil_tmp7 = __cil_tmp6->desc.bAlternateSetting;
 5436#line 168
 5437  __cil_tmp8 = (unsigned int )__cil_tmp7;
 5438#line 168
 5439  if (__cil_tmp8 == altnum) {
 5440    {
 5441#line 169
 5442    __cil_tmp9 = (unsigned long )i;
 5443#line 169
 5444    __cil_tmp10 = intf->altsetting;
 5445#line 169
 5446    __cil_tmp11 = (struct usb_host_interface *)__cil_tmp10;
 5447#line 169
 5448    return (__cil_tmp11 + __cil_tmp9);
 5449    }
 5450  } else {
 5451
 5452  }
 5453  }
 5454#line 167
 5455  i = i + 1;
 5456  ldv_27477: ;
 5457  {
 5458#line 167
 5459  __cil_tmp12 = intf->num_altsetting;
 5460#line 167
 5461  __cil_tmp13 = (unsigned int )__cil_tmp12;
 5462#line 167
 5463  __cil_tmp14 = (unsigned int )i;
 5464#line 167
 5465  if (__cil_tmp14 < __cil_tmp13) {
 5466#line 168
 5467    goto ldv_27476;
 5468  } else {
 5469#line 170
 5470    goto ldv_27478;
 5471  }
 5472  }
 5473  ldv_27478: ;
 5474#line 171
 5475  return ((struct usb_host_interface *)0);
 5476}
 5477}
 5478#line 180 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5479static int __find_interface(struct device *dev , void *data ) 
 5480{ struct find_interface_arg *arg ;
 5481  struct usb_interface *intf ;
 5482  int tmp ;
 5483  struct device  const  *__mptr ;
 5484  struct device  const  *__cil_tmp7 ;
 5485  struct device_driver *__cil_tmp8 ;
 5486  unsigned long __cil_tmp9 ;
 5487  struct device_driver *__cil_tmp10 ;
 5488  unsigned long __cil_tmp11 ;
 5489  struct usb_interface *__cil_tmp12 ;
 5490  int __cil_tmp13 ;
 5491  int __cil_tmp14 ;
 5492
 5493  {
 5494  {
 5495#line 182
 5496  arg = (struct find_interface_arg *)data;
 5497#line 185
 5498  __cil_tmp7 = (struct device  const  *)dev;
 5499#line 185
 5500  tmp = is_usb_interface(__cil_tmp7);
 5501  }
 5502#line 185
 5503  if (tmp == 0) {
 5504#line 186
 5505    return (0);
 5506  } else {
 5507
 5508  }
 5509  {
 5510#line 188
 5511  __cil_tmp8 = arg->drv;
 5512#line 188
 5513  __cil_tmp9 = (unsigned long )__cil_tmp8;
 5514#line 188
 5515  __cil_tmp10 = dev->driver;
 5516#line 188
 5517  __cil_tmp11 = (unsigned long )__cil_tmp10;
 5518#line 188
 5519  if (__cil_tmp11 != __cil_tmp9) {
 5520#line 189
 5521    return (0);
 5522  } else {
 5523
 5524  }
 5525  }
 5526#line 190
 5527  __mptr = (struct device  const  *)dev;
 5528#line 190
 5529  __cil_tmp12 = (struct usb_interface *)__mptr;
 5530#line 190
 5531  intf = __cil_tmp12 + 1152921504606846928UL;
 5532  {
 5533#line 191
 5534  __cil_tmp13 = arg->minor;
 5535#line 191
 5536  __cil_tmp14 = intf->minor;
 5537#line 191
 5538  return (__cil_tmp14 == __cil_tmp13);
 5539  }
 5540}
 5541}
 5542#line 203 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5543struct usb_interface *usb_find_interface(struct usb_driver *drv , int minor ) 
 5544{ struct find_interface_arg argb ;
 5545  struct device *dev ;
 5546  struct device  const  *__mptr ;
 5547  struct usb_interface *tmp ;
 5548  struct device *__cil_tmp7 ;
 5549  void *__cil_tmp8 ;
 5550  struct device *__cil_tmp9 ;
 5551  unsigned long __cil_tmp10 ;
 5552  unsigned long __cil_tmp11 ;
 5553  struct usb_interface *__cil_tmp12 ;
 5554
 5555  {
 5556  {
 5557#line 208
 5558  argb.minor = minor;
 5559#line 209
 5560  argb.drv = & drv->drvwrap.driver;
 5561#line 211
 5562  __cil_tmp7 = (struct device *)0;
 5563#line 211
 5564  __cil_tmp8 = (void *)(& argb);
 5565#line 211
 5566  dev = bus_find_device(& usb_bus_type, __cil_tmp7, __cil_tmp8, & __find_interface);
 5567#line 214
 5568  put_device(dev);
 5569  }
 5570  {
 5571#line 216
 5572  __cil_tmp9 = (struct device *)0;
 5573#line 216
 5574  __cil_tmp10 = (unsigned long )__cil_tmp9;
 5575#line 216
 5576  __cil_tmp11 = (unsigned long )dev;
 5577#line 216
 5578  if (__cil_tmp11 != __cil_tmp10) {
 5579#line 216
 5580    __mptr = (struct device  const  *)dev;
 5581#line 216
 5582    __cil_tmp12 = (struct usb_interface *)__mptr;
 5583#line 216
 5584    tmp = __cil_tmp12 + 1152921504606846928UL;
 5585  } else {
 5586#line 216
 5587    tmp = (struct usb_interface *)0;
 5588  }
 5589  }
 5590#line 216
 5591  return (tmp);
 5592}
 5593}
 5594#line 227 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5595static void usb_release_dev(struct device *dev ) 
 5596{ struct usb_device *udev ;
 5597  struct usb_hcd *hcd ;
 5598  struct device  const  *__mptr ;
 5599  struct usb_device *__cil_tmp5 ;
 5600  struct usb_bus *__cil_tmp6 ;
 5601  char *__cil_tmp7 ;
 5602  void const   *__cil_tmp8 ;
 5603  char *__cil_tmp9 ;
 5604  void const   *__cil_tmp10 ;
 5605  char *__cil_tmp11 ;
 5606  void const   *__cil_tmp12 ;
 5607  void const   *__cil_tmp13 ;
 5608
 5609  {
 5610  {
 5611#line 232
 5612  __mptr = (struct device  const  *)dev;
 5613#line 232
 5614  __cil_tmp5 = (struct usb_device *)__mptr;
 5615#line 232
 5616  udev = __cil_tmp5 + 1152921504606846840UL;
 5617#line 233
 5618  __cil_tmp6 = udev->bus;
 5619#line 233
 5620  hcd = bus_to_hcd(__cil_tmp6);
 5621#line 235
 5622  usb_destroy_configuration(udev);
 5623#line 236
 5624  usb_put_hcd(hcd);
 5625#line 237
 5626  __cil_tmp7 = udev->product;
 5627#line 237
 5628  __cil_tmp8 = (void const   *)__cil_tmp7;
 5629#line 237
 5630  kfree(__cil_tmp8);
 5631#line 238
 5632  __cil_tmp9 = udev->manufacturer;
 5633#line 238
 5634  __cil_tmp10 = (void const   *)__cil_tmp9;
 5635#line 238
 5636  kfree(__cil_tmp10);
 5637#line 239
 5638  __cil_tmp11 = udev->serial;
 5639#line 239
 5640  __cil_tmp12 = (void const   *)__cil_tmp11;
 5641#line 239
 5642  kfree(__cil_tmp12);
 5643#line 240
 5644  __cil_tmp13 = (void const   *)udev;
 5645#line 240
 5646  kfree(__cil_tmp13);
 5647  }
 5648#line 241
 5649  return;
 5650}
 5651}
 5652#line 244 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5653static int usb_dev_uevent(struct device *dev , struct kobj_uevent_env *env ) 
 5654{ struct usb_device *usb_dev ;
 5655  struct device  const  *__mptr ;
 5656  int tmp ;
 5657  int tmp___0 ;
 5658  struct usb_device *__cil_tmp7 ;
 5659  struct usb_bus *__cil_tmp8 ;
 5660  int __cil_tmp9 ;
 5661  int __cil_tmp10 ;
 5662
 5663  {
 5664  {
 5665#line 248
 5666  __mptr = (struct device  const  *)dev;
 5667#line 248
 5668  __cil_tmp7 = (struct usb_device *)__mptr;
 5669#line 248
 5670  usb_dev = __cil_tmp7 + 1152921504606846840UL;
 5671#line 250
 5672  __cil_tmp8 = usb_dev->bus;
 5673#line 250
 5674  __cil_tmp9 = __cil_tmp8->busnum;
 5675#line 250
 5676  tmp = add_uevent_var(env, "BUSNUM=%03d", __cil_tmp9);
 5677  }
 5678#line 250
 5679  if (tmp != 0) {
 5680#line 251
 5681    return (-12);
 5682  } else {
 5683
 5684  }
 5685  {
 5686#line 253
 5687  __cil_tmp10 = usb_dev->devnum;
 5688#line 253
 5689  tmp___0 = add_uevent_var(env, "DEVNUM=%03d", __cil_tmp10);
 5690  }
 5691#line 253
 5692  if (tmp___0 != 0) {
 5693#line 254
 5694    return (-12);
 5695  } else {
 5696
 5697  }
 5698#line 256
 5699  return (0);
 5700}
 5701}
 5702#line 276 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5703static int usb_dev_prepare(struct device *dev ) 
 5704{ 
 5705
 5706  {
 5707#line 278
 5708  return (0);
 5709}
 5710}
 5711#line 281 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5712static void usb_dev_complete(struct device *dev ) 
 5713{ struct pm_message __constr_expr_0 ;
 5714
 5715  {
 5716  {
 5717#line 284
 5718  __constr_expr_0.event = 0;
 5719#line 284
 5720  usb_resume(dev, __constr_expr_0);
 5721  }
 5722#line 285
 5723  return;
 5724}
 5725}
 5726#line 287 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5727static int usb_dev_suspend(struct device *dev ) 
 5728{ struct pm_message __constr_expr_0 ;
 5729  int tmp ;
 5730
 5731  {
 5732  {
 5733#line 289
 5734  __constr_expr_0.event = 2;
 5735#line 289
 5736  tmp = usb_suspend(dev, __constr_expr_0);
 5737  }
 5738#line 289
 5739  return (tmp);
 5740}
 5741}
 5742#line 292 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5743static int usb_dev_resume(struct device *dev ) 
 5744{ struct pm_message __constr_expr_0 ;
 5745  int tmp ;
 5746
 5747  {
 5748  {
 5749#line 294
 5750  __constr_expr_0.event = 16;
 5751#line 294
 5752  tmp = usb_resume(dev, __constr_expr_0);
 5753  }
 5754#line 294
 5755  return (tmp);
 5756}
 5757}
 5758#line 297 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5759static int usb_dev_freeze(struct device *dev ) 
 5760{ struct pm_message __constr_expr_0 ;
 5761  int tmp ;
 5762
 5763  {
 5764  {
 5765#line 299
 5766  __constr_expr_0.event = 1;
 5767#line 299
 5768  tmp = usb_suspend(dev, __constr_expr_0);
 5769  }
 5770#line 299
 5771  return (tmp);
 5772}
 5773}
 5774#line 302 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5775static int usb_dev_thaw(struct device *dev ) 
 5776{ struct pm_message __constr_expr_0 ;
 5777  int tmp ;
 5778
 5779  {
 5780  {
 5781#line 304
 5782  __constr_expr_0.event = 32;
 5783#line 304
 5784  tmp = usb_resume(dev, __constr_expr_0);
 5785  }
 5786#line 304
 5787  return (tmp);
 5788}
 5789}
 5790#line 307 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5791static int usb_dev_poweroff(struct device *dev ) 
 5792{ struct pm_message __constr_expr_0 ;
 5793  int tmp ;
 5794
 5795  {
 5796  {
 5797#line 309
 5798  __constr_expr_0.event = 4;
 5799#line 309
 5800  tmp = usb_suspend(dev, __constr_expr_0);
 5801  }
 5802#line 309
 5803  return (tmp);
 5804}
 5805}
 5806#line 312 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5807static int usb_dev_restore(struct device *dev ) 
 5808{ struct pm_message __constr_expr_0 ;
 5809  int tmp ;
 5810
 5811  {
 5812  {
 5813#line 314
 5814  __constr_expr_0.event = 64;
 5815#line 314
 5816  tmp = usb_resume(dev, __constr_expr_0);
 5817  }
 5818#line 314
 5819  return (tmp);
 5820}
 5821}
 5822#line 317 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5823static struct dev_pm_ops  const  usb_device_pm_ops  = 
 5824#line 317
 5825     {& usb_dev_prepare, & usb_dev_complete, & usb_dev_suspend, & usb_dev_resume, & usb_dev_freeze,
 5826    & usb_dev_thaw, & usb_dev_poweroff, & usb_dev_restore, (int (*)(struct device * ))0,
 5827    (int (*)(struct device * ))0, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
 5828    (int (*)(struct device * ))0, (int (*)(struct device * ))0, & usb_runtime_suspend,
 5829    & usb_runtime_resume, & usb_runtime_idle};
 5830#line 336 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5831static char *usb_devnode(struct device *dev , mode_t *mode ) 
 5832{ struct usb_device *usb_dev ;
 5833  struct device  const  *__mptr ;
 5834  char *tmp ;
 5835  struct usb_device *__cil_tmp6 ;
 5836  struct usb_bus *__cil_tmp7 ;
 5837  int __cil_tmp8 ;
 5838  int __cil_tmp9 ;
 5839
 5840  {
 5841  {
 5842#line 340
 5843  __mptr = (struct device  const  *)dev;
 5844#line 340
 5845  __cil_tmp6 = (struct usb_device *)__mptr;
 5846#line 340
 5847  usb_dev = __cil_tmp6 + 1152921504606846840UL;
 5848#line 341
 5849  __cil_tmp7 = usb_dev->bus;
 5850#line 341
 5851  __cil_tmp8 = __cil_tmp7->busnum;
 5852#line 341
 5853  __cil_tmp9 = usb_dev->devnum;
 5854#line 341
 5855  tmp = kasprintf(208U, "bus/usb/%03d/%03d", __cil_tmp8, __cil_tmp9);
 5856  }
 5857#line 341
 5858  return (tmp);
 5859}
 5860}
 5861#line 345 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5862struct device_type usb_device_type  =    {"usb_device", (struct attribute_group  const  **)0, & usb_dev_uevent, & usb_devnode,
 5863    & usb_release_dev, & usb_device_pm_ops};
 5864#line 357 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5865static unsigned int usb_bus_is_wusb(struct usb_bus *bus ) 
 5866{ struct usb_hcd *hcd ;
 5867  struct usb_bus  const  *__mptr ;
 5868  unsigned char __cil_tmp4 ;
 5869
 5870  {
 5871#line 359
 5872  __mptr = (struct usb_bus  const  *)bus;
 5873#line 359
 5874  hcd = (struct usb_hcd *)__mptr;
 5875  {
 5876#line 360
 5877  __cil_tmp4 = hcd->wireless;
 5878#line 360
 5879  return ((unsigned int )__cil_tmp4);
 5880  }
 5881}
 5882}
 5883#line 376 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 5884struct usb_device *usb_alloc_dev(struct usb_device *parent , struct usb_bus *bus ,
 5885                                 unsigned int port1 ) 
 5886{ struct usb_device *dev ;
 5887  struct usb_hcd *usb_hcd ;
 5888  struct usb_bus  const  *__mptr ;
 5889  unsigned int root_hub ;
 5890  void *tmp ;
 5891  struct usb_hcd *tmp___0 ;
 5892  struct usb_hcd *tmp___1 ;
 5893  struct usb_hcd *tmp___2 ;
 5894  int tmp___3 ;
 5895  int tmp___4 ;
 5896  long tmp___5 ;
 5897  unsigned int tmp___6 ;
 5898  struct usb_device *__cil_tmp16 ;
 5899  unsigned long __cil_tmp17 ;
 5900  unsigned long __cil_tmp18 ;
 5901  struct usb_hcd *__cil_tmp19 ;
 5902  unsigned long __cil_tmp20 ;
 5903  unsigned long __cil_tmp21 ;
 5904  void const   *__cil_tmp22 ;
 5905  int (*__cil_tmp23)(struct usb_hcd * , struct usb_device * ) ;
 5906  unsigned long __cil_tmp24 ;
 5907  struct hc_driver  const  *__cil_tmp25 ;
 5908  int (*__cil_tmp26)(struct usb_hcd * , struct usb_device * ) ;
 5909  unsigned long __cil_tmp27 ;
 5910  struct usb_device *__cil_tmp28 ;
 5911  unsigned long __cil_tmp29 ;
 5912  unsigned long __cil_tmp30 ;
 5913  struct hc_driver  const  *__cil_tmp31 ;
 5914  int (*__cil_tmp32)(struct usb_hcd * , struct usb_device * ) ;
 5915  void const   *__cil_tmp33 ;
 5916  struct device *__cil_tmp34 ;
 5917  struct device *__cil_tmp35 ;
 5918  struct device *__cil_tmp36 ;
 5919  struct device *__cil_tmp37 ;
 5920  atomic_t *__cil_tmp38 ;
 5921  struct list_head *__cil_tmp39 ;
 5922  struct usb_host_endpoint *__cil_tmp40 ;
 5923  bool __cil_tmp41 ;
 5924  struct usb_device *__cil_tmp42 ;
 5925  unsigned long __cil_tmp43 ;
 5926  unsigned long __cil_tmp44 ;
 5927  int __cil_tmp45 ;
 5928  long __cil_tmp46 ;
 5929  struct device *__cil_tmp47 ;
 5930  int __cil_tmp48 ;
 5931  char __cil_tmp49 ;
 5932  signed char __cil_tmp50 ;
 5933  int __cil_tmp51 ;
 5934  char (*__cil_tmp52)[16U] ;
 5935  char *__cil_tmp53 ;
 5936  char (*__cil_tmp54)[16U] ;
 5937  char *__cil_tmp55 ;
 5938  char (*__cil_tmp56)[16U] ;
 5939  char *__cil_tmp57 ;
 5940  u8 __cil_tmp58 ;
 5941  int __cil_tmp59 ;
 5942  int __cil_tmp60 ;
 5943  int __cil_tmp61 ;
 5944  unsigned int __cil_tmp62 ;
 5945  u32 __cil_tmp63 ;
 5946  u8 __cil_tmp64 ;
 5947  int __cil_tmp65 ;
 5948  int __cil_tmp66 ;
 5949  int __cil_tmp67 ;
 5950  int __cil_tmp68 ;
 5951  u32 __cil_tmp69 ;
 5952  u32 __cil_tmp70 ;
 5953  struct device *__cil_tmp71 ;
 5954  int __cil_tmp72 ;
 5955  char (*__cil_tmp73)[16U] ;
 5956  char *__cil_tmp74 ;
 5957  struct list_head *__cil_tmp75 ;
 5958  struct device *__cil_tmp76 ;
 5959  int __cil_tmp77 ;
 5960  unsigned long volatile   __cil_tmp78 ;
 5961  int __cil_tmp79 ;
 5962
 5963  {
 5964  {
 5965#line 380
 5966  __mptr = (struct usb_bus  const  *)bus;
 5967#line 380
 5968  usb_hcd = (struct usb_hcd *)__mptr;
 5969#line 381
 5970  root_hub = 0U;
 5971#line 383
 5972  tmp = kzalloc(1928UL, 208U);
 5973#line 383
 5974  dev = (struct usb_device *)tmp;
 5975  }
 5976  {
 5977#line 384
 5978  __cil_tmp16 = (struct usb_device *)0;
 5979#line 384
 5980  __cil_tmp17 = (unsigned long )__cil_tmp16;
 5981#line 384
 5982  __cil_tmp18 = (unsigned long )dev;
 5983#line 384
 5984  if (__cil_tmp18 == __cil_tmp17) {
 5985#line 385
 5986    return ((struct usb_device *)0);
 5987  } else {
 5988
 5989  }
 5990  }
 5991  {
 5992#line 387
 5993  tmp___0 = bus_to_hcd(bus);
 5994#line 387
 5995  tmp___1 = usb_get_hcd(tmp___0);
 5996  }
 5997  {
 5998#line 387
 5999  __cil_tmp19 = (struct usb_hcd *)0;
 6000#line 387
 6001  __cil_tmp20 = (unsigned long )__cil_tmp19;
 6002#line 387
 6003  __cil_tmp21 = (unsigned long )tmp___1;
 6004#line 387
 6005  if (__cil_tmp21 == __cil_tmp20) {
 6006    {
 6007#line 388
 6008    __cil_tmp22 = (void const   *)dev;
 6009#line 388
 6010    kfree(__cil_tmp22);
 6011    }
 6012#line 389
 6013    return ((struct usb_device *)0);
 6014  } else {
 6015
 6016  }
 6017  }
 6018  {
 6019#line 392
 6020  __cil_tmp23 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
 6021#line 392
 6022  __cil_tmp24 = (unsigned long )__cil_tmp23;
 6023#line 392
 6024  __cil_tmp25 = usb_hcd->driver;
 6025#line 392
 6026  __cil_tmp26 = __cil_tmp25->alloc_dev;
 6027#line 392
 6028  __cil_tmp27 = (unsigned long )__cil_tmp26;
 6029#line 392
 6030  if (__cil_tmp27 != __cil_tmp24) {
 6031    {
 6032#line 392
 6033    __cil_tmp28 = (struct usb_device *)0;
 6034#line 392
 6035    __cil_tmp29 = (unsigned long )__cil_tmp28;
 6036#line 392
 6037    __cil_tmp30 = (unsigned long )parent;
 6038#line 392
 6039    if (__cil_tmp30 != __cil_tmp29) {
 6040      {
 6041#line 392
 6042      __cil_tmp31 = usb_hcd->driver;
 6043#line 392
 6044      __cil_tmp32 = __cil_tmp31->alloc_dev;
 6045#line 392
 6046      tmp___3 = (*__cil_tmp32)(usb_hcd, dev);
 6047      }
 6048#line 392
 6049      if (tmp___3 == 0) {
 6050        {
 6051#line 394
 6052        tmp___2 = bus_to_hcd(bus);
 6053#line 394
 6054        usb_put_hcd(tmp___2);
 6055#line 395
 6056        __cil_tmp33 = (void const   *)dev;
 6057#line 395
 6058        kfree(__cil_tmp33);
 6059        }
 6060#line 396
 6061        return ((struct usb_device *)0);
 6062      } else {
 6063
 6064      }
 6065    } else {
 6066
 6067    }
 6068    }
 6069  } else {
 6070
 6071  }
 6072  }
 6073  {
 6074#line 399
 6075  __cil_tmp34 = & dev->dev;
 6076#line 399
 6077  device_initialize(__cil_tmp34);
 6078#line 400
 6079  dev->dev.bus = & usb_bus_type;
 6080#line 401
 6081  dev->dev.type = (struct device_type  const  *)(& usb_device_type);
 6082#line 402
 6083  dev->dev.groups = (struct attribute_group  const  **)(& usb_device_groups);
 6084#line 403
 6085  __cil_tmp35 = bus->controller;
 6086#line 403
 6087  dev->dev.dma_mask = __cil_tmp35->dma_mask;
 6088#line 404
 6089  __cil_tmp36 = bus->controller;
 6090#line 404
 6091  tmp___4 = dev_to_node(__cil_tmp36);
 6092#line 404
 6093  __cil_tmp37 = & dev->dev;
 6094#line 404
 6095  set_dev_node(__cil_tmp37, tmp___4);
 6096#line 405
 6097  dev->state = (enum usb_device_state )1;
 6098#line 406
 6099  __cil_tmp38 = & dev->urbnum;
 6100#line 406
 6101  atomic_set(__cil_tmp38, 0);
 6102#line 408
 6103  __cil_tmp39 = & dev->ep0.urb_list;
 6104#line 408
 6105  INIT_LIST_HEAD(__cil_tmp39);
 6106#line 409
 6107  dev->ep0.desc.bLength = (__u8 )7U;
 6108#line 410
 6109  dev->ep0.desc.bDescriptorType = (__u8 )5U;
 6110#line 412
 6111  __cil_tmp40 = & dev->ep0;
 6112#line 412
 6113  __cil_tmp41 = (bool )0;
 6114#line 412
 6115  usb_enable_endpoint(dev, __cil_tmp40, __cil_tmp41);
 6116#line 413
 6117  dev->can_submit = (unsigned char)1;
 6118#line 423
 6119  __cil_tmp42 = (struct usb_device *)0;
 6120#line 423
 6121  __cil_tmp43 = (unsigned long )__cil_tmp42;
 6122#line 423
 6123  __cil_tmp44 = (unsigned long )parent;
 6124#line 423
 6125  __cil_tmp45 = __cil_tmp44 == __cil_tmp43;
 6126#line 423
 6127  __cil_tmp46 = (long )__cil_tmp45;
 6128#line 423
 6129  tmp___5 = __builtin_expect(__cil_tmp46, 0L);
 6130  }
 6131#line 423
 6132  if (tmp___5 != 0L) {
 6133    {
 6134#line 424
 6135    dev->devpath[0] = (char)48;
 6136#line 425
 6137    dev->route = 0U;
 6138#line 427
 6139    dev->dev.parent = bus->controller;
 6140#line 428
 6141    __cil_tmp47 = & dev->dev;
 6142#line 428
 6143    __cil_tmp48 = bus->busnum;
 6144#line 428
 6145    dev_set_name(__cil_tmp47, "usb%d", __cil_tmp48);
 6146#line 429
 6147    root_hub = 1U;
 6148    }
 6149  } else {
 6150    {
 6151#line 432
 6152    __cil_tmp49 = parent->devpath[0];
 6153#line 432
 6154    __cil_tmp50 = (signed char )__cil_tmp49;
 6155#line 432
 6156    __cil_tmp51 = (int )__cil_tmp50;
 6157#line 432
 6158    if (__cil_tmp51 == 48) {
 6159      {
 6160#line 433
 6161      __cil_tmp52 = & dev->devpath;
 6162#line 433
 6163      __cil_tmp53 = (char *)__cil_tmp52;
 6164#line 433
 6165      snprintf(__cil_tmp53, 16UL, "%d", port1);
 6166#line 436
 6167      dev->route = 0U;
 6168      }
 6169    } else {
 6170      {
 6171#line 438
 6172      __cil_tmp54 = & dev->devpath;
 6173#line 438
 6174      __cil_tmp55 = (char *)__cil_tmp54;
 6175#line 438
 6176      __cil_tmp56 = & parent->devpath;
 6177#line 438
 6178      __cil_tmp57 = (char *)__cil_tmp56;
 6179#line 438
 6180      snprintf(__cil_tmp55, 16UL, "%s.%d", __cil_tmp57, port1);
 6181      }
 6182#line 441
 6183      if (port1 <= 14U) {
 6184#line 442
 6185        __cil_tmp58 = parent->level;
 6186#line 442
 6187        __cil_tmp59 = (int )__cil_tmp58;
 6188#line 442
 6189        __cil_tmp60 = __cil_tmp59 + -1;
 6190#line 442
 6191        __cil_tmp61 = __cil_tmp60 * 4;
 6192#line 442
 6193        __cil_tmp62 = port1 << __cil_tmp61;
 6194#line 442
 6195        __cil_tmp63 = parent->route;
 6196#line 442
 6197        dev->route = __cil_tmp63 + __cil_tmp62;
 6198      } else {
 6199#line 445
 6200        __cil_tmp64 = parent->level;
 6201#line 445
 6202        __cil_tmp65 = (int )__cil_tmp64;
 6203#line 445
 6204        __cil_tmp66 = __cil_tmp65 + -1;
 6205#line 445
 6206        __cil_tmp67 = __cil_tmp66 * 4;
 6207#line 445
 6208        __cil_tmp68 = 15 << __cil_tmp67;
 6209#line 445
 6210        __cil_tmp69 = (u32 )__cil_tmp68;
 6211#line 445
 6212        __cil_tmp70 = parent->route;
 6213#line 445
 6214        dev->route = __cil_tmp70 + __cil_tmp69;
 6215      }
 6216    }
 6217    }
 6218    {
 6219#line 449
 6220    dev->dev.parent = & parent->dev;
 6221#line 450
 6222    __cil_tmp71 = & dev->dev;
 6223#line 450
 6224    __cil_tmp72 = bus->busnum;
 6225#line 450
 6226    __cil_tmp73 = & dev->devpath;
 6227#line 450
 6228    __cil_tmp74 = (char *)__cil_tmp73;
 6229#line 450
 6230    dev_set_name(__cil_tmp71, "%d-%s", __cil_tmp72, __cil_tmp74);
 6231    }
 6232  }
 6233  {
 6234#line 455
 6235  dev->portnum = (u8 )port1;
 6236#line 456
 6237  dev->bus = bus;
 6238#line 457
 6239  dev->parent = parent;
 6240#line 458
 6241  __cil_tmp75 = & dev->filelist;
 6242#line 458
 6243  INIT_LIST_HEAD(__cil_tmp75);
 6244#line 461
 6245  __cil_tmp76 = & dev->dev;
 6246#line 461
 6247  __cil_tmp77 = usb_autosuspend_delay * 1000;
 6248#line 461
 6249  pm_runtime_set_autosuspend_delay(__cil_tmp76, __cil_tmp77);
 6250#line 463
 6251  dev->connect_time = (unsigned long )jiffies;
 6252#line 464
 6253  __cil_tmp78 = - jiffies;
 6254#line 464
 6255  dev->active_duration = (unsigned long )__cil_tmp78;
 6256  }
 6257#line 466
 6258  if (root_hub != 0U) {
 6259#line 467
 6260    dev->authorized = (unsigned char)1;
 6261  } else {
 6262    {
 6263#line 469
 6264    dev->authorized = usb_hcd->authorized_default;
 6265#line 470
 6266    tmp___6 = usb_bus_is_wusb(bus);
 6267#line 470
 6268    __cil_tmp79 = tmp___6 != 0U;
 6269#line 470
 6270    dev->wusb = (unsigned char )__cil_tmp79;
 6271    }
 6272  }
 6273#line 472
 6274  return (dev);
 6275}
 6276}
 6277#line 487 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6278struct usb_device *usb_get_dev(struct usb_device *dev ) 
 6279{ struct usb_device *__cil_tmp2 ;
 6280  unsigned long __cil_tmp3 ;
 6281  unsigned long __cil_tmp4 ;
 6282  struct device *__cil_tmp5 ;
 6283
 6284  {
 6285  {
 6286#line 489
 6287  __cil_tmp2 = (struct usb_device *)0;
 6288#line 489
 6289  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6290#line 489
 6291  __cil_tmp4 = (unsigned long )dev;
 6292#line 489
 6293  if (__cil_tmp4 != __cil_tmp3) {
 6294    {
 6295#line 490
 6296    __cil_tmp5 = & dev->dev;
 6297#line 490
 6298    get_device(__cil_tmp5);
 6299    }
 6300  } else {
 6301
 6302  }
 6303  }
 6304#line 491
 6305  return (dev);
 6306}
 6307}
 6308#line 502 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6309void usb_put_dev(struct usb_device *dev ) 
 6310{ struct usb_device *__cil_tmp2 ;
 6311  unsigned long __cil_tmp3 ;
 6312  unsigned long __cil_tmp4 ;
 6313  struct device *__cil_tmp5 ;
 6314
 6315  {
 6316  {
 6317#line 504
 6318  __cil_tmp2 = (struct usb_device *)0;
 6319#line 504
 6320  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6321#line 504
 6322  __cil_tmp4 = (unsigned long )dev;
 6323#line 504
 6324  if (__cil_tmp4 != __cil_tmp3) {
 6325    {
 6326#line 505
 6327    __cil_tmp5 = & dev->dev;
 6328#line 505
 6329    put_device(__cil_tmp5);
 6330    }
 6331  } else {
 6332
 6333  }
 6334  }
 6335#line 506
 6336  return;
 6337}
 6338}
 6339#line 522 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6340struct usb_interface *usb_get_intf(struct usb_interface *intf ) 
 6341{ struct usb_interface *__cil_tmp2 ;
 6342  unsigned long __cil_tmp3 ;
 6343  unsigned long __cil_tmp4 ;
 6344  struct device *__cil_tmp5 ;
 6345
 6346  {
 6347  {
 6348#line 524
 6349  __cil_tmp2 = (struct usb_interface *)0;
 6350#line 524
 6351  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6352#line 524
 6353  __cil_tmp4 = (unsigned long )intf;
 6354#line 524
 6355  if (__cil_tmp4 != __cil_tmp3) {
 6356    {
 6357#line 525
 6358    __cil_tmp5 = & intf->dev;
 6359#line 525
 6360    get_device(__cil_tmp5);
 6361    }
 6362  } else {
 6363
 6364  }
 6365  }
 6366#line 526
 6367  return (intf);
 6368}
 6369}
 6370#line 538 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6371void usb_put_intf(struct usb_interface *intf ) 
 6372{ struct usb_interface *__cil_tmp2 ;
 6373  unsigned long __cil_tmp3 ;
 6374  unsigned long __cil_tmp4 ;
 6375  struct device *__cil_tmp5 ;
 6376
 6377  {
 6378  {
 6379#line 540
 6380  __cil_tmp2 = (struct usb_interface *)0;
 6381#line 540
 6382  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6383#line 540
 6384  __cil_tmp4 = (unsigned long )intf;
 6385#line 540
 6386  if (__cil_tmp4 != __cil_tmp3) {
 6387    {
 6388#line 541
 6389    __cil_tmp5 = & intf->dev;
 6390#line 541
 6391    put_device(__cil_tmp5);
 6392    }
 6393  } else {
 6394
 6395  }
 6396  }
 6397#line 542
 6398  return;
 6399}
 6400}
 6401#line 575 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6402int usb_lock_device_for_reset(struct usb_device *udev , struct usb_interface  const  *iface ) 
 6403{ unsigned long jiffies_expire ;
 6404  int tmp ;
 6405  unsigned long __cil_tmp5 ;
 6406  enum usb_device_state __cil_tmp6 ;
 6407  unsigned int __cil_tmp7 ;
 6408  enum usb_device_state __cil_tmp8 ;
 6409  unsigned int __cil_tmp9 ;
 6410  struct usb_interface  const  *__cil_tmp10 ;
 6411  unsigned long __cil_tmp11 ;
 6412  unsigned long __cil_tmp12 ;
 6413  enum usb_interface_condition __cil_tmp13 ;
 6414  unsigned int __cil_tmp14 ;
 6415  enum usb_interface_condition __cil_tmp15 ;
 6416  unsigned int __cil_tmp16 ;
 6417  long __cil_tmp17 ;
 6418  long __cil_tmp18 ;
 6419  long __cil_tmp19 ;
 6420  enum usb_device_state __cil_tmp20 ;
 6421  unsigned int __cil_tmp21 ;
 6422  enum usb_device_state __cil_tmp22 ;
 6423  unsigned int __cil_tmp23 ;
 6424  struct usb_interface  const  *__cil_tmp24 ;
 6425  unsigned long __cil_tmp25 ;
 6426  unsigned long __cil_tmp26 ;
 6427  enum usb_interface_condition __cil_tmp27 ;
 6428  unsigned int __cil_tmp28 ;
 6429  enum usb_interface_condition __cil_tmp29 ;
 6430  unsigned int __cil_tmp30 ;
 6431  struct device *__cil_tmp31 ;
 6432
 6433  {
 6434#line 578
 6435  __cil_tmp5 = (unsigned long )jiffies;
 6436#line 578
 6437  jiffies_expire = __cil_tmp5 + 250UL;
 6438  {
 6439#line 580
 6440  __cil_tmp6 = udev->state;
 6441#line 580
 6442  __cil_tmp7 = (unsigned int )__cil_tmp6;
 6443#line 580
 6444  if (__cil_tmp7 == 0U) {
 6445#line 581
 6446    return (-19);
 6447  } else {
 6448
 6449  }
 6450  }
 6451  {
 6452#line 582
 6453  __cil_tmp8 = udev->state;
 6454#line 582
 6455  __cil_tmp9 = (unsigned int )__cil_tmp8;
 6456#line 582
 6457  if (__cil_tmp9 == 8U) {
 6458#line 583
 6459    return (-113);
 6460  } else {
 6461
 6462  }
 6463  }
 6464  {
 6465#line 584
 6466  __cil_tmp10 = (struct usb_interface  const  *)0;
 6467#line 584
 6468  __cil_tmp11 = (unsigned long )__cil_tmp10;
 6469#line 584
 6470  __cil_tmp12 = (unsigned long )iface;
 6471#line 584
 6472  if (__cil_tmp12 != __cil_tmp11) {
 6473    {
 6474#line 584
 6475    __cil_tmp13 = iface->condition;
 6476#line 584
 6477    __cil_tmp14 = (unsigned int )__cil_tmp13;
 6478#line 584
 6479    if (__cil_tmp14 == 3U) {
 6480#line 586
 6481      return (-4);
 6482    } else {
 6483      {
 6484#line 584
 6485      __cil_tmp15 = iface->condition;
 6486#line 584
 6487      __cil_tmp16 = (unsigned int )__cil_tmp15;
 6488#line 584
 6489      if (__cil_tmp16 == 0U) {
 6490#line 586
 6491        return (-4);
 6492      } else {
 6493
 6494      }
 6495      }
 6496    }
 6497    }
 6498  } else {
 6499
 6500  }
 6501  }
 6502#line 588
 6503  goto ldv_27630;
 6504  ldv_27629: ;
 6505  {
 6506#line 592
 6507  __cil_tmp17 = (long )jiffies;
 6508#line 592
 6509  __cil_tmp18 = (long )jiffies_expire;
 6510#line 592
 6511  __cil_tmp19 = __cil_tmp18 - __cil_tmp17;
 6512#line 592
 6513  if (__cil_tmp19 < 0L) {
 6514#line 593
 6515    return (-16);
 6516  } else {
 6517
 6518  }
 6519  }
 6520  {
 6521#line 595
 6522  msleep(15U);
 6523  }
 6524  {
 6525#line 596
 6526  __cil_tmp20 = udev->state;
 6527#line 596
 6528  __cil_tmp21 = (unsigned int )__cil_tmp20;
 6529#line 596
 6530  if (__cil_tmp21 == 0U) {
 6531#line 597
 6532    return (-19);
 6533  } else {
 6534
 6535  }
 6536  }
 6537  {
 6538#line 598
 6539  __cil_tmp22 = udev->state;
 6540#line 598
 6541  __cil_tmp23 = (unsigned int )__cil_tmp22;
 6542#line 598
 6543  if (__cil_tmp23 == 8U) {
 6544#line 599
 6545    return (-113);
 6546  } else {
 6547
 6548  }
 6549  }
 6550  {
 6551#line 600
 6552  __cil_tmp24 = (struct usb_interface  const  *)0;
 6553#line 600
 6554  __cil_tmp25 = (unsigned long )__cil_tmp24;
 6555#line 600
 6556  __cil_tmp26 = (unsigned long )iface;
 6557#line 600
 6558  if (__cil_tmp26 != __cil_tmp25) {
 6559    {
 6560#line 600
 6561    __cil_tmp27 = iface->condition;
 6562#line 600
 6563    __cil_tmp28 = (unsigned int )__cil_tmp27;
 6564#line 600
 6565    if (__cil_tmp28 == 3U) {
 6566#line 602
 6567      return (-4);
 6568    } else {
 6569      {
 6570#line 600
 6571      __cil_tmp29 = iface->condition;
 6572#line 600
 6573      __cil_tmp30 = (unsigned int )__cil_tmp29;
 6574#line 600
 6575      if (__cil_tmp30 == 0U) {
 6576#line 602
 6577        return (-4);
 6578      } else {
 6579
 6580      }
 6581      }
 6582    }
 6583    }
 6584  } else {
 6585
 6586  }
 6587  }
 6588  ldv_27630: 
 6589  {
 6590#line 588
 6591  __cil_tmp31 = & udev->dev;
 6592#line 588
 6593  tmp = device_trylock(__cil_tmp31);
 6594  }
 6595#line 588
 6596  if (tmp == 0) {
 6597#line 589
 6598    goto ldv_27629;
 6599  } else {
 6600#line 591
 6601    goto ldv_27631;
 6602  }
 6603  ldv_27631: ;
 6604#line 604
 6605  return (0);
 6606}
 6607}
 6608#line 621 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6609int usb_get_current_frame_number(struct usb_device *dev ) 
 6610{ int tmp ;
 6611
 6612  {
 6613  {
 6614#line 623
 6615  tmp = usb_hcd_get_frame_number(dev);
 6616  }
 6617#line 623
 6618  return (tmp);
 6619}
 6620}
 6621#line 633 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6622int __usb_get_extra_descriptor(char *buffer , unsigned int size , unsigned char type ,
 6623                               void **ptr ) 
 6624{ struct usb_descriptor_header *header ;
 6625  __u8 __cil_tmp6 ;
 6626  unsigned int __cil_tmp7 ;
 6627  __u8 __cil_tmp8 ;
 6628  int __cil_tmp9 ;
 6629  __u8 __cil_tmp10 ;
 6630  int __cil_tmp11 ;
 6631  int __cil_tmp12 ;
 6632  __u8 __cil_tmp13 ;
 6633  int __cil_tmp14 ;
 6634  __u8 __cil_tmp15 ;
 6635  unsigned long __cil_tmp16 ;
 6636  __u8 __cil_tmp17 ;
 6637  unsigned int __cil_tmp18 ;
 6638
 6639  {
 6640#line 638
 6641  goto ldv_27656;
 6642  ldv_27655: 
 6643#line 639
 6644  header = (struct usb_descriptor_header *)buffer;
 6645  {
 6646#line 641
 6647  __cil_tmp6 = header->bLength;
 6648#line 641
 6649  __cil_tmp7 = (unsigned int )__cil_tmp6;
 6650#line 641
 6651  if (__cil_tmp7 <= 1U) {
 6652    {
 6653#line 642
 6654    __cil_tmp8 = header->bDescriptorType;
 6655#line 642
 6656    __cil_tmp9 = (int )__cil_tmp8;
 6657#line 642
 6658    __cil_tmp10 = header->bLength;
 6659#line 642
 6660    __cil_tmp11 = (int )__cil_tmp10;
 6661#line 642
 6662    printk("<3>%s: bogus descriptor, type %d length %d\n", usbcore_name, __cil_tmp9,
 6663           __cil_tmp11);
 6664    }
 6665#line 647
 6666    return (-1);
 6667  } else {
 6668
 6669  }
 6670  }
 6671  {
 6672#line 650
 6673  __cil_tmp12 = (int )type;
 6674#line 650
 6675  __cil_tmp13 = header->bDescriptorType;
 6676#line 650
 6677  __cil_tmp14 = (int )__cil_tmp13;
 6678#line 650
 6679  if (__cil_tmp14 == __cil_tmp12) {
 6680#line 651
 6681    *ptr = (void *)header;
 6682#line 652
 6683    return (0);
 6684  } else {
 6685
 6686  }
 6687  }
 6688#line 655
 6689  __cil_tmp15 = header->bLength;
 6690#line 655
 6691  __cil_tmp16 = (unsigned long )__cil_tmp15;
 6692#line 655
 6693  buffer = buffer + __cil_tmp16;
 6694#line 656
 6695  __cil_tmp17 = header->bLength;
 6696#line 656
 6697  __cil_tmp18 = (unsigned int )__cil_tmp17;
 6698#line 656
 6699  size = size - __cil_tmp18;
 6700  ldv_27656: ;
 6701#line 638
 6702  if (size > 1U) {
 6703#line 639
 6704    goto ldv_27655;
 6705  } else {
 6706#line 641
 6707    goto ldv_27657;
 6708  }
 6709  ldv_27657: ;
 6710#line 658
 6711  return (-1);
 6712}
 6713}
 6714#line 684 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6715void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
 6716                         dma_addr_t *dma ) 
 6717{ void *tmp ;
 6718  struct usb_device *__cil_tmp6 ;
 6719  unsigned long __cil_tmp7 ;
 6720  unsigned long __cil_tmp8 ;
 6721  struct usb_bus *__cil_tmp9 ;
 6722  unsigned long __cil_tmp10 ;
 6723  struct usb_bus *__cil_tmp11 ;
 6724  unsigned long __cil_tmp12 ;
 6725  struct usb_bus *__cil_tmp13 ;
 6726
 6727  {
 6728  {
 6729#line 687
 6730  __cil_tmp6 = (struct usb_device *)0;
 6731#line 687
 6732  __cil_tmp7 = (unsigned long )__cil_tmp6;
 6733#line 687
 6734  __cil_tmp8 = (unsigned long )dev;
 6735#line 687
 6736  if (__cil_tmp8 == __cil_tmp7) {
 6737#line 688
 6738    return ((void *)0);
 6739  } else {
 6740    {
 6741#line 687
 6742    __cil_tmp9 = (struct usb_bus *)0;
 6743#line 687
 6744    __cil_tmp10 = (unsigned long )__cil_tmp9;
 6745#line 687
 6746    __cil_tmp11 = dev->bus;
 6747#line 687
 6748    __cil_tmp12 = (unsigned long )__cil_tmp11;
 6749#line 687
 6750    if (__cil_tmp12 == __cil_tmp10) {
 6751#line 688
 6752      return ((void *)0);
 6753    } else {
 6754
 6755    }
 6756    }
 6757  }
 6758  }
 6759  {
 6760#line 689
 6761  __cil_tmp13 = dev->bus;
 6762#line 689
 6763  tmp = hcd_buffer_alloc(__cil_tmp13, size, mem_flags, dma);
 6764  }
 6765#line 689
 6766  return (tmp);
 6767}
 6768}
 6769#line 704 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6770void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) 
 6771{ struct usb_device *__cil_tmp5 ;
 6772  unsigned long __cil_tmp6 ;
 6773  unsigned long __cil_tmp7 ;
 6774  struct usb_bus *__cil_tmp8 ;
 6775  unsigned long __cil_tmp9 ;
 6776  struct usb_bus *__cil_tmp10 ;
 6777  unsigned long __cil_tmp11 ;
 6778  void *__cil_tmp12 ;
 6779  unsigned long __cil_tmp13 ;
 6780  unsigned long __cil_tmp14 ;
 6781  struct usb_bus *__cil_tmp15 ;
 6782
 6783  {
 6784  {
 6785#line 707
 6786  __cil_tmp5 = (struct usb_device *)0;
 6787#line 707
 6788  __cil_tmp6 = (unsigned long )__cil_tmp5;
 6789#line 707
 6790  __cil_tmp7 = (unsigned long )dev;
 6791#line 707
 6792  if (__cil_tmp7 == __cil_tmp6) {
 6793#line 708
 6794    return;
 6795  } else {
 6796    {
 6797#line 707
 6798    __cil_tmp8 = (struct usb_bus *)0;
 6799#line 707
 6800    __cil_tmp9 = (unsigned long )__cil_tmp8;
 6801#line 707
 6802    __cil_tmp10 = dev->bus;
 6803#line 707
 6804    __cil_tmp11 = (unsigned long )__cil_tmp10;
 6805#line 707
 6806    if (__cil_tmp11 == __cil_tmp9) {
 6807#line 708
 6808      return;
 6809    } else {
 6810
 6811    }
 6812    }
 6813  }
 6814  }
 6815  {
 6816#line 709
 6817  __cil_tmp12 = (void *)0;
 6818#line 709
 6819  __cil_tmp13 = (unsigned long )__cil_tmp12;
 6820#line 709
 6821  __cil_tmp14 = (unsigned long )addr;
 6822#line 709
 6823  if (__cil_tmp14 == __cil_tmp13) {
 6824#line 710
 6825    return;
 6826  } else {
 6827
 6828  }
 6829  }
 6830  {
 6831#line 711
 6832  __cil_tmp15 = dev->bus;
 6833#line 711
 6834  hcd_buffer_free(__cil_tmp15, size, addr, dma);
 6835  }
 6836#line 712
 6837  return;
 6838}
 6839}
 6840#line 945 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6841int usb_disabled(void) 
 6842{ 
 6843
 6844  {
 6845#line 947
 6846  return (nousb);
 6847}
 6848}
 6849#line 1109
 6850void ldv_check_final_state(void) ;
 6851#line 1115
 6852extern void ldv_initialize(void) ;
 6853#line 1118
 6854extern int nondet_int(void) ;
 6855#line 1121 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6856int LDV_IN_INTERRUPT  ;
 6857#line 5 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/kernel-rules/files/engine-blast-assert.h"
 6858void ldv_blast_assert(void) 
 6859{ 
 6860
 6861  {
 6862  ERROR: ;
 6863#line 6
 6864  goto ERROR;
 6865}
 6866}
 6867#line 6 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/kernel-rules/files/engine-blast.h"
 6868extern int ldv_undefined_int(void) ;
 6869#line 2286 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6870int ldv_module_refcounter  =    1;
 6871#line 2289 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6872void ldv_module_get(struct module *module ) 
 6873{ struct module *__cil_tmp2 ;
 6874  unsigned long __cil_tmp3 ;
 6875  unsigned long __cil_tmp4 ;
 6876
 6877  {
 6878  {
 6879#line 2292
 6880  __cil_tmp2 = (struct module *)0;
 6881#line 2292
 6882  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6883#line 2292
 6884  __cil_tmp4 = (unsigned long )module;
 6885#line 2292
 6886  if (__cil_tmp4 != __cil_tmp3) {
 6887#line 2294
 6888    ldv_module_refcounter = ldv_module_refcounter + 1;
 6889  } else {
 6890
 6891  }
 6892  }
 6893#line 2295
 6894  return;
 6895}
 6896}
 6897#line 2299 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6898int ldv_try_module_get(struct module *module ) 
 6899{ int module_get_succeeded ;
 6900  struct module *__cil_tmp3 ;
 6901  unsigned long __cil_tmp4 ;
 6902  unsigned long __cil_tmp5 ;
 6903
 6904  {
 6905  {
 6906#line 2304
 6907  __cil_tmp3 = (struct module *)0;
 6908#line 2304
 6909  __cil_tmp4 = (unsigned long )__cil_tmp3;
 6910#line 2304
 6911  __cil_tmp5 = (unsigned long )module;
 6912#line 2304
 6913  if (__cil_tmp5 != __cil_tmp4) {
 6914    {
 6915#line 2307
 6916    module_get_succeeded = ldv_undefined_int();
 6917    }
 6918#line 2309
 6919    if (module_get_succeeded == 1) {
 6920#line 2311
 6921      ldv_module_refcounter = ldv_module_refcounter + 1;
 6922#line 2313
 6923      return (1);
 6924    } else {
 6925#line 2318
 6926      return (0);
 6927    }
 6928  } else {
 6929
 6930  }
 6931  }
 6932#line 2320
 6933  return (0);
 6934}
 6935}
 6936#line 2324 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6937void ldv_module_put(struct module *module ) 
 6938{ struct module *__cil_tmp2 ;
 6939  unsigned long __cil_tmp3 ;
 6940  unsigned long __cil_tmp4 ;
 6941
 6942  {
 6943  {
 6944#line 2327
 6945  __cil_tmp2 = (struct module *)0;
 6946#line 2327
 6947  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6948#line 2327
 6949  __cil_tmp4 = (unsigned long )module;
 6950#line 2327
 6951  if (__cil_tmp4 != __cil_tmp3) {
 6952#line 2329
 6953    if (ldv_module_refcounter <= 1) {
 6954      {
 6955#line 2329
 6956      ldv_blast_assert();
 6957      }
 6958    } else {
 6959
 6960    }
 6961#line 2331
 6962    ldv_module_refcounter = ldv_module_refcounter - 1;
 6963  } else {
 6964
 6965  }
 6966  }
 6967#line 2333
 6968  return;
 6969}
 6970}
 6971#line 2336 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6972void ldv_module_put_and_exit(void) 
 6973{ struct module *__cil_tmp1 ;
 6974
 6975  {
 6976  {
 6977#line 2338
 6978  __cil_tmp1 = (struct module *)1;
 6979#line 2338
 6980  ldv_module_put(__cil_tmp1);
 6981  }
 6982  LDV_STOP: ;
 6983#line 2340
 6984  goto LDV_STOP;
 6985}
 6986}
 6987#line 2344 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 6988unsigned int ldv_module_refcount(void) 
 6989{ int __cil_tmp1 ;
 6990
 6991  {
 6992  {
 6993#line 2347
 6994  __cil_tmp1 = ldv_module_refcounter + -1;
 6995#line 2347
 6996  return ((unsigned int )__cil_tmp1);
 6997  }
 6998}
 6999}
 7000#line 2351 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/usb.c.p"
 7001void ldv_check_final_state(void) 
 7002{ 
 7003
 7004  {
 7005#line 2354
 7006  if (ldv_module_refcounter != 1) {
 7007    {
 7008#line 2354
 7009    ldv_blast_assert();
 7010    }
 7011  } else {
 7012
 7013  }
 7014#line 2357
 7015  return;
 7016}
 7017}
 7018#line 47 "include/linux/list.h"
 7019extern void __list_add(struct list_head * , struct list_head * , struct list_head * ) ;
 7020#line 74 "include/linux/list.h"
 7021__inline static void list_add_tail(struct list_head *new , struct list_head *head ) 
 7022{ struct list_head *__cil_tmp3 ;
 7023
 7024  {
 7025  {
 7026#line 76
 7027  __cil_tmp3 = head->prev;
 7028#line 76
 7029  __list_add(new, __cil_tmp3, head);
 7030  }
 7031#line 77
 7032  return;
 7033}
 7034}
 7035#line 111
 7036extern void __list_del_entry(struct list_head * ) ;
 7037#line 112
 7038extern void list_del(struct list_head * ) ;
 7039#line 142 "include/linux/list.h"
 7040__inline static void list_del_init(struct list_head *entry ) 
 7041{ 
 7042
 7043  {
 7044  {
 7045#line 144
 7046  __list_del_entry(entry);
 7047#line 145
 7048  INIT_LIST_HEAD(entry);
 7049  }
 7050#line 146
 7051  return;
 7052}
 7053}
 7054#line 186 "include/linux/list.h"
 7055__inline static int list_empty(struct list_head  const  *head ) 
 7056{ unsigned long __cil_tmp2 ;
 7057  struct list_head *__cil_tmp3 ;
 7058  struct list_head  const  *__cil_tmp4 ;
 7059  unsigned long __cil_tmp5 ;
 7060
 7061  {
 7062  {
 7063#line 188
 7064  __cil_tmp2 = (unsigned long )head;
 7065#line 188
 7066  __cil_tmp3 = head->next;
 7067#line 188
 7068  __cil_tmp4 = (struct list_head  const  *)__cil_tmp3;
 7069#line 188
 7070  __cil_tmp5 = (unsigned long )__cil_tmp4;
 7071#line 188
 7072  return (__cil_tmp5 == __cil_tmp2);
 7073  }
 7074}
 7075}
 7076#line 60 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
 7077__inline static void set_bit(unsigned int nr , unsigned long volatile   *addr ) 
 7078{ long volatile   *__cil_tmp3 ;
 7079
 7080  {
 7081#line 68
 7082  __cil_tmp3 = (long volatile   *)addr;
 7083#line 68
 7084  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; bts %1,%0": "+m" (*__cil_tmp3): "Ir" (nr): "memory");
 7085#line 70
 7086  return;
 7087}
 7088}
 7089#line 98 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
 7090__inline static void clear_bit(int nr , unsigned long volatile   *addr ) 
 7091{ long volatile   *__cil_tmp3 ;
 7092
 7093  {
 7094#line 105
 7095  __cil_tmp3 = (long volatile   *)addr;
 7096#line 105
 7097  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; btr %1,%0": "+m" (*__cil_tmp3): "Ir" (nr));
 7098#line 107
 7099  return;
 7100}
 7101}
 7102#line 246 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
 7103__inline static int test_and_clear_bit(int nr , unsigned long volatile   *addr ) 
 7104{ int oldbit ;
 7105  long volatile   *__cil_tmp4 ;
 7106
 7107  {
 7108#line 250
 7109  __cil_tmp4 = (long volatile   *)addr;
 7110#line 250
 7111  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; btr %2,%1\n\tsbb %0,%0": "=r" (oldbit),
 7112                       "+m" (*__cil_tmp4): "Ir" (nr): "memory");
 7113#line 254
 7114  return (oldbit);
 7115}
 7116}
 7117#line 315 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
 7118__inline static int variable_test_bit(int nr , unsigned long const volatile   *addr ) 
 7119{ int oldbit ;
 7120  unsigned long *__cil_tmp4 ;
 7121
 7122  {
 7123#line 319
 7124  __cil_tmp4 = (unsigned long *)addr;
 7125#line 319
 7126  __asm__  volatile   ("bt %2,%1\n\tsbb %0,%0": "=r" (oldbit): "m" (*__cil_tmp4),
 7127                       "Ir" (nr));
 7128#line 324
 7129  return (oldbit);
 7130}
 7131}
 7132#line 22 "include/asm-generic/bitops/find.h"
 7133extern unsigned long find_next_zero_bit(unsigned long const   * , unsigned long  ,
 7134                                        unsigned long  ) ;
 7135#line 108 "include/linux/printk.h"
 7136extern int __printk_ratelimit(char const   * ) ;
 7137#line 69 "include/asm-generic/bug.h"
 7138extern void warn_slowpath_null(char const   * , int  ) ;
 7139#line 88 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/percpu.h"
 7140extern void __bad_percpu_size(void) ;
 7141#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
 7142extern struct task_struct *current_task ;
 7143#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
 7144__inline static struct task_struct *get_current(void) 
 7145{ struct task_struct *pfo_ret__ ;
 7146
 7147  {
 7148#line 14
 7149  if (1) {
 7150#line 14
 7151    goto case_8;
 7152  } else {
 7153#line 14
 7154    goto switch_default;
 7155#line 14
 7156    if (0) {
 7157#line 14
 7158      __asm__  ("movb %%gs:%P1,%0": "=q" (pfo_ret__): "p" (& current_task));
 7159#line 14
 7160      goto ldv_2386;
 7161#line 14
 7162      __asm__  ("movw %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task));
 7163#line 14
 7164      goto ldv_2386;
 7165#line 14
 7166      __asm__  ("movl %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task));
 7167#line 14
 7168      goto ldv_2386;
 7169      case_8: 
 7170#line 14
 7171      __asm__  ("movq %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task));
 7172#line 14
 7173      goto ldv_2386;
 7174      switch_default: 
 7175      {
 7176#line 14
 7177      __bad_percpu_size();
 7178      }
 7179    } else {
 7180
 7181    }
 7182  }
 7183  ldv_2386: ;
 7184#line 14
 7185  return (pfo_ret__);
 7186}
 7187}
 7188#line 60 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/string_64.h"
 7189extern int memcmp(void const   * , void const   * , size_t  ) ;
 7190#line 61
 7191extern size_t strlen(char const   * ) ;
 7192#line 118 "include/linux/string.h"
 7193extern char *kstrdup(char const   * , gfp_t  ) ;
 7194#line 32 "include/linux/err.h"
 7195__inline static long IS_ERR(void const   *ptr ) 
 7196{ long tmp ;
 7197  unsigned long __cil_tmp3 ;
 7198  int __cil_tmp4 ;
 7199  long __cil_tmp5 ;
 7200
 7201  {
 7202  {
 7203#line 34
 7204  __cil_tmp3 = (unsigned long )ptr;
 7205#line 34
 7206  __cil_tmp4 = __cil_tmp3 > 1152921504606842880UL;
 7207#line 34
 7208  __cil_tmp5 = (long )__cil_tmp4;
 7209#line 34
 7210  tmp = __builtin_expect(__cil_tmp5, 0L);
 7211  }
 7212#line 34
 7213  return (tmp);
 7214}
 7215}
 7216#line 93 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
 7217__inline static void atomic_inc(atomic_t *v ) 
 7218{ 
 7219
 7220  {
 7221#line 95
 7222  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; incl %0": "+m" (v->counter));
 7223#line 97
 7224  return;
 7225}
 7226}
 7227#line 82 "include/linux/thread_info.h"
 7228__inline static int test_ti_thread_flag(struct thread_info *ti , int flag ) 
 7229{ int tmp ;
 7230  __u32 *__cil_tmp4 ;
 7231  unsigned long const volatile   *__cil_tmp5 ;
 7232
 7233  {
 7234  {
 7235#line 84
 7236  __cil_tmp4 = & ti->flags;
 7237#line 84
 7238  __cil_tmp5 = (unsigned long const volatile   *)__cil_tmp4;
 7239#line 84
 7240  tmp = variable_test_bit(flag, __cil_tmp5);
 7241  }
 7242#line 84
 7243  return (tmp);
 7244}
 7245}
 7246#line 261 "include/linux/lockdep.h"
 7247extern void lockdep_init_map(struct lockdep_map * , char const   * , struct lock_class_key * ,
 7248                             int  ) ;
 7249#line 93 "include/linux/spinlock.h"
 7250extern void __raw_spin_lock_init(raw_spinlock_t * , char const   * , struct lock_class_key * ) ;
 7251#line 29 "include/linux/spinlock_api_smp.h"
 7252extern void _raw_spin_lock_irq(raw_spinlock_t * ) ;
 7253#line 32
 7254extern unsigned long _raw_spin_lock_irqsave(raw_spinlock_t * ) ;
 7255#line 41
 7256extern void _raw_spin_unlock_irq(raw_spinlock_t * ) ;
 7257#line 43
 7258extern void _raw_spin_unlock_irqrestore(raw_spinlock_t * , unsigned long  ) ;
 7259#line 272 "include/linux/spinlock.h"
 7260__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock ) 
 7261{ 
 7262
 7263  {
 7264#line 274
 7265  return (& lock->ldv_6060.rlock);
 7266}
 7267}
 7268#line 308 "include/linux/spinlock.h"
 7269__inline static void spin_lock_irq(spinlock_t *lock ) 
 7270{ struct raw_spinlock *__cil_tmp2 ;
 7271
 7272  {
 7273  {
 7274#line 310
 7275  __cil_tmp2 = & lock->ldv_6060.rlock;
 7276#line 310
 7277  _raw_spin_lock_irq(__cil_tmp2);
 7278  }
 7279#line 311
 7280  return;
 7281}
 7282}
 7283#line 333 "include/linux/spinlock.h"
 7284__inline static void spin_unlock_irq(spinlock_t *lock ) 
 7285{ struct raw_spinlock *__cil_tmp2 ;
 7286
 7287  {
 7288  {
 7289#line 335
 7290  __cil_tmp2 = & lock->ldv_6060.rlock;
 7291#line 335
 7292  _raw_spin_unlock_irq(__cil_tmp2);
 7293  }
 7294#line 336
 7295  return;
 7296}
 7297}
 7298#line 338 "include/linux/spinlock.h"
 7299__inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags ) 
 7300{ struct raw_spinlock *__cil_tmp3 ;
 7301
 7302  {
 7303  {
 7304#line 340
 7305  __cil_tmp3 = & lock->ldv_6060.rlock;
 7306#line 340
 7307  _raw_spin_unlock_irqrestore(__cil_tmp3, flags);
 7308  }
 7309#line 341
 7310  return;
 7311}
 7312}
 7313#line 156 "include/linux/wait.h"
 7314extern void __wake_up(wait_queue_head_t * , unsigned int  , int  , void * ) ;
 7315#line 584
 7316extern void prepare_to_wait(wait_queue_head_t * , wait_queue_t * , int  ) ;
 7317#line 586
 7318extern void finish_wait(wait_queue_head_t * , wait_queue_t * ) ;
 7319#line 589
 7320extern int autoremove_wake_function(wait_queue_t * , unsigned int  , int  , void * ) ;
 7321#line 115 "include/linux/mutex.h"
 7322extern void __mutex_init(struct mutex * , char const   * , struct lock_class_key * ) ;
 7323#line 134
 7324extern void mutex_lock_nested(struct mutex * , unsigned int  ) ;
 7325#line 169
 7326extern void mutex_unlock(struct mutex * ) ;
 7327#line 79 "include/linux/rwsem.h"
 7328extern void down_read(struct rw_semaphore * ) ;
 7329#line 99
 7330extern void up_read(struct rw_semaphore * ) ;
 7331#line 298 "include/linux/jiffies.h"
 7332extern unsigned long msecs_to_jiffies(unsigned int  ) ;
 7333#line 91 "include/linux/timer.h"
 7334extern void init_timer_key(struct timer_list * , char const   * , struct lock_class_key * ) ;
 7335#line 156 "include/linux/workqueue.h"
 7336extern void __init_work(struct work_struct * , int  ) ;
 7337#line 360
 7338extern int schedule_work(struct work_struct * ) ;
 7339#line 362
 7340extern int schedule_delayed_work(struct delayed_work * , unsigned long  ) ;
 7341#line 372
 7342extern bool cancel_work_sync(struct work_struct * ) ;
 7343#line 376
 7344extern bool cancel_delayed_work_sync(struct delayed_work * ) ;
 7345#line 24 "include/linux/kref.h"
 7346extern void kref_init(struct kref * ) ;
 7347#line 25
 7348extern void kref_get(struct kref * ) ;
 7349#line 26
 7350extern int kref_put(struct kref * , void (*)(struct kref * ) ) ;
 7351#line 361 "include/linux/sched.h"
 7352extern void schedule(void) ;
 7353#line 2112
 7354extern int wake_up_process(struct task_struct * ) ;
 7355#line 2441 "include/linux/sched.h"
 7356__inline static int test_tsk_thread_flag(struct task_struct *tsk , int flag ) 
 7357{ int tmp ;
 7358  void *__cil_tmp4 ;
 7359  struct thread_info *__cil_tmp5 ;
 7360
 7361  {
 7362  {
 7363#line 2443
 7364  __cil_tmp4 = tsk->stack;
 7365#line 2443
 7366  __cil_tmp5 = (struct thread_info *)__cil_tmp4;
 7367#line 2443
 7368  tmp = test_ti_thread_flag(__cil_tmp5, flag);
 7369  }
 7370#line 2443
 7371  return (tmp);
 7372}
 7373}
 7374#line 2467 "include/linux/sched.h"
 7375__inline static int signal_pending(struct task_struct *p ) 
 7376{ int tmp ;
 7377  long tmp___0 ;
 7378  int __cil_tmp4 ;
 7379  long __cil_tmp5 ;
 7380
 7381  {
 7382  {
 7383#line 2469
 7384  tmp = test_tsk_thread_flag(p, 2);
 7385#line 2469
 7386  __cil_tmp4 = tmp != 0;
 7387#line 2469
 7388  __cil_tmp5 = (long )__cil_tmp4;
 7389#line 2469
 7390  tmp___0 = __builtin_expect(__cil_tmp5, 0L);
 7391  }
 7392#line 2469
 7393  return ((int )tmp___0);
 7394}
 7395}
 7396#line 424 "include/linux/usb/ch9.h"
 7397__inline static int usb_endpoint_dir_in(struct usb_endpoint_descriptor  const  *epd ) 
 7398{ __u8 __cil_tmp2 ;
 7399  signed char __cil_tmp3 ;
 7400  int __cil_tmp4 ;
 7401
 7402  {
 7403  {
 7404#line 426
 7405  __cil_tmp2 = epd->bEndpointAddress;
 7406#line 426
 7407  __cil_tmp3 = (signed char )__cil_tmp2;
 7408#line 426
 7409  __cil_tmp4 = (int )__cil_tmp3;
 7410#line 426
 7411  return (__cil_tmp4 < 0);
 7412  }
 7413}
 7414}
 7415#line 474 "include/linux/usb/ch9.h"
 7416__inline static int usb_endpoint_xfer_int(struct usb_endpoint_descriptor  const  *epd ) 
 7417{ __u8 __cil_tmp2 ;
 7418  int __cil_tmp3 ;
 7419  int __cil_tmp4 ;
 7420
 7421  {
 7422  {
 7423#line 477
 7424  __cil_tmp2 = epd->bmAttributes;
 7425#line 477
 7426  __cil_tmp3 = (int )__cil_tmp2;
 7427#line 477
 7428  __cil_tmp4 = __cil_tmp3 & 3;
 7429#line 477
 7430  return (__cil_tmp4 == 3);
 7431  }
 7432}
 7433}
 7434#line 528 "include/linux/usb/ch9.h"
 7435__inline static int usb_endpoint_is_int_in(struct usb_endpoint_descriptor  const  *epd ) 
 7436{ int tmp ;
 7437  int tmp___0 ;
 7438  int tmp___1 ;
 7439
 7440  {
 7441  {
 7442#line 531
 7443  tmp = usb_endpoint_xfer_int(epd);
 7444  }
 7445#line 531
 7446  if (tmp != 0) {
 7447    {
 7448#line 531
 7449    tmp___0 = usb_endpoint_dir_in(epd);
 7450    }
 7451#line 531
 7452    if (tmp___0 != 0) {
 7453#line 531
 7454      tmp___1 = 1;
 7455    } else {
 7456#line 531
 7457      tmp___1 = 0;
 7458    }
 7459  } else {
 7460#line 531
 7461    tmp___1 = 0;
 7462  }
 7463#line 531
 7464  return (tmp___1);
 7465}
 7466}
 7467#line 84 "include/linux/pm_wakeup.h"
 7468extern void device_set_wakeup_capable(struct device * , bool  ) ;
 7469#line 85
 7470extern int device_init_wakeup(struct device * , bool  ) ;
 7471#line 654 "include/linux/device.h"
 7472__inline static void device_enable_async_suspend(struct device *dev ) 
 7473{ bool __cil_tmp2 ;
 7474
 7475  {
 7476  {
 7477#line 656
 7478  __cil_tmp2 = dev->power.is_prepared;
 7479#line 656
 7480  if (! __cil_tmp2) {
 7481#line 657
 7482    dev->power.async_suspend = (unsigned char)1;
 7483  } else {
 7484
 7485  }
 7486  }
 7487#line 658
 7488  return;
 7489}
 7490}
 7491#line 671 "include/linux/device.h"
 7492__inline static void device_lock(struct device *dev ) 
 7493{ struct mutex *__cil_tmp2 ;
 7494
 7495  {
 7496  {
 7497#line 673
 7498  __cil_tmp2 = & dev->mutex;
 7499#line 673
 7500  mutex_lock_nested(__cil_tmp2, 0U);
 7501  }
 7502#line 674
 7503  return;
 7504}
 7505}
 7506#line 681 "include/linux/device.h"
 7507__inline static void device_unlock(struct device *dev ) 
 7508{ struct mutex *__cil_tmp2 ;
 7509
 7510  {
 7511  {
 7512#line 683
 7513  __cil_tmp2 = & dev->mutex;
 7514#line 683
 7515  mutex_unlock(__cil_tmp2);
 7516  }
 7517#line 684
 7518  return;
 7519}
 7520}
 7521#line 694
 7522extern int device_add(struct device * ) ;
 7523#line 695
 7524extern void device_del(struct device * ) ;
 7525#line 705
 7526extern void *dev_get_drvdata(struct device  const  * ) ;
 7527#line 706
 7528extern int dev_set_drvdata(struct device * , void * ) ;
 7529#line 788
 7530extern int dev_printk(char const   * , struct device  const  * , char const   *  , ...) ;
 7531#line 797
 7532extern int dev_err(struct device  const  * , char const   *  , ...) ;
 7533#line 799
 7534extern int dev_warn(struct device  const  * , char const   *  , ...) ;
 7535#line 803
 7536extern int _dev_info(struct device  const  * , char const   *  , ...) ;
 7537#line 30 "include/linux/pm_runtime.h"
 7538extern int __pm_runtime_suspend(struct device * , int  ) ;
 7539#line 33
 7540extern int __pm_runtime_set_status(struct device * , unsigned int  ) ;
 7541#line 35
 7542extern void pm_runtime_enable(struct device * ) ;
 7543#line 36
 7544extern void __pm_runtime_disable(struct device * , bool  ) ;
 7545#line 44
 7546extern void __pm_runtime_use_autosuspend(struct device * , bool  ) ;
 7547#line 59 "include/linux/pm_runtime.h"
 7548__inline static void pm_runtime_get_noresume(struct device *dev ) 
 7549{ atomic_t *__cil_tmp2 ;
 7550
 7551  {
 7552  {
 7553#line 61
 7554  __cil_tmp2 = & dev->power.usage_count;
 7555#line 61
 7556  atomic_inc(__cil_tmp2);
 7557  }
 7558#line 62
 7559  return;
 7560}
 7561}
 7562#line 95 "include/linux/pm_runtime.h"
 7563__inline static void pm_runtime_mark_last_busy(struct device *dev ) 
 7564{ unsigned long *__cil_tmp2 ;
 7565  unsigned long volatile   *__cil_tmp3 ;
 7566
 7567  {
 7568#line 97
 7569  __cil_tmp2 = & dev->power.last_busy;
 7570#line 97
 7571  __cil_tmp3 = (unsigned long volatile   *)__cil_tmp2;
 7572#line 97
 7573  *__cil_tmp3 = jiffies;
 7574#line 98
 7575  return;
 7576}
 7577}
 7578#line 218 "include/linux/pm_runtime.h"
 7579__inline static int pm_runtime_put_sync_autosuspend(struct device *dev ) 
 7580{ int tmp ;
 7581
 7582  {
 7583  {
 7584#line 220
 7585  tmp = __pm_runtime_suspend(dev, 12);
 7586  }
 7587#line 220
 7588  return (tmp);
 7589}
 7590}
 7591#line 223 "include/linux/pm_runtime.h"
 7592__inline static int pm_runtime_set_active(struct device *dev ) 
 7593{ int tmp ;
 7594
 7595  {
 7596  {
 7597#line 225
 7598  tmp = __pm_runtime_set_status(dev, 0U);
 7599  }
 7600#line 225
 7601  return (tmp);
 7602}
 7603}
 7604#line 228 "include/linux/pm_runtime.h"
 7605__inline static void pm_runtime_set_suspended(struct device *dev ) 
 7606{ 
 7607
 7608  {
 7609  {
 7610#line 230
 7611  __pm_runtime_set_status(dev, 2U);
 7612  }
 7613#line 231
 7614  return;
 7615}
 7616}
 7617#line 233 "include/linux/pm_runtime.h"
 7618__inline static void pm_runtime_disable(struct device *dev ) 
 7619{ bool __cil_tmp2 ;
 7620
 7621  {
 7622  {
 7623#line 235
 7624  __cil_tmp2 = (bool )1;
 7625#line 235
 7626  __pm_runtime_disable(dev, __cil_tmp2);
 7627  }
 7628#line 236
 7629  return;
 7630}
 7631}
 7632#line 238 "include/linux/pm_runtime.h"
 7633__inline static void pm_runtime_use_autosuspend(struct device *dev ) 
 7634{ bool __cil_tmp2 ;
 7635
 7636  {
 7637  {
 7638#line 240
 7639  __cil_tmp2 = (bool )1;
 7640#line 240
 7641  __pm_runtime_use_autosuspend(dev, __cil_tmp2);
 7642  }
 7643#line 241
 7644  return;
 7645}
 7646}
 7647#line 191 "include/linux/usb.h"
 7648__inline static void *usb_get_intfdata(struct usb_interface *intf ) 
 7649{ void *tmp ;
 7650  struct device *__cil_tmp3 ;
 7651  struct device  const  *__cil_tmp4 ;
 7652
 7653  {
 7654  {
 7655#line 193
 7656  __cil_tmp3 = & intf->dev;
 7657#line 193
 7658  __cil_tmp4 = (struct device  const  *)__cil_tmp3;
 7659#line 193
 7660  tmp = dev_get_drvdata(__cil_tmp4);
 7661  }
 7662#line 193
 7663  return (tmp);
 7664}
 7665}
 7666#line 196 "include/linux/usb.h"
 7667__inline static void usb_set_intfdata(struct usb_interface *intf , void *data ) 
 7668{ struct device *__cil_tmp3 ;
 7669
 7670  {
 7671  {
 7672#line 198
 7673  __cil_tmp3 = & intf->dev;
 7674#line 198
 7675  dev_set_drvdata(__cil_tmp3, data);
 7676  }
 7677#line 199
 7678  return;
 7679}
 7680}
 7681#line 497 "include/linux/usb.h"
 7682__inline static struct usb_device *interface_to_usbdev(struct usb_interface *intf ) 
 7683{ struct device  const  *__mptr ;
 7684  struct device *__cil_tmp3 ;
 7685  struct usb_device *__cil_tmp4 ;
 7686
 7687  {
 7688#line 499
 7689  __cil_tmp3 = intf->dev.parent;
 7690#line 499
 7691  __mptr = (struct device  const  *)__cil_tmp3;
 7692  {
 7693#line 499
 7694  __cil_tmp4 = (struct usb_device *)__mptr;
 7695#line 499
 7696  return (__cil_tmp4 + 1152921504606846840UL);
 7697  }
 7698}
 7699}
 7700#line 513
 7701int usb_reset_device(struct usb_device *udev ) ;
 7702#line 514
 7703void usb_queue_reset_device(struct usb_interface *iface ) ;
 7704#line 519
 7705void usb_enable_autosuspend(struct usb_device *udev ) ;
 7706#line 520
 7707void usb_disable_autosuspend(struct usb_device *udev ) ;
 7708#line 522
 7709int usb_autopm_get_interface(struct usb_interface *intf ) ;
 7710#line 523
 7711void usb_autopm_put_interface(struct usb_interface *intf ) ;
 7712#line 525
 7713void usb_autopm_put_interface_async(struct usb_interface *intf ) ;
 7714#line 526
 7715void usb_autopm_get_interface_no_resume(struct usb_interface *intf ) ;
 7716#line 527
 7717void usb_autopm_put_interface_no_suspend(struct usb_interface *intf ) ;
 7718#line 529 "include/linux/usb.h"
 7719__inline static void usb_mark_last_busy(struct usb_device *udev ) 
 7720{ struct device *__cil_tmp2 ;
 7721
 7722  {
 7723  {
 7724#line 531
 7725  __cil_tmp2 = & udev->dev;
 7726#line 531
 7727  pm_runtime_mark_last_busy(__cil_tmp2);
 7728  }
 7729#line 532
 7730  return;
 7731}
 7732}
 7733#line 1309 "include/linux/usb.h"
 7734__inline static void usb_fill_int_urb(struct urb *urb , struct usb_device *dev , unsigned int pipe ,
 7735                                      void *transfer_buffer , int buffer_length ,
 7736                                      void (*complete_fn)(struct urb * ) , void *context ,
 7737                                      int interval ) 
 7738{ enum usb_device_speed __cil_tmp9 ;
 7739  unsigned int __cil_tmp10 ;
 7740  int __cil_tmp11 ;
 7741  enum usb_device_speed __cil_tmp12 ;
 7742  unsigned int __cil_tmp13 ;
 7743  int __cil_tmp14 ;
 7744
 7745  {
 7746#line 1318
 7747  urb->dev = dev;
 7748#line 1319
 7749  urb->pipe = pipe;
 7750#line 1320
 7751  urb->transfer_buffer = transfer_buffer;
 7752#line 1321
 7753  urb->transfer_buffer_length = (u32 )buffer_length;
 7754#line 1322
 7755  urb->complete = complete_fn;
 7756#line 1323
 7757  urb->context = context;
 7758  {
 7759#line 1324
 7760  __cil_tmp9 = dev->speed;
 7761#line 1324
 7762  __cil_tmp10 = (unsigned int )__cil_tmp9;
 7763#line 1324
 7764  if (__cil_tmp10 == 3U) {
 7765#line 1325
 7766    __cil_tmp11 = interval + -1;
 7767#line 1325
 7768    urb->interval = 1 << __cil_tmp11;
 7769  } else {
 7770    {
 7771#line 1324
 7772    __cil_tmp12 = dev->speed;
 7773#line 1324
 7774    __cil_tmp13 = (unsigned int )__cil_tmp12;
 7775#line 1324
 7776    if (__cil_tmp13 == 5U) {
 7777#line 1325
 7778      __cil_tmp14 = interval + -1;
 7779#line 1325
 7780      urb->interval = 1 << __cil_tmp14;
 7781    } else {
 7782#line 1327
 7783      urb->interval = interval;
 7784    }
 7785    }
 7786  }
 7787  }
 7788#line 1328
 7789  urb->start_frame = -1;
 7790#line 1329
 7791  return;
 7792}
 7793}
 7794#line 1332
 7795struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) ;
 7796#line 1333
 7797void usb_free_urb(struct urb *urb ) ;
 7798#line 1336
 7799int usb_submit_urb(struct urb *urb , gfp_t mem_flags ) ;
 7800#line 1338
 7801void usb_kill_urb(struct urb *urb ) ;
 7802#line 1402
 7803int usb_control_msg(struct usb_device *dev , unsigned int pipe , __u8 request , __u8 requesttype ,
 7804                    __u16 value , __u16 index , void *data , __u16 size , int timeout ) ;
 7805#line 1412
 7806int usb_get_descriptor(struct usb_device *dev , unsigned char type , unsigned char index ,
 7807                       void *buf , int size ) ;
 7808#line 1414
 7809int usb_get_status(struct usb_device *dev , int type , int target , void *data ) ;
 7810#line 1416
 7811int usb_string(struct usb_device *dev , int index , char *buf , size_t size ) ;
 7812#line 1422
 7813int usb_set_interface(struct usb_device *dev , int interface , int alternate ) ;
 7814#line 1526 "include/linux/usb.h"
 7815__inline static unsigned int __create_pipe(struct usb_device *dev , unsigned int endpoint ) 
 7816{ unsigned int __cil_tmp3 ;
 7817  int __cil_tmp4 ;
 7818  int __cil_tmp5 ;
 7819  unsigned int __cil_tmp6 ;
 7820
 7821  {
 7822  {
 7823#line 1529
 7824  __cil_tmp3 = endpoint << 15;
 7825#line 1529
 7826  __cil_tmp4 = dev->devnum;
 7827#line 1529
 7828  __cil_tmp5 = __cil_tmp4 << 8;
 7829#line 1529
 7830  __cil_tmp6 = (unsigned int )__cil_tmp5;
 7831#line 1529
 7832  return (__cil_tmp6 | __cil_tmp3);
 7833  }
 7834}
 7835}
 7836#line 1561 "include/linux/usb.h"
 7837__inline static __u16 usb_maxpacket(struct usb_device *udev , int pipe , int is_out ) 
 7838{ struct usb_host_endpoint *ep ;
 7839  unsigned int epnum ;
 7840  int __ret_warn_on ;
 7841  long tmp ;
 7842  int __ret_warn_on___0 ;
 7843  long tmp___0 ;
 7844  int __cil_tmp10 ;
 7845  unsigned int __cil_tmp11 ;
 7846  int __cil_tmp12 ;
 7847  int __cil_tmp13 ;
 7848  long __cil_tmp14 ;
 7849  int __cil_tmp15 ;
 7850  int __cil_tmp16 ;
 7851  int __cil_tmp17 ;
 7852  long __cil_tmp18 ;
 7853  int __cil_tmp19 ;
 7854  int __cil_tmp20 ;
 7855  long __cil_tmp21 ;
 7856  int __cil_tmp22 ;
 7857  int __cil_tmp23 ;
 7858  int __cil_tmp24 ;
 7859  long __cil_tmp25 ;
 7860  struct usb_host_endpoint *__cil_tmp26 ;
 7861  unsigned long __cil_tmp27 ;
 7862  unsigned long __cil_tmp28 ;
 7863
 7864  {
 7865#line 1564
 7866  __cil_tmp10 = pipe >> 15;
 7867#line 1564
 7868  __cil_tmp11 = (unsigned int )__cil_tmp10;
 7869#line 1564
 7870  epnum = __cil_tmp11 & 15U;
 7871#line 1566
 7872  if (is_out != 0) {
 7873    {
 7874#line 1567
 7875    __cil_tmp12 = pipe & 128;
 7876#line 1567
 7877    __ret_warn_on = __cil_tmp12 != 0;
 7878#line 1567
 7879    __cil_tmp13 = __ret_warn_on != 0;
 7880#line 1567
 7881    __cil_tmp14 = (long )__cil_tmp13;
 7882#line 1567
 7883    tmp = __builtin_expect(__cil_tmp14, 0L);
 7884    }
 7885#line 1567
 7886    if (tmp != 0L) {
 7887      {
 7888#line 1567
 7889      __cil_tmp15 = (int const   )1567;
 7890#line 1567
 7891      __cil_tmp16 = (int )__cil_tmp15;
 7892#line 1567
 7893      warn_slowpath_null("include/linux/usb.h", __cil_tmp16);
 7894      }
 7895    } else {
 7896
 7897    }
 7898    {
 7899#line 1567
 7900    __cil_tmp17 = __ret_warn_on != 0;
 7901#line 1567
 7902    __cil_tmp18 = (long )__cil_tmp17;
 7903#line 1567
 7904    __builtin_expect(__cil_tmp18, 0L);
 7905#line 1568
 7906    ep = udev->ep_out[epnum];
 7907    }
 7908  } else {
 7909    {
 7910#line 1570
 7911    __cil_tmp19 = pipe & 128;
 7912#line 1570
 7913    __ret_warn_on___0 = __cil_tmp19 == 0;
 7914#line 1570
 7915    __cil_tmp20 = __ret_warn_on___0 != 0;
 7916#line 1570
 7917    __cil_tmp21 = (long )__cil_tmp20;
 7918#line 1570
 7919    tmp___0 = __builtin_expect(__cil_tmp21, 0L);
 7920    }
 7921#line 1570
 7922    if (tmp___0 != 0L) {
 7923      {
 7924#line 1570
 7925      __cil_tmp22 = (int const   )1570;
 7926#line 1570
 7927      __cil_tmp23 = (int )__cil_tmp22;
 7928#line 1570
 7929      warn_slowpath_null("include/linux/usb.h", __cil_tmp23);
 7930      }
 7931    } else {
 7932
 7933    }
 7934    {
 7935#line 1570
 7936    __cil_tmp24 = __ret_warn_on___0 != 0;
 7937#line 1570
 7938    __cil_tmp25 = (long )__cil_tmp24;
 7939#line 1570
 7940    __builtin_expect(__cil_tmp25, 0L);
 7941#line 1571
 7942    ep = udev->ep_in[epnum];
 7943    }
 7944  }
 7945  {
 7946#line 1573
 7947  __cil_tmp26 = (struct usb_host_endpoint *)0;
 7948#line 1573
 7949  __cil_tmp27 = (unsigned long )__cil_tmp26;
 7950#line 1573
 7951  __cil_tmp28 = (unsigned long )ep;
 7952#line 1573
 7953  if (__cil_tmp28 == __cil_tmp27) {
 7954#line 1574
 7955    return ((__u16 )0U);
 7956  } else {
 7957
 7958  }
 7959  }
 7960#line 1577
 7961  return (ep->desc.wMaxPacketSize);
 7962}
 7963}
 7964#line 367 "include/linux/usb/hcd.h"
 7965void usb_hcd_synchronize_unlinks(struct usb_device *udev ) ;
 7966#line 368
 7967int usb_hcd_alloc_bandwidth(struct usb_device *udev , struct usb_host_config *new_config ,
 7968                            struct usb_host_interface *cur_alt , struct usb_host_interface *new_alt ) ;
 7969#line 429
 7970int usb_new_device(struct usb_device *udev ) ;
 7971#line 430
 7972void usb_disconnect(struct usb_device **pdev ) ;
 7973#line 432
 7974int usb_get_configuration(struct usb_device *dev ) ;
 7975#line 475
 7976int usb_hub_clear_tt_buffer(struct urb *urb ) ;
 7977#line 476
 7978void usb_ep0_reinit(struct usb_device *udev ) ;
 7979#line 553
 7980void usb_set_device_state(struct usb_device *udev , enum usb_device_state new_state ) ;
 7981#line 570
 7982void usb_root_hub_lost_power(struct usb_device *rhdev ) ;
 7983#line 664
 7984struct rw_semaphore ehci_cf_port_reset_rwsem ;
 7985#line 7 "include/linux/kthread.h"
 7986extern struct task_struct *kthread_create_on_node(int (*)(void * ) , void * , int  ,
 7987                                                  char const   *  , ...) ;
 7988#line 36
 7989extern int kthread_stop(struct task_struct * ) ;
 7990#line 37
 7991extern int kthread_should_stop(void) ;
 7992#line 21 "include/linux/freezer.h"
 7993__inline static int freezing(struct task_struct *p ) 
 7994{ int tmp ;
 7995
 7996  {
 7997  {
 7998#line 23
 7999  tmp = test_tsk_thread_flag(p, 23);
 8000  }
 8001#line 23
 8002  return (tmp);
 8003}
 8004}
 8005#line 50
 8006extern void refrigerator(void) ;
 8007#line 54 "include/linux/freezer.h"
 8008__inline static int try_to_freeze(void) 
 8009{ struct task_struct *tmp ;
 8010  int tmp___0 ;
 8011
 8012  {
 8013  {
 8014#line 56
 8015  tmp = get_current();
 8016#line 56
 8017  tmp___0 = freezing(tmp);
 8018  }
 8019#line 56
 8020  if (tmp___0 != 0) {
 8021    {
 8022#line 57
 8023    refrigerator();
 8024    }
 8025#line 58
 8026    return (1);
 8027  } else {
 8028#line 60
 8029    return (0);
 8030  }
 8031}
 8032}
 8033#line 122 "include/linux/freezer.h"
 8034__inline static void set_freezable(void) 
 8035{ struct task_struct *tmp ;
 8036  unsigned int __cil_tmp2 ;
 8037
 8038  {
 8039  {
 8040#line 124
 8041  tmp = get_current();
 8042#line 124
 8043  __cil_tmp2 = tmp->flags;
 8044#line 124
 8045  tmp->flags = __cil_tmp2 & 4294934527U;
 8046  }
 8047#line 125
 8048  return;
 8049}
 8050}
 8051#line 9 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 8052int usb_create_ep_devs(struct device *parent , struct usb_host_endpoint *endpoint ,
 8053                       struct usb_device *udev ) ;
 8054#line 12
 8055void usb_remove_ep_devs(struct usb_host_endpoint *endpoint ) ;
 8056#line 16
 8057void usb_enable_interface(struct usb_device *dev , struct usb_interface *intf , bool reset_eps ) ;
 8058#line 18
 8059void usb_disable_endpoint(struct usb_device *dev , unsigned int epaddr , bool reset_hardware ) ;
 8060#line 20
 8061void usb_disable_interface(struct usb_device *dev , struct usb_interface *intf , bool reset_hardware ) ;
 8062#line 23
 8063void usb_disable_device(struct usb_device *dev , int skip_ep0 ) ;
 8064#line 24
 8065int usb_deauthorize_device(struct usb_device *usb_dev ) ;
 8066#line 25
 8067int usb_authorize_device(struct usb_device *usb_dev ) ;
 8068#line 26
 8069void usb_detect_quirks(struct usb_device *udev ) ;
 8070#line 27
 8071int usb_remove_device(struct usb_device *udev ) ;
 8072#line 29
 8073int usb_get_device_descriptor(struct usb_device *dev , unsigned int size ) ;
 8074#line 31
 8075char *usb_cache_string(struct usb_device *udev , int index ) ;
 8076#line 32
 8077int usb_set_configuration(struct usb_device *dev , int configuration ) ;
 8078#line 33
 8079int usb_choose_configuration(struct usb_device *udev ) ;
 8080#line 35
 8081void usb_kick_khubd(struct usb_device *hdev ) ;
 8082#line 38
 8083void usb_forced_unbind_intf(struct usb_interface *intf ) ;
 8084#line 39
 8085void usb_rebind_intf(struct usb_interface *intf ) ;
 8086#line 41
 8087int usb_hub_claim_port(struct usb_device *hdev , unsigned int port1 , void *owner ) ;
 8088#line 43
 8089int usb_hub_release_port(struct usb_device *hdev , unsigned int port1 , void *owner ) ;
 8090#line 45
 8091void usb_hub_release_all_ports(struct usb_device *hdev , void *owner ) ;
 8092#line 46
 8093bool usb_device_is_owned(struct usb_device *udev ) ;
 8094#line 58
 8095int usb_port_suspend(struct usb_device *udev , pm_message_t msg ) ;
 8096#line 59
 8097int usb_port_resume(struct usb_device *udev , pm_message_t msg ) ;
 8098#line 77
 8099void usb_autosuspend_device(struct usb_device *udev ) ;
 8100#line 78
 8101int usb_autoresume_device(struct usb_device *udev ) ;
 8102#line 79
 8103int usb_remote_wakeup(struct usb_device *udev ) ;
 8104#line 93 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8105__inline static int hub_is_superspeed(struct usb_device *hdev ) 
 8106{ __u8 __cil_tmp2 ;
 8107  unsigned int __cil_tmp3 ;
 8108
 8109  {
 8110  {
 8111#line 95
 8112  __cil_tmp2 = hdev->descriptor.bDeviceProtocol;
 8113#line 95
 8114  __cil_tmp3 = (unsigned int )__cil_tmp2;
 8115#line 95
 8116  return (__cil_tmp3 == 3U);
 8117  }
 8118}
 8119}
 8120#line 101 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8121static spinlock_t device_state_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
 8122                                                                      {(struct lock_class *)0,
 8123                                                                       (struct lock_class *)0},
 8124                                                                      "device_state_lock",
 8125                                                                      0, 0UL}}}};
 8126#line 104 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8127static spinlock_t hub_event_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
 8128                                                                      {(struct lock_class *)0,
 8129                                                                       (struct lock_class *)0},
 8130                                                                      "hub_event_lock",
 8131                                                                      0, 0UL}}}};
 8132#line 105 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8133static struct list_head hub_event_list  =    {& hub_event_list, & hub_event_list};
 8134#line 108 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8135static wait_queue_head_t khubd_wait  =    {{{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
 8136                                                                       {(struct lock_class *)0,
 8137                                                                        (struct lock_class *)0},
 8138                                                                       "khubd_wait.lock",
 8139                                                                       0, 0UL}}}},
 8140    {& khubd_wait.task_list, & khubd_wait.task_list}};
 8141#line 110 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8142static struct task_struct *khubd_task  ;
 8143#line 113 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8144static int blinkenlights  =    0;
 8145#line 122 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8146static int initial_descriptor_timeout  =    5000;
 8147#line 142 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8148static int old_scheme_first  =    0;
 8149#line 147 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8150static int use_both_schemes  =    1;
 8151#line 156 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8152struct rw_semaphore ehci_cf_port_reset_rwsem  =    {0L, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
 8153                                                                           {(struct lock_class *)0,
 8154                                                                            (struct lock_class *)0},
 8155                                                                           "ehci_cf_port_reset_rwsem.wait_lock",
 8156                                                                           0, 0UL}}}},
 8157    {& ehci_cf_port_reset_rwsem.wait_list, & ehci_cf_port_reset_rwsem.wait_list},
 8158    {(struct lock_class_key *)0, {(struct lock_class *)0, (struct lock_class *)0},
 8159     "ehci_cf_port_reset_rwsem", 0, 0UL}};
 8160#line 164
 8161static int usb_reset_and_verify_device(struct usb_device *udev ) ;
 8162#line 166 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8163__inline static char *portspeed(struct usb_hub *hub , int portstatus ) 
 8164{ int tmp ;
 8165  struct usb_device *__cil_tmp4 ;
 8166  int __cil_tmp5 ;
 8167  int __cil_tmp6 ;
 8168
 8169  {
 8170  {
 8171#line 168
 8172  __cil_tmp4 = hub->hdev;
 8173#line 168
 8174  tmp = hub_is_superspeed(__cil_tmp4);
 8175  }
 8176#line 168
 8177  if (tmp != 0) {
 8178#line 169
 8179    return ((char *)"5.0 Gb/s");
 8180  } else {
 8181
 8182  }
 8183  {
 8184#line 170
 8185  __cil_tmp5 = portstatus & 1024;
 8186#line 170
 8187  if (__cil_tmp5 != 0) {
 8188#line 171
 8189    return ((char *)"480 Mb/s");
 8190  } else {
 8191    {
 8192#line 172
 8193    __cil_tmp6 = portstatus & 512;
 8194#line 172
 8195    if (__cil_tmp6 != 0) {
 8196#line 173
 8197      return ((char *)"1.5 Mb/s");
 8198    } else {
 8199#line 175
 8200      return ((char *)"12 Mb/s");
 8201    }
 8202    }
 8203  }
 8204  }
 8205}
 8206}
 8207#line 179 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8208static struct usb_hub *hdev_to_hub(struct usb_device *hdev ) 
 8209{ void *tmp ;
 8210  struct usb_device *__cil_tmp3 ;
 8211  unsigned long __cil_tmp4 ;
 8212  unsigned long __cil_tmp5 ;
 8213  struct usb_host_config *__cil_tmp6 ;
 8214  unsigned long __cil_tmp7 ;
 8215  struct usb_host_config *__cil_tmp8 ;
 8216  unsigned long __cil_tmp9 ;
 8217  struct usb_host_config *__cil_tmp10 ;
 8218  struct usb_interface *__cil_tmp11 ;
 8219
 8220  {
 8221  {
 8222#line 181
 8223  __cil_tmp3 = (struct usb_device *)0;
 8224#line 181
 8225  __cil_tmp4 = (unsigned long )__cil_tmp3;
 8226#line 181
 8227  __cil_tmp5 = (unsigned long )hdev;
 8228#line 181
 8229  if (__cil_tmp5 == __cil_tmp4) {
 8230#line 182
 8231    return ((struct usb_hub *)0);
 8232  } else {
 8233    {
 8234#line 181
 8235    __cil_tmp6 = (struct usb_host_config *)0;
 8236#line 181
 8237    __cil_tmp7 = (unsigned long )__cil_tmp6;
 8238#line 181
 8239    __cil_tmp8 = hdev->actconfig;
 8240#line 181
 8241    __cil_tmp9 = (unsigned long )__cil_tmp8;
 8242#line 181
 8243    if (__cil_tmp9 == __cil_tmp7) {
 8244#line 182
 8245      return ((struct usb_hub *)0);
 8246    } else {
 8247
 8248    }
 8249    }
 8250  }
 8251  }
 8252  {
 8253#line 183
 8254  __cil_tmp10 = hdev->actconfig;
 8255#line 183
 8256  __cil_tmp11 = __cil_tmp10->interface[0];
 8257#line 183
 8258  tmp = usb_get_intfdata(__cil_tmp11);
 8259  }
 8260#line 183
 8261  return ((struct usb_hub *)tmp);
 8262}
 8263}
 8264#line 187 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8265static int get_hub_descriptor(struct usb_device *hdev , void *data ) 
 8266{ int i ;
 8267  int ret ;
 8268  int size ;
 8269  unsigned int dtype ;
 8270  int tmp ;
 8271  unsigned int tmp___0 ;
 8272  unsigned int __cil_tmp9 ;
 8273  __u8 __cil_tmp10 ;
 8274  __u8 __cil_tmp11 ;
 8275  __u16 __cil_tmp12 ;
 8276  int __cil_tmp13 ;
 8277  int __cil_tmp14 ;
 8278  __u16 __cil_tmp15 ;
 8279  __u16 __cil_tmp16 ;
 8280  __u16 __cil_tmp17 ;
 8281  int __cil_tmp18 ;
 8282  __u16 __cil_tmp19 ;
 8283
 8284  {
 8285  {
 8286#line 192
 8287  tmp = hub_is_superspeed(hdev);
 8288  }
 8289#line 192
 8290  if (tmp != 0) {
 8291#line 193
 8292    dtype = 42U;
 8293#line 194
 8294    size = 12;
 8295  } else {
 8296#line 196
 8297    dtype = 41U;
 8298#line 197
 8299    size = 15;
 8300  }
 8301#line 200
 8302  i = 0;
 8303#line 200
 8304  goto ldv_25575;
 8305  ldv_25574: 
 8306  {
 8307#line 201
 8308  tmp___0 = __create_pipe(hdev, 0U);
 8309#line 201
 8310  __cil_tmp9 = tmp___0 | 2147483776U;
 8311#line 201
 8312  __cil_tmp10 = (__u8 )6;
 8313#line 201
 8314  __cil_tmp11 = (__u8 )160;
 8315#line 201
 8316  __cil_tmp12 = (__u16 )dtype;
 8317#line 201
 8318  __cil_tmp13 = (int )__cil_tmp12;
 8319#line 201
 8320  __cil_tmp14 = __cil_tmp13 << 8U;
 8321#line 201
 8322  __cil_tmp15 = (__u16 )__cil_tmp14;
 8323#line 201
 8324  __cil_tmp16 = (__u16 )0;
 8325#line 201
 8326  __cil_tmp17 = (__u16 )size;
 8327#line 201
 8328  __cil_tmp18 = (int )__cil_tmp17;
 8329#line 201
 8330  __cil_tmp19 = (__u16 )__cil_tmp18;
 8331#line 201
 8332  ret = usb_control_msg(hdev, __cil_tmp9, __cil_tmp10, __cil_tmp11, __cil_tmp15, __cil_tmp16,
 8333                        data, __cil_tmp19, 5000);
 8334  }
 8335#line 205
 8336  if (ret > 8) {
 8337#line 206
 8338    return (ret);
 8339  } else {
 8340
 8341  }
 8342#line 200
 8343  i = i + 1;
 8344  ldv_25575: ;
 8345#line 200
 8346  if (i <= 2) {
 8347#line 201
 8348    goto ldv_25574;
 8349  } else {
 8350#line 203
 8351    goto ldv_25576;
 8352  }
 8353  ldv_25576: ;
 8354#line 208
 8355  return (-22);
 8356}
 8357}
 8358#line 214 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8359static int clear_hub_feature(struct usb_device *hdev , int feature ) 
 8360{ unsigned int tmp ;
 8361  int tmp___0 ;
 8362  unsigned int __cil_tmp5 ;
 8363  __u8 __cil_tmp6 ;
 8364  __u8 __cil_tmp7 ;
 8365  __u16 __cil_tmp8 ;
 8366  int __cil_tmp9 ;
 8367  __u16 __cil_tmp10 ;
 8368  __u16 __cil_tmp11 ;
 8369  void *__cil_tmp12 ;
 8370  __u16 __cil_tmp13 ;
 8371
 8372  {
 8373  {
 8374#line 216
 8375  tmp = __create_pipe(hdev, 0U);
 8376#line 216
 8377  __cil_tmp5 = tmp | 2147483648U;
 8378#line 216
 8379  __cil_tmp6 = (__u8 )1;
 8380#line 216
 8381  __cil_tmp7 = (__u8 )32;
 8382#line 216
 8383  __cil_tmp8 = (__u16 )feature;
 8384#line 216
 8385  __cil_tmp9 = (int )__cil_tmp8;
 8386#line 216
 8387  __cil_tmp10 = (__u16 )__cil_tmp9;
 8388#line 216
 8389  __cil_tmp11 = (__u16 )0;
 8390#line 216
 8391  __cil_tmp12 = (void *)0;
 8392#line 216
 8393  __cil_tmp13 = (__u16 )0;
 8394#line 216
 8395  tmp___0 = usb_control_msg(hdev, __cil_tmp5, __cil_tmp6, __cil_tmp7, __cil_tmp10,
 8396                            __cil_tmp11, __cil_tmp12, __cil_tmp13, 1000);
 8397  }
 8398#line 216
 8399  return (tmp___0);
 8400}
 8401}
 8402#line 223 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8403static int clear_port_feature(struct usb_device *hdev , int port1 , int feature ) 
 8404{ unsigned int tmp ;
 8405  int tmp___0 ;
 8406  unsigned int __cil_tmp6 ;
 8407  __u8 __cil_tmp7 ;
 8408  __u8 __cil_tmp8 ;
 8409  __u16 __cil_tmp9 ;
 8410  int __cil_tmp10 ;
 8411  __u16 __cil_tmp11 ;
 8412  __u16 __cil_tmp12 ;
 8413  int __cil_tmp13 ;
 8414  __u16 __cil_tmp14 ;
 8415  void *__cil_tmp15 ;
 8416  __u16 __cil_tmp16 ;
 8417
 8418  {
 8419  {
 8420#line 225
 8421  tmp = __create_pipe(hdev, 0U);
 8422#line 225
 8423  __cil_tmp6 = tmp | 2147483648U;
 8424#line 225
 8425  __cil_tmp7 = (__u8 )1;
 8426#line 225
 8427  __cil_tmp8 = (__u8 )35;
 8428#line 225
 8429  __cil_tmp9 = (__u16 )feature;
 8430#line 225
 8431  __cil_tmp10 = (int )__cil_tmp9;
 8432#line 225
 8433  __cil_tmp11 = (__u16 )__cil_tmp10;
 8434#line 225
 8435  __cil_tmp12 = (__u16 )port1;
 8436#line 225
 8437  __cil_tmp13 = (int )__cil_tmp12;
 8438#line 225
 8439  __cil_tmp14 = (__u16 )__cil_tmp13;
 8440#line 225
 8441  __cil_tmp15 = (void *)0;
 8442#line 225
 8443  __cil_tmp16 = (__u16 )0;
 8444#line 225
 8445  tmp___0 = usb_control_msg(hdev, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp11,
 8446                            __cil_tmp14, __cil_tmp15, __cil_tmp16, 1000);
 8447  }
 8448#line 225
 8449  return (tmp___0);
 8450}
 8451}
 8452#line 233 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8453static int set_port_feature(struct usb_device *hdev , int port1 , int feature ) 
 8454{ unsigned int tmp ;
 8455  int tmp___0 ;
 8456  unsigned int __cil_tmp6 ;
 8457  __u8 __cil_tmp7 ;
 8458  __u8 __cil_tmp8 ;
 8459  __u16 __cil_tmp9 ;
 8460  int __cil_tmp10 ;
 8461  __u16 __cil_tmp11 ;
 8462  __u16 __cil_tmp12 ;
 8463  int __cil_tmp13 ;
 8464  __u16 __cil_tmp14 ;
 8465  void *__cil_tmp15 ;
 8466  __u16 __cil_tmp16 ;
 8467
 8468  {
 8469  {
 8470#line 235
 8471  tmp = __create_pipe(hdev, 0U);
 8472#line 235
 8473  __cil_tmp6 = tmp | 2147483648U;
 8474#line 235
 8475  __cil_tmp7 = (__u8 )3;
 8476#line 235
 8477  __cil_tmp8 = (__u8 )35;
 8478#line 235
 8479  __cil_tmp9 = (__u16 )feature;
 8480#line 235
 8481  __cil_tmp10 = (int )__cil_tmp9;
 8482#line 235
 8483  __cil_tmp11 = (__u16 )__cil_tmp10;
 8484#line 235
 8485  __cil_tmp12 = (__u16 )port1;
 8486#line 235
 8487  __cil_tmp13 = (int )__cil_tmp12;
 8488#line 235
 8489  __cil_tmp14 = (__u16 )__cil_tmp13;
 8490#line 235
 8491  __cil_tmp15 = (void *)0;
 8492#line 235
 8493  __cil_tmp16 = (__u16 )0;
 8494#line 235
 8495  tmp___0 = usb_control_msg(hdev, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp11,
 8496                            __cil_tmp14, __cil_tmp15, __cil_tmp16, 1000);
 8497  }
 8498#line 235
 8499  return (tmp___0);
 8500}
 8501}
 8502#line 244 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8503static void set_port_led(struct usb_hub *hub , int port1 , int selector ) 
 8504{ int status ;
 8505  int tmp ;
 8506  char *s ;
 8507  struct usb_device *__cil_tmp7 ;
 8508  int __cil_tmp8 ;
 8509  int __cil_tmp9 ;
 8510  struct device *__cil_tmp10 ;
 8511  struct device  const  *__cil_tmp11 ;
 8512
 8513  {
 8514  {
 8515#line 250
 8516  __cil_tmp7 = hub->hdev;
 8517#line 250
 8518  __cil_tmp8 = selector << 8;
 8519#line 250
 8520  __cil_tmp9 = __cil_tmp8 | port1;
 8521#line 250
 8522  tmp = set_port_feature(__cil_tmp7, __cil_tmp9, 22);
 8523#line 250
 8524  status = tmp;
 8525  }
 8526#line 252
 8527  if (status < 0) {
 8528#line 253
 8529    if (selector == 1) {
 8530#line 253
 8531      goto case_1;
 8532    } else
 8533#line 253
 8534    if (selector == 2) {
 8535#line 253
 8536      goto case_2;
 8537    } else
 8538#line 253
 8539    if (selector == 3) {
 8540#line 253
 8541      goto case_3;
 8542    } else
 8543#line 253
 8544    if (selector == 0) {
 8545#line 253
 8546      goto case_0;
 8547    } else {
 8548#line 253
 8549      goto switch_default;
 8550#line 253
 8551      if (0) {
 8552        case_1: 
 8553#line 253
 8554        s = (char *)"amber";
 8555#line 253
 8556        goto ldv_25599;
 8557        case_2: 
 8558#line 253
 8559        s = (char *)"green";
 8560#line 253
 8561        goto ldv_25599;
 8562        case_3: 
 8563#line 253
 8564        s = (char *)"off";
 8565#line 253
 8566        goto ldv_25599;
 8567        case_0: 
 8568#line 253
 8569        s = (char *)"auto";
 8570#line 253
 8571        goto ldv_25599;
 8572        switch_default: 
 8573#line 253
 8574        s = (char *)"??";
 8575#line 253
 8576        goto ldv_25599;
 8577      } else {
 8578
 8579      }
 8580    }
 8581    ldv_25599: 
 8582    {
 8583#line 253
 8584    __cil_tmp10 = hub->intfdev;
 8585#line 253
 8586    __cil_tmp11 = (struct device  const  *)__cil_tmp10;
 8587#line 253
 8588    dev_printk("<7>", __cil_tmp11, "port %d indicator %s status %d\n", port1, s, status);
 8589    }
 8590  } else {
 8591
 8592  }
 8593#line 255
 8594  return;
 8595}
 8596}
 8597#line 268 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8598static void led_work(struct work_struct *work ) 
 8599{ struct usb_hub *hub ;
 8600  struct work_struct  const  *__mptr ;
 8601  struct usb_device *hdev ;
 8602  unsigned int i ;
 8603  unsigned int changed ;
 8604  int cursor ;
 8605  unsigned int selector ;
 8606  unsigned int mode ;
 8607  struct usb_hub *__cil_tmp10 ;
 8608  enum usb_device_state __cil_tmp11 ;
 8609  unsigned int __cil_tmp12 ;
 8610  unsigned char *__cil_tmp13 ;
 8611  unsigned char *__cil_tmp14 ;
 8612  unsigned char __cil_tmp15 ;
 8613  unsigned int __cil_tmp16 ;
 8614  u8 __cil_tmp17 ;
 8615  int __cil_tmp18 ;
 8616  u8 __cil_tmp19 ;
 8617  int __cil_tmp20 ;
 8618  u8 __cil_tmp21 ;
 8619  int __cil_tmp22 ;
 8620  u8 __cil_tmp23 ;
 8621  int __cil_tmp24 ;
 8622  u8 __cil_tmp25 ;
 8623  int __cil_tmp26 ;
 8624  u8 __cil_tmp27 ;
 8625  int __cil_tmp28 ;
 8626  u8 __cil_tmp29 ;
 8627  int __cil_tmp30 ;
 8628  unsigned int __cil_tmp31 ;
 8629  int __cil_tmp32 ;
 8630  int __cil_tmp33 ;
 8631  struct usb_hub_descriptor *__cil_tmp34 ;
 8632  __u8 __cil_tmp35 ;
 8633  unsigned int __cil_tmp36 ;
 8634  struct usb_hub_descriptor *__cil_tmp37 ;
 8635  __u8 __cil_tmp38 ;
 8636  int __cil_tmp39 ;
 8637  int __cil_tmp40 ;
 8638  struct delayed_work *__cil_tmp41 ;
 8639
 8640  {
 8641#line 271
 8642  __mptr = (struct work_struct  const  *)work;
 8643#line 271
 8644  __cil_tmp10 = (struct usb_hub *)__mptr;
 8645#line 271
 8646  hub = __cil_tmp10 + 1152921504606846472UL;
 8647#line 272
 8648  hdev = hub->hdev;
 8649#line 274
 8650  changed = 0U;
 8651#line 275
 8652  cursor = -1;
 8653  {
 8654#line 277
 8655  __cil_tmp11 = hdev->state;
 8656#line 277
 8657  __cil_tmp12 = (unsigned int )__cil_tmp11;
 8658#line 277
 8659  if (__cil_tmp12 != 7U) {
 8660#line 278
 8661    return;
 8662  } else {
 8663    {
 8664#line 277
 8665    __cil_tmp13 = (unsigned char *)hub;
 8666#line 277
 8667    __cil_tmp14 = __cil_tmp13 + 468UL;
 8668#line 277
 8669    __cil_tmp15 = *__cil_tmp14;
 8670#line 277
 8671    __cil_tmp16 = (unsigned int )__cil_tmp15;
 8672#line 277
 8673    if (__cil_tmp16 != 0U) {
 8674#line 278
 8675      return;
 8676    } else {
 8677
 8678    }
 8679    }
 8680  }
 8681  }
 8682#line 280
 8683  i = 0U;
 8684#line 280
 8685  goto ldv_25628;
 8686  ldv_25627: ;
 8687  {
 8688#line 287
 8689  __cil_tmp17 = hub->indicator[i];
 8690#line 287
 8691  __cil_tmp18 = (int )__cil_tmp17;
 8692#line 287
 8693  if (__cil_tmp18 == 1) {
 8694#line 287
 8695    goto case_1;
 8696  } else {
 8697    {
 8698#line 293
 8699    __cil_tmp19 = hub->indicator[i];
 8700#line 293
 8701    __cil_tmp20 = (int )__cil_tmp19;
 8702#line 293
 8703    if (__cil_tmp20 == 2) {
 8704#line 293
 8705      goto case_2;
 8706    } else {
 8707      {
 8708#line 297
 8709      __cil_tmp21 = hub->indicator[i];
 8710#line 297
 8711      __cil_tmp22 = (int )__cil_tmp21;
 8712#line 297
 8713      if (__cil_tmp22 == 3) {
 8714#line 297
 8715        goto case_3;
 8716      } else {
 8717        {
 8718#line 302
 8719        __cil_tmp23 = hub->indicator[i];
 8720#line 302
 8721        __cil_tmp24 = (int )__cil_tmp23;
 8722#line 302
 8723        if (__cil_tmp24 == 4) {
 8724#line 302
 8725          goto case_4;
 8726        } else {
 8727          {
 8728#line 306
 8729          __cil_tmp25 = hub->indicator[i];
 8730#line 306
 8731          __cil_tmp26 = (int )__cil_tmp25;
 8732#line 306
 8733          if (__cil_tmp26 == 5) {
 8734#line 306
 8735            goto case_5;
 8736          } else {
 8737            {
 8738#line 311
 8739            __cil_tmp27 = hub->indicator[i];
 8740#line 311
 8741            __cil_tmp28 = (int )__cil_tmp27;
 8742#line 311
 8743            if (__cil_tmp28 == 6) {
 8744#line 311
 8745              goto case_6;
 8746            } else {
 8747              {
 8748#line 315
 8749              __cil_tmp29 = hub->indicator[i];
 8750#line 315
 8751              __cil_tmp30 = (int )__cil_tmp29;
 8752#line 315
 8753              if (__cil_tmp30 == 7) {
 8754#line 315
 8755                goto case_7;
 8756              } else {
 8757#line 319
 8758                goto switch_default;
 8759#line 285
 8760                if (0) {
 8761                  case_1: 
 8762#line 288
 8763                  cursor = (int )i;
 8764#line 289
 8765                  selector = 0U;
 8766#line 290
 8767                  mode = 0U;
 8768#line 291
 8769                  goto ldv_25618;
 8770                  case_2: 
 8771#line 294
 8772                  selector = 2U;
 8773#line 295
 8774                  mode = 3U;
 8775#line 296
 8776                  goto ldv_25618;
 8777                  case_3: 
 8778#line 298
 8779                  selector = 3U;
 8780#line 299
 8781                  mode = 2U;
 8782#line 300
 8783                  goto ldv_25618;
 8784                  case_4: 
 8785#line 303
 8786                  selector = 1U;
 8787#line 304
 8788                  mode = 5U;
 8789#line 305
 8790                  goto ldv_25618;
 8791                  case_5: 
 8792#line 307
 8793                  selector = 3U;
 8794#line 308
 8795                  mode = 4U;
 8796#line 309
 8797                  goto ldv_25618;
 8798                  case_6: 
 8799#line 312
 8800                  selector = 2U;
 8801#line 313
 8802                  mode = 7U;
 8803#line 314
 8804                  goto ldv_25618;
 8805                  case_7: 
 8806#line 316
 8807                  selector = 1U;
 8808#line 317
 8809                  mode = 6U;
 8810#line 318
 8811                  goto ldv_25618;
 8812                  switch_default: ;
 8813#line 320
 8814                  goto ldv_25626;
 8815                } else {
 8816
 8817                }
 8818              }
 8819              }
 8820            }
 8821            }
 8822          }
 8823          }
 8824        }
 8825        }
 8826      }
 8827      }
 8828    }
 8829    }
 8830  }
 8831  }
 8832  ldv_25618: ;
 8833#line 322
 8834  if (selector != 0U) {
 8835#line 323
 8836    changed = 1U;
 8837  } else {
 8838
 8839  }
 8840  {
 8841#line 324
 8842  __cil_tmp31 = i + 1U;
 8843#line 324
 8844  __cil_tmp32 = (int )__cil_tmp31;
 8845#line 324
 8846  __cil_tmp33 = (int )selector;
 8847#line 324
 8848  set_port_led(hub, __cil_tmp32, __cil_tmp33);
 8849#line 325
 8850  hub->indicator[i] = (u8 )mode;
 8851  }
 8852  ldv_25626: 
 8853#line 280
 8854  i = i + 1U;
 8855  ldv_25628: ;
 8856  {
 8857#line 280
 8858  __cil_tmp34 = hub->descriptor;
 8859#line 280
 8860  __cil_tmp35 = __cil_tmp34->bNbrPorts;
 8861#line 280
 8862  __cil_tmp36 = (unsigned int )__cil_tmp35;
 8863#line 280
 8864  if (__cil_tmp36 > i) {
 8865#line 281
 8866    goto ldv_25627;
 8867  } else {
 8868#line 283
 8869    goto ldv_25629;
 8870  }
 8871  }
 8872  ldv_25629: ;
 8873#line 327
 8874  if (changed == 0U) {
 8875#line 327
 8876    if (blinkenlights != 0) {
 8877      {
 8878#line 328
 8879      cursor = cursor + 1;
 8880#line 329
 8881      __cil_tmp37 = hub->descriptor;
 8882#line 329
 8883      __cil_tmp38 = __cil_tmp37->bNbrPorts;
 8884#line 329
 8885      __cil_tmp39 = (int )__cil_tmp38;
 8886#line 329
 8887      cursor = cursor % __cil_tmp39;
 8888#line 330
 8889      __cil_tmp40 = cursor + 1;
 8890#line 330
 8891      set_port_led(hub, __cil_tmp40, 2);
 8892#line 331
 8893      hub->indicator[cursor] = (u8 )1U;
 8894#line 332
 8895      changed = changed + 1U;
 8896      }
 8897    } else {
 8898
 8899    }
 8900  } else {
 8901
 8902  }
 8903#line 334
 8904  if (changed != 0U) {
 8905    {
 8906#line 335
 8907    __cil_tmp41 = & hub->leds;
 8908#line 335
 8909    schedule_delayed_work(__cil_tmp41, 166UL);
 8910    }
 8911  } else {
 8912
 8913  }
 8914#line 336
 8915  return;
 8916}
 8917}
 8918#line 345 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8919static int get_hub_status(struct usb_device *hdev , struct usb_hub_status *data ) 
 8920{ int i ;
 8921  int status ;
 8922  unsigned int tmp ;
 8923  unsigned int __cil_tmp6 ;
 8924  __u8 __cil_tmp7 ;
 8925  __u8 __cil_tmp8 ;
 8926  __u16 __cil_tmp9 ;
 8927  __u16 __cil_tmp10 ;
 8928  void *__cil_tmp11 ;
 8929  __u16 __cil_tmp12 ;
 8930
 8931  {
 8932#line 348
 8933  status = -110;
 8934#line 350
 8935  i = 0;
 8936#line 350
 8937  goto ldv_25637;
 8938  ldv_25636: 
 8939  {
 8940#line 352
 8941  tmp = __create_pipe(hdev, 0U);
 8942#line 352
 8943  __cil_tmp6 = tmp | 2147483776U;
 8944#line 352
 8945  __cil_tmp7 = (__u8 )0;
 8946#line 352
 8947  __cil_tmp8 = (__u8 )160;
 8948#line 352
 8949  __cil_tmp9 = (__u16 )0;
 8950#line 352
 8951  __cil_tmp10 = (__u16 )0;
 8952#line 352
 8953  __cil_tmp11 = (void *)data;
 8954#line 352
 8955  __cil_tmp12 = (__u16 )4;
 8956#line 352
 8957  status = usb_control_msg(hdev, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp9, __cil_tmp10,
 8958                           __cil_tmp11, __cil_tmp12, 1000);
 8959#line 351
 8960  i = i + 1;
 8961  }
 8962  ldv_25637: ;
 8963#line 350
 8964  if (i <= 4) {
 8965#line 350
 8966    if (status == -110) {
 8967#line 352
 8968      goto ldv_25636;
 8969    } else
 8970#line 350
 8971    if (status == -32) {
 8972#line 352
 8973      goto ldv_25636;
 8974    } else {
 8975#line 354
 8976      goto ldv_25638;
 8977    }
 8978  } else {
 8979#line 354
 8980    goto ldv_25638;
 8981  }
 8982  ldv_25638: ;
 8983#line 356
 8984  return (status);
 8985}
 8986}
 8987#line 362 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 8988static int get_port_status(struct usb_device *hdev , int port1 , struct usb_port_status *data ) 
 8989{ int i ;
 8990  int status ;
 8991  unsigned int tmp ;
 8992  unsigned int __cil_tmp7 ;
 8993  __u8 __cil_tmp8 ;
 8994  __u8 __cil_tmp9 ;
 8995  __u16 __cil_tmp10 ;
 8996  __u16 __cil_tmp11 ;
 8997  int __cil_tmp12 ;
 8998  __u16 __cil_tmp13 ;
 8999  void *__cil_tmp14 ;
 9000  __u16 __cil_tmp15 ;
 9001
 9002  {
 9003#line 365
 9004  status = -110;
 9005#line 367
 9006  i = 0;
 9007#line 367
 9008  goto ldv_25647;
 9009  ldv_25646: 
 9010  {
 9011#line 369
 9012  tmp = __create_pipe(hdev, 0U);
 9013#line 369
 9014  __cil_tmp7 = tmp | 2147483776U;
 9015#line 369
 9016  __cil_tmp8 = (__u8 )0;
 9017#line 369
 9018  __cil_tmp9 = (__u8 )163;
 9019#line 369
 9020  __cil_tmp10 = (__u16 )0;
 9021#line 369
 9022  __cil_tmp11 = (__u16 )port1;
 9023#line 369
 9024  __cil_tmp12 = (int )__cil_tmp11;
 9025#line 369
 9026  __cil_tmp13 = (__u16 )__cil_tmp12;
 9027#line 369
 9028  __cil_tmp14 = (void *)data;
 9029#line 369
 9030  __cil_tmp15 = (__u16 )4;
 9031#line 369
 9032  status = usb_control_msg(hdev, __cil_tmp7, __cil_tmp8, __cil_tmp9, __cil_tmp10,
 9033                           __cil_tmp13, __cil_tmp14, __cil_tmp15, 1000);
 9034#line 368
 9035  i = i + 1;
 9036  }
 9037  ldv_25647: ;
 9038#line 367
 9039  if (i <= 4) {
 9040#line 367
 9041    if (status == -110) {
 9042#line 369
 9043      goto ldv_25646;
 9044    } else
 9045#line 367
 9046    if (status == -32) {
 9047#line 369
 9048      goto ldv_25646;
 9049    } else {
 9050#line 371
 9051      goto ldv_25648;
 9052    }
 9053  } else {
 9054#line 371
 9055    goto ldv_25648;
 9056  }
 9057  ldv_25648: ;
 9058#line 373
 9059  return (status);
 9060}
 9061}
 9062#line 376 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 9063static int hub_port_status(struct usb_hub *hub , int port1 , u16 *status , u16 *change ) 
 9064{ int ret ;
 9065  struct mutex *__cil_tmp6 ;
 9066  struct usb_device *__cil_tmp7 ;
 9067  union __anonunion_status_183 *__cil_tmp8 ;
 9068  struct usb_port_status *__cil_tmp9 ;
 9069  struct device *__cil_tmp10 ;
 9070  struct device  const  *__cil_tmp11 ;
 9071  union __anonunion_status_183 *__cil_tmp12 ;
 9072  union __anonunion_status_183 *__cil_tmp13 ;
 9073  struct mutex *__cil_tmp14 ;
 9074
 9075  {
 9076  {
 9077#line 381
 9078  __cil_tmp6 = & hub->status_mutex;
 9079#line 381
 9080  mutex_lock_nested(__cil_tmp6, 0U);
 9081#line 382
 9082  __cil_tmp7 = hub->hdev;
 9083#line 382
 9084  __cil_tmp8 = hub->status;
 9085#line 382
 9086  __cil_tmp9 = & __cil_tmp8->port;
 9087#line 382
 9088  ret = get_port_status(__cil_tmp7, port1, __cil_tmp9);
 9089  }
 9090#line 383
 9091  if (ret <= 3) {
 9092    {
 9093#line 384
 9094    __cil_tmp10 = hub->intfdev;
 9095#line 384
 9096    __cil_tmp11 = (struct device  const  *)__cil_tmp10;
 9097#line 384
 9098    dev_err(__cil_tmp11, "%s failed (err = %d)\n", "hub_port_status", ret);
 9099    }
 9100#line 386
 9101    if (ret >= 0) {
 9102#line 387
 9103      ret = -5;
 9104    } else {
 9105
 9106    }
 9107  } else {
 9108#line 389
 9109    __cil_tmp12 = hub->status;
 9110#line 389
 9111    *status = __cil_tmp12->port.wPortStatus;
 9112#line 390
 9113    __cil_tmp13 = hub->status;
 9114#line 390
 9115    *change = __cil_tmp13->port.wPortChange;
 9116#line 392
 9117    ret = 0;
 9118  }
 9119  {
 9120#line 394
 9121  __cil_tmp14 = & hub->status_mutex;
 9122#line 394
 9123  mutex_unlock(__cil_tmp14);
 9124  }
 9125#line 395
 9126  return (ret);
 9127}
 9128}
 9129#line 398 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 9130static void kick_khubd(struct usb_hub *hub ) 
 9131{ unsigned long flags ;
 9132  raw_spinlock_t *tmp ;
 9133  struct device  const  *__mptr ;
 9134  int tmp___0 ;
 9135  unsigned char *__cil_tmp6 ;
 9136  unsigned char *__cil_tmp7 ;
 9137  unsigned char __cil_tmp8 ;
 9138  unsigned int __cil_tmp9 ;
 9139  struct list_head *__cil_tmp10 ;
 9140  struct list_head  const  *__cil_tmp11 ;
 9141  struct list_head *__cil_tmp12 ;
 9142  struct device *__cil_tmp13 ;
 9143  struct usb_interface *__cil_tmp14 ;
 9144  struct usb_interface *__cil_tmp15 ;
 9145  void *__cil_tmp16 ;
 9146
 9147  {
 9148  {
 9149#line 402
 9150  tmp = spinlock_check(& hub_event_lock);
 9151#line 402
 9152  flags = _raw_spin_lock_irqsave(tmp);
 9153  }
 9154  {
 9155#line 403
 9156  __cil_tmp6 = (unsigned char *)hub;
 9157#line 403
 9158  __cil_tmp7 = __cil_tmp6 + 468UL;
 9159#line 403
 9160  __cil_tmp8 = *__cil_tmp7;
 9161#line 403
 9162  __cil_tmp9 = (unsigned int )__cil_tmp8;
 9163#line 403
 9164  if (__cil_tmp9 == 0U) {
 9165    {
 9166#line 403
 9167    __cil_tmp10 = & hub->event_list;
 9168#line 403
 9169    __cil_tmp11 = (struct list_head  const  *)__cil_tmp10;
 9170#line 403
 9171    tmp___0 = list_empty(__cil_tmp11);
 9172    }
 9173#line 403
 9174    if (tmp___0 != 0) {
 9175      {
 9176#line 404
 9177      __cil_tmp12 = & hub->event_list;
 9178#line 404
 9179      list_add_tail(__cil_tmp12, & hub_event_list);
 9180#line 408
 9181      __cil_tmp13 = hub->intfdev;
 9182#line 408
 9183      __mptr = (struct device  const  *)__cil_tmp13;
 9184#line 408
 9185      __cil_tmp14 = (struct usb_interface *)__mptr;
 9186#line 408
 9187      __cil_tmp15 = __cil_tmp14 + 1152921504606846928UL;
 9188#line 408
 9189      usb_autopm_get_interface_no_resume(__cil_tmp15);
 9190#line 409
 9191      __cil_tmp16 = (void *)0;
 9192#line 409
 9193      __wake_up(& khubd_wait, 3U, 1, __cil_tmp16);
 9194      }
 9195    } else {
 9196
 9197    }
 9198  } else {
 9199
 9200  }
 9201  }
 9202  {
 9203#line 411
 9204  spin_unlock_irqrestore(& hub_event_lock, flags);
 9205  }
 9206#line 412
 9207  return;
 9208}
 9209}
 9210#line 414 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 9211void usb_kick_khubd(struct usb_device *hdev ) 
 9212{ struct usb_hub *hub ;
 9213  struct usb_hub *tmp ;
 9214  struct usb_hub *__cil_tmp4 ;
 9215  unsigned long __cil_tmp5 ;
 9216  unsigned long __cil_tmp6 ;
 9217
 9218  {
 9219  {
 9220#line 416
 9221  tmp = hdev_to_hub(hdev);
 9222#line 416
 9223  hub = tmp;
 9224  }
 9225  {
 9226#line 418
 9227  __cil_tmp4 = (struct usb_hub *)0;
 9228#line 418
 9229  __cil_tmp5 = (unsigned long )__cil_tmp4;
 9230#line 418
 9231  __cil_tmp6 = (unsigned long )hub;
 9232#line 418
 9233  if (__cil_tmp6 != __cil_tmp5) {
 9234    {
 9235#line 419
 9236    kick_khubd(hub);
 9237    }
 9238  } else {
 9239
 9240  }
 9241  }
 9242#line 420
 9243  return;
 9244}
 9245}
 9246#line 424 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 9247static void hub_irq(struct urb *urb ) 
 9248{ struct usb_hub *hub ;
 9249  int status ;
 9250  unsigned int i ;
 9251  unsigned long bits ;
 9252  void *__cil_tmp6 ;
 9253  struct device *__cil_tmp7 ;
 9254  struct device  const  *__cil_tmp8 ;
 9255  int __cil_tmp9 ;
 9256  int __cil_tmp10 ;
 9257  int __cil_tmp11 ;
 9258  unsigned int __cil_tmp12 ;
 9259  int __cil_tmp13 ;
 9260  char (*__cil_tmp14)[8U] ;
 9261  char __cil_tmp15 ;
 9262  unsigned long __cil_tmp16 ;
 9263  unsigned long __cil_tmp17 ;
 9264  u32 __cil_tmp18 ;
 9265  unsigned char *__cil_tmp19 ;
 9266  unsigned char *__cil_tmp20 ;
 9267  unsigned char __cil_tmp21 ;
 9268  unsigned int __cil_tmp22 ;
 9269  struct urb *__cil_tmp23 ;
 9270  struct device *__cil_tmp24 ;
 9271  struct device  const  *__cil_tmp25 ;
 9272
 9273  {
 9274#line 426
 9275  __cil_tmp6 = urb->context;
 9276#line 426
 9277  hub = (struct usb_hub *)__cil_tmp6;
 9278#line 427
 9279  status = urb->status;
 9280#line 432
 9281  if (status == -2) {
 9282#line 432
 9283    goto case_neg_2;
 9284  } else
 9285#line 433
 9286  if (status == -104) {
 9287#line 433
 9288    goto case_neg_104;
 9289  } else
 9290#line 434
 9291  if (status == -108) {
 9292#line 434
 9293    goto case_neg_108;
 9294  } else
 9295#line 446
 9296  if (status == 0) {
 9297#line 446
 9298    goto case_0;
 9299  } else {
 9300#line 437
 9301    goto switch_default;
 9302#line 431
 9303    if (0) {
 9304      case_neg_2: ;
 9305      case_neg_104: ;
 9306      case_neg_108: ;
 9307#line 435
 9308      return;
 9309      switch_default: 
 9310      {
 9311#line 439
 9312      __cil_tmp7 = hub->intfdev;
 9313#line 439
 9314      __cil_tmp8 = (struct device  const  *)__cil_tmp7;
 9315#line 439
 9316      dev_printk("<7>", __cil_tmp8, "transfer --> %d\n", status);
 9317#line 440
 9318      __cil_tmp9 = hub->nerrors;
 9319#line 440
 9320      hub->nerrors = __cil_tmp9 + 1;
 9321      }
 9322      {
 9323#line 440
 9324      __cil_tmp10 = hub->nerrors;
 9325#line 440
 9326      if (__cil_tmp10 <= 9) {
 9327#line 441
 9328        goto resubmit;
 9329      } else {
 9330        {
 9331#line 440
 9332        __cil_tmp11 = hub->error;
 9333#line 440
 9334        if (__cil_tmp11 != 0) {
 9335#line 441
 9336          goto resubmit;
 9337        } else {
 9338
 9339        }
 9340        }
 9341      }
 9342      }
 9343#line 442
 9344      hub->error = status;
 9345      case_0: 
 9346#line 447
 9347      bits = 0UL;
 9348#line 448
 9349      i = 0U;
 9350#line 448
 9351      goto ldv_25684;
 9352      ldv_25683: 
 9353#line 449
 9354      __cil_tmp12 = i * 8U;
 9355#line 449
 9356      __cil_tmp13 = (int )__cil_tmp12;
 9357#line 449
 9358      __cil_tmp14 = hub->buffer;
 9359#line 449
 9360      __cil_tmp15 = (*__cil_tmp14)[i];
 9361#line 449
 9362      __cil_tmp16 = (unsigned long )__cil_tmp15;
 9363#line 449
 9364      __cil_tmp17 = __cil_tmp16 << __cil_tmp13;
 9365#line 449
 9366      bits = __cil_tmp17 | bits;
 9367#line 448
 9368      i = i + 1U;
 9369      ldv_25684: ;
 9370      {
 9371#line 448
 9372      __cil_tmp18 = urb->actual_length;
 9373#line 448
 9374      if (__cil_tmp18 > i) {
 9375#line 449
 9376        goto ldv_25683;
 9377      } else {
 9378#line 451
 9379        goto ldv_25685;
 9380      }
 9381      }
 9382      ldv_25685: 
 9383#line 451
 9384      hub->event_bits[0] = bits;
 9385#line 452
 9386      goto ldv_25686;
 9387    } else {
 9388
 9389    }
 9390  }
 9391  ldv_25686: 
 9392  {
 9393#line 455
 9394  hub->nerrors = 0;
 9395#line 458
 9396  kick_khubd(hub);
 9397  }
 9398  resubmit: ;
 9399  {
 9400#line 461
 9401  __cil_tmp19 = (unsigned char *)hub;
 9402#line 461
 9403  __cil_tmp20 = __cil_tmp19 + 468UL;
 9404#line 461
 9405  __cil_tmp21 = *__cil_tmp20;
 9406#line 461
 9407  __cil_tmp22 = (unsigned int )__cil_tmp21;
 9408#line 461
 9409  if (__cil_tmp22 != 0U) {
 9410#line 462
 9411    return;
 9412  } else {
 9413
 9414  }
 9415  }
 9416  {
 9417#line 464
 9418  __cil_tmp23 = hub->urb;
 9419#line 464
 9420  status = usb_submit_urb(__cil_tmp23, 32U);
 9421  }
 9422#line 464
 9423  if (status != 0) {
 9424#line 464
 9425    if (status != -19) {
 9426#line 464
 9427      if (status != -1) {
 9428        {
 9429#line 466
 9430        __cil_tmp24 = hub->intfdev;
 9431#line 466
 9432        __cil_tmp25 = (struct device  const  *)__cil_tmp24;
 9433#line 466
 9434        dev_err(__cil_tmp25, "resubmit --> %d\n", status);
 9435        }
 9436      } else {
 9437
 9438      }
 9439    } else {
 9440
 9441    }
 9442  } else {
 9443
 9444  }
 9445#line 467
 9446  return;
 9447}
 9448}
 9449#line 471 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 9450__inline static int hub_clear_tt_buffer(struct usb_device *hdev , u16 devinfo , u16 tt ) 
 9451{ unsigned int tmp ;
 9452  int tmp___0 ;
 9453  unsigned int __cil_tmp6 ;
 9454  __u8 __cil_tmp7 ;
 9455  __u8 __cil_tmp8 ;
 9456  int __cil_tmp9 ;
 9457  __u16 __cil_tmp10 ;
 9458  int __cil_tmp11 ;
 9459  __u16 __cil_tmp12 ;
 9460  void *__cil_tmp13 ;
 9461  __u16 __cil_tmp14 ;
 9462
 9463  {
 9464  {
 9465#line 473
 9466  tmp = __create_pipe(hdev, 0U);
 9467#line 473
 9468  __cil_tmp6 = tmp | 2147483648U;
 9469#line 473
 9470  __cil_tmp7 = (__u8 )8;
 9471#line 473
 9472  __cil_tmp8 = (__u8 )35;
 9473#line 473
 9474  __cil_tmp9 = (int )devinfo;
 9475#line 473
 9476  __cil_tmp10 = (__u16 )__cil_tmp9;
 9477#line 473
 9478  __cil_tmp11 = (int )tt;
 9479#line 473
 9480  __cil_tmp12 = (__u16 )__cil_tmp11;
 9481#line 473
 9482  __cil_tmp13 = (void *)0;
 9483#line 473
 9484  __cil_tmp14 = (__u16 )0;
 9485#line 473
 9486  tmp___0 = usb_control_msg(hdev, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp10,
 9487                            __cil_tmp12, __cil_tmp13, __cil_tmp14, 1000);
 9488  }
 9489#line 473
 9490  return (tmp___0);
 9491}
 9492}
 9493#line 484 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 9494static void hub_tt_work(struct work_struct *work ) 
 9495{ struct usb_hub *hub ;
 9496  struct work_struct  const  *__mptr ;
 9497  unsigned long flags ;
 9498  int limit ;
 9499  raw_spinlock_t *tmp ;
 9500  struct list_head *next ;
 9501  struct usb_tt_clear *clear ;
 9502  struct usb_device *hdev ;
 9503  struct hc_driver  const  *drv ;
 9504  int status ;
 9505  struct list_head  const  *__mptr___0 ;
 9506  raw_spinlock_t *tmp___0 ;
 9507  int tmp___1 ;
 9508  struct usb_hub *__cil_tmp15 ;
 9509  spinlock_t *__cil_tmp16 ;
 9510  struct list_head *__cil_tmp17 ;
 9511  spinlock_t *__cil_tmp18 ;
 9512  u16 __cil_tmp19 ;
 9513  int __cil_tmp20 ;
 9514  u16 __cil_tmp21 ;
 9515  unsigned int __cil_tmp22 ;
 9516  u16 __cil_tmp23 ;
 9517  int __cil_tmp24 ;
 9518  u16 __cil_tmp25 ;
 9519  struct device *__cil_tmp26 ;
 9520  struct device  const  *__cil_tmp27 ;
 9521  unsigned int __cil_tmp28 ;
 9522  u16 __cil_tmp29 ;
 9523  int __cil_tmp30 ;
 9524  struct usb_hcd *__cil_tmp31 ;
 9525  void (*__cil_tmp32)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 9526  unsigned long __cil_tmp33 ;
 9527  void (*__cil_tmp34)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 9528  unsigned long __cil_tmp35 ;
 9529  void (*__cil_tmp36)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 9530  struct usb_hcd *__cil_tmp37 ;
 9531  struct usb_host_endpoint *__cil_tmp38 ;
 9532  void const   *__cil_tmp39 ;
 9533  spinlock_t *__cil_tmp40 ;
 9534  struct list_head *__cil_tmp41 ;
 9535  struct list_head  const  *__cil_tmp42 ;
 9536  spinlock_t *__cil_tmp43 ;
 9537
 9538  {
 9539  {
 9540#line 487
 9541  __mptr = (struct work_struct  const  *)work;
 9542#line 487
 9543  __cil_tmp15 = (struct usb_hub *)__mptr;
 9544#line 487
 9545  hub = __cil_tmp15 + 1152921504606846592UL;
 9546#line 489
 9547  limit = 100;
 9548#line 491
 9549  __cil_tmp16 = & hub->tt.lock;
 9550#line 491
 9551  tmp = spinlock_check(__cil_tmp16);
 9552#line 491
 9553  flags = _raw_spin_lock_irqsave(tmp);
 9554  }
 9555#line 492
 9556  goto ldv_25714;
 9557  ldv_25713: 
 9558  {
 9559#line 495
 9560  hdev = hub->hdev;
 9561#line 499
 9562  next = hub->tt.clear_list.next;
 9563#line 500
 9564  __mptr___0 = (struct list_head  const  *)next;
 9565#line 500
 9566  clear = (struct usb_tt_clear *)__mptr___0;
 9567#line 501
 9568  __cil_tmp17 = & clear->clear_list;
 9569#line 501
 9570  list_del(__cil_tmp17);
 9571#line 504
 9572  __cil_tmp18 = & hub->tt.lock;
 9573#line 504
 9574  spin_unlock_irqrestore(__cil_tmp18, flags);
 9575#line 505
 9576  __cil_tmp19 = clear->devinfo;
 9577#line 505
 9578  __cil_tmp20 = (int )__cil_tmp19;
 9579#line 505
 9580  __cil_tmp21 = (u16 )__cil_tmp20;
 9581#line 505
 9582  __cil_tmp22 = clear->tt;
 9583#line 505
 9584  __cil_tmp23 = (u16 )__cil_tmp22;
 9585#line 505
 9586  __cil_tmp24 = (int )__cil_tmp23;
 9587#line 505
 9588  __cil_tmp25 = (u16 )__cil_tmp24;
 9589#line 505
 9590  status = hub_clear_tt_buffer(hdev, __cil_tmp21, __cil_tmp25);
 9591  }
 9592#line 506
 9593  if (status != 0) {
 9594    {
 9595#line 507
 9596    __cil_tmp26 = & hdev->dev;
 9597#line 507
 9598    __cil_tmp27 = (struct device  const  *)__cil_tmp26;
 9599#line 507
 9600    __cil_tmp28 = clear->tt;
 9601#line 507
 9602    __cil_tmp29 = clear->devinfo;
 9603#line 507
 9604    __cil_tmp30 = (int )__cil_tmp29;
 9605#line 507
 9606    dev_err(__cil_tmp27, "clear tt %d (%04x) error %d\n", __cil_tmp28, __cil_tmp30,
 9607            status);
 9608    }
 9609  } else {
 9610
 9611  }
 9612#line 512
 9613  __cil_tmp31 = clear->hcd;
 9614#line 512
 9615  drv = __cil_tmp31->driver;
 9616  {
 9617#line 513
 9618  __cil_tmp32 = (void (* const  )(struct usb_hcd * , struct usb_host_endpoint * ))0;
 9619#line 513
 9620  __cil_tmp33 = (unsigned long )__cil_tmp32;
 9621#line 513
 9622  __cil_tmp34 = drv->clear_tt_buffer_complete;
 9623#line 513
 9624  __cil_tmp35 = (unsigned long )__cil_tmp34;
 9625#line 513
 9626  if (__cil_tmp35 != __cil_tmp33) {
 9627    {
 9628#line 514
 9629    __cil_tmp36 = drv->clear_tt_buffer_complete;
 9630#line 514
 9631    __cil_tmp37 = clear->hcd;
 9632#line 514
 9633    __cil_tmp38 = clear->ep;
 9634#line 514
 9635    (*__cil_tmp36)(__cil_tmp37, __cil_tmp38);
 9636    }
 9637  } else {
 9638
 9639  }
 9640  }
 9641  {
 9642#line 516
 9643  __cil_tmp39 = (void const   *)clear;
 9644#line 516
 9645  kfree(__cil_tmp39);
 9646#line 517
 9647  __cil_tmp40 = & hub->tt.lock;
 9648#line 517
 9649  tmp___0 = spinlock_check(__cil_tmp40);
 9650#line 517
 9651  flags = _raw_spin_lock_irqsave(tmp___0);
 9652  }
 9653  ldv_25714: 
 9654#line 492
 9655  limit = limit - 1;
 9656#line 492
 9657  if (limit != 0) {
 9658    {
 9659#line 492
 9660    __cil_tmp41 = & hub->tt.clear_list;
 9661#line 492
 9662    __cil_tmp42 = (struct list_head  const  *)__cil_tmp41;
 9663#line 492
 9664    tmp___1 = list_empty(__cil_tmp42);
 9665    }
 9666#line 492
 9667    if (tmp___1 == 0) {
 9668#line 493
 9669      goto ldv_25713;
 9670    } else {
 9671#line 495
 9672      goto ldv_25715;
 9673    }
 9674  } else {
 9675#line 495
 9676    goto ldv_25715;
 9677  }
 9678  ldv_25715: 
 9679  {
 9680#line 519
 9681  __cil_tmp43 = & hub->tt.lock;
 9682#line 519
 9683  spin_unlock_irqrestore(__cil_tmp43, flags);
 9684  }
 9685#line 520
 9686  return;
 9687}
 9688}
 9689#line 534 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 9690int usb_hub_clear_tt_buffer(struct urb *urb ) 
 9691{ struct usb_device *udev ;
 9692  int pipe ;
 9693  struct usb_tt *tt ;
 9694  unsigned long flags ;
 9695  struct usb_tt_clear *clear ;
 9696  void *tmp ;
 9697  int tmp___0 ;
 9698  raw_spinlock_t *tmp___1 ;
 9699  unsigned int __cil_tmp10 ;
 9700  struct usb_tt_clear *__cil_tmp11 ;
 9701  unsigned long __cil_tmp12 ;
 9702  unsigned long __cil_tmp13 ;
 9703  struct device *__cil_tmp14 ;
 9704  struct device  const  *__cil_tmp15 ;
 9705  int __cil_tmp16 ;
 9706  int __cil_tmp17 ;
 9707  int __cil_tmp18 ;
 9708  u16 __cil_tmp19 ;
 9709  unsigned int __cil_tmp20 ;
 9710  unsigned int __cil_tmp21 ;
 9711  int __cil_tmp22 ;
 9712  int __cil_tmp23 ;
 9713  short __cil_tmp24 ;
 9714  int __cil_tmp25 ;
 9715  u16 __cil_tmp26 ;
 9716  short __cil_tmp27 ;
 9717  int __cil_tmp28 ;
 9718  int __cil_tmp29 ;
 9719  unsigned int __cil_tmp30 ;
 9720  unsigned int __cil_tmp31 ;
 9721  u16 __cil_tmp32 ;
 9722  short __cil_tmp33 ;
 9723  int __cil_tmp34 ;
 9724  int __cil_tmp35 ;
 9725  int __cil_tmp36 ;
 9726  u16 __cil_tmp37 ;
 9727  unsigned int __cil_tmp38 ;
 9728  unsigned int __cil_tmp39 ;
 9729  struct usb_bus *__cil_tmp40 ;
 9730  spinlock_t *__cil_tmp41 ;
 9731  struct list_head *__cil_tmp42 ;
 9732  struct list_head *__cil_tmp43 ;
 9733  struct work_struct *__cil_tmp44 ;
 9734  spinlock_t *__cil_tmp45 ;
 9735
 9736  {
 9737  {
 9738#line 536
 9739  udev = urb->dev;
 9740#line 537
 9741  __cil_tmp10 = urb->pipe;
 9742#line 537
 9743  pipe = (int )__cil_tmp10;
 9744#line 538
 9745  tt = udev->tt;
 9746#line 546
 9747  tmp = kmalloc(40UL, 32U);
 9748#line 546
 9749  clear = (struct usb_tt_clear *)tmp;
 9750  }
 9751  {
 9752#line 546
 9753  __cil_tmp11 = (struct usb_tt_clear *)0;
 9754#line 546
 9755  __cil_tmp12 = (unsigned long )__cil_tmp11;
 9756#line 546
 9757  __cil_tmp13 = (unsigned long )clear;
 9758#line 546
 9759  if (__cil_tmp13 == __cil_tmp12) {
 9760    {
 9761#line 547
 9762    __cil_tmp14 = & udev->dev;
 9763#line 547
 9764    __cil_tmp15 = (struct device  const  *)__cil_tmp14;
 9765#line 547
 9766    dev_err(__cil_tmp15, "can\'t save CLEAR_TT_BUFFER state\n");
 9767    }
 9768#line 549
 9769    return (-12);
 9770  } else {
 9771
 9772  }
 9773  }
 9774  {
 9775#line 553
 9776  __cil_tmp16 = tt->multi;
 9777#line 553
 9778  if (__cil_tmp16 != 0) {
 9779#line 553
 9780    __cil_tmp17 = udev->ttport;
 9781#line 553
 9782    clear->tt = (unsigned int )__cil_tmp17;
 9783  } else {
 9784#line 553
 9785    clear->tt = 1U;
 9786  }
 9787  }
 9788#line 554
 9789  __cil_tmp18 = pipe >> 15;
 9790#line 554
 9791  __cil_tmp19 = (u16 )__cil_tmp18;
 9792#line 554
 9793  __cil_tmp20 = (unsigned int )__cil_tmp19;
 9794#line 554
 9795  __cil_tmp21 = __cil_tmp20 & 15U;
 9796#line 554
 9797  clear->devinfo = (u16 )__cil_tmp21;
 9798#line 555
 9799  __cil_tmp22 = udev->devnum;
 9800#line 555
 9801  __cil_tmp23 = __cil_tmp22 << 4;
 9802#line 555
 9803  __cil_tmp24 = (short )__cil_tmp23;
 9804#line 555
 9805  __cil_tmp25 = (int )__cil_tmp24;
 9806#line 555
 9807  __cil_tmp26 = clear->devinfo;
 9808#line 555
 9809  __cil_tmp27 = (short )__cil_tmp26;
 9810#line 555
 9811  __cil_tmp28 = (int )__cil_tmp27;
 9812#line 555
 9813  __cil_tmp29 = __cil_tmp28 | __cil_tmp25;
 9814#line 555
 9815  clear->devinfo = (u16 )__cil_tmp29;
 9816  {
 9817#line 556
 9818  __cil_tmp30 = (unsigned int )pipe;
 9819#line 556
 9820  __cil_tmp31 = __cil_tmp30 >> 30;
 9821#line 556
 9822  if (__cil_tmp31 == 2U) {
 9823#line 556
 9824    tmp___0 = 0;
 9825  } else {
 9826#line 556
 9827    tmp___0 = 4096;
 9828  }
 9829  }
 9830#line 556
 9831  __cil_tmp32 = clear->devinfo;
 9832#line 556
 9833  __cil_tmp33 = (short )__cil_tmp32;
 9834#line 556
 9835  __cil_tmp34 = (int )__cil_tmp33;
 9836#line 556
 9837  __cil_tmp35 = __cil_tmp34 | tmp___0;
 9838#line 556
 9839  clear->devinfo = (u16 )__cil_tmp35;
 9840  {
 9841#line 559
 9842  __cil_tmp36 = pipe & 128;
 9843#line 559
 9844  if (__cil_tmp36 != 0) {
 9845#line 560
 9846    __cil_tmp37 = clear->devinfo;
 9847#line 560
 9848    __cil_tmp38 = (unsigned int )__cil_tmp37;
 9849#line 560
 9850    __cil_tmp39 = __cil_tmp38 | 32768U;
 9851#line 560
 9852    clear->devinfo = (u16 )__cil_tmp39;
 9853  } else {
 9854
 9855  }
 9856  }
 9857  {
 9858#line 563
 9859  __cil_tmp40 = udev->bus;
 9860#line 563
 9861  clear->hcd = bus_to_hcd(__cil_tmp40);
 9862#line 564
 9863  clear->ep = urb->ep;
 9864#line 567
 9865  __cil_tmp41 = & tt->lock;
 9866#line 567
 9867  tmp___1 = spinlock_check(__cil_tmp41);
 9868#line 567
 9869  flags = _raw_spin_lock_irqsave(tmp___1);
 9870#line 568
 9871  __cil_tmp42 = & clear->clear_list;
 9872#line 568
 9873  __cil_tmp43 = & tt->clear_list;
 9874#line 568
 9875  list_add_tail(__cil_tmp42, __cil_tmp43);
 9876#line 569
 9877  __cil_tmp44 = & tt->clear_work;
 9878#line 569
 9879  schedule_work(__cil_tmp44);
 9880#line 570
 9881  __cil_tmp45 = & tt->lock;
 9882#line 570
 9883  spin_unlock_irqrestore(__cil_tmp45, flags);
 9884  }
 9885#line 571
 9886  return (0);
 9887}
 9888}
 9889#line 578 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
 9890static unsigned int hub_power_on(struct usb_hub *hub , bool do_delay ) 
 9891{ int port1 ;
 9892  unsigned int pgood_delay ;
 9893  unsigned int delay ;
 9894  u16 wHubCharacteristics ;
 9895  unsigned int _max1 ;
 9896  unsigned int _max2 ;
 9897  unsigned int tmp ;
 9898  struct usb_hub_descriptor *__cil_tmp10 ;
 9899  __u8 __cil_tmp11 ;
 9900  int __cil_tmp12 ;
 9901  int __cil_tmp13 ;
 9902  struct usb_hub_descriptor *__cil_tmp14 ;
 9903  int __cil_tmp15 ;
 9904  int __cil_tmp16 ;
 9905  struct device *__cil_tmp17 ;
 9906  struct device  const  *__cil_tmp18 ;
 9907  struct device *__cil_tmp19 ;
 9908  struct device  const  *__cil_tmp20 ;
 9909  struct usb_device *__cil_tmp21 ;
 9910  struct usb_hub_descriptor *__cil_tmp22 ;
 9911  __u8 __cil_tmp23 ;
 9912  int __cil_tmp24 ;
 9913
 9914  {
 9915#line 581
 9916  __cil_tmp10 = hub->descriptor;
 9917#line 581
 9918  __cil_tmp11 = __cil_tmp10->bPwrOn2PwrGood;
 9919#line 581
 9920  __cil_tmp12 = (int )__cil_tmp11;
 9921#line 581
 9922  __cil_tmp13 = __cil_tmp12 * 2;
 9923#line 581
 9924  pgood_delay = (unsigned int )__cil_tmp13;
 9925#line 583
 9926  __cil_tmp14 = hub->descriptor;
 9927#line 583
 9928  wHubCharacteristics = __cil_tmp14->wHubCharacteristics;
 9929  {
 9930#line 592
 9931  __cil_tmp15 = (int )wHubCharacteristics;
 9932#line 592
 9933  __cil_tmp16 = __cil_tmp15 & 3;
 9934#line 592
 9935  if (__cil_tmp16 <= 1) {
 9936    {
 9937#line 593
 9938    __cil_tmp17 = hub->intfdev;
 9939#line 593
 9940    __cil_tmp18 = (struct device  const  *)__cil_tmp17;
 9941#line 593
 9942    dev_printk("<7>", __cil_tmp18, "enabling power on all ports\n");
 9943    }
 9944  } else {
 9945    {
 9946#line 595
 9947    __cil_tmp19 = hub->intfdev;
 9948#line 595
 9949    __cil_tmp20 = (struct device  const  *)__cil_tmp19;
 9950#line 595
 9951    dev_printk("<7>", __cil_tmp20, "trying to enable port power on non-switchable hub\n");
 9952    }
 9953  }
 9954  }
 9955#line 597
 9956  port1 = 1;
 9957#line 597
 9958  goto ldv_25742;
 9959  ldv_25741: 
 9960  {
 9961#line 598
 9962  __cil_tmp21 = hub->hdev;
 9963#line 598
 9964  set_port_feature(__cil_tmp21, port1, 8);
 9965#line 597
 9966  port1 = port1 + 1;
 9967  }
 9968  ldv_25742: ;
 9969  {
 9970#line 597
 9971  __cil_tmp22 = hub->descriptor;
 9972#line 597
 9973  __cil_tmp23 = __cil_tmp22->bNbrPorts;
 9974#line 597
 9975  __cil_tmp24 = (int )__cil_tmp23;
 9976#line 597
 9977  if (__cil_tmp24 >= port1) {
 9978#line 598
 9979    goto ldv_25741;
 9980  } else {
 9981#line 600
 9982    goto ldv_25743;
 9983  }
 9984  }
 9985  ldv_25743: 
 9986#line 601
 9987  _max1 = pgood_delay;
 9988#line 601
 9989  _max2 = 100U;
 9990#line 601
 9991  if (_max1 > _max2) {
 9992#line 601
 9993    tmp = _max1;
 9994  } else {
 9995#line 601
 9996    tmp = _max2;
 9997  }
 9998#line 601
 9999  delay = tmp;
10000#line 602
10001  if ((int )do_delay) {
10002    {
10003#line 603
10004    msleep(delay);
10005    }
10006  } else {
10007
10008  }
10009#line 604
10010  return (delay);
10011}
10012}
10013#line 607 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
10014static int hub_hub_status(struct usb_hub *hub , u16 *status , u16 *change ) 
10015{ int ret ;
10016  struct mutex *__cil_tmp5 ;
10017  struct usb_device *__cil_tmp6 ;
10018  union __anonunion_status_183 *__cil_tmp7 ;
10019  struct usb_hub_status *__cil_tmp8 ;
10020  struct device *__cil_tmp9 ;
10021  struct device  const  *__cil_tmp10 ;
10022  union __anonunion_status_183 *__cil_tmp11 ;
10023  union __anonunion_status_183 *__cil_tmp12 ;
10024  struct mutex *__cil_tmp13 ;
10025
10026  {
10027  {
10028#line 612
10029  __cil_tmp5 = & hub->status_mutex;
10030#line 612
10031  mutex_lock_nested(__cil_tmp5, 0U);
10032#line 613
10033  __cil_tmp6 = hub->hdev;
10034#line 613
10035  __cil_tmp7 = hub->status;
10036#line 613
10037  __cil_tmp8 = & __cil_tmp7->hub;
10038#line 613
10039  ret = get_hub_status(__cil_tmp6, __cil_tmp8);
10040  }
10041#line 614
10042  if (ret < 0) {
10043    {
10044#line 615
10045    __cil_tmp9 = hub->intfdev;
10046#line 615
10047    __cil_tmp10 = (struct device  const  *)__cil_tmp9;
10048#line 615
10049    dev_err(__cil_tmp10, "%s failed (err = %d)\n", "hub_hub_status", ret);
10050    }
10051  } else {
10052#line 618
10053    __cil_tmp11 = hub->status;
10054#line 618
10055    *status = __cil_tmp11->hub.wHubStatus;
10056#line 619
10057    __cil_tmp12 = hub->status;
10058#line 619
10059    *change = __cil_tmp12->hub.wHubChange;
10060#line 620
10061    ret = 0;
10062  }
10063  {
10064#line 622
10065  __cil_tmp13 = & hub->status_mutex;
10066#line 622
10067  mutex_unlock(__cil_tmp13);
10068  }
10069#line 623
10070  return (ret);
10071}
10072}
10073#line 626 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
10074static int hub_port_disable(struct usb_hub *hub , int port1 , int set_state ) 
10075{ struct usb_device *hdev ;
10076  int ret ;
10077  int tmp ;
10078  struct usb_device *__cil_tmp7 ;
10079  unsigned long __cil_tmp8 ;
10080  struct usb_device *__cil_tmp9 ;
10081  unsigned long __cil_tmp10 ;
10082  struct usb_device *__cil_tmp11 ;
10083  enum usb_device_state __cil_tmp12 ;
10084  int __cil_tmp13 ;
10085  struct usb_device *__cil_tmp14 ;
10086  struct device *__cil_tmp15 ;
10087  struct device  const  *__cil_tmp16 ;
10088
10089  {
10090#line 628
10091  hdev = hub->hdev;
10092#line 629
10093  ret = 0;
10094  {
10095#line 631
10096  __cil_tmp7 = (struct usb_device *)0;
10097#line 631
10098  __cil_tmp8 = (unsigned long )__cil_tmp7;
10099#line 631
10100  __cil_tmp9 = hdev->children[port1 + -1];
10101#line 631
10102  __cil_tmp10 = (unsigned long )__cil_tmp9;
10103#line 631
10104  if (__cil_tmp10 != __cil_tmp8) {
10105#line 631
10106    if (set_state != 0) {
10107      {
10108#line 632
10109      __cil_tmp11 = hdev->children[port1 + -1];
10110#line 632
10111      __cil_tmp12 = (enum usb_device_state )0;
10112#line 632
10113      usb_set_device_state(__cil_tmp11, __cil_tmp12);
10114      }
10115    } else {
10116
10117    }
10118  } else {
10119
10120  }
10121  }
10122  {
10123#line 634
10124  __cil_tmp13 = hub->error;
10125#line 634
10126  if (__cil_tmp13 == 0) {
10127    {
10128#line 634
10129    __cil_tmp14 = hub->hdev;
10130#line 634
10131    tmp = hub_is_superspeed(__cil_tmp14);
10132    }
10133#line 634
10134    if (tmp == 0) {
10135      {
10136#line 635
10137      ret = clear_port_feature(hdev, port1, 1);
10138      }
10139    } else {
10140
10141    }
10142  } else {
10143
10144  }
10145  }
10146#line 636
10147  if (ret != 0) {
10148    {
10149#line 637
10150    __cil_tmp15 = hub->intfdev;
10151#line 637
10152    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
10153#line 637
10154    dev_err(__cil_tmp16, "cannot disable port %d (err = %d)\n", port1, ret);
10155    }
10156  } else {
10157
10158  }
10159#line 639
10160  return (ret);
10161}
10162}
10163#line 647 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
10164static void hub_port_logical_disconnect(struct usb_hub *hub , int port1 ) 
10165{ struct device *__cil_tmp3 ;
10166  struct device  const  *__cil_tmp4 ;
10167  unsigned int __cil_tmp5 ;
10168  unsigned long (*__cil_tmp6)[1U] ;
10169  unsigned long volatile   *__cil_tmp7 ;
10170
10171  {
10172  {
10173#line 649
10174  __cil_tmp3 = hub->intfdev;
10175#line 649
10176  __cil_tmp4 = (struct device  const  *)__cil_tmp3;
10177#line 649
10178  dev_printk("<7>", __cil_tmp4, "logical disconnect on port %d\n", port1);
10179#line 650
10180  hub_port_disable(hub, port1, 1);
10181#line 661
10182  __cil_tmp5 = (unsigned int )port1;
10183#line 661
10184  __cil_tmp6 = & hub->change_bits;
10185#line 661
10186  __cil_tmp7 = (unsigned long volatile   *)__cil_tmp6;
10187#line 661
10188  set_bit(__cil_tmp5, __cil_tmp7);
10189#line 662
10190  kick_khubd(hub);
10191  }
10192#line 663
10193  return;
10194}
10195}
10196#line 675 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
10197int usb_remove_device(struct usb_device *udev ) 
10198{ struct usb_hub *hub ;
10199  struct usb_interface *intf ;
10200  struct device  const  *__mptr ;
10201  struct usb_device *__cil_tmp5 ;
10202  unsigned long __cil_tmp6 ;
10203  struct usb_device *__cil_tmp7 ;
10204  unsigned long __cil_tmp8 ;
10205  struct usb_device *__cil_tmp9 ;
10206  struct device *__cil_tmp10 ;
10207  struct usb_interface *__cil_tmp11 ;
10208  u8 __cil_tmp12 ;
10209  unsigned int __cil_tmp13 ;
10210  unsigned long (*__cil_tmp14)[1U] ;
10211  unsigned long volatile   *__cil_tmp15 ;
10212  u8 __cil_tmp16 ;
10213  int __cil_tmp17 ;
10214
10215  {
10216  {
10217#line 680
10218  __cil_tmp5 = (struct usb_device *)0;
10219#line 680
10220  __cil_tmp6 = (unsigned long )__cil_tmp5;
10221#line 680
10222  __cil_tmp7 = udev->parent;
10223#line 680
10224  __cil_tmp8 = (unsigned long )__cil_tmp7;
10225#line 680
10226  if (__cil_tmp8 == __cil_tmp6) {
10227#line 681
10228    return (-22);
10229  } else {
10230
10231  }
10232  }
10233  {
10234#line 682
10235  __cil_tmp9 = udev->parent;
10236#line 682
10237  hub = hdev_to_hub(__cil_tmp9);
10238#line 683
10239  __cil_tmp10 = hub->intfdev;
10240#line 683
10241  __mptr = (struct device  const  *)__cil_tmp10;
10242#line 683
10243  __cil_tmp11 = (struct usb_interface *)__mptr;
10244#line 683
10245  intf = __cil_tmp11 + 1152921504606846928UL;
10246#line 685
10247  usb_autopm_get_interface(intf);
10248#line 686
10249  __cil_tmp12 = udev->portnum;
10250#line 686
10251  __cil_tmp13 = (unsigned int )__cil_tmp12;
10252#line 686
10253  __cil_tmp14 = & hub->removed_bits;
10254#line 686
10255  __cil_tmp15 = (unsigned long volatile   *)__cil_tmp14;
10256#line 686
10257  set_bit(__cil_tmp13, __cil_tmp15);
10258#line 687
10259  __cil_tmp16 = udev->portnum;
10260#line 687
10261  __cil_tmp17 = (int )__cil_tmp16;
10262#line 687
10263  hub_port_logical_disconnect(hub, __cil_tmp17);
10264#line 688
10265  usb_autopm_put_interface(intf);
10266  }
10267#line 689
10268  return (0);
10269}
10270}
10271#line 697
10272static void hub_init_func2(struct work_struct *ws ) ;
10273#line 698
10274static void hub_init_func3(struct work_struct *ws ) ;
10275#line 700 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
10276static void hub_activate(struct usb_hub *hub , enum hub_activation_type type ) 
10277{ struct usb_device *hdev ;
10278  struct usb_hcd *hcd ;
10279  int ret ;
10280  int port1 ;
10281  int status ;
10282  bool need_debounce_delay ;
10283  unsigned int delay ;
10284  unsigned long tmp ;
10285  struct device  const  *__mptr ;
10286  struct usb_device *udev ;
10287  u16 portstatus ;
10288  u16 portchange ;
10289  int tmp___0 ;
10290  unsigned long tmp___1 ;
10291  struct device  const  *__mptr___0 ;
10292  unsigned int __cil_tmp18 ;
10293  unsigned int __cil_tmp19 ;
10294  unsigned int __cil_tmp20 ;
10295  unsigned int __cil_tmp21 ;
10296  bool __cil_tmp22 ;
10297  unsigned int __cil_tmp23 ;
10298  unsigned int __cil_tmp24 ;
10299  struct delayed_work *__cil_tmp25 ;
10300  struct device *__cil_tmp26 ;
10301  struct usb_interface *__cil_tmp27 ;
10302  struct usb_interface *__cil_tmp28 ;
10303  unsigned int __cil_tmp29 ;
10304  struct usb_bus *__cil_tmp30 ;
10305  int (*__cil_tmp31)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
10306  unsigned long __cil_tmp32 ;
10307  struct hc_driver  const  *__cil_tmp33 ;
10308  int (*__cil_tmp34)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
10309  unsigned long __cil_tmp35 ;
10310  struct hc_driver  const  *__cil_tmp36 ;
10311  int (*__cil_tmp37)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
10312  struct usb_tt *__cil_tmp38 ;
10313  struct device *__cil_tmp39 ;
10314  struct device  const  *__cil_tmp40 ;
10315  struct device *__cil_tmp41 ;
10316  struct device  const  *__cil_tmp42 ;
10317  bool __cil_tmp43 ;
10318  bool __cil_tmp44 ;
10319  struct usb_device *__cil_tmp45 ;
10320  unsigned long __cil_tmp46 ;
10321  unsigned long __cil_tmp47 ;
10322  struct device *__cil_tmp48 ;
10323  struct device  const  *__cil_tmp49 ;
10324  int __cil_tmp50 ;
10325  int __cil_tmp51 ;
10326  int __cil_tmp52 ;
10327  struct device *__cil_tmp53 ;
10328  struct device  const  *__cil_tmp54 ;
10329  int __cil_tmp55 ;
10330  int __cil_tmp56 ;
10331  int __cil_tmp57 ;
10332  int __cil_tmp58 ;
10333  unsigned int __cil_tmp59 ;
10334  int __cil_tmp60 ;
10335  int __cil_tmp61 ;
10336  struct usb_device *__cil_tmp62 ;
10337  unsigned long __cil_tmp63 ;
10338  unsigned long __cil_tmp64 ;
10339  enum usb_device_state __cil_tmp65 ;
10340  unsigned int __cil_tmp66 ;
10341  unsigned int __cil_tmp67 ;
10342  unsigned int __cil_tmp68 ;
10343  unsigned int __cil_tmp69 ;
10344  unsigned int __cil_tmp70 ;
10345  int __cil_tmp71 ;
10346  struct usb_device *__cil_tmp72 ;
10347  int __cil_tmp73 ;
10348  int __cil_tmp74 ;
10349  struct usb_device *__cil_tmp75 ;
10350  int __cil_tmp76 ;
10351  int __cil_tmp77 ;
10352  struct usb_device *__cil_tmp78 ;
10353  int __cil_tmp79 ;
10354  int __cil_tmp80 ;
10355  unsigned long (*__cil_tmp81)[1U] ;
10356  unsigned long volatile   *__cil_tmp82 ;
10357  int __cil_tmp83 ;
10358  unsigned long (*__cil_tmp84)[1U] ;
10359  unsigned long volatile   *__cil_tmp85 ;
10360  struct usb_device *__cil_tmp86 ;
10361  unsigned long __cil_tmp87 ;
10362  unsigned long __cil_tmp88 ;
10363  enum usb_device_state __cil_tmp89 ;
10364  unsigned int __cil_tmp90 ;
10365  struct usb_device *__cil_tmp91 ;
10366  unsigned long __cil_tmp92 ;
10367  unsigned long __cil_tmp93 ;
10368  unsigned int __cil_tmp94 ;
10369  unsigned long (*__cil_tmp95)[1U] ;
10370  unsigned long volatile   *__cil_tmp96 ;
10371  int __cil_tmp97 ;
10372  unsigned int __cil_tmp98 ;
10373  unsigned long (*__cil_tmp99)[1U] ;
10374  unsigned long volatile   *__cil_tmp100 ;
10375  int __cil_tmp101 ;
10376  int __cil_tmp102 ;
10377  unsigned int __cil_tmp103 ;
10378  unsigned int __cil_tmp104 ;
10379  unsigned long (*__cil_tmp105)[1U] ;
10380  unsigned long volatile   *__cil_tmp106 ;
10381  unsigned char *__cil_tmp107 ;
10382  unsigned char *__cil_tmp108 ;
10383  unsigned char __cil_tmp109 ;
10384  unsigned int __cil_tmp110 ;
10385  unsigned int __cil_tmp111 ;
10386  unsigned long (*__cil_tmp112)[1U] ;
10387  unsigned long volatile   *__cil_tmp113 ;
10388  enum usb_device_state __cil_tmp114 ;
10389  unsigned int __cil_tmp115 ;
10390  unsigned long (*__cil_tmp116)[1U] ;
10391  unsigned long volatile   *__cil_tmp117 ;
10392  int __cil_tmp118 ;
10393  unsigned int __cil_tmp119 ;
10394  unsigned int __cil_tmp120 ;
10395  unsigned int __cil_tmp121 ;
10396  struct delayed_work *__cil_tmp122 ;
10397  struct urb *__cil_tmp123 ;
10398  struct device *__cil_tmp124 ;
10399  struct device  const  *__cil_tmp125 ;
10400  unsigned char *__cil_tmp126 ;
10401  unsigned char *__cil_tmp127 ;
10402  unsigned char __cil_tmp128 ;
10403  unsigned int __cil_tmp129 ;
10404  struct delayed_work *__cil_tmp130 ;
10405  unsigned int __cil_tmp131 ;
10406  struct device *__cil_tmp132 ;
10407  struct usb_interface *__cil_tmp133 ;
10408  struct usb_interface *__cil_tmp134 ;
10409
10410  {
10411#line 702
10412  hdev = hub->hdev;
10413#line 707
10414  need_debounce_delay = (bool )0;
10415  {
10416#line 711
10417  __cil_tmp18 = (unsigned int )type;
10418#line 711
10419  if (__cil_tmp18 == 1U) {
10420#line 712
10421    goto init2;
10422  } else {
10423
10424  }
10425  }
10426  {
10427#line 713
10428  __cil_tmp19 = (unsigned int )type;
10429#line 713
10430  if (__cil_tmp19 == 2U) {
10431#line 714
10432    goto init3;
10433  } else {
10434
10435  }
10436  }
10437  {
10438#line 719
10439  __cil_tmp20 = (unsigned int )type;
10440#line 719
10441  if (__cil_tmp20 != 4U) {
10442    {
10443#line 733
10444    __cil_tmp21 = (unsigned int )type;
10445#line 733
10446    if (__cil_tmp21 == 0U) {
10447      {
10448#line 734
10449      __cil_tmp22 = (bool )0;
10450#line 734
10451      delay = hub_power_on(hub, __cil_tmp22);
10452#line 735
10453      hub->init_work.work.func = & hub_init_func2;
10454#line 736
10455      __cil_tmp23 = (unsigned int const   )delay;
10456#line 736
10457      __cil_tmp24 = (unsigned int )__cil_tmp23;
10458#line 736
10459      tmp = msecs_to_jiffies(__cil_tmp24);
10460#line 736
10461      __cil_tmp25 = & hub->init_work;
10462#line 736
10463      schedule_delayed_work(__cil_tmp25, tmp);
10464#line 741
10465      __cil_tmp26 = hub->intfdev;
10466#line 741
10467      __mptr = (struct device  const  *)__cil_tmp26;
10468#line 741
10469      __cil_tmp27 = (struct usb_interface *)__mptr;
10470#line 741
10471      __cil_tmp28 = __cil_tmp27 + 1152921504606846928UL;
10472#line 741
10473      usb_autopm_get_interface_no_resume(__cil_tmp28);
10474      }
10475#line 742
10476      return;
10477    } else {
10478      {
10479#line 743
10480      __cil_tmp29 = (unsigned int )type;
10481#line 743
10482      if (__cil_tmp29 == 5U) {
10483        {
10484#line 748
10485        __cil_tmp30 = hdev->bus;
10486#line 748
10487        hcd = bus_to_hcd(__cil_tmp30);
10488        }
10489        {
10490#line 749
10491        __cil_tmp31 = (int (* const  )(struct usb_hcd * , struct usb_device * , struct usb_tt * ,
10492                                       gfp_t  ))0;
10493#line 749
10494        __cil_tmp32 = (unsigned long )__cil_tmp31;
10495#line 749
10496        __cil_tmp33 = hcd->driver;
10497#line 749
10498        __cil_tmp34 = __cil_tmp33->update_hub_device;
10499#line 749
10500        __cil_tmp35 = (unsigned long )__cil_tmp34;
10501#line 749
10502        if (__cil_tmp35 != __cil_tmp32) {
10503          {
10504#line 750
10505          __cil_tmp36 = hcd->driver;
10506#line 750
10507          __cil_tmp37 = __cil_tmp36->update_hub_device;
10508#line 750
10509          __cil_tmp38 = & hub->tt;
10510#line 750
10511          ret = (*__cil_tmp37)(hcd, hdev, __cil_tmp38, 16U);
10512          }
10513#line 752
10514          if (ret < 0) {
10515            {
10516#line 753
10517            __cil_tmp39 = hub->intfdev;
10518#line 753
10519            __cil_tmp40 = (struct device  const  *)__cil_tmp39;
10520#line 753
10521            dev_err(__cil_tmp40, "Host not accepting hub info update.\n");
10522#line 756
10523            __cil_tmp41 = hub->intfdev;
10524#line 756
10525            __cil_tmp42 = (struct device  const  *)__cil_tmp41;
10526#line 756
10527            dev_err(__cil_tmp42, "LS/FS devices and hubs may not work under this hub\n.");
10528            }
10529          } else {
10530
10531          }
10532        } else {
10533
10534        }
10535        }
10536        {
10537#line 761
10538        __cil_tmp43 = (bool )1;
10539#line 761
10540        hub_power_on(hub, __cil_tmp43);
10541        }
10542      } else {
10543        {
10544#line 763
10545        __cil_tmp44 = (bool )1;
10546#line 763
10547        hub_power_on(hub, __cil_tmp44);
10548        }
10549      }
10550      }
10551    }
10552    }
10553  } else {
10554
10555  }
10556  }
10557  init2: 
10558#line 771
10559  port1 = 1;
10560#line 771
10561  goto ldv_25802;
10562  ldv_25801: 
10563  {
10564#line 772
10565  udev = hdev->children[port1 + -1];
10566#line 775
10567  portchange = (u16 )0U;
10568#line 775
10569  portstatus = portchange;
10570#line 776
10571  status = hub_port_status(hub, port1, & portstatus, & portchange);
10572  }
10573  {
10574#line 777
10575  __cil_tmp45 = (struct usb_device *)0;
10576#line 777
10577  __cil_tmp46 = (unsigned long )__cil_tmp45;
10578#line 777
10579  __cil_tmp47 = (unsigned long )udev;
10580#line 777
10581  if (__cil_tmp47 != __cil_tmp46) {
10582    {
10583#line 778
10584    __cil_tmp48 = hub->intfdev;
10585#line 778
10586    __cil_tmp49 = (struct device  const  *)__cil_tmp48;
10587#line 778
10588    __cil_tmp50 = (int )portstatus;
10589#line 778
10590    __cil_tmp51 = (int )portchange;
10591#line 778
10592    dev_printk("<7>", __cil_tmp49, "port %d: status %04x change %04x\n", port1, __cil_tmp50,
10593               __cil_tmp51);
10594    }
10595  } else {
10596    {
10597#line 777
10598    __cil_tmp52 = (int )portstatus;
10599#line 777
10600    if (__cil_tmp52 & 1) {
10601      {
10602#line 778
10603      __cil_tmp53 = hub->intfdev;
10604#line 778
10605      __cil_tmp54 = (struct device  const  *)__cil_tmp53;
10606#line 778
10607      __cil_tmp55 = (int )portstatus;
10608#line 778
10609      __cil_tmp56 = (int )portchange;
10610#line 778
10611      dev_printk("<7>", __cil_tmp54, "port %d: status %04x change %04x\n", port1,
10612                 __cil_tmp55, __cil_tmp56);
10613      }
10614    } else {
10615
10616    }
10617    }
10618  }
10619  }
10620  {
10621#line 787
10622  __cil_tmp57 = (int )portstatus;
10623#line 787
10624  __cil_tmp58 = __cil_tmp57 & 2;
10625#line 787
10626  if (__cil_tmp58 != 0) {
10627    {
10628#line 787
10629    __cil_tmp59 = (unsigned int )type;
10630#line 787
10631    if (__cil_tmp59 != 4U) {
10632#line 787
10633      goto _L;
10634    } else {
10635      {
10636#line 787
10637      __cil_tmp60 = (int )portstatus;
10638#line 787
10639      __cil_tmp61 = __cil_tmp60 & 1;
10640#line 787
10641      if (__cil_tmp61 == 0) {
10642#line 787
10643        goto _L;
10644      } else {
10645        {
10646#line 787
10647        __cil_tmp62 = (struct usb_device *)0;
10648#line 787
10649        __cil_tmp63 = (unsigned long )__cil_tmp62;
10650#line 787
10651        __cil_tmp64 = (unsigned long )udev;
10652#line 787
10653        if (__cil_tmp64 == __cil_tmp63) {
10654#line 787
10655          goto _L;
10656        } else {
10657          {
10658#line 787
10659          __cil_tmp65 = udev->state;
10660#line 787
10661          __cil_tmp66 = (unsigned int )__cil_tmp65;
10662#line 787
10663          if (__cil_tmp66 == 0U) {
10664            _L: 
10665            {
10666#line 797
10667            tmp___0 = hub_is_superspeed(hdev);
10668            }
10669#line 797
10670            if (tmp___0 == 0) {
10671              {
10672#line 798
10673              clear_port_feature(hdev, port1, 1);
10674#line 800
10675              __cil_tmp67 = (unsigned int )portstatus;
10676#line 800
10677              __cil_tmp68 = __cil_tmp67 & 65533U;
10678#line 800
10679              portstatus = (u16 )__cil_tmp68;
10680              }
10681            } else {
10682#line 803
10683              __cil_tmp69 = (unsigned int )portstatus;
10684#line 803
10685              __cil_tmp70 = __cil_tmp69 & 65533U;
10686#line 803
10687              portstatus = (u16 )__cil_tmp70;
10688            }
10689          } else {
10690
10691          }
10692          }
10693        }
10694        }
10695      }
10696      }
10697    }
10698    }
10699  } else {
10700
10701  }
10702  }
10703  {
10704#line 808
10705  __cil_tmp71 = (int )portchange;
10706#line 808
10707  if (__cil_tmp71 & 1) {
10708    {
10709#line 809
10710    need_debounce_delay = (bool )1;
10711#line 810
10712    __cil_tmp72 = hub->hdev;
10713#line 810
10714    clear_port_feature(__cil_tmp72, port1, 16);
10715    }
10716  } else {
10717
10718  }
10719  }
10720  {
10721#line 813
10722  __cil_tmp73 = (int )portchange;
10723#line 813
10724  __cil_tmp74 = __cil_tmp73 & 2;
10725#line 813
10726  if (__cil_tmp74 != 0) {
10727    {
10728#line 814
10729    need_debounce_delay = (bool )1;
10730#line 815
10731    __cil_tmp75 = hub->hdev;
10732#line 815
10733    clear_port_feature(__cil_tmp75, port1, 17);
10734    }
10735  } else {
10736
10737  }
10738  }
10739  {
10740#line 818
10741  __cil_tmp76 = (int )portchange;
10742#line 818
10743  __cil_tmp77 = __cil_tmp76 & 64;
10744#line 818
10745  if (__cil_tmp77 != 0) {
10746    {
10747#line 819
10748    need_debounce_delay = (bool )1;
10749#line 820
10750    __cil_tmp78 = hub->hdev;
10751#line 820
10752    clear_port_feature(__cil_tmp78, port1, 25);
10753    }
10754  } else {
10755
10756  }
10757  }
10758  {
10759#line 827
10760  __cil_tmp79 = (int )portstatus;
10761#line 827
10762  __cil_tmp80 = __cil_tmp79 & 1;
10763#line 827
10764  if (__cil_tmp80 == 0) {
10765    {
10766#line 829
10767    __cil_tmp81 = & hub->removed_bits;
10768#line 829
10769    __cil_tmp82 = (unsigned long volatile   *)__cil_tmp81;
10770#line 829
10771    clear_bit(port1, __cil_tmp82);
10772    }
10773  } else {
10774    {
10775#line 827
10776    __cil_tmp83 = (int )portchange;
10777#line 827
10778    if (__cil_tmp83 & 1) {
10779      {
10780#line 829
10781      __cil_tmp84 = & hub->removed_bits;
10782#line 829
10783      __cil_tmp85 = (unsigned long volatile   *)__cil_tmp84;
10784#line 829
10785      clear_bit(port1, __cil_tmp85);
10786      }
10787    } else {
10788
10789    }
10790    }
10791  }
10792  }
10793  {
10794#line 831
10795  __cil_tmp86 = (struct usb_device *)0;
10796#line 831
10797  __cil_tmp87 = (unsigned long )__cil_tmp86;
10798#line 831
10799  __cil_tmp88 = (unsigned long )udev;
10800#line 831
10801  if (__cil_tmp88 == __cil_tmp87) {
10802#line 831
10803    goto _L___0;
10804  } else {
10805    {
10806#line 831
10807    __cil_tmp89 = udev->state;
10808#line 831
10809    __cil_tmp90 = (unsigned int )__cil_tmp89;
10810#line 831
10811    if (__cil_tmp90 == 0U) {
10812      _L___0: 
10813      {
10814#line 835
10815      __cil_tmp91 = (struct usb_device *)0;
10816#line 835
10817      __cil_tmp92 = (unsigned long )__cil_tmp91;
10818#line 835
10819      __cil_tmp93 = (unsigned long )udev;
10820#line 835
10821      if (__cil_tmp93 != __cil_tmp92) {
10822        {
10823#line 836
10824        __cil_tmp94 = (unsigned int )port1;
10825#line 836
10826        __cil_tmp95 = & hub->change_bits;
10827#line 836
10828        __cil_tmp96 = (unsigned long volatile   *)__cil_tmp95;
10829#line 836
10830        set_bit(__cil_tmp94, __cil_tmp96);
10831        }
10832      } else {
10833        {
10834#line 835
10835        __cil_tmp97 = (int )portstatus;
10836#line 835
10837        if (__cil_tmp97 & 1) {
10838          {
10839#line 836
10840          __cil_tmp98 = (unsigned int )port1;
10841#line 836
10842          __cil_tmp99 = & hub->change_bits;
10843#line 836
10844          __cil_tmp100 = (unsigned long volatile   *)__cil_tmp99;
10845#line 836
10846          set_bit(__cil_tmp98, __cil_tmp100);
10847          }
10848        } else {
10849          {
10850#line 838
10851          __cil_tmp101 = (int )portstatus;
10852#line 838
10853          __cil_tmp102 = __cil_tmp101 & 2;
10854#line 838
10855          if (__cil_tmp102 != 0) {
10856            {
10857#line 844
10858            __cil_tmp103 = (unsigned int )portchange;
10859#line 844
10860            if (__cil_tmp103 != 0U) {
10861              {
10862#line 845
10863              __cil_tmp104 = (unsigned int )port1;
10864#line 845
10865              __cil_tmp105 = & hub->change_bits;
10866#line 845
10867              __cil_tmp106 = (unsigned long volatile   *)__cil_tmp105;
10868#line 845
10869              set_bit(__cil_tmp104, __cil_tmp106);
10870              }
10871            } else {
10872              {
10873#line 847
10874              __cil_tmp107 = (unsigned char *)udev;
10875#line 847
10876              __cil_tmp108 = __cil_tmp107 + 1556UL;
10877#line 847
10878              __cil_tmp109 = *__cil_tmp108;
10879#line 847
10880              __cil_tmp110 = (unsigned int )__cil_tmp109;
10881#line 847
10882              if (__cil_tmp110 != 0U) {
10883                {
10884#line 849
10885                udev->reset_resume = (unsigned char)1;
10886#line 851
10887                __cil_tmp111 = (unsigned int )port1;
10888#line 851
10889                __cil_tmp112 = & hub->change_bits;
10890#line 851
10891                __cil_tmp113 = (unsigned long volatile   *)__cil_tmp112;
10892#line 851
10893                set_bit(__cil_tmp111, __cil_tmp113);
10894                }
10895              } else {
10896                {
10897#line 855
10898                __cil_tmp114 = (enum usb_device_state )0;
10899#line 855
10900                usb_set_device_state(udev, __cil_tmp114);
10901#line 856
10902                __cil_tmp115 = (unsigned int )port1;
10903#line 856
10904                __cil_tmp116 = & hub->change_bits;
10905#line 856
10906                __cil_tmp117 = (unsigned long volatile   *)__cil_tmp116;
10907#line 856
10908                set_bit(__cil_tmp115, __cil_tmp117);
10909                }
10910              }
10911              }
10912            }
10913            }
10914          } else {
10915
10916          }
10917          }
10918        }
10919        }
10920      }
10921      }
10922    } else {
10923
10924    }
10925    }
10926  }
10927  }
10928#line 771
10929  port1 = port1 + 1;
10930  ldv_25802: ;
10931  {
10932#line 771
10933  __cil_tmp118 = hdev->maxchild;
10934#line 771
10935  if (__cil_tmp118 >= port1) {
10936#line 772
10937    goto ldv_25801;
10938  } else {
10939#line 774
10940    goto ldv_25803;
10941  }
10942  }
10943  ldv_25803: ;
10944#line 868
10945  if ((int )need_debounce_delay) {
10946#line 869
10947    delay = 100U;
10948    {
10949#line 872
10950    __cil_tmp119 = (unsigned int )type;
10951#line 872
10952    if (__cil_tmp119 == 1U) {
10953      {
10954#line 873
10955      hub->init_work.work.func = & hub_init_func3;
10956#line 874
10957      __cil_tmp120 = (unsigned int const   )delay;
10958#line 874
10959      __cil_tmp121 = (unsigned int )__cil_tmp120;
10960#line 874
10961      tmp___1 = msecs_to_jiffies(__cil_tmp121);
10962#line 874
10963      __cil_tmp122 = & hub->init_work;
10964#line 874
10965      schedule_delayed_work(__cil_tmp122, tmp___1);
10966      }
10967#line 876
10968      return;
10969    } else {
10970      {
10971#line 878
10972      msleep(delay);
10973      }
10974    }
10975    }
10976  } else {
10977
10978  }
10979  init3: 
10980  {
10981#line 882
10982  hub->quiescing = (unsigned char)0;
10983#line 884
10984  __cil_tmp123 = hub->urb;
10985#line 884
10986  status = usb_submit_urb(__cil_tmp123, 16U);
10987  }
10988#line 885
10989  if (status < 0) {
10990    {
10991#line 886
10992    __cil_tmp124 = hub->intfdev;
10993#line 886
10994    __cil_tmp125 = (struct device  const  *)__cil_tmp124;
10995#line 886
10996    dev_err(__cil_tmp125, "activate --> %d\n", status);
10997    }
10998  } else {
10999
11000  }
11001  {
11002#line 887
11003  __cil_tmp126 = (unsigned char *)hub;
11004#line 887
11005  __cil_tmp127 = __cil_tmp126 + 468UL;
11006#line 887
11007  __cil_tmp128 = *__cil_tmp127;
11008#line 887
11009  __cil_tmp129 = (unsigned int )__cil_tmp128;
11010#line 887
11011  if (__cil_tmp129 != 0U) {
11012#line 887
11013    if (blinkenlights != 0) {
11014      {
11015#line 888
11016      __cil_tmp130 = & hub->leds;
11017#line 888
11018      schedule_delayed_work(__cil_tmp130, 166UL);
11019      }
11020    } else {
11021
11022    }
11023  } else {
11024
11025  }
11026  }
11027  {
11028#line 891
11029  kick_khubd(hub);
11030  }
11031  {
11032#line 894
11033  __cil_tmp131 = (unsigned int )type;
11034#line 894
11035  if (__cil_tmp131 <= 2U) {
11036    {
11037#line 895
11038    __cil_tmp132 = hub->intfdev;
11039#line 895
11040    __mptr___0 = (struct device  const  *)__cil_tmp132;
11041#line 895
11042    __cil_tmp133 = (struct usb_interface *)__mptr___0;
11043#line 895
11044    __cil_tmp134 = __cil_tmp133 + 1152921504606846928UL;
11045#line 895
11046    usb_autopm_put_interface_async(__cil_tmp134);
11047    }
11048  } else {
11049
11050  }
11051  }
11052#line 897
11053  return;
11054}
11055}
11056#line 899 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
11057static void hub_init_func2(struct work_struct *ws ) 
11058{ struct usb_hub *hub ;
11059  struct work_struct  const  *__mptr ;
11060  struct usb_hub *__cil_tmp4 ;
11061  enum hub_activation_type __cil_tmp5 ;
11062
11063  {
11064  {
11065#line 901
11066  __mptr = (struct work_struct  const  *)ws;
11067#line 901
11068  __cil_tmp4 = (struct usb_hub *)__mptr;
11069#line 901
11070  hub = __cil_tmp4 + 1152921504606846264UL;
11071#line 903
11072  __cil_tmp5 = (enum hub_activation_type )1;
11073#line 903
11074  hub_activate(hub, __cil_tmp5);
11075  }
11076#line 904
11077  return;
11078}
11079}
11080#line 906 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
11081static void hub_init_func3(struct work_struct *ws ) 
11082{ struct usb_hub *hub ;
11083  struct work_struct  const  *__mptr ;
11084  struct usb_hub *__cil_tmp4 ;
11085  enum hub_activation_type __cil_tmp5 ;
11086
11087  {
11088  {
11089#line 908
11090  __mptr = (struct work_struct  const  *)ws;
11091#line 908
11092  __cil_tmp4 = (struct usb_hub *)__mptr;
11093#line 908
11094  hub = __cil_tmp4 + 1152921504606846264UL;
11095#line 910
11096  __cil_tmp5 = (enum hub_activation_type )2;
11097#line 910
11098  hub_activate(hub, __cil_tmp5);
11099  }
11100#line 911
11101  return;
11102}
11103}
11104#line 917 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
11105static void hub_quiesce(struct usb_hub *hub , enum hub_quiescing_type type ) 
11106{ struct usb_device *hdev ;
11107  int i ;
11108  struct delayed_work *__cil_tmp5 ;
11109  unsigned int __cil_tmp6 ;
11110  struct usb_device *__cil_tmp7 ;
11111  unsigned long __cil_tmp8 ;
11112  struct usb_device *__cil_tmp9 ;
11113  unsigned long __cil_tmp10 ;
11114  unsigned long __cil_tmp11 ;
11115  struct usb_device *(*__cil_tmp12)[31U] ;
11116  struct usb_device **__cil_tmp13 ;
11117  struct usb_device **__cil_tmp14 ;
11118  int __cil_tmp15 ;
11119  struct urb *__cil_tmp16 ;
11120  unsigned char *__cil_tmp17 ;
11121  unsigned char *__cil_tmp18 ;
11122  unsigned char __cil_tmp19 ;
11123  unsigned int __cil_tmp20 ;
11124  struct delayed_work *__cil_tmp21 ;
11125  struct usb_device *__cil_tmp22 ;
11126  unsigned long __cil_tmp23 ;
11127  struct usb_device *__cil_tmp24 ;
11128  unsigned long __cil_tmp25 ;
11129  struct work_struct *__cil_tmp26 ;
11130
11131  {
11132  {
11133#line 919
11134  hdev = hub->hdev;
11135#line 922
11136  __cil_tmp5 = & hub->init_work;
11137#line 922
11138  cancel_delayed_work_sync(__cil_tmp5);
11139#line 925
11140  hub->quiescing = (unsigned char)1;
11141  }
11142  {
11143#line 927
11144  __cil_tmp6 = (unsigned int )type;
11145#line 927
11146  if (__cil_tmp6 != 2U) {
11147#line 929
11148    i = 0;
11149#line 929
11150    goto ldv_25829;
11151    ldv_25828: ;
11152    {
11153#line 930
11154    __cil_tmp7 = (struct usb_device *)0;
11155#line 930
11156    __cil_tmp8 = (unsigned long )__cil_tmp7;
11157#line 930
11158    __cil_tmp9 = hdev->children[i];
11159#line 930
11160    __cil_tmp10 = (unsigned long )__cil_tmp9;
11161#line 930
11162    if (__cil_tmp10 != __cil_tmp8) {
11163      {
11164#line 931
11165      __cil_tmp11 = (unsigned long )i;
11166#line 931
11167      __cil_tmp12 = & hdev->children;
11168#line 931
11169      __cil_tmp13 = (struct usb_device **)__cil_tmp12;
11170#line 931
11171      __cil_tmp14 = __cil_tmp13 + __cil_tmp11;
11172#line 931
11173      usb_disconnect(__cil_tmp14);
11174      }
11175    } else {
11176
11177    }
11178    }
11179#line 929
11180    i = i + 1;
11181    ldv_25829: ;
11182    {
11183#line 929
11184    __cil_tmp15 = hdev->maxchild;
11185#line 929
11186    if (__cil_tmp15 > i) {
11187#line 930
11188      goto ldv_25828;
11189    } else {
11190#line 932
11191      goto ldv_25830;
11192    }
11193    }
11194    ldv_25830: ;
11195  } else {
11196
11197  }
11198  }
11199  {
11200#line 936
11201  __cil_tmp16 = hub->urb;
11202#line 936
11203  usb_kill_urb(__cil_tmp16);
11204  }
11205  {
11206#line 937
11207  __cil_tmp17 = (unsigned char *)hub;
11208#line 937
11209  __cil_tmp18 = __cil_tmp17 + 468UL;
11210#line 937
11211  __cil_tmp19 = *__cil_tmp18;
11212#line 937
11213  __cil_tmp20 = (unsigned int )__cil_tmp19;
11214#line 937
11215  if (__cil_tmp20 != 0U) {
11216    {
11217#line 938
11218    __cil_tmp21 = & hub->leds;
11219#line 938
11220    cancel_delayed_work_sync(__cil_tmp21);
11221    }
11222  } else {
11223
11224  }
11225  }
11226  {
11227#line 939
11228  __cil_tmp22 = (struct usb_device *)0;
11229#line 939
11230  __cil_tmp23 = (unsigned long )__cil_tmp22;
11231#line 939
11232  __cil_tmp24 = hub->tt.hub;
11233#line 939
11234  __cil_tmp25 = (unsigned long )__cil_tmp24;
11235#line 939
11236  if (__cil_tmp25 != __cil_tmp23) {
11237    {
11238#line 940
11239    __cil_tmp26 = & hub->tt.clear_work;
11240#line 940
11241    cancel_work_sync(__cil_tmp26);
11242    }
11243  } else {
11244
11245  }
11246  }
11247#line 941
11248  return;
11249}
11250}
11251#line 944 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
11252static int hub_pre_reset(struct usb_interface *intf ) 
11253{ struct usb_hub *hub ;
11254  void *tmp ;
11255  enum hub_quiescing_type __cil_tmp4 ;
11256
11257  {
11258  {
11259#line 946
11260  tmp = usb_get_intfdata(intf);
11261#line 946
11262  hub = (struct usb_hub *)tmp;
11263#line 948
11264  __cil_tmp4 = (enum hub_quiescing_type )1;
11265#line 948
11266  hub_quiesce(hub, __cil_tmp4);
11267  }
11268#line 949
11269  return (0);
11270}
11271}
11272#line 953 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
11273static int hub_post_reset(struct usb_interface *intf ) 
11274{ struct usb_hub *hub ;
11275  void *tmp ;
11276  enum hub_activation_type __cil_tmp4 ;
11277
11278  {
11279  {
11280#line 955
11281  tmp = usb_get_intfdata(intf);
11282#line 955
11283  hub = (struct usb_hub *)tmp;
11284#line 957
11285  __cil_tmp4 = (enum hub_activation_type )3;
11286#line 957
11287  hub_activate(hub, __cil_tmp4);
11288  }
11289#line 958
11290  return (0);
11291}
11292}
11293#line 961 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
11294static int hub_configure(struct usb_hub *hub , struct usb_endpoint_descriptor *endpoint ) 
11295{ struct usb_hcd *hcd ;
11296  struct usb_device *hdev ;
11297  struct device *hub_dev ;
11298  u16 hubstatus ;
11299  u16 hubchange ;
11300  u16 wHubCharacteristics ;
11301  unsigned int pipe ;
11302  int maxp ;
11303  int ret ;
11304  char *message ;
11305  void *tmp ;
11306  void *tmp___0 ;
11307  struct lock_class_key __key ;
11308  void *tmp___1 ;
11309  unsigned int tmp___2 ;
11310  int tmp___3 ;
11311  char *tmp___4 ;
11312  void *tmp___5 ;
11313  int i ;
11314  char portstr[32U] ;
11315  int tmp___6 ;
11316  struct lock_class_key __key___0 ;
11317  struct lock_class_key __key___1 ;
11318  atomic_long_t __constr_expr_0 ;
11319  int remaining ;
11320  char *tmp___7 ;
11321  char *tmp___8 ;
11322  unsigned int tmp___9 ;
11323  __u16 tmp___10 ;
11324  char (*__cil_tmp32)[8U] ;
11325  unsigned long __cil_tmp33 ;
11326  char (*__cil_tmp34)[8U] ;
11327  unsigned long __cil_tmp35 ;
11328  union __anonunion_185 *__cil_tmp36 ;
11329  union __anonunion_status_183 *__cil_tmp37 ;
11330  unsigned long __cil_tmp38 ;
11331  union __anonunion_status_183 *__cil_tmp39 ;
11332  unsigned long __cil_tmp40 ;
11333  struct mutex *__cil_tmp41 ;
11334  struct usb_hub_descriptor *__cil_tmp42 ;
11335  unsigned long __cil_tmp43 ;
11336  struct usb_hub_descriptor *__cil_tmp44 ;
11337  unsigned long __cil_tmp45 ;
11338  struct usb_device *__cil_tmp46 ;
11339  unsigned long __cil_tmp47 ;
11340  struct usb_device *__cil_tmp48 ;
11341  unsigned long __cil_tmp49 ;
11342  unsigned int __cil_tmp50 ;
11343  __u8 __cil_tmp51 ;
11344  __u8 __cil_tmp52 ;
11345  u8 __cil_tmp53 ;
11346  __u16 __cil_tmp54 ;
11347  unsigned int __cil_tmp55 ;
11348  unsigned int __cil_tmp56 ;
11349  int __cil_tmp57 ;
11350  __u16 __cil_tmp58 ;
11351  __u16 __cil_tmp59 ;
11352  void *__cil_tmp60 ;
11353  __u16 __cil_tmp61 ;
11354  struct usb_hub_descriptor *__cil_tmp62 ;
11355  void *__cil_tmp63 ;
11356  struct usb_hub_descriptor *__cil_tmp64 ;
11357  __u8 __cil_tmp65 ;
11358  unsigned int __cil_tmp66 ;
11359  struct usb_hub_descriptor *__cil_tmp67 ;
11360  __u8 __cil_tmp68 ;
11361  int __cil_tmp69 ;
11362  struct device  const  *__cil_tmp70 ;
11363  int __cil_tmp71 ;
11364  int __cil_tmp72 ;
11365  unsigned long __cil_tmp73 ;
11366  unsigned long __cil_tmp74 ;
11367  void **__cil_tmp75 ;
11368  unsigned long __cil_tmp76 ;
11369  void **__cil_tmp77 ;
11370  unsigned long __cil_tmp78 ;
11371  struct usb_hub_descriptor *__cil_tmp79 ;
11372  int __cil_tmp80 ;
11373  int __cil_tmp81 ;
11374  int __cil_tmp82 ;
11375  int __cil_tmp83 ;
11376  struct usb_hub_descriptor *__cil_tmp84 ;
11377  __u8 __cil_tmp85 ;
11378  int __cil_tmp86 ;
11379  int __cil_tmp87 ;
11380  int __cil_tmp88 ;
11381  struct device  const  *__cil_tmp89 ;
11382  char *__cil_tmp90 ;
11383  struct device  const  *__cil_tmp91 ;
11384  struct device  const  *__cil_tmp92 ;
11385  int __cil_tmp93 ;
11386  int __cil_tmp94 ;
11387  int __cil_tmp95 ;
11388  int __cil_tmp96 ;
11389  int __cil_tmp97 ;
11390  int __cil_tmp98 ;
11391  int __cil_tmp99 ;
11392  int __cil_tmp100 ;
11393  struct device  const  *__cil_tmp101 ;
11394  struct device  const  *__cil_tmp102 ;
11395  struct device  const  *__cil_tmp103 ;
11396  int __cil_tmp104 ;
11397  int __cil_tmp105 ;
11398  int __cil_tmp106 ;
11399  int __cil_tmp107 ;
11400  int __cil_tmp108 ;
11401  int __cil_tmp109 ;
11402  int __cil_tmp110 ;
11403  int __cil_tmp111 ;
11404  struct device  const  *__cil_tmp112 ;
11405  struct device  const  *__cil_tmp113 ;
11406  struct device  const  *__cil_tmp114 ;
11407  spinlock_t *__cil_tmp115 ;
11408  struct raw_spinlock *__cil_tmp116 ;
11409  struct list_head *__cil_tmp117 ;
11410  struct work_struct *__cil_tmp118 ;
11411  struct lockdep_map *__cil_tmp119 ;
11412  struct list_head *__cil_tmp120 ;
11413  __u8 __cil_tmp121 ;
11414  int __cil_tmp122 ;
11415  __u8 __cil_tmp123 ;
11416  int __cil_tmp124 ;
11417  __u8 __cil_tmp125 ;
11418  int __cil_tmp126 ;
11419  __u8 __cil_tmp127 ;
11420  int __cil_tmp128 ;
11421  struct device  const  *__cil_tmp129 ;
11422  struct device  const  *__cil_tmp130 ;
11423  struct device  const  *__cil_tmp131 ;
11424  struct device  const  *__cil_tmp132 ;
11425  __u8 __cil_tmp133 ;
11426  int __cil_tmp134 ;
11427  int __cil_tmp135 ;
11428  int __cil_tmp136 ;
11429  int __cil_tmp137 ;
11430  int __cil_tmp138 ;
11431  int __cil_tmp139 ;
11432  int __cil_tmp140 ;
11433  int __cil_tmp141 ;
11434  int __cil_tmp142 ;
11435  __u8 __cil_tmp143 ;
11436  unsigned int __cil_tmp144 ;
11437  struct device  const  *__cil_tmp145 ;
11438  unsigned int __cil_tmp146 ;
11439  struct device  const  *__cil_tmp147 ;
11440  unsigned int __cil_tmp148 ;
11441  struct device  const  *__cil_tmp149 ;
11442  unsigned int __cil_tmp150 ;
11443  struct device  const  *__cil_tmp151 ;
11444  unsigned int __cil_tmp152 ;
11445  int __cil_tmp153 ;
11446  int __cil_tmp154 ;
11447  struct device  const  *__cil_tmp155 ;
11448  struct device  const  *__cil_tmp156 ;
11449  struct usb_hub_descriptor *__cil_tmp157 ;
11450  __u8 __cil_tmp158 ;
11451  int __cil_tmp159 ;
11452  int __cil_tmp160 ;
11453  void *__cil_tmp161 ;
11454  unsigned long __cil_tmp162 ;
11455  struct usb_bus *__cil_tmp163 ;
11456  struct usb_device *__cil_tmp164 ;
11457  unsigned long __cil_tmp165 ;
11458  unsigned short __cil_tmp166 ;
11459  unsigned int __cil_tmp167 ;
11460  unsigned short __cil_tmp168 ;
11461  unsigned int __cil_tmp169 ;
11462  unsigned short __cil_tmp170 ;
11463  int __cil_tmp171 ;
11464  int __cil_tmp172 ;
11465  struct device  const  *__cil_tmp173 ;
11466  struct usb_hub_descriptor *__cil_tmp174 ;
11467  __u8 __cil_tmp175 ;
11468  int __cil_tmp176 ;
11469  int __cil_tmp177 ;
11470  struct usb_hub_descriptor *__cil_tmp178 ;
11471  __u8 __cil_tmp179 ;
11472  int __cil_tmp180 ;
11473  unsigned short __cil_tmp181 ;
11474  int __cil_tmp182 ;
11475  int __cil_tmp183 ;
11476  int __cil_tmp184 ;
11477  struct device  const  *__cil_tmp185 ;
11478  unsigned int __cil_tmp186 ;
11479  struct device  const  *__cil_tmp187 ;
11480  unsigned int __cil_tmp188 ;
11481  struct usb_bus *__cil_tmp189 ;
11482  int (*__cil_tmp190)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
11483  unsigned long __cil_tmp191 ;
11484  struct hc_driver  const  *__cil_tmp192 ;
11485  int (*__cil_tmp193)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
11486  unsigned long __cil_tmp194 ;
11487  struct hc_driver  const  *__cil_tmp195 ;
11488  int (*__cil_tmp196)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
11489  struct usb_tt *__cil_tmp197 ;
11490  struct usb_host_config *__cil_tmp198 ;
11491  __u8 __cil_tmp199 ;
11492  int __cil_tmp200 ;
11493  int __cil_tmp201 ;
11494  int __cil_tmp202 ;
11495  struct device  const  *__cil_tmp203 ;
11496  int __cil_tmp204 ;
11497  int __cil_tmp205 ;
11498  int __cil_tmp206 ;
11499  int __cil_tmp207 ;
11500  struct device  const  *__cil_tmp208 ;
11501  __u8 __cil_tmp209 ;
11502  unsigned int __cil_tmp210 ;
11503  int __cil_tmp211 ;
11504  unsigned int __cil_tmp212 ;
11505  int __cil_tmp213 ;
11506  unsigned int __cil_tmp214 ;
11507  struct urb *__cil_tmp215 ;
11508  unsigned long __cil_tmp216 ;
11509  struct urb *__cil_tmp217 ;
11510  unsigned long __cil_tmp218 ;
11511  struct urb *__cil_tmp219 ;
11512  char (*__cil_tmp220)[8U] ;
11513  void *__cil_tmp221 ;
11514  void *__cil_tmp222 ;
11515  __u8 __cil_tmp223 ;
11516  int __cil_tmp224 ;
11517  unsigned char *__cil_tmp225 ;
11518  unsigned char *__cil_tmp226 ;
11519  unsigned char __cil_tmp227 ;
11520  unsigned int __cil_tmp228 ;
11521  enum hub_activation_type __cil_tmp229 ;
11522  struct device  const  *__cil_tmp230 ;
11523
11524  {
11525  {
11526#line 965
11527  hdev = hub->hdev;
11528#line 966
11529  hub_dev = hub->intfdev;
11530#line 971
11531  message = (char *)"out of memory";
11532#line 973
11533  tmp = kmalloc(8UL, 208U);
11534#line 973
11535  hub->buffer = (char (*)[8])tmp;
11536  }
11537  {
11538#line 974
11539  __cil_tmp32 = (char (*)[8U])0;
11540#line 974
11541  __cil_tmp33 = (unsigned long )__cil_tmp32;
11542#line 974
11543  __cil_tmp34 = hub->buffer;
11544#line 974
11545  __cil_tmp35 = (unsigned long )__cil_tmp34;
11546#line 974
11547  if (__cil_tmp35 == __cil_tmp33) {
11548#line 975
11549    ret = -12;
11550#line 976
11551    goto fail;
11552  } else {
11553
11554  }
11555  }
11556  {
11557#line 979
11558  tmp___0 = kmalloc(4UL, 208U);
11559#line 979
11560  __cil_tmp36 = (union __anonunion_185 *)tmp___0;
11561#line 979
11562  hub->status = (union __anonunion_status_183 *)__cil_tmp36;
11563  }
11564  {
11565#line 980
11566  __cil_tmp37 = (union __anonunion_status_183 *)0;
11567#line 980
11568  __cil_tmp38 = (unsigned long )__cil_tmp37;
11569#line 980
11570  __cil_tmp39 = hub->status;
11571#line 980
11572  __cil_tmp40 = (unsigned long )__cil_tmp39;
11573#line 980
11574  if (__cil_tmp40 == __cil_tmp38) {
11575#line 981
11576    ret = -12;
11577#line 982
11578    goto fail;
11579  } else {
11580
11581  }
11582  }
11583  {
11584#line 984
11585  __cil_tmp41 = & hub->status_mutex;
11586#line 984
11587  __mutex_init(__cil_tmp41, "&hub->status_mutex", & __key);
11588#line 986
11589  tmp___1 = kmalloc(15UL, 208U);
11590#line 986
11591  hub->descriptor = (struct usb_hub_descriptor *)tmp___1;
11592  }
11593  {
11594#line 987
11595  __cil_tmp42 = (struct usb_hub_descriptor *)0;
11596#line 987
11597  __cil_tmp43 = (unsigned long )__cil_tmp42;
11598#line 987
11599  __cil_tmp44 = hub->descriptor;
11600#line 987
11601  __cil_tmp45 = (unsigned long )__cil_tmp44;
11602#line 987
11603  if (__cil_tmp45 == __cil_tmp43) {
11604#line 988
11605    ret = -12;
11606#line 989
11607    goto fail;
11608  } else {
11609
11610  }
11611  }
11612  {
11613#line 992
11614  tmp___3 = hub_is_superspeed(hdev);
11615  }
11616#line 992
11617  if (tmp___3 != 0) {
11618    {
11619#line 992
11620    __cil_tmp46 = (struct usb_device *)0;
11621#line 992
11622    __cil_tmp47 = (unsigned long )__cil_tmp46;
11623#line 992
11624    __cil_tmp48 = hdev->parent;
11625#line 992
11626    __cil_tmp49 = (unsigned long )__cil_tmp48;
11627#line 992
11628    if (__cil_tmp49 != __cil_tmp47) {
11629      {
11630#line 993
11631      tmp___2 = __create_pipe(hdev, 0U);
11632#line 993
11633      __cil_tmp50 = tmp___2 | 2147483648U;
11634#line 993
11635      __cil_tmp51 = (__u8 )12;
11636#line 993
11637      __cil_tmp52 = (__u8 )32;
11638#line 993
11639      __cil_tmp53 = hdev->level;
11640#line 993
11641      __cil_tmp54 = (__u16 )__cil_tmp53;
11642#line 993
11643      __cil_tmp55 = (unsigned int )__cil_tmp54;
11644#line 993
11645      __cil_tmp56 = __cil_tmp55 + 65535U;
11646#line 993
11647      __cil_tmp57 = (int )__cil_tmp56;
11648#line 993
11649      __cil_tmp58 = (__u16 )__cil_tmp57;
11650#line 993
11651      __cil_tmp59 = (__u16 )0;
11652#line 993
11653      __cil_tmp60 = (void *)0;
11654#line 993
11655      __cil_tmp61 = (__u16 )0;
11656#line 993
11657      ret = usb_control_msg(hdev, __cil_tmp50, __cil_tmp51, __cil_tmp52, __cil_tmp58,
11658                            __cil_tmp59, __cil_tmp60, __cil_tmp61, 5000);
11659      }
11660#line 998
11661      if (ret < 0) {
11662#line 999
11663        message = (char *)"can\'t set hub depth";
11664#line 1000
11665        goto fail;
11666      } else {
11667
11668      }
11669    } else {
11670
11671    }
11672    }
11673  } else {
11674
11675  }
11676  {
11677#line 1008
11678  __cil_tmp62 = hub->descriptor;
11679#line 1008
11680  __cil_tmp63 = (void *)__cil_tmp62;
11681#line 1008
11682  ret = get_hub_descriptor(hdev, __cil_tmp63);
11683  }
11684#line 1009
11685  if (ret < 0) {
11686#line 1010
11687    message = (char *)"can\'t read hub descriptor";
11688#line 1011
11689    goto fail;
11690  } else {
11691    {
11692#line 1012
11693    __cil_tmp64 = hub->descriptor;
11694#line 1012
11695    __cil_tmp65 = __cil_tmp64->bNbrPorts;
11696#line 1012
11697    __cil_tmp66 = (unsigned int )__cil_tmp65;
11698#line 1012
11699    if (__cil_tmp66 > 31U) {
11700#line 1013
11701      message = (char *)"hub has too many ports!";
11702#line 1014
11703      ret = -19;
11704#line 1015
11705      goto fail;
11706    } else {
11707
11708    }
11709    }
11710  }
11711#line 1018
11712  __cil_tmp67 = hub->descriptor;
11713#line 1018
11714  __cil_tmp68 = __cil_tmp67->bNbrPorts;
11715#line 1018
11716  hdev->maxchild = (int )__cil_tmp68;
11717  {
11718#line 1019
11719  __cil_tmp69 = hdev->maxchild;
11720#line 1019
11721  if (__cil_tmp69 == 1) {
11722#line 1019
11723    tmp___4 = (char *)"";
11724  } else {
11725#line 1019
11726    tmp___4 = (char *)"s";
11727  }
11728  }
11729  {
11730#line 1019
11731  __cil_tmp70 = (struct device  const  *)hub_dev;
11732#line 1019
11733  __cil_tmp71 = hdev->maxchild;
11734#line 1019
11735  _dev_info(__cil_tmp70, "%d port%s detected\n", __cil_tmp71, tmp___4);
11736#line 1022
11737  __cil_tmp72 = hdev->maxchild;
11738#line 1022
11739  __cil_tmp73 = (unsigned long )__cil_tmp72;
11740#line 1022
11741  __cil_tmp74 = __cil_tmp73 * 8UL;
11742#line 1022
11743  tmp___5 = kzalloc(__cil_tmp74, 208U);
11744#line 1022
11745  hub->port_owners = (void **)tmp___5;
11746  }
11747  {
11748#line 1023
11749  __cil_tmp75 = (void **)0;
11750#line 1023
11751  __cil_tmp76 = (unsigned long )__cil_tmp75;
11752#line 1023
11753  __cil_tmp77 = hub->port_owners;
11754#line 1023
11755  __cil_tmp78 = (unsigned long )__cil_tmp77;
11756#line 1023
11757  if (__cil_tmp78 == __cil_tmp76) {
11758#line 1024
11759    ret = -12;
11760#line 1025
11761    goto fail;
11762  } else {
11763
11764  }
11765  }
11766#line 1028
11767  __cil_tmp79 = hub->descriptor;
11768#line 1028
11769  wHubCharacteristics = __cil_tmp79->wHubCharacteristics;
11770  {
11771#line 1031
11772  __cil_tmp80 = (int )wHubCharacteristics;
11773#line 1031
11774  __cil_tmp81 = __cil_tmp80 & 4;
11775#line 1031
11776  if (__cil_tmp81 != 0) {
11777    {
11778#line 1031
11779    tmp___6 = hub_is_superspeed(hdev);
11780    }
11781#line 1031
11782    if (tmp___6 == 0) {
11783#line 1036
11784      i = 0;
11785#line 1036
11786      goto ldv_25858;
11787      ldv_25857: ;
11788      {
11789#line 1037
11790      __cil_tmp82 = i + 1;
11791#line 1037
11792      __cil_tmp83 = __cil_tmp82 % 8;
11793#line 1037
11794      __cil_tmp84 = hub->descriptor;
11795#line 1037
11796      __cil_tmp85 = __cil_tmp84->u.hs.DeviceRemovable[(i + 1) / 8];
11797#line 1037
11798      __cil_tmp86 = (int )__cil_tmp85;
11799#line 1037
11800      __cil_tmp87 = __cil_tmp86 >> __cil_tmp83;
11801#line 1037
11802      if (__cil_tmp87 & 1) {
11803#line 1037
11804        portstr[i] = (char)70;
11805      } else {
11806#line 1037
11807        portstr[i] = (char)82;
11808      }
11809      }
11810#line 1036
11811      i = i + 1;
11812      ldv_25858: ;
11813      {
11814#line 1036
11815      __cil_tmp88 = hdev->maxchild;
11816#line 1036
11817      if (__cil_tmp88 > i) {
11818#line 1037
11819        goto ldv_25857;
11820      } else {
11821#line 1039
11822        goto ldv_25859;
11823      }
11824      }
11825      ldv_25859: 
11826      {
11827#line 1040
11828      portstr[hdev->maxchild] = (char)0;
11829#line 1041
11830      __cil_tmp89 = (struct device  const  *)hub_dev;
11831#line 1041
11832      __cil_tmp90 = (char *)(& portstr);
11833#line 1041
11834      dev_printk("<7>", __cil_tmp89, "compound device; port removable status: %s\n",
11835                 __cil_tmp90);
11836      }
11837    } else {
11838      {
11839#line 1043
11840      __cil_tmp91 = (struct device  const  *)hub_dev;
11841#line 1043
11842      dev_printk("<7>", __cil_tmp91, "standalone hub\n");
11843      }
11844    }
11845  } else {
11846    {
11847#line 1043
11848    __cil_tmp92 = (struct device  const  *)hub_dev;
11849#line 1043
11850    dev_printk("<7>", __cil_tmp92, "standalone hub\n");
11851    }
11852  }
11853  }
11854  {
11855#line 1046
11856  __cil_tmp93 = (int )wHubCharacteristics;
11857#line 1046
11858  __cil_tmp94 = __cil_tmp93 & 3;
11859#line 1046
11860  if (__cil_tmp94 == 0) {
11861#line 1046
11862    goto case_0;
11863  } else {
11864    {
11865#line 1049
11866    __cil_tmp95 = (int )wHubCharacteristics;
11867#line 1049
11868    __cil_tmp96 = __cil_tmp95 & 3;
11869#line 1049
11870    if (__cil_tmp96 == 1) {
11871#line 1049
11872      goto case_1;
11873    } else {
11874      {
11875#line 1052
11876      __cil_tmp97 = (int )wHubCharacteristics;
11877#line 1052
11878      __cil_tmp98 = __cil_tmp97 & 3;
11879#line 1052
11880      if (__cil_tmp98 == 2) {
11881#line 1052
11882        goto case_2;
11883      } else {
11884        {
11885#line 1053
11886        __cil_tmp99 = (int )wHubCharacteristics;
11887#line 1053
11888        __cil_tmp100 = __cil_tmp99 & 3;
11889#line 1053
11890        if (__cil_tmp100 == 3) {
11891#line 1053
11892          goto case_3;
11893        } else
11894#line 1045
11895        if (0) {
11896          case_0: 
11897          {
11898#line 1047
11899          __cil_tmp101 = (struct device  const  *)hub_dev;
11900#line 1047
11901          dev_printk("<7>", __cil_tmp101, "ganged power switching\n");
11902          }
11903#line 1048
11904          goto ldv_25861;
11905          case_1: 
11906          {
11907#line 1050
11908          __cil_tmp102 = (struct device  const  *)hub_dev;
11909#line 1050
11910          dev_printk("<7>", __cil_tmp102, "individual port power switching\n");
11911          }
11912#line 1051
11913          goto ldv_25861;
11914          case_2: ;
11915          case_3: 
11916          {
11917#line 1054
11918          __cil_tmp103 = (struct device  const  *)hub_dev;
11919#line 1054
11920          dev_printk("<7>", __cil_tmp103, "no power switching (usb 1.0)\n");
11921          }
11922#line 1055
11923          goto ldv_25861;
11924        } else {
11925
11926        }
11927        }
11928      }
11929      }
11930    }
11931    }
11932  }
11933  }
11934  ldv_25861: ;
11935  {
11936#line 1059
11937  __cil_tmp104 = (int )wHubCharacteristics;
11938#line 1059
11939  __cil_tmp105 = __cil_tmp104 & 24;
11940#line 1059
11941  if (__cil_tmp105 == 0) {
11942#line 1059
11943    goto case_0___0;
11944  } else {
11945    {
11946#line 1062
11947    __cil_tmp106 = (int )wHubCharacteristics;
11948#line 1062
11949    __cil_tmp107 = __cil_tmp106 & 24;
11950#line 1062
11951    if (__cil_tmp107 == 8) {
11952#line 1062
11953      goto case_8;
11954    } else {
11955      {
11956#line 1065
11957      __cil_tmp108 = (int )wHubCharacteristics;
11958#line 1065
11959      __cil_tmp109 = __cil_tmp108 & 24;
11960#line 1065
11961      if (__cil_tmp109 == 16) {
11962#line 1065
11963        goto case_16;
11964      } else {
11965        {
11966#line 1066
11967        __cil_tmp110 = (int )wHubCharacteristics;
11968#line 1066
11969        __cil_tmp111 = __cil_tmp110 & 24;
11970#line 1066
11971        if (__cil_tmp111 == 24) {
11972#line 1066
11973          goto case_24;
11974        } else
11975#line 1058
11976        if (0) {
11977          case_0___0: 
11978          {
11979#line 1060
11980          __cil_tmp112 = (struct device  const  *)hub_dev;
11981#line 1060
11982          dev_printk("<7>", __cil_tmp112, "global over-current protection\n");
11983          }
11984#line 1061
11985          goto ldv_25866;
11986          case_8: 
11987          {
11988#line 1063
11989          __cil_tmp113 = (struct device  const  *)hub_dev;
11990#line 1063
11991          dev_printk("<7>", __cil_tmp113, "individual port over-current protection\n");
11992          }
11993#line 1064
11994          goto ldv_25866;
11995          case_16: ;
11996          case_24: 
11997          {
11998#line 1067
11999          __cil_tmp114 = (struct device  const  *)hub_dev;
12000#line 1067
12001          dev_printk("<7>", __cil_tmp114, "no over-current protection\n");
12002          }
12003#line 1068
12004          goto ldv_25866;
12005        } else {
12006
12007        }
12008        }
12009      }
12010      }
12011    }
12012    }
12013  }
12014  }
12015  ldv_25866: 
12016  {
12017#line 1071
12018  __cil_tmp115 = & hub->tt.lock;
12019#line 1071
12020  spinlock_check(__cil_tmp115);
12021#line 1071
12022  __cil_tmp116 = & hub->tt.lock.ldv_6060.rlock;
12023#line 1071
12024  __raw_spin_lock_init(__cil_tmp116, "&(&hub->tt.lock)->rlock", & __key___0);
12025#line 1072
12026  __cil_tmp117 = & hub->tt.clear_list;
12027#line 1072
12028  INIT_LIST_HEAD(__cil_tmp117);
12029#line 1073
12030  __cil_tmp118 = & hub->tt.clear_work;
12031#line 1073
12032  __init_work(__cil_tmp118, 0);
12033#line 1073
12034  __constr_expr_0.counter = 2097664L;
12035#line 1073
12036  hub->tt.clear_work.data = __constr_expr_0;
12037#line 1073
12038  __cil_tmp119 = & hub->tt.clear_work.lockdep_map;
12039#line 1073
12040  lockdep_init_map(__cil_tmp119, "(&hub->tt.clear_work)", & __key___1, 0);
12041#line 1073
12042  __cil_tmp120 = & hub->tt.clear_work.entry;
12043#line 1073
12044  INIT_LIST_HEAD(__cil_tmp120);
12045#line 1073
12046  hub->tt.clear_work.func = & hub_tt_work;
12047  }
12048  {
12049#line 1075
12050  __cil_tmp121 = hdev->descriptor.bDeviceProtocol;
12051#line 1075
12052  __cil_tmp122 = (int )__cil_tmp121;
12053#line 1075
12054  if (__cil_tmp122 == 0) {
12055#line 1075
12056    goto case_0___1;
12057  } else {
12058    {
12059#line 1077
12060    __cil_tmp123 = hdev->descriptor.bDeviceProtocol;
12061#line 1077
12062    __cil_tmp124 = (int )__cil_tmp123;
12063#line 1077
12064    if (__cil_tmp124 == 1) {
12065#line 1077
12066      goto case_1___0;
12067    } else {
12068      {
12069#line 1081
12070      __cil_tmp125 = hdev->descriptor.bDeviceProtocol;
12071#line 1081
12072      __cil_tmp126 = (int )__cil_tmp125;
12073#line 1081
12074      if (__cil_tmp126 == 2) {
12075#line 1081
12076        goto case_2___0;
12077      } else {
12078        {
12079#line 1091
12080        __cil_tmp127 = hdev->descriptor.bDeviceProtocol;
12081#line 1091
12082        __cil_tmp128 = (int )__cil_tmp127;
12083#line 1091
12084        if (__cil_tmp128 == 3) {
12085#line 1091
12086          goto case_3___0;
12087        } else {
12088#line 1094
12089          goto switch_default;
12090#line 1074
12091          if (0) {
12092            case_0___1: ;
12093#line 1076
12094            goto ldv_25874;
12095            case_1___0: 
12096            {
12097#line 1078
12098            __cil_tmp129 = (struct device  const  *)hub_dev;
12099#line 1078
12100            dev_printk("<7>", __cil_tmp129, "Single TT\n");
12101#line 1079
12102            hub->tt.hub = hdev;
12103            }
12104#line 1080
12105            goto ldv_25874;
12106            case_2___0: 
12107            {
12108#line 1082
12109            ret = usb_set_interface(hdev, 0, 1);
12110            }
12111#line 1083
12112            if (ret == 0) {
12113              {
12114#line 1084
12115              __cil_tmp130 = (struct device  const  *)hub_dev;
12116#line 1084
12117              dev_printk("<7>", __cil_tmp130, "TT per port\n");
12118#line 1085
12119              hub->tt.multi = 1;
12120              }
12121            } else {
12122              {
12123#line 1087
12124              __cil_tmp131 = (struct device  const  *)hub_dev;
12125#line 1087
12126              dev_err(__cil_tmp131, "Using single TT (err %d)\n", ret);
12127              }
12128            }
12129#line 1089
12130            hub->tt.hub = hdev;
12131#line 1090
12132            goto ldv_25874;
12133            case_3___0: ;
12134#line 1093
12135            goto ldv_25874;
12136            switch_default: 
12137            {
12138#line 1095
12139            __cil_tmp132 = (struct device  const  *)hub_dev;
12140#line 1095
12141            __cil_tmp133 = hdev->descriptor.bDeviceProtocol;
12142#line 1095
12143            __cil_tmp134 = (int )__cil_tmp133;
12144#line 1095
12145            dev_printk("<7>", __cil_tmp132, "Unrecognized hub protocol %d\n", __cil_tmp134);
12146            }
12147#line 1097
12148            goto ldv_25874;
12149          } else {
12150
12151          }
12152        }
12153        }
12154      }
12155      }
12156    }
12157    }
12158  }
12159  }
12160  ldv_25874: ;
12161  {
12162#line 1102
12163  __cil_tmp135 = (int )wHubCharacteristics;
12164#line 1102
12165  __cil_tmp136 = __cil_tmp135 & 96;
12166#line 1102
12167  if (__cil_tmp136 == 0) {
12168#line 1102
12169    goto case_0___2;
12170  } else {
12171    {
12172#line 1110
12173    __cil_tmp137 = (int )wHubCharacteristics;
12174#line 1110
12175    __cil_tmp138 = __cil_tmp137 & 96;
12176#line 1110
12177    if (__cil_tmp138 == 32) {
12178#line 1110
12179      goto case_32;
12180    } else {
12181      {
12182#line 1116
12183      __cil_tmp139 = (int )wHubCharacteristics;
12184#line 1116
12185      __cil_tmp140 = __cil_tmp139 & 96;
12186#line 1116
12187      if (__cil_tmp140 == 64) {
12188#line 1116
12189        goto case_64;
12190      } else {
12191        {
12192#line 1122
12193        __cil_tmp141 = (int )wHubCharacteristics;
12194#line 1122
12195        __cil_tmp142 = __cil_tmp141 & 96;
12196#line 1122
12197        if (__cil_tmp142 == 96) {
12198#line 1122
12199          goto case_96;
12200        } else
12201#line 1101
12202        if (0) {
12203          case_0___2: ;
12204          {
12205#line 1103
12206          __cil_tmp143 = hdev->descriptor.bDeviceProtocol;
12207#line 1103
12208          __cil_tmp144 = (unsigned int )__cil_tmp143;
12209#line 1103
12210          if (__cil_tmp144 != 0U) {
12211            {
12212#line 1104
12213            hub->tt.think_time = 666U;
12214#line 1105
12215            __cil_tmp145 = (struct device  const  *)hub_dev;
12216#line 1105
12217            __cil_tmp146 = hub->tt.think_time;
12218#line 1105
12219            dev_printk("<7>", __cil_tmp145, "TT requires at most %d FS bit times (%d ns)\n",
12220                       8, __cil_tmp146);
12221            }
12222          } else {
12223
12224          }
12225          }
12226#line 1109
12227          goto ldv_25880;
12228          case_32: 
12229          {
12230#line 1111
12231          hub->tt.think_time = 1332U;
12232#line 1112
12233          __cil_tmp147 = (struct device  const  *)hub_dev;
12234#line 1112
12235          __cil_tmp148 = hub->tt.think_time;
12236#line 1112
12237          dev_printk("<7>", __cil_tmp147, "TT requires at most %d FS bit times (%d ns)\n",
12238                     16, __cil_tmp148);
12239          }
12240#line 1115
12241          goto ldv_25880;
12242          case_64: 
12243          {
12244#line 1117
12245          hub->tt.think_time = 1998U;
12246#line 1118
12247          __cil_tmp149 = (struct device  const  *)hub_dev;
12248#line 1118
12249          __cil_tmp150 = hub->tt.think_time;
12250#line 1118
12251          dev_printk("<7>", __cil_tmp149, "TT requires at most %d FS bit times (%d ns)\n",
12252                     24, __cil_tmp150);
12253          }
12254#line 1121
12255          goto ldv_25880;
12256          case_96: 
12257          {
12258#line 1123
12259          hub->tt.think_time = 2664U;
12260#line 1124
12261          __cil_tmp151 = (struct device  const  *)hub_dev;
12262#line 1124
12263          __cil_tmp152 = hub->tt.think_time;
12264#line 1124
12265          dev_printk("<7>", __cil_tmp151, "TT requires at most %d FS bit times (%d ns)\n",
12266                     32, __cil_tmp152);
12267          }
12268#line 1127
12269          goto ldv_25880;
12270        } else {
12271
12272        }
12273        }
12274      }
12275      }
12276    }
12277    }
12278  }
12279  }
12280  ldv_25880: ;
12281  {
12282#line 1131
12283  __cil_tmp153 = (int )wHubCharacteristics;
12284#line 1131
12285  __cil_tmp154 = __cil_tmp153 & 128;
12286#line 1131
12287  if (__cil_tmp154 != 0) {
12288    {
12289#line 1132
12290    hub->has_indicators = (unsigned char)1;
12291#line 1133
12292    __cil_tmp155 = (struct device  const  *)hub_dev;
12293#line 1133
12294    dev_printk("<7>", __cil_tmp155, "Port indicators are supported\n");
12295    }
12296  } else {
12297
12298  }
12299  }
12300  {
12301#line 1136
12302  __cil_tmp156 = (struct device  const  *)hub_dev;
12303#line 1136
12304  __cil_tmp157 = hub->descriptor;
12305#line 1136
12306  __cil_tmp158 = __cil_tmp157->bPwrOn2PwrGood;
12307#line 1136
12308  __cil_tmp159 = (int )__cil_tmp158;
12309#line 1136
12310  __cil_tmp160 = __cil_tmp159 * 2;
12311#line 1136
12312  dev_printk("<7>", __cil_tmp156, "power on to power good time: %dms\n", __cil_tmp160);
12313#line 1142
12314  __cil_tmp161 = (void *)(& hubstatus);
12315#line 1142
12316  ret = usb_get_status(hdev, 0, 0, __cil_tmp161);
12317  }
12318#line 1143
12319  if (ret <= 1) {
12320#line 1144
12321    message = (char *)"can\'t get hub status";
12322#line 1145
12323    goto fail;
12324  } else {
12325
12326  }
12327  {
12328#line 1148
12329  __cil_tmp162 = (unsigned long )hdev;
12330#line 1148
12331  __cil_tmp163 = hdev->bus;
12332#line 1148
12333  __cil_tmp164 = __cil_tmp163->root_hub;
12334#line 1148
12335  __cil_tmp165 = (unsigned long )__cil_tmp164;
12336#line 1148
12337  if (__cil_tmp165 == __cil_tmp162) {
12338    {
12339#line 1149
12340    __cil_tmp166 = hdev->bus_mA;
12341#line 1149
12342    __cil_tmp167 = (unsigned int )__cil_tmp166;
12343#line 1149
12344    if (__cil_tmp167 == 0U) {
12345#line 1150
12346      hub->mA_per_port = 500U;
12347    } else {
12348      {
12349#line 1149
12350      __cil_tmp168 = hdev->bus_mA;
12351#line 1149
12352      __cil_tmp169 = (unsigned int )__cil_tmp168;
12353#line 1149
12354      if (__cil_tmp169 > 499U) {
12355#line 1150
12356        hub->mA_per_port = 500U;
12357      } else {
12358#line 1152
12359        __cil_tmp170 = hdev->bus_mA;
12360#line 1152
12361        hub->mA_per_port = (unsigned int )__cil_tmp170;
12362#line 1153
12363        hub->limited_power = (unsigned char)1;
12364      }
12365      }
12366    }
12367    }
12368  } else {
12369    {
12370#line 1155
12371    __cil_tmp171 = (int )hubstatus;
12372#line 1155
12373    __cil_tmp172 = __cil_tmp171 & 1;
12374#line 1155
12375    if (__cil_tmp172 == 0) {
12376      {
12377#line 1156
12378      __cil_tmp173 = (struct device  const  *)hub_dev;
12379#line 1156
12380      __cil_tmp174 = hub->descriptor;
12381#line 1156
12382      __cil_tmp175 = __cil_tmp174->bHubContrCurrent;
12383#line 1156
12384      __cil_tmp176 = (int )__cil_tmp175;
12385#line 1156
12386      dev_printk("<7>", __cil_tmp173, "hub controller current requirement: %dmA\n",
12387                 __cil_tmp176);
12388#line 1158
12389      hub->limited_power = (unsigned char)1;
12390      }
12391      {
12392#line 1159
12393      __cil_tmp177 = hdev->maxchild;
12394#line 1159
12395      if (__cil_tmp177 > 0) {
12396#line 1160
12397        __cil_tmp178 = hub->descriptor;
12398#line 1160
12399        __cil_tmp179 = __cil_tmp178->bHubContrCurrent;
12400#line 1160
12401        __cil_tmp180 = (int )__cil_tmp179;
12402#line 1160
12403        __cil_tmp181 = hdev->bus_mA;
12404#line 1160
12405        __cil_tmp182 = (int )__cil_tmp181;
12406#line 1160
12407        remaining = __cil_tmp182 - __cil_tmp180;
12408        {
12409#line 1163
12410        __cil_tmp183 = hdev->maxchild;
12411#line 1163
12412        __cil_tmp184 = __cil_tmp183 * 100;
12413#line 1163
12414        if (__cil_tmp184 > remaining) {
12415          {
12416#line 1164
12417          __cil_tmp185 = (struct device  const  *)hub_dev;
12418#line 1164
12419          dev_warn(__cil_tmp185, "insufficient power available to use all downstream ports\n");
12420          }
12421        } else {
12422
12423        }
12424        }
12425#line 1167
12426        hub->mA_per_port = 100U;
12427      } else {
12428
12429      }
12430      }
12431    } else {
12432#line 1172
12433      hub->mA_per_port = 500U;
12434    }
12435    }
12436  }
12437  }
12438  {
12439#line 1174
12440  __cil_tmp186 = hub->mA_per_port;
12441#line 1174
12442  if (__cil_tmp186 <= 499U) {
12443    {
12444#line 1175
12445    __cil_tmp187 = (struct device  const  *)hub_dev;
12446#line 1175
12447    __cil_tmp188 = hub->mA_per_port;
12448#line 1175
12449    dev_printk("<7>", __cil_tmp187, "%umA bus power budget for each child\n", __cil_tmp188);
12450    }
12451  } else {
12452
12453  }
12454  }
12455  {
12456#line 1181
12457  __cil_tmp189 = hdev->bus;
12458#line 1181
12459  hcd = bus_to_hcd(__cil_tmp189);
12460  }
12461  {
12462#line 1182
12463  __cil_tmp190 = (int (* const  )(struct usb_hcd * , struct usb_device * , struct usb_tt * ,
12464                                  gfp_t  ))0;
12465#line 1182
12466  __cil_tmp191 = (unsigned long )__cil_tmp190;
12467#line 1182
12468  __cil_tmp192 = hcd->driver;
12469#line 1182
12470  __cil_tmp193 = __cil_tmp192->update_hub_device;
12471#line 1182
12472  __cil_tmp194 = (unsigned long )__cil_tmp193;
12473#line 1182
12474  if (__cil_tmp194 != __cil_tmp191) {
12475    {
12476#line 1183
12477    __cil_tmp195 = hcd->driver;
12478#line 1183
12479    __cil_tmp196 = __cil_tmp195->update_hub_device;
12480#line 1183
12481    __cil_tmp197 = & hub->tt;
12482#line 1183
12483    ret = (*__cil_tmp196)(hcd, hdev, __cil_tmp197, 208U);
12484    }
12485#line 1185
12486    if (ret < 0) {
12487#line 1186
12488      message = (char *)"can\'t update HCD hub info";
12489#line 1187
12490      goto fail;
12491    } else {
12492
12493    }
12494  } else {
12495
12496  }
12497  }
12498  {
12499#line 1191
12500  ret = hub_hub_status(hub, & hubstatus, & hubchange);
12501  }
12502#line 1192
12503  if (ret < 0) {
12504#line 1193
12505    message = (char *)"can\'t get hub status";
12506#line 1194
12507    goto fail;
12508  } else {
12509
12510  }
12511  {
12512#line 1198
12513  __cil_tmp198 = hdev->actconfig;
12514#line 1198
12515  __cil_tmp199 = __cil_tmp198->desc.bmAttributes;
12516#line 1198
12517  __cil_tmp200 = (int )__cil_tmp199;
12518#line 1198
12519  __cil_tmp201 = __cil_tmp200 & 64;
12520#line 1198
12521  if (__cil_tmp201 != 0) {
12522    {
12523#line 1199
12524    __cil_tmp202 = (int )hubstatus;
12525#line 1199
12526    if (__cil_tmp202 & 1) {
12527#line 1199
12528      tmp___7 = (char *)"lost (inactive)";
12529    } else {
12530#line 1199
12531      tmp___7 = (char *)"good";
12532    }
12533    }
12534    {
12535#line 1199
12536    __cil_tmp203 = (struct device  const  *)hub_dev;
12537#line 1199
12538    dev_printk("<7>", __cil_tmp203, "local power source is %s\n", tmp___7);
12539    }
12540  } else {
12541
12542  }
12543  }
12544  {
12545#line 1203
12546  __cil_tmp204 = (int )wHubCharacteristics;
12547#line 1203
12548  __cil_tmp205 = __cil_tmp204 & 24;
12549#line 1203
12550  if (__cil_tmp205 == 0) {
12551    {
12552#line 1204
12553    __cil_tmp206 = (int )hubstatus;
12554#line 1204
12555    __cil_tmp207 = __cil_tmp206 & 2;
12556#line 1204
12557    if (__cil_tmp207 != 0) {
12558#line 1204
12559      tmp___8 = (char *)"";
12560    } else {
12561#line 1204
12562      tmp___8 = (char *)"no ";
12563    }
12564    }
12565    {
12566#line 1204
12567    __cil_tmp208 = (struct device  const  *)hub_dev;
12568#line 1204
12569    dev_printk("<7>", __cil_tmp208, "%sover-current condition exists\n", tmp___8);
12570    }
12571  } else {
12572
12573  }
12574  }
12575  {
12576#line 1213
12577  __cil_tmp209 = endpoint->bEndpointAddress;
12578#line 1213
12579  __cil_tmp210 = (unsigned int )__cil_tmp209;
12580#line 1213
12581  tmp___9 = __create_pipe(hdev, __cil_tmp210);
12582#line 1213
12583  pipe = tmp___9 | 1073741952U;
12584#line 1214
12585  __cil_tmp211 = (int )pipe;
12586#line 1214
12587  __cil_tmp212 = pipe & 128U;
12588#line 1214
12589  __cil_tmp213 = __cil_tmp212 == 0U;
12590#line 1214
12591  tmp___10 = usb_maxpacket(hdev, __cil_tmp211, __cil_tmp213);
12592#line 1214
12593  maxp = (int )tmp___10;
12594  }
12595  {
12596#line 1216
12597  __cil_tmp214 = (unsigned int )maxp;
12598#line 1216
12599  if (__cil_tmp214 > 8U) {
12600#line 1217
12601    maxp = 8;
12602  } else {
12603
12604  }
12605  }
12606  {
12607#line 1219
12608  hub->urb = usb_alloc_urb(0, 208U);
12609  }
12610  {
12611#line 1220
12612  __cil_tmp215 = (struct urb *)0;
12613#line 1220
12614  __cil_tmp216 = (unsigned long )__cil_tmp215;
12615#line 1220
12616  __cil_tmp217 = hub->urb;
12617#line 1220
12618  __cil_tmp218 = (unsigned long )__cil_tmp217;
12619#line 1220
12620  if (__cil_tmp218 == __cil_tmp216) {
12621#line 1221
12622    ret = -12;
12623#line 1222
12624    goto fail;
12625  } else {
12626
12627  }
12628  }
12629  {
12630#line 1225
12631  __cil_tmp219 = hub->urb;
12632#line 1225
12633  __cil_tmp220 = hub->buffer;
12634#line 1225
12635  __cil_tmp221 = (void *)__cil_tmp220;
12636#line 1225
12637  __cil_tmp222 = (void *)hub;
12638#line 1225
12639  __cil_tmp223 = endpoint->bInterval;
12640#line 1225
12641  __cil_tmp224 = (int )__cil_tmp223;
12642#line 1225
12643  usb_fill_int_urb(__cil_tmp219, hdev, pipe, __cil_tmp221, maxp, & hub_irq, __cil_tmp222,
12644                   __cil_tmp224);
12645  }
12646  {
12647#line 1229
12648  __cil_tmp225 = (unsigned char *)hub;
12649#line 1229
12650  __cil_tmp226 = __cil_tmp225 + 468UL;
12651#line 1229
12652  __cil_tmp227 = *__cil_tmp226;
12653#line 1229
12654  __cil_tmp228 = (unsigned int )__cil_tmp227;
12655#line 1229
12656  if (__cil_tmp228 != 0U) {
12657#line 1229
12658    if (blinkenlights != 0) {
12659#line 1230
12660      hub->indicator[0] = (u8 )1U;
12661    } else {
12662
12663    }
12664  } else {
12665
12666  }
12667  }
12668  {
12669#line 1232
12670  __cil_tmp229 = (enum hub_activation_type )0;
12671#line 1232
12672  hub_activate(hub, __cil_tmp229);
12673  }
12674#line 1233
12675  return (0);
12676  fail: 
12677  {
12678#line 1236
12679  __cil_tmp230 = (struct device  const  *)hub_dev;
12680#line 1236
12681  dev_err(__cil_tmp230, "config failed, %s (err %d)\n", message, ret);
12682  }
12683#line 1239
12684  return (ret);
12685}
12686}
12687#line 1242 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
12688static void hub_release(struct kref *kref ) 
12689{ struct usb_hub *hub ;
12690  struct kref  const  *__mptr ;
12691  struct device  const  *__mptr___0 ;
12692  struct usb_hub *__cil_tmp5 ;
12693  struct device *__cil_tmp6 ;
12694  struct usb_interface *__cil_tmp7 ;
12695  struct usb_interface *__cil_tmp8 ;
12696  void const   *__cil_tmp9 ;
12697
12698  {
12699  {
12700#line 1244
12701  __mptr = (struct kref  const  *)kref;
12702#line 1244
12703  __cil_tmp5 = (struct usb_hub *)__mptr;
12704#line 1244
12705  hub = __cil_tmp5 + 1152921504606846960UL;
12706#line 1246
12707  __cil_tmp6 = hub->intfdev;
12708#line 1246
12709  __mptr___0 = (struct device  const  *)__cil_tmp6;
12710#line 1246
12711  __cil_tmp7 = (struct usb_interface *)__mptr___0;
12712#line 1246
12713  __cil_tmp8 = __cil_tmp7 + 1152921504606846928UL;
12714#line 1246
12715  usb_put_intf(__cil_tmp8);
12716#line 1247
12717  __cil_tmp9 = (void const   *)hub;
12718#line 1247
12719  kfree(__cil_tmp9);
12720  }
12721#line 1248
12722  return;
12723}
12724}
12725#line 1250 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
12726static unsigned int highspeed_hubs  ;
12727#line 1252 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
12728static void hub_disconnect(struct usb_interface *intf ) 
12729{ struct usb_hub *hub ;
12730  void *tmp ;
12731  int tmp___0 ;
12732  struct list_head *__cil_tmp5 ;
12733  struct list_head  const  *__cil_tmp6 ;
12734  struct list_head *__cil_tmp7 ;
12735  enum hub_quiescing_type __cil_tmp8 ;
12736  void *__cil_tmp9 ;
12737  struct usb_device *__cil_tmp10 ;
12738  struct usb_device *__cil_tmp11 ;
12739  enum usb_device_speed __cil_tmp12 ;
12740  unsigned int __cil_tmp13 ;
12741  struct urb *__cil_tmp14 ;
12742  void **__cil_tmp15 ;
12743  void const   *__cil_tmp16 ;
12744  struct usb_hub_descriptor *__cil_tmp17 ;
12745  void const   *__cil_tmp18 ;
12746  union __anonunion_status_183 *__cil_tmp19 ;
12747  void const   *__cil_tmp20 ;
12748  char (*__cil_tmp21)[8U] ;
12749  void const   *__cil_tmp22 ;
12750  struct kref *__cil_tmp23 ;
12751
12752  {
12753  {
12754#line 1254
12755  tmp = usb_get_intfdata(intf);
12756#line 1254
12757  hub = (struct usb_hub *)tmp;
12758#line 1257
12759  spin_lock_irq(& hub_event_lock);
12760#line 1258
12761  __cil_tmp5 = & hub->event_list;
12762#line 1258
12763  __cil_tmp6 = (struct list_head  const  *)__cil_tmp5;
12764#line 1258
12765  tmp___0 = list_empty(__cil_tmp6);
12766  }
12767#line 1258
12768  if (tmp___0 == 0) {
12769    {
12770#line 1259
12771    __cil_tmp7 = & hub->event_list;
12772#line 1259
12773    list_del_init(__cil_tmp7);
12774#line 1260
12775    usb_autopm_put_interface_no_suspend(intf);
12776    }
12777  } else {
12778
12779  }
12780  {
12781#line 1262
12782  hub->disconnected = (unsigned char)1;
12783#line 1263
12784  spin_unlock_irq(& hub_event_lock);
12785#line 1266
12786  hub->error = 0;
12787#line 1267
12788  __cil_tmp8 = (enum hub_quiescing_type )0;
12789#line 1267
12790  hub_quiesce(hub, __cil_tmp8);
12791#line 1269
12792  __cil_tmp9 = (void *)0;
12793#line 1269
12794  usb_set_intfdata(intf, __cil_tmp9);
12795#line 1270
12796  __cil_tmp10 = hub->hdev;
12797#line 1270
12798  __cil_tmp10->maxchild = 0;
12799  }
12800  {
12801#line 1272
12802  __cil_tmp11 = hub->hdev;
12803#line 1272
12804  __cil_tmp12 = __cil_tmp11->speed;
12805#line 1272
12806  __cil_tmp13 = (unsigned int )__cil_tmp12;
12807#line 1272
12808  if (__cil_tmp13 == 3U) {
12809#line 1273
12810    highspeed_hubs = highspeed_hubs - 1U;
12811  } else {
12812
12813  }
12814  }
12815  {
12816#line 1275
12817  __cil_tmp14 = hub->urb;
12818#line 1275
12819  usb_free_urb(__cil_tmp14);
12820#line 1276
12821  __cil_tmp15 = hub->port_owners;
12822#line 1276
12823  __cil_tmp16 = (void const   *)__cil_tmp15;
12824#line 1276
12825  kfree(__cil_tmp16);
12826#line 1277
12827  __cil_tmp17 = hub->descriptor;
12828#line 1277
12829  __cil_tmp18 = (void const   *)__cil_tmp17;
12830#line 1277
12831  kfree(__cil_tmp18);
12832#line 1278
12833  __cil_tmp19 = hub->status;
12834#line 1278
12835  __cil_tmp20 = (void const   *)__cil_tmp19;
12836#line 1278
12837  kfree(__cil_tmp20);
12838#line 1279
12839  __cil_tmp21 = hub->buffer;
12840#line 1279
12841  __cil_tmp22 = (void const   *)__cil_tmp21;
12842#line 1279
12843  kfree(__cil_tmp22);
12844#line 1281
12845  __cil_tmp23 = & hub->kref;
12846#line 1281
12847  kref_put(__cil_tmp23, & hub_release);
12848  }
12849#line 1282
12850  return;
12851}
12852}
12853#line 1284 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
12854static int hub_probe(struct usb_interface *intf , struct usb_device_id  const  *id ) 
12855{ struct usb_host_interface *desc ;
12856  struct usb_endpoint_descriptor *endpoint ;
12857  struct usb_device *hdev ;
12858  struct usb_hub *hub ;
12859  int tmp ;
12860  int tmp___0 ;
12861  void *tmp___1 ;
12862  struct lock_class_key __key ;
12863  atomic_long_t __constr_expr_0 ;
12864  struct lock_class_key __key___0 ;
12865  struct lock_class_key __key___1 ;
12866  atomic_long_t __constr_expr_1 ;
12867  struct lock_class_key __key___2 ;
12868  int tmp___2 ;
12869  struct usb_device *__cil_tmp17 ;
12870  unsigned long __cil_tmp18 ;
12871  struct usb_device *__cil_tmp19 ;
12872  unsigned long __cil_tmp20 ;
12873  u8 __cil_tmp21 ;
12874  unsigned int __cil_tmp22 ;
12875  struct device *__cil_tmp23 ;
12876  struct device  const  *__cil_tmp24 ;
12877  struct usb_device *__cil_tmp25 ;
12878  unsigned long __cil_tmp26 ;
12879  struct usb_device *__cil_tmp27 ;
12880  unsigned long __cil_tmp28 ;
12881  struct device *__cil_tmp29 ;
12882  struct device  const  *__cil_tmp30 ;
12883  __u8 __cil_tmp31 ;
12884  unsigned int __cil_tmp32 ;
12885  __u8 __cil_tmp33 ;
12886  unsigned int __cil_tmp34 ;
12887  struct device *__cil_tmp35 ;
12888  struct device  const  *__cil_tmp36 ;
12889  __u8 __cil_tmp37 ;
12890  unsigned int __cil_tmp38 ;
12891  struct usb_host_endpoint *__cil_tmp39 ;
12892  struct usb_endpoint_descriptor  const  *__cil_tmp40 ;
12893  struct device *__cil_tmp41 ;
12894  struct device  const  *__cil_tmp42 ;
12895  struct usb_hub *__cil_tmp43 ;
12896  unsigned long __cil_tmp44 ;
12897  unsigned long __cil_tmp45 ;
12898  struct device *__cil_tmp46 ;
12899  struct device  const  *__cil_tmp47 ;
12900  struct kref *__cil_tmp48 ;
12901  struct list_head *__cil_tmp49 ;
12902  struct work_struct *__cil_tmp50 ;
12903  struct lockdep_map *__cil_tmp51 ;
12904  struct list_head *__cil_tmp52 ;
12905  struct timer_list *__cil_tmp53 ;
12906  struct work_struct *__cil_tmp54 ;
12907  struct lockdep_map *__cil_tmp55 ;
12908  struct list_head *__cil_tmp56 ;
12909  struct timer_list *__cil_tmp57 ;
12910  void *__cil_tmp58 ;
12911  enum usb_device_speed __cil_tmp59 ;
12912  unsigned int __cil_tmp60 ;
12913
12914  {
12915  {
12916#line 1291
12917  desc = intf->cur_altsetting;
12918#line 1292
12919  hdev = interface_to_usbdev(intf);
12920#line 1300
12921  tmp = hub_is_superspeed(hdev);
12922  }
12923#line 1300
12924  if (tmp == 0) {
12925    {
12926#line 1301
12927    usb_enable_autosuspend(hdev);
12928    }
12929  } else {
12930    {
12931#line 1300
12932    __cil_tmp17 = (struct usb_device *)0;
12933#line 1300
12934    __cil_tmp18 = (unsigned long )__cil_tmp17;
12935#line 1300
12936    __cil_tmp19 = hdev->parent;
12937#line 1300
12938    __cil_tmp20 = (unsigned long )__cil_tmp19;
12939#line 1300
12940    if (__cil_tmp20 == __cil_tmp18) {
12941      {
12942#line 1301
12943      usb_enable_autosuspend(hdev);
12944      }
12945    } else {
12946
12947    }
12948    }
12949  }
12950  {
12951#line 1303
12952  __cil_tmp21 = hdev->level;
12953#line 1303
12954  __cil_tmp22 = (unsigned int )__cil_tmp21;
12955#line 1303
12956  if (__cil_tmp22 == 6U) {
12957    {
12958#line 1304
12959    __cil_tmp23 = & intf->dev;
12960#line 1304
12961    __cil_tmp24 = (struct device  const  *)__cil_tmp23;
12962#line 1304
12963    dev_err(__cil_tmp24, "Unsupported bus topology: hub nested too deep\n");
12964    }
12965#line 1306
12966    return (-7);
12967  } else {
12968
12969  }
12970  }
12971  {
12972#line 1310
12973  __cil_tmp25 = (struct usb_device *)0;
12974#line 1310
12975  __cil_tmp26 = (unsigned long )__cil_tmp25;
12976#line 1310
12977  __cil_tmp27 = hdev->parent;
12978#line 1310
12979  __cil_tmp28 = (unsigned long )__cil_tmp27;
12980#line 1310
12981  if (__cil_tmp28 != __cil_tmp26) {
12982    {
12983#line 1311
12984    __cil_tmp29 = & intf->dev;
12985#line 1311
12986    __cil_tmp30 = (struct device  const  *)__cil_tmp29;
12987#line 1311
12988    dev_warn(__cil_tmp30, "ignoring external hub\n");
12989    }
12990#line 1312
12991    return (-19);
12992  } else {
12993
12994  }
12995  }
12996  {
12997#line 1318
12998  __cil_tmp31 = desc->desc.bInterfaceSubClass;
12999#line 1318
13000  __cil_tmp32 = (unsigned int )__cil_tmp31;
13001#line 1318
13002  if (__cil_tmp32 != 0U) {
13003    {
13004#line 1318
13005    __cil_tmp33 = desc->desc.bInterfaceSubClass;
13006#line 1318
13007    __cil_tmp34 = (unsigned int )__cil_tmp33;
13008#line 1318
13009    if (__cil_tmp34 != 1U) {
13010      descriptor_error: 
13011      {
13012#line 1321
13013      __cil_tmp35 = & intf->dev;
13014#line 1321
13015      __cil_tmp36 = (struct device  const  *)__cil_tmp35;
13016#line 1321
13017      dev_err(__cil_tmp36, "bad descriptor, ignoring hub\n");
13018      }
13019#line 1322
13020      return (-5);
13021    } else {
13022
13023    }
13024    }
13025  } else {
13026
13027  }
13028  }
13029  {
13030#line 1326
13031  __cil_tmp37 = desc->desc.bNumEndpoints;
13032#line 1326
13033  __cil_tmp38 = (unsigned int )__cil_tmp37;
13034#line 1326
13035  if (__cil_tmp38 != 1U) {
13036#line 1327
13037    goto descriptor_error;
13038  } else {
13039
13040  }
13041  }
13042  {
13043#line 1329
13044  __cil_tmp39 = desc->endpoint;
13045#line 1329
13046  endpoint = & __cil_tmp39->desc;
13047#line 1332
13048  __cil_tmp40 = (struct usb_endpoint_descriptor  const  *)endpoint;
13049#line 1332
13050  tmp___0 = usb_endpoint_is_int_in(__cil_tmp40);
13051  }
13052#line 1332
13053  if (tmp___0 == 0) {
13054#line 1333
13055    goto descriptor_error;
13056  } else {
13057
13058  }
13059  {
13060#line 1336
13061  __cil_tmp41 = & intf->dev;
13062#line 1336
13063  __cil_tmp42 = (struct device  const  *)__cil_tmp41;
13064#line 1336
13065  _dev_info(__cil_tmp42, "USB hub found\n");
13066#line 1338
13067  tmp___1 = kzalloc(928UL, 208U);
13068#line 1338
13069  hub = (struct usb_hub *)tmp___1;
13070  }
13071  {
13072#line 1339
13073  __cil_tmp43 = (struct usb_hub *)0;
13074#line 1339
13075  __cil_tmp44 = (unsigned long )__cil_tmp43;
13076#line 1339
13077  __cil_tmp45 = (unsigned long )hub;
13078#line 1339
13079  if (__cil_tmp45 == __cil_tmp44) {
13080    {
13081#line 1340
13082    __cil_tmp46 = & intf->dev;
13083#line 1340
13084    __cil_tmp47 = (struct device  const  *)__cil_tmp46;
13085#line 1340
13086    dev_printk("<7>", __cil_tmp47, "couldn\'t kmalloc hub struct\n");
13087    }
13088#line 1341
13089    return (-12);
13090  } else {
13091
13092  }
13093  }
13094  {
13095#line 1344
13096  __cil_tmp48 = & hub->kref;
13097#line 1344
13098  kref_init(__cil_tmp48);
13099#line 1345
13100  __cil_tmp49 = & hub->event_list;
13101#line 1345
13102  INIT_LIST_HEAD(__cil_tmp49);
13103#line 1346
13104  hub->intfdev = & intf->dev;
13105#line 1347
13106  hub->hdev = hdev;
13107#line 1348
13108  __cil_tmp50 = & hub->leds.work;
13109#line 1348
13110  __init_work(__cil_tmp50, 0);
13111#line 1348
13112  __constr_expr_0.counter = 2097664L;
13113#line 1348
13114  hub->leds.work.data = __constr_expr_0;
13115#line 1348
13116  __cil_tmp51 = & hub->leds.work.lockdep_map;
13117#line 1348
13118  lockdep_init_map(__cil_tmp51, "(&(&hub->leds)->work)", & __key, 0);
13119#line 1348
13120  __cil_tmp52 = & hub->leds.work.entry;
13121#line 1348
13122  INIT_LIST_HEAD(__cil_tmp52);
13123#line 1348
13124  hub->leds.work.func = & led_work;
13125#line 1348
13126  __cil_tmp53 = & hub->leds.timer;
13127#line 1348
13128  init_timer_key(__cil_tmp53, "&(&hub->leds)->timer", & __key___0);
13129#line 1349
13130  __cil_tmp54 = & hub->init_work.work;
13131#line 1349
13132  __init_work(__cil_tmp54, 0);
13133#line 1349
13134  __constr_expr_1.counter = 2097664L;
13135#line 1349
13136  hub->init_work.work.data = __constr_expr_1;
13137#line 1349
13138  __cil_tmp55 = & hub->init_work.work.lockdep_map;
13139#line 1349
13140  lockdep_init_map(__cil_tmp55, "(&(&hub->init_work)->work)", & __key___1, 0);
13141#line 1349
13142  __cil_tmp56 = & hub->init_work.work.entry;
13143#line 1349
13144  INIT_LIST_HEAD(__cil_tmp56);
13145#line 1349
13146  hub->init_work.work.func = (void (*)(struct work_struct * ))0;
13147#line 1349
13148  __cil_tmp57 = & hub->init_work.timer;
13149#line 1349
13150  init_timer_key(__cil_tmp57, "&(&hub->init_work)->timer", & __key___2);
13151#line 1350
13152  usb_get_intf(intf);
13153#line 1352
13154  __cil_tmp58 = (void *)hub;
13155#line 1352
13156  usb_set_intfdata(intf, __cil_tmp58);
13157#line 1353
13158  intf->needs_remote_wakeup = (unsigned char)1;
13159  }
13160  {
13161#line 1355
13162  __cil_tmp59 = hdev->speed;
13163#line 1355
13164  __cil_tmp60 = (unsigned int )__cil_tmp59;
13165#line 1355
13166  if (__cil_tmp60 == 3U) {
13167#line 1356
13168    highspeed_hubs = highspeed_hubs + 1U;
13169  } else {
13170
13171  }
13172  }
13173  {
13174#line 1358
13175  tmp___2 = hub_configure(hub, endpoint);
13176  }
13177#line 1358
13178  if (tmp___2 >= 0) {
13179#line 1359
13180    return (0);
13181  } else {
13182
13183  }
13184  {
13185#line 1361
13186  hub_disconnect(intf);
13187  }
13188#line 1362
13189  return (-19);
13190}
13191}
13192#line 1367 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
13193static int hub_ioctl(struct usb_interface *intf , unsigned int code , void *user_data ) 
13194{ struct usb_device *hdev ;
13195  struct usb_device *tmp ;
13196  struct usbdevfs_hub_portinfo *info ;
13197  int i ;
13198  int __cil_tmp8 ;
13199  int __cil_tmp9 ;
13200  int __cil_tmp10 ;
13201  struct usb_device *__cil_tmp11 ;
13202  unsigned long __cil_tmp12 ;
13203  struct usb_device *__cil_tmp13 ;
13204  unsigned long __cil_tmp14 ;
13205  struct usb_device *__cil_tmp15 ;
13206  int __cil_tmp16 ;
13207  char __cil_tmp17 ;
13208  int __cil_tmp18 ;
13209  char __cil_tmp19 ;
13210  int __cil_tmp20 ;
13211
13212  {
13213  {
13214#line 1369
13215  tmp = interface_to_usbdev(intf);
13216#line 1369
13217  hdev = tmp;
13218  }
13219  {
13220#line 1373
13221  __cil_tmp8 = (int )code;
13222#line 1373
13223  if (__cil_tmp8 == -2139073261) {
13224#line 1373
13225    goto case_neg_2139073261;
13226  } else {
13227#line 1395
13228    goto switch_default;
13229#line 1372
13230    if (0) {
13231      case_neg_2139073261: 
13232      {
13233#line 1374
13234      info = (struct usbdevfs_hub_portinfo *)user_data;
13235#line 1377
13236      spin_lock_irq(& device_state_lock);
13237      }
13238      {
13239#line 1378
13240      __cil_tmp9 = hdev->devnum;
13241#line 1378
13242      if (__cil_tmp9 <= 0) {
13243#line 1379
13244        info->nports = (char)0;
13245      } else {
13246#line 1381
13247        __cil_tmp10 = hdev->maxchild;
13248#line 1381
13249        info->nports = (char )__cil_tmp10;
13250#line 1382
13251        i = 0;
13252#line 1382
13253        goto ldv_25923;
13254        ldv_25922: ;
13255        {
13256#line 1383
13257        __cil_tmp11 = (struct usb_device *)0;
13258#line 1383
13259        __cil_tmp12 = (unsigned long )__cil_tmp11;
13260#line 1383
13261        __cil_tmp13 = hdev->children[i];
13262#line 1383
13263        __cil_tmp14 = (unsigned long )__cil_tmp13;
13264#line 1383
13265        if (__cil_tmp14 == __cil_tmp12) {
13266#line 1384
13267          info->port[i] = (char)0;
13268        } else {
13269#line 1386
13270          __cil_tmp15 = hdev->children[i];
13271#line 1386
13272          __cil_tmp16 = __cil_tmp15->devnum;
13273#line 1386
13274          info->port[i] = (char )__cil_tmp16;
13275        }
13276        }
13277#line 1382
13278        i = i + 1;
13279        ldv_25923: ;
13280        {
13281#line 1382
13282        __cil_tmp17 = info->nports;
13283#line 1382
13284        __cil_tmp18 = (int )__cil_tmp17;
13285#line 1382
13286        if (__cil_tmp18 > i) {
13287#line 1383
13288          goto ldv_25922;
13289        } else {
13290#line 1385
13291          goto ldv_25924;
13292        }
13293        }
13294        ldv_25924: ;
13295      }
13296      }
13297      {
13298#line 1390
13299      spin_unlock_irq(& device_state_lock);
13300      }
13301      {
13302#line 1392
13303      __cil_tmp19 = info->nports;
13304#line 1392
13305      __cil_tmp20 = (int )__cil_tmp19;
13306#line 1392
13307      return (__cil_tmp20 + 1);
13308      }
13309      switch_default: ;
13310#line 1396
13311      return (-38);
13312    } else {
13313
13314    }
13315  }
13316  }
13317}
13318}
13319#line 1404 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
13320static int find_port_owner(struct usb_device *hdev , unsigned int port1 , void ***ppowner ) 
13321{ struct usb_hub *tmp ;
13322  enum usb_device_state __cil_tmp5 ;
13323  unsigned int __cil_tmp6 ;
13324  int __cil_tmp7 ;
13325  unsigned int __cil_tmp8 ;
13326  unsigned int __cil_tmp9 ;
13327  unsigned long __cil_tmp10 ;
13328  void **__cil_tmp11 ;
13329
13330  {
13331  {
13332#line 1407
13333  __cil_tmp5 = hdev->state;
13334#line 1407
13335  __cil_tmp6 = (unsigned int )__cil_tmp5;
13336#line 1407
13337  if (__cil_tmp6 == 0U) {
13338#line 1408
13339    return (-19);
13340  } else {
13341
13342  }
13343  }
13344#line 1409
13345  if (port1 == 0U) {
13346#line 1410
13347    return (-22);
13348  } else {
13349    {
13350#line 1409
13351    __cil_tmp7 = hdev->maxchild;
13352#line 1409
13353    __cil_tmp8 = (unsigned int )__cil_tmp7;
13354#line 1409
13355    if (__cil_tmp8 < port1) {
13356#line 1410
13357      return (-22);
13358    } else {
13359
13360    }
13361    }
13362  }
13363  {
13364#line 1415
13365  tmp = hdev_to_hub(hdev);
13366#line 1415
13367  __cil_tmp9 = port1 - 1U;
13368#line 1415
13369  __cil_tmp10 = (unsigned long )__cil_tmp9;
13370#line 1415
13371  __cil_tmp11 = tmp->port_owners;
13372#line 1415
13373  *ppowner = __cil_tmp11 + __cil_tmp10;
13374  }
13375#line 1416
13376  return (0);
13377}
13378}
13379#line 1420 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
13380int usb_hub_claim_port(struct usb_device *hdev , unsigned int port1 , void *owner ) 
13381{ int rc ;
13382  void **powner ;
13383  void *__cil_tmp6 ;
13384  unsigned long __cil_tmp7 ;
13385  void *__cil_tmp8 ;
13386  unsigned long __cil_tmp9 ;
13387
13388  {
13389  {
13390#line 1425
13391  rc = find_port_owner(hdev, port1, & powner);
13392  }
13393#line 1426
13394  if (rc != 0) {
13395#line 1427
13396    return (rc);
13397  } else {
13398
13399  }
13400  {
13401#line 1428
13402  __cil_tmp6 = (void *)0;
13403#line 1428
13404  __cil_tmp7 = (unsigned long )__cil_tmp6;
13405#line 1428
13406  __cil_tmp8 = *powner;
13407#line 1428
13408  __cil_tmp9 = (unsigned long )__cil_tmp8;
13409#line 1428
13410  if (__cil_tmp9 != __cil_tmp7) {
13411#line 1429
13412    return (-16);
13413  } else {
13414
13415  }
13416  }
13417#line 1430
13418  *powner = owner;
13419#line 1431
13420  return (rc);
13421}
13422}
13423#line 1434 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
13424int usb_hub_release_port(struct usb_device *hdev , unsigned int port1 , void *owner ) 
13425{ int rc ;
13426  void **powner ;
13427  unsigned long __cil_tmp6 ;
13428  void *__cil_tmp7 ;
13429  unsigned long __cil_tmp8 ;
13430
13431  {
13432  {
13433#line 1439
13434  rc = find_port_owner(hdev, port1, & powner);
13435  }
13436#line 1440
13437  if (rc != 0) {
13438#line 1441
13439    return (rc);
13440  } else {
13441
13442  }
13443  {
13444#line 1442
13445  __cil_tmp6 = (unsigned long )owner;
13446#line 1442
13447  __cil_tmp7 = *powner;
13448#line 1442
13449  __cil_tmp8 = (unsigned long )__cil_tmp7;
13450#line 1442
13451  if (__cil_tmp8 != __cil_tmp6) {
13452#line 1443
13453    return (-2);
13454  } else {
13455
13456  }
13457  }
13458#line 1444
13459  *powner = (void *)0;
13460#line 1445
13461  return (rc);
13462}
13463}
13464#line 1448 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
13465void usb_hub_release_all_ports(struct usb_device *hdev , void *owner ) 
13466{ int n ;
13467  void **powner ;
13468  unsigned long __cil_tmp5 ;
13469  void *__cil_tmp6 ;
13470  unsigned long __cil_tmp7 ;
13471  int __cil_tmp8 ;
13472
13473  {
13474  {
13475#line 1453
13476  n = find_port_owner(hdev, 1U, & powner);
13477  }
13478#line 1454
13479  if (n == 0) {
13480#line 1455
13481    goto ldv_25952;
13482    ldv_25951: ;
13483    {
13484#line 1456
13485    __cil_tmp5 = (unsigned long )owner;
13486#line 1456
13487    __cil_tmp6 = *powner;
13488#line 1456
13489    __cil_tmp7 = (unsigned long )__cil_tmp6;
13490#line 1456
13491    if (__cil_tmp7 == __cil_tmp5) {
13492#line 1457
13493      *powner = (void *)0;
13494    } else {
13495
13496    }
13497    }
13498#line 1455
13499    n = n + 1;
13500#line 1455
13501    powner = powner + 1;
13502    ldv_25952: ;
13503    {
13504#line 1455
13505    __cil_tmp8 = hdev->maxchild;
13506#line 1455
13507    if (__cil_tmp8 > n) {
13508#line 1456
13509      goto ldv_25951;
13510    } else {
13511#line 1458
13512      goto ldv_25953;
13513    }
13514    }
13515    ldv_25953: ;
13516  } else {
13517
13518  }
13519#line 1461
13520  return;
13521}
13522}
13523#line 1463 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
13524bool usb_device_is_owned(struct usb_device *udev ) 
13525{ struct usb_hub *hub ;
13526  enum usb_device_state __cil_tmp3 ;
13527  unsigned int __cil_tmp4 ;
13528  struct usb_device *__cil_tmp5 ;
13529  unsigned long __cil_tmp6 ;
13530  struct usb_device *__cil_tmp7 ;
13531  unsigned long __cil_tmp8 ;
13532  struct usb_device *__cil_tmp9 ;
13533  void *__cil_tmp10 ;
13534  unsigned long __cil_tmp11 ;
13535  u8 __cil_tmp12 ;
13536  unsigned long __cil_tmp13 ;
13537  unsigned long __cil_tmp14 ;
13538  void **__cil_tmp15 ;
13539  void **__cil_tmp16 ;
13540  void *__cil_tmp17 ;
13541  unsigned long __cil_tmp18 ;
13542  int __cil_tmp19 ;
13543
13544  {
13545  {
13546#line 1467
13547  __cil_tmp3 = udev->state;
13548#line 1467
13549  __cil_tmp4 = (unsigned int )__cil_tmp3;
13550#line 1467
13551  if (__cil_tmp4 == 0U) {
13552#line 1468
13553    return ((bool )0);
13554  } else {
13555    {
13556#line 1467
13557    __cil_tmp5 = (struct usb_device *)0;
13558#line 1467
13559    __cil_tmp6 = (unsigned long )__cil_tmp5;
13560#line 1467
13561    __cil_tmp7 = udev->parent;
13562#line 1467
13563    __cil_tmp8 = (unsigned long )__cil_tmp7;
13564#line 1467
13565    if (__cil_tmp8 == __cil_tmp6) {
13566#line 1468
13567      return ((bool )0);
13568    } else {
13569
13570    }
13571    }
13572  }
13573  }
13574  {
13575#line 1469
13576  __cil_tmp9 = udev->parent;
13577#line 1469
13578  hub = hdev_to_hub(__cil_tmp9);
13579  }
13580  {
13581#line 1470
13582  __cil_tmp10 = (void *)0;
13583#line 1470
13584  __cil_tmp11 = (unsigned long )__cil_tmp10;
13585#line 1470
13586  __cil_tmp12 = udev->portnum;
13587#line 1470
13588  __cil_tmp13 = (unsigned long )__cil_tmp12;
13589#line 1470
13590  __cil_tmp14 = __cil_tmp13 + 1152921504606846975UL;
13591#line 1470
13592  __cil_tmp15 = hub->port_owners;
13593#line 1470
13594  __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
13595#line 1470
13596  __cil_tmp17 = *__cil_tmp16;
13597#line 1470
13598  __cil_tmp18 = (unsigned long )__cil_tmp17;
13599#line 1470
13600  __cil_tmp19 = __cil_tmp18 != __cil_tmp11;
13601#line 1470
13602  return ((bool )__cil_tmp19);
13603  }
13604}
13605}
13606#line 1474 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
13607static void recursively_mark_NOTATTACHED(struct usb_device *udev ) 
13608{ int i ;
13609  struct usb_device *__cil_tmp3 ;
13610  unsigned long __cil_tmp4 ;
13611  struct usb_device *__cil_tmp5 ;
13612  unsigned long __cil_tmp6 ;
13613  struct usb_device *__cil_tmp7 ;
13614  int __cil_tmp8 ;
13615  enum usb_device_state __cil_tmp9 ;
13616  unsigned int __cil_tmp10 ;
13617  unsigned long __cil_tmp11 ;
13618  unsigned long __cil_tmp12 ;
13619
13620  {
13621#line 1478
13622  i = 0;
13623#line 1478
13624  goto ldv_25963;
13625  ldv_25962: ;
13626  {
13627#line 1479
13628  __cil_tmp3 = (struct usb_device *)0;
13629#line 1479
13630  __cil_tmp4 = (unsigned long )__cil_tmp3;
13631#line 1479
13632  __cil_tmp5 = udev->children[i];
13633#line 1479
13634  __cil_tmp6 = (unsigned long )__cil_tmp5;
13635#line 1479
13636  if (__cil_tmp6 != __cil_tmp4) {
13637    {
13638#line 1480
13639    __cil_tmp7 = udev->children[i];
13640#line 1480
13641    recursively_mark_NOTATTACHED(__cil_tmp7);
13642    }
13643  } else {
13644
13645  }
13646  }
13647#line 1478
13648  i = i + 1;
13649  ldv_25963: ;
13650  {
13651#line 1478
13652  __cil_tmp8 = udev->maxchild;
13653#line 1478
13654  if (__cil_tmp8 > i) {
13655#line 1479
13656    goto ldv_25962;
13657  } else {
13658#line 1481
13659    goto ldv_25964;
13660  }
13661  }
13662  ldv_25964: ;
13663  {
13664#line 1482
13665  __cil_tmp9 = udev->state;
13666#line 1482
13667  __cil_tmp10 = (unsigned int )__cil_tmp9;
13668#line 1482
13669  if (__cil_tmp10 == 8U) {
13670#line 1483
13671    __cil_tmp11 = (unsigned long )jiffies;
13672#line 1483
13673    __cil_tmp12 = udev->active_duration;
13674#line 1483
13675    udev->active_duration = __cil_tmp12 - __cil_tmp11;
13676  } else {
13677
13678  }
13679  }
13680#line 1484
13681  udev->state = (enum usb_device_state )0;
13682#line 1485
13683  return;
13684}
13685}
13686#line 1508 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
13687void usb_set_device_state(struct usb_device *udev , enum usb_device_state new_state ) 
13688{ unsigned long flags ;
13689  int wakeup ;
13690  raw_spinlock_t *tmp ;
13691  enum usb_device_state __cil_tmp6 ;
13692  unsigned int __cil_tmp7 ;
13693  unsigned int __cil_tmp8 ;
13694  struct usb_device *__cil_tmp9 ;
13695  unsigned long __cil_tmp10 ;
13696  struct usb_device *__cil_tmp11 ;
13697  unsigned long __cil_tmp12 ;
13698  enum usb_device_state __cil_tmp13 ;
13699  unsigned int __cil_tmp14 ;
13700  unsigned int __cil_tmp15 ;
13701  unsigned int __cil_tmp16 ;
13702  struct usb_host_config *__cil_tmp17 ;
13703  __u8 __cil_tmp18 ;
13704  int __cil_tmp19 ;
13705  enum usb_device_state __cil_tmp20 ;
13706  unsigned int __cil_tmp21 ;
13707  unsigned int __cil_tmp22 ;
13708  unsigned long __cil_tmp23 ;
13709  unsigned long __cil_tmp24 ;
13710  unsigned int __cil_tmp25 ;
13711  enum usb_device_state __cil_tmp26 ;
13712  unsigned int __cil_tmp27 ;
13713  unsigned long __cil_tmp28 ;
13714  unsigned long __cil_tmp29 ;
13715  struct device *__cil_tmp30 ;
13716  int __cil_tmp31 ;
13717  bool __cil_tmp32 ;
13718
13719  {
13720  {
13721#line 1512
13722  wakeup = -1;
13723#line 1514
13724  tmp = spinlock_check(& device_state_lock);
13725#line 1514
13726  flags = _raw_spin_lock_irqsave(tmp);
13727  }
13728  {
13729#line 1515
13730  __cil_tmp6 = udev->state;
13731#line 1515
13732  __cil_tmp7 = (unsigned int )__cil_tmp6;
13733#line 1515
13734  if (__cil_tmp7 == 0U) {
13735
13736  } else {
13737    {
13738#line 1517
13739    __cil_tmp8 = (unsigned int )new_state;
13740#line 1517
13741    if (__cil_tmp8 != 0U) {
13742      {
13743#line 1522
13744      __cil_tmp9 = (struct usb_device *)0;
13745#line 1522
13746      __cil_tmp10 = (unsigned long )__cil_tmp9;
13747#line 1522
13748      __cil_tmp11 = udev->parent;
13749#line 1522
13750      __cil_tmp12 = (unsigned long )__cil_tmp11;
13751#line 1522
13752      if (__cil_tmp12 != __cil_tmp10) {
13753        {
13754#line 1523
13755        __cil_tmp13 = udev->state;
13756#line 1523
13757        __cil_tmp14 = (unsigned int )__cil_tmp13;
13758#line 1523
13759        if (__cil_tmp14 == 8U) {
13760
13761        } else {
13762          {
13763#line 1523
13764          __cil_tmp15 = (unsigned int )new_state;
13765#line 1523
13766          if (__cil_tmp15 == 8U) {
13767
13768          } else {
13769            {
13770#line 1526
13771            __cil_tmp16 = (unsigned int )new_state;
13772#line 1526
13773            if (__cil_tmp16 == 7U) {
13774#line 1527
13775              __cil_tmp17 = udev->actconfig;
13776#line 1527
13777              __cil_tmp18 = __cil_tmp17->desc.bmAttributes;
13778#line 1527
13779              __cil_tmp19 = (int )__cil_tmp18;
13780#line 1527
13781              wakeup = __cil_tmp19 & 32;
13782            } else {
13783#line 1530
13784              wakeup = 0;
13785            }
13786            }
13787          }
13788          }
13789        }
13790        }
13791      } else {
13792
13793      }
13794      }
13795      {
13796#line 1532
13797      __cil_tmp20 = udev->state;
13798#line 1532
13799      __cil_tmp21 = (unsigned int )__cil_tmp20;
13800#line 1532
13801      if (__cil_tmp21 == 8U) {
13802        {
13803#line 1532
13804        __cil_tmp22 = (unsigned int )new_state;
13805#line 1532
13806        if (__cil_tmp22 != 8U) {
13807#line 1534
13808          __cil_tmp23 = (unsigned long )jiffies;
13809#line 1534
13810          __cil_tmp24 = udev->active_duration;
13811#line 1534
13812          udev->active_duration = __cil_tmp24 - __cil_tmp23;
13813        } else {
13814#line 1532
13815          goto _L;
13816        }
13817        }
13818      } else {
13819        _L: 
13820        {
13821#line 1535
13822        __cil_tmp25 = (unsigned int )new_state;
13823#line 1535
13824        if (__cil_tmp25 == 8U) {
13825          {
13826#line 1535
13827          __cil_tmp26 = udev->state;
13828#line 1535
13829          __cil_tmp27 = (unsigned int )__cil_tmp26;
13830#line 1535
13831          if (__cil_tmp27 != 8U) {
13832#line 1537
13833            __cil_tmp28 = (unsigned long )jiffies;
13834#line 1537
13835            __cil_tmp29 = udev->active_duration;
13836#line 1537
13837            udev->active_duration = __cil_tmp29 + __cil_tmp28;
13838          } else {
13839
13840          }
13841          }
13842        } else {
13843
13844        }
13845        }
13846      }
13847      }
13848#line 1538
13849      udev->state = new_state;
13850    } else {
13851      {
13852#line 1540
13853      recursively_mark_NOTATTACHED(udev);
13854      }
13855    }
13856    }
13857  }
13858  }
13859  {
13860#line 1541
13861  spin_unlock_irqrestore(& device_state_lock, flags);
13862  }
13863#line 1542
13864  if (wakeup >= 0) {
13865    {
13866#line 1543
13867    __cil_tmp30 = & udev->dev;
13868#line 1543
13869    __cil_tmp31 = wakeup != 0;
13870#line 1543
13871    __cil_tmp32 = (bool )__cil_tmp31;
13872#line 1543
13873    device_set_wakeup_capable(__cil_tmp30, __cil_tmp32);
13874    }
13875  } else {
13876
13877  }
13878#line 1544
13879  return;
13880}
13881}
13882#line 1576 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
13883static void choose_devnum(struct usb_device *udev ) 
13884{ int devnum ;
13885  struct usb_bus *bus ;
13886  int tmp ;
13887  long tmp___0 ;
13888  unsigned long tmp___1 ;
13889  unsigned long tmp___2 ;
13890  unsigned char *__cil_tmp8 ;
13891  unsigned char *__cil_tmp9 ;
13892  unsigned char __cil_tmp10 ;
13893  unsigned int __cil_tmp11 ;
13894  u8 __cil_tmp12 ;
13895  int __cil_tmp13 ;
13896  unsigned long (*__cil_tmp14)[2U] ;
13897  unsigned long const volatile   *__cil_tmp15 ;
13898  int __cil_tmp16 ;
13899  long __cil_tmp17 ;
13900  unsigned long (*__cil_tmp18)[2U] ;
13901  unsigned long const   *__cil_tmp19 ;
13902  int __cil_tmp20 ;
13903  unsigned long __cil_tmp21 ;
13904  unsigned long (*__cil_tmp22)[2U] ;
13905  unsigned long const   *__cil_tmp23 ;
13906  unsigned int __cil_tmp24 ;
13907  unsigned long (*__cil_tmp25)[2U] ;
13908  unsigned long volatile   *__cil_tmp26 ;
13909
13910  {
13911#line 1579
13912  bus = udev->bus;
13913  {
13914#line 1582
13915  __cil_tmp8 = (unsigned char *)udev;
13916#line 1582
13917  __cil_tmp9 = __cil_tmp8 + 1556UL;
13918#line 1582
13919  __cil_tmp10 = *__cil_tmp9;
13920#line 1582
13921  __cil_tmp11 = (unsigned int )__cil_tmp10;
13922#line 1582
13923  if (__cil_tmp11 != 0U) {
13924    {
13925#line 1583
13926    __cil_tmp12 = udev->portnum;
13927#line 1583
13928    __cil_tmp13 = (int )__cil_tmp12;
13929#line 1583
13930    devnum = __cil_tmp13 + 1;
13931#line 1584
13932    __cil_tmp14 = & bus->devmap.devicemap;
13933#line 1584
13934    __cil_tmp15 = (unsigned long const volatile   *)__cil_tmp14;
13935#line 1584
13936    tmp = variable_test_bit(devnum, __cil_tmp15);
13937#line 1584
13938    __cil_tmp16 = tmp != 0;
13939#line 1584
13940    __cil_tmp17 = (long )__cil_tmp16;
13941#line 1584
13942    tmp___0 = __builtin_expect(__cil_tmp17, 0L);
13943    }
13944#line 1584
13945    if (tmp___0 != 0L) {
13946#line 1584
13947      __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"),
13948                           "i" (1584), "i" (12UL));
13949      ldv_25986: ;
13950#line 1584
13951      goto ldv_25986;
13952    } else {
13953
13954    }
13955  } else {
13956    {
13957#line 1588
13958    __cil_tmp18 = & bus->devmap.devicemap;
13959#line 1588
13960    __cil_tmp19 = (unsigned long const   *)__cil_tmp18;
13961#line 1588
13962    __cil_tmp20 = bus->devnum_next;
13963#line 1588
13964    __cil_tmp21 = (unsigned long )__cil_tmp20;
13965#line 1588
13966    tmp___1 = find_next_zero_bit(__cil_tmp19, 128UL, __cil_tmp21);
13967#line 1588
13968    devnum = (int )tmp___1;
13969    }
13970#line 1590
13971    if (devnum > 127) {
13972      {
13973#line 1591
13974      __cil_tmp22 = & bus->devmap.devicemap;
13975#line 1591
13976      __cil_tmp23 = (unsigned long const   *)__cil_tmp22;
13977#line 1591
13978      tmp___2 = find_next_zero_bit(__cil_tmp23, 128UL, 1UL);
13979#line 1591
13980      devnum = (int )tmp___2;
13981      }
13982    } else {
13983
13984    }
13985#line 1593
13986    if (devnum <= 126) {
13987#line 1593
13988      bus->devnum_next = devnum + 1;
13989    } else {
13990#line 1593
13991      bus->devnum_next = 1;
13992    }
13993  }
13994  }
13995#line 1595
13996  if (devnum <= 127) {
13997    {
13998#line 1596
13999    __cil_tmp24 = (unsigned int )devnum;
14000#line 1596
14001    __cil_tmp25 = & bus->devmap.devicemap;
14002#line 1596
14003    __cil_tmp26 = (unsigned long volatile   *)__cil_tmp25;
14004#line 1596
14005    set_bit(__cil_tmp24, __cil_tmp26);
14006#line 1597
14007    udev->devnum = devnum;
14008    }
14009  } else {
14010
14011  }
14012#line 1599
14013  return;
14014}
14015}
14016#line 1601 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
14017static void release_devnum(struct usb_device *udev ) 
14018{ int __cil_tmp2 ;
14019  int __cil_tmp3 ;
14020  struct usb_bus *__cil_tmp4 ;
14021  unsigned long (*__cil_tmp5)[2U] ;
14022  unsigned long volatile   *__cil_tmp6 ;
14023
14024  {
14025  {
14026#line 1603
14027  __cil_tmp2 = udev->devnum;
14028#line 1603
14029  if (__cil_tmp2 > 0) {
14030    {
14031#line 1604
14032    __cil_tmp3 = udev->devnum;
14033#line 1604
14034    __cil_tmp4 = udev->bus;
14035#line 1604
14036    __cil_tmp5 = & __cil_tmp4->devmap.devicemap;
14037#line 1604
14038    __cil_tmp6 = (unsigned long volatile   *)__cil_tmp5;
14039#line 1604
14040    clear_bit(__cil_tmp3, __cil_tmp6);
14041#line 1605
14042    udev->devnum = -1;
14043    }
14044  } else {
14045
14046  }
14047  }
14048#line 1607
14049  return;
14050}
14051}
14052#line 1609 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
14053static void update_devnum(struct usb_device *udev , int devnum ) 
14054{ unsigned char *__cil_tmp3 ;
14055  unsigned char *__cil_tmp4 ;
14056  unsigned char __cil_tmp5 ;
14057  unsigned int __cil_tmp6 ;
14058
14059  {
14060  {
14061#line 1612
14062  __cil_tmp3 = (unsigned char *)udev;
14063#line 1612
14064  __cil_tmp4 = __cil_tmp3 + 1556UL;
14065#line 1612
14066  __cil_tmp5 = *__cil_tmp4;
14067#line 1612
14068  __cil_tmp6 = (unsigned int )__cil_tmp5;
14069#line 1612
14070  if (__cil_tmp6 == 0U) {
14071#line 1613
14072    udev->devnum = devnum;
14073  } else {
14074
14075  }
14076  }
14077#line 1614
14078  return;
14079}
14080}
14081#line 1616 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
14082static void hub_free_dev(struct usb_device *udev ) 
14083{ struct usb_hcd *hcd ;
14084  struct usb_hcd *tmp ;
14085  struct usb_bus *__cil_tmp4 ;
14086  void (*__cil_tmp5)(struct usb_hcd * , struct usb_device * ) ;
14087  unsigned long __cil_tmp6 ;
14088  struct hc_driver  const  *__cil_tmp7 ;
14089  void (*__cil_tmp8)(struct usb_hcd * , struct usb_device * ) ;
14090  unsigned long __cil_tmp9 ;
14091  struct usb_device *__cil_tmp10 ;
14092  unsigned long __cil_tmp11 ;
14093  struct usb_device *__cil_tmp12 ;
14094  unsigned long __cil_tmp13 ;
14095  struct hc_driver  const  *__cil_tmp14 ;
14096  void (*__cil_tmp15)(struct usb_hcd * , struct usb_device * ) ;
14097
14098  {
14099  {
14100#line 1618
14101  __cil_tmp4 = udev->bus;
14102#line 1618
14103  tmp = bus_to_hcd(__cil_tmp4);
14104#line 1618
14105  hcd = tmp;
14106  }
14107  {
14108#line 1621
14109  __cil_tmp5 = (void (* const  )(struct usb_hcd * , struct usb_device * ))0;
14110#line 1621
14111  __cil_tmp6 = (unsigned long )__cil_tmp5;
14112#line 1621
14113  __cil_tmp7 = hcd->driver;
14114#line 1621
14115  __cil_tmp8 = __cil_tmp7->free_dev;
14116#line 1621
14117  __cil_tmp9 = (unsigned long )__cil_tmp8;
14118#line 1621
14119  if (__cil_tmp9 != __cil_tmp6) {
14120    {
14121#line 1621
14122    __cil_tmp10 = (struct usb_device *)0;
14123#line 1621
14124    __cil_tmp11 = (unsigned long )__cil_tmp10;
14125#line 1621
14126    __cil_tmp12 = udev->parent;
14127#line 1621
14128    __cil_tmp13 = (unsigned long )__cil_tmp12;
14129#line 1621
14130    if (__cil_tmp13 != __cil_tmp11) {
14131      {
14132#line 1622
14133      __cil_tmp14 = hcd->driver;
14134#line 1622
14135      __cil_tmp15 = __cil_tmp14->free_dev;
14136#line 1622
14137      (*__cil_tmp15)(hcd, udev);
14138      }
14139    } else {
14140
14141    }
14142    }
14143  } else {
14144
14145  }
14146  }
14147#line 1623
14148  return;
14149}
14150}
14151#line 1641 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
14152void usb_disconnect(struct usb_device **pdev ) 
14153{ struct usb_device *udev ;
14154  int i ;
14155  struct usb_hcd *hcd ;
14156  struct usb_hcd *tmp ;
14157  struct usb_bus *__cil_tmp6 ;
14158  struct usb_device *__cil_tmp7 ;
14159  unsigned long __cil_tmp8 ;
14160  unsigned long __cil_tmp9 ;
14161  enum usb_device_state __cil_tmp10 ;
14162  struct device *__cil_tmp11 ;
14163  struct device  const  *__cil_tmp12 ;
14164  int __cil_tmp13 ;
14165  struct device *__cil_tmp14 ;
14166  struct usb_device *__cil_tmp15 ;
14167  unsigned long __cil_tmp16 ;
14168  struct usb_device *__cil_tmp17 ;
14169  unsigned long __cil_tmp18 ;
14170  unsigned long __cil_tmp19 ;
14171  struct usb_device *(*__cil_tmp20)[31U] ;
14172  struct usb_device **__cil_tmp21 ;
14173  struct usb_device **__cil_tmp22 ;
14174  struct device *__cil_tmp23 ;
14175  struct device  const  *__cil_tmp24 ;
14176  struct mutex *__cil_tmp25 ;
14177  struct mutex *__cil_tmp26 ;
14178  struct usb_host_endpoint *__cil_tmp27 ;
14179  struct device *__cil_tmp28 ;
14180  struct device *__cil_tmp29 ;
14181  struct device *__cil_tmp30 ;
14182
14183  {
14184  {
14185#line 1643
14186  udev = *pdev;
14187#line 1645
14188  __cil_tmp6 = udev->bus;
14189#line 1645
14190  tmp = bus_to_hcd(__cil_tmp6);
14191#line 1645
14192  hcd = tmp;
14193  }
14194  {
14195#line 1647
14196  __cil_tmp7 = (struct usb_device *)0;
14197#line 1647
14198  __cil_tmp8 = (unsigned long )__cil_tmp7;
14199#line 1647
14200  __cil_tmp9 = (unsigned long )udev;
14201#line 1647
14202  if (__cil_tmp9 == __cil_tmp8) {
14203    {
14204#line 1648
14205    printk("<7>%s nodev\n", "usb_disconnect");
14206    }
14207#line 1649
14208    return;
14209  } else {
14210
14211  }
14212  }
14213  {
14214#line 1656
14215  __cil_tmp10 = (enum usb_device_state )0;
14216#line 1656
14217  usb_set_device_state(udev, __cil_tmp10);
14218#line 1657
14219  __cil_tmp11 = & udev->dev;
14220#line 1657
14221  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
14222#line 1657
14223  __cil_tmp13 = udev->devnum;
14224#line 1657
14225  _dev_info(__cil_tmp12, "USB disconnect, device number %d\n", __cil_tmp13);
14226#line 1660
14227  __cil_tmp14 = & udev->dev;
14228#line 1660
14229  device_lock(__cil_tmp14);
14230#line 1663
14231  i = 0;
14232  }
14233#line 1663
14234  goto ldv_26006;
14235  ldv_26005: ;
14236  {
14237#line 1664
14238  __cil_tmp15 = (struct usb_device *)0;
14239#line 1664
14240  __cil_tmp16 = (unsigned long )__cil_tmp15;
14241#line 1664
14242  __cil_tmp17 = udev->children[i];
14243#line 1664
14244  __cil_tmp18 = (unsigned long )__cil_tmp17;
14245#line 1664
14246  if (__cil_tmp18 != __cil_tmp16) {
14247    {
14248#line 1665
14249    __cil_tmp19 = (unsigned long )i;
14250#line 1665
14251    __cil_tmp20 = & udev->children;
14252#line 1665
14253    __cil_tmp21 = (struct usb_device **)__cil_tmp20;
14254#line 1665
14255    __cil_tmp22 = __cil_tmp21 + __cil_tmp19;
14256#line 1665
14257    usb_disconnect(__cil_tmp22);
14258    }
14259  } else {
14260
14261  }
14262  }
14263#line 1663
14264  i = i + 1;
14265  ldv_26006: ;
14266#line 1663
14267  if (i <= 30) {
14268#line 1664
14269    goto ldv_26005;
14270  } else {
14271#line 1666
14272    goto ldv_26007;
14273  }
14274  ldv_26007: 
14275  {
14276#line 1672
14277  __cil_tmp23 = & udev->dev;
14278#line 1672
14279  __cil_tmp24 = (struct device  const  *)__cil_tmp23;
14280#line 1672
14281  dev_printk("<7>", __cil_tmp24, "unregistering device\n");
14282#line 1673
14283  __cil_tmp25 = hcd->bandwidth_mutex;
14284#line 1673
14285  mutex_lock_nested(__cil_tmp25, 0U);
14286#line 1674
14287  usb_disable_device(udev, 0);
14288#line 1675
14289  __cil_tmp26 = hcd->bandwidth_mutex;
14290#line 1675
14291  mutex_unlock(__cil_tmp26);
14292#line 1676
14293  usb_hcd_synchronize_unlinks(udev);
14294#line 1678
14295  __cil_tmp27 = & udev->ep0;
14296#line 1678
14297  usb_remove_ep_devs(__cil_tmp27);
14298#line 1679
14299  __cil_tmp28 = & udev->dev;
14300#line 1679
14301  device_unlock(__cil_tmp28);
14302#line 1685
14303  __cil_tmp29 = & udev->dev;
14304#line 1685
14305  device_del(__cil_tmp29);
14306#line 1690
14307  release_devnum(udev);
14308#line 1693
14309  spin_lock_irq(& device_state_lock);
14310#line 1694
14311  *pdev = (struct usb_device *)0;
14312#line 1695
14313  spin_unlock_irq(& device_state_lock);
14314#line 1697
14315  hub_free_dev(udev);
14316#line 1699
14317  __cil_tmp30 = & udev->dev;
14318#line 1699
14319  put_device(__cil_tmp30);
14320  }
14321#line 1700
14322  return;
14323}
14324}
14325#line 1703 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
14326static void show_string(struct usb_device *udev , char *id , char *string ) 
14327{ char *__cil_tmp4 ;
14328  unsigned long __cil_tmp5 ;
14329  unsigned long __cil_tmp6 ;
14330  struct device *__cil_tmp7 ;
14331  struct device  const  *__cil_tmp8 ;
14332
14333  {
14334  {
14335#line 1705
14336  __cil_tmp4 = (char *)0;
14337#line 1705
14338  __cil_tmp5 = (unsigned long )__cil_tmp4;
14339#line 1705
14340  __cil_tmp6 = (unsigned long )string;
14341#line 1705
14342  if (__cil_tmp6 == __cil_tmp5) {
14343#line 1706
14344    return;
14345  } else {
14346
14347  }
14348  }
14349  {
14350#line 1707
14351  __cil_tmp7 = & udev->dev;
14352#line 1707
14353  __cil_tmp8 = (struct device  const  *)__cil_tmp7;
14354#line 1707
14355  dev_printk("<6>", __cil_tmp8, "%s: %s\n", id, string);
14356  }
14357#line 1708
14358  return;
14359}
14360}
14361#line 1710 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
14362static void announce_device(struct usb_device *udev ) 
14363{ struct device *__cil_tmp2 ;
14364  struct device  const  *__cil_tmp3 ;
14365  __le16 __cil_tmp4 ;
14366  int __cil_tmp5 ;
14367  __le16 __cil_tmp6 ;
14368  int __cil_tmp7 ;
14369  struct device *__cil_tmp8 ;
14370  struct device  const  *__cil_tmp9 ;
14371  __u8 __cil_tmp10 ;
14372  int __cil_tmp11 ;
14373  __u8 __cil_tmp12 ;
14374  int __cil_tmp13 ;
14375  __u8 __cil_tmp14 ;
14376  int __cil_tmp15 ;
14377  char *__cil_tmp16 ;
14378  char *__cil_tmp17 ;
14379  char *__cil_tmp18 ;
14380  char *__cil_tmp19 ;
14381  char *__cil_tmp20 ;
14382  char *__cil_tmp21 ;
14383
14384  {
14385  {
14386#line 1712
14387  __cil_tmp2 = & udev->dev;
14388#line 1712
14389  __cil_tmp3 = (struct device  const  *)__cil_tmp2;
14390#line 1712
14391  __cil_tmp4 = udev->descriptor.idVendor;
14392#line 1712
14393  __cil_tmp5 = (int )__cil_tmp4;
14394#line 1712
14395  __cil_tmp6 = udev->descriptor.idProduct;
14396#line 1712
14397  __cil_tmp7 = (int )__cil_tmp6;
14398#line 1712
14399  _dev_info(__cil_tmp3, "New USB device found, idVendor=%04x, idProduct=%04x\n", __cil_tmp5,
14400            __cil_tmp7);
14401#line 1715
14402  __cil_tmp8 = & udev->dev;
14403#line 1715
14404  __cil_tmp9 = (struct device  const  *)__cil_tmp8;
14405#line 1715
14406  __cil_tmp10 = udev->descriptor.iManufacturer;
14407#line 1715
14408  __cil_tmp11 = (int )__cil_tmp10;
14409#line 1715
14410  __cil_tmp12 = udev->descriptor.iProduct;
14411#line 1715
14412  __cil_tmp13 = (int )__cil_tmp12;
14413#line 1715
14414  __cil_tmp14 = udev->descriptor.iSerialNumber;
14415#line 1715
14416  __cil_tmp15 = (int )__cil_tmp14;
14417#line 1715
14418  _dev_info(__cil_tmp9, "New USB device strings: Mfr=%d, Product=%d, SerialNumber=%d\n",
14419            __cil_tmp11, __cil_tmp13, __cil_tmp15);
14420#line 1720
14421  __cil_tmp16 = (char *)"Product";
14422#line 1720
14423  __cil_tmp17 = udev->product;
14424#line 1720
14425  show_string(udev, __cil_tmp16, __cil_tmp17);
14426#line 1721
14427  __cil_tmp18 = (char *)"Manufacturer";
14428#line 1721
14429  __cil_tmp19 = udev->manufacturer;
14430#line 1721
14431  show_string(udev, __cil_tmp18, __cil_tmp19);
14432#line 1722
14433  __cil_tmp20 = (char *)"SerialNumber";
14434#line 1722
14435  __cil_tmp21 = udev->serial;
14436#line 1722
14437  show_string(udev, __cil_tmp20, __cil_tmp21);
14438  }
14439#line 1723
14440  return;
14441}
14442}
14443#line 19 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/otg_whitelist.h"
14444static struct usb_device_id whitelist_table[4U]  = {      {(__u16 )112U, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
14445      (__u8 )9U, (__u8 )0U, (__u8 )0U, (unsigned char)0, (unsigned char)0, (unsigned char)0,
14446      0UL}, 
14447        {(__u16 )112U, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
14448      (__u8 )9U, (__u8 )0U, (__u8 )1U, (unsigned char)0, (unsigned char)0, (unsigned char)0,
14449      0UL}, 
14450        {(__u16 )3U, (__u16 )1317U, (__u16 )42144U, (unsigned short)0, (unsigned short)0,
14451      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
14452      (unsigned char)0, 0UL}, 
14453        {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
14454      (unsigned short)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
14455      (unsigned char)0, (unsigned char)0, 0UL}};
14456#line 49 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/otg_whitelist.h"
14457static int is_targeted(struct usb_device *dev ) 
14458{ struct usb_device_id *id ;
14459  struct usb_bus *__cil_tmp3 ;
14460  u8 __cil_tmp4 ;
14461  unsigned int __cil_tmp5 ;
14462  __le16 __cil_tmp6 ;
14463  unsigned int __cil_tmp7 ;
14464  __le16 __cil_tmp8 ;
14465  unsigned int __cil_tmp9 ;
14466  __u16 __cil_tmp10 ;
14467  int __cil_tmp11 ;
14468  __le16 __cil_tmp12 ;
14469  int __cil_tmp13 ;
14470  __u16 __cil_tmp14 ;
14471  int __cil_tmp15 ;
14472  __u16 __cil_tmp16 ;
14473  int __cil_tmp17 ;
14474  int __cil_tmp18 ;
14475  __le16 __cil_tmp19 ;
14476  int __cil_tmp20 ;
14477  __u16 __cil_tmp21 ;
14478  int __cil_tmp22 ;
14479  __u16 __cil_tmp23 ;
14480  int __cil_tmp24 ;
14481  int __cil_tmp25 ;
14482  __le16 __cil_tmp26 ;
14483  int __cil_tmp27 ;
14484  __u16 __cil_tmp28 ;
14485  int __cil_tmp29 ;
14486  __u16 __cil_tmp30 ;
14487  int __cil_tmp31 ;
14488  int __cil_tmp32 ;
14489  __le16 __cil_tmp33 ;
14490  int __cil_tmp34 ;
14491  __u16 __cil_tmp35 ;
14492  int __cil_tmp36 ;
14493  __u16 __cil_tmp37 ;
14494  int __cil_tmp38 ;
14495  int __cil_tmp39 ;
14496  __u8 __cil_tmp40 ;
14497  int __cil_tmp41 ;
14498  __u8 __cil_tmp42 ;
14499  int __cil_tmp43 ;
14500  __u16 __cil_tmp44 ;
14501  int __cil_tmp45 ;
14502  int __cil_tmp46 ;
14503  __u8 __cil_tmp47 ;
14504  int __cil_tmp48 ;
14505  __u8 __cil_tmp49 ;
14506  int __cil_tmp50 ;
14507  __u16 __cil_tmp51 ;
14508  int __cil_tmp52 ;
14509  int __cil_tmp53 ;
14510  __u8 __cil_tmp54 ;
14511  int __cil_tmp55 ;
14512  __u8 __cil_tmp56 ;
14513  int __cil_tmp57 ;
14514  __u16 __cil_tmp58 ;
14515  unsigned int __cil_tmp59 ;
14516  struct device *__cil_tmp60 ;
14517  struct device  const  *__cil_tmp61 ;
14518  __le16 __cil_tmp62 ;
14519  int __cil_tmp63 ;
14520  __le16 __cil_tmp64 ;
14521  int __cil_tmp65 ;
14522
14523  {
14524#line 51
14525  id = (struct usb_device_id *)(& whitelist_table);
14526  {
14527#line 54
14528  __cil_tmp3 = dev->bus;
14529#line 54
14530  __cil_tmp4 = __cil_tmp3->otg_port;
14531#line 54
14532  __cil_tmp5 = (unsigned int )__cil_tmp4;
14533#line 54
14534  if (__cil_tmp5 == 0U) {
14535#line 55
14536    return (1);
14537  } else {
14538
14539  }
14540  }
14541  {
14542#line 58
14543  __cil_tmp6 = dev->descriptor.idVendor;
14544#line 58
14545  __cil_tmp7 = (unsigned int )__cil_tmp6;
14546#line 58
14547  if (__cil_tmp7 == 6666U) {
14548    {
14549#line 58
14550    __cil_tmp8 = dev->descriptor.idProduct;
14551#line 58
14552    __cil_tmp9 = (unsigned int )__cil_tmp8;
14553#line 58
14554    if (__cil_tmp9 == 47837U) {
14555#line 60
14556      return (0);
14557    } else {
14558
14559    }
14560    }
14561  } else {
14562
14563  }
14564  }
14565#line 65
14566  id = (struct usb_device_id *)(& whitelist_table);
14567#line 65
14568  goto ldv_26023;
14569  ldv_26022: ;
14570  {
14571#line 66
14572  __cil_tmp10 = id->match_flags;
14573#line 66
14574  __cil_tmp11 = (int )__cil_tmp10;
14575#line 66
14576  if (__cil_tmp11 & 1) {
14577    {
14578#line 66
14579    __cil_tmp12 = dev->descriptor.idVendor;
14580#line 66
14581    __cil_tmp13 = (int )__cil_tmp12;
14582#line 66
14583    __cil_tmp14 = id->idVendor;
14584#line 66
14585    __cil_tmp15 = (int )__cil_tmp14;
14586#line 66
14587    if (__cil_tmp15 != __cil_tmp13) {
14588#line 68
14589      goto ldv_26021;
14590    } else {
14591
14592    }
14593    }
14594  } else {
14595
14596  }
14597  }
14598  {
14599#line 70
14600  __cil_tmp16 = id->match_flags;
14601#line 70
14602  __cil_tmp17 = (int )__cil_tmp16;
14603#line 70
14604  __cil_tmp18 = __cil_tmp17 & 2;
14605#line 70
14606  if (__cil_tmp18 != 0) {
14607    {
14608#line 70
14609    __cil_tmp19 = dev->descriptor.idProduct;
14610#line 70
14611    __cil_tmp20 = (int )__cil_tmp19;
14612#line 70
14613    __cil_tmp21 = id->idProduct;
14614#line 70
14615    __cil_tmp22 = (int )__cil_tmp21;
14616#line 70
14617    if (__cil_tmp22 != __cil_tmp20) {
14618#line 72
14619      goto ldv_26021;
14620    } else {
14621
14622    }
14623    }
14624  } else {
14625
14626  }
14627  }
14628  {
14629#line 76
14630  __cil_tmp23 = id->match_flags;
14631#line 76
14632  __cil_tmp24 = (int )__cil_tmp23;
14633#line 76
14634  __cil_tmp25 = __cil_tmp24 & 4;
14635#line 76
14636  if (__cil_tmp25 != 0) {
14637    {
14638#line 76
14639    __cil_tmp26 = dev->descriptor.bcdDevice;
14640#line 76
14641    __cil_tmp27 = (int )__cil_tmp26;
14642#line 76
14643    __cil_tmp28 = id->bcdDevice_lo;
14644#line 76
14645    __cil_tmp29 = (int )__cil_tmp28;
14646#line 76
14647    if (__cil_tmp29 > __cil_tmp27) {
14648#line 78
14649      goto ldv_26021;
14650    } else {
14651
14652    }
14653    }
14654  } else {
14655
14656  }
14657  }
14658  {
14659#line 80
14660  __cil_tmp30 = id->match_flags;
14661#line 80
14662  __cil_tmp31 = (int )__cil_tmp30;
14663#line 80
14664  __cil_tmp32 = __cil_tmp31 & 8;
14665#line 80
14666  if (__cil_tmp32 != 0) {
14667    {
14668#line 80
14669    __cil_tmp33 = dev->descriptor.bcdDevice;
14670#line 80
14671    __cil_tmp34 = (int )__cil_tmp33;
14672#line 80
14673    __cil_tmp35 = id->bcdDevice_hi;
14674#line 80
14675    __cil_tmp36 = (int )__cil_tmp35;
14676#line 80
14677    if (__cil_tmp36 < __cil_tmp34) {
14678#line 82
14679      goto ldv_26021;
14680    } else {
14681
14682    }
14683    }
14684  } else {
14685
14686  }
14687  }
14688  {
14689#line 84
14690  __cil_tmp37 = id->match_flags;
14691#line 84
14692  __cil_tmp38 = (int )__cil_tmp37;
14693#line 84
14694  __cil_tmp39 = __cil_tmp38 & 16;
14695#line 84
14696  if (__cil_tmp39 != 0) {
14697    {
14698#line 84
14699    __cil_tmp40 = dev->descriptor.bDeviceClass;
14700#line 84
14701    __cil_tmp41 = (int )__cil_tmp40;
14702#line 84
14703    __cil_tmp42 = id->bDeviceClass;
14704#line 84
14705    __cil_tmp43 = (int )__cil_tmp42;
14706#line 84
14707    if (__cil_tmp43 != __cil_tmp41) {
14708#line 86
14709      goto ldv_26021;
14710    } else {
14711
14712    }
14713    }
14714  } else {
14715
14716  }
14717  }
14718  {
14719#line 88
14720  __cil_tmp44 = id->match_flags;
14721#line 88
14722  __cil_tmp45 = (int )__cil_tmp44;
14723#line 88
14724  __cil_tmp46 = __cil_tmp45 & 32;
14725#line 88
14726  if (__cil_tmp46 != 0) {
14727    {
14728#line 88
14729    __cil_tmp47 = dev->descriptor.bDeviceSubClass;
14730#line 88
14731    __cil_tmp48 = (int )__cil_tmp47;
14732#line 88
14733    __cil_tmp49 = id->bDeviceSubClass;
14734#line 88
14735    __cil_tmp50 = (int )__cil_tmp49;
14736#line 88
14737    if (__cil_tmp50 != __cil_tmp48) {
14738#line 90
14739      goto ldv_26021;
14740    } else {
14741
14742    }
14743    }
14744  } else {
14745
14746  }
14747  }
14748  {
14749#line 92
14750  __cil_tmp51 = id->match_flags;
14751#line 92
14752  __cil_tmp52 = (int )__cil_tmp51;
14753#line 92
14754  __cil_tmp53 = __cil_tmp52 & 64;
14755#line 92
14756  if (__cil_tmp53 != 0) {
14757    {
14758#line 92
14759    __cil_tmp54 = dev->descriptor.bDeviceProtocol;
14760#line 92
14761    __cil_tmp55 = (int )__cil_tmp54;
14762#line 92
14763    __cil_tmp56 = id->bDeviceProtocol;
14764#line 92
14765    __cil_tmp57 = (int )__cil_tmp56;
14766#line 92
14767    if (__cil_tmp57 != __cil_tmp55) {
14768#line 94
14769      goto ldv_26021;
14770    } else {
14771
14772    }
14773    }
14774  } else {
14775
14776  }
14777  }
14778#line 96
14779  return (1);
14780  ldv_26021: 
14781#line 65
14782  id = id + 1;
14783  ldv_26023: ;
14784  {
14785#line 65
14786  __cil_tmp58 = id->match_flags;
14787#line 65
14788  __cil_tmp59 = (unsigned int )__cil_tmp58;
14789#line 65
14790  if (__cil_tmp59 != 0U) {
14791#line 66
14792    goto ldv_26022;
14793  } else {
14794#line 68
14795    goto ldv_26024;
14796  }
14797  }
14798  ldv_26024: 
14799  {
14800#line 103
14801  __cil_tmp60 = & dev->dev;
14802#line 103
14803  __cil_tmp61 = (struct device  const  *)__cil_tmp60;
14804#line 103
14805  __cil_tmp62 = dev->descriptor.idVendor;
14806#line 103
14807  __cil_tmp63 = (int )__cil_tmp62;
14808#line 103
14809  __cil_tmp64 = dev->descriptor.idProduct;
14810#line 103
14811  __cil_tmp65 = (int )__cil_tmp64;
14812#line 103
14813  dev_err(__cil_tmp61, "device v%04x p%04x is not supported\n", __cil_tmp63, __cil_tmp65);
14814  }
14815#line 107
14816  return (0);
14817}
14818}
14819#line 1738 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
14820static int usb_enumerate_device_otg(struct usb_device *udev ) 
14821{ int err ;
14822  struct usb_otg_descriptor *desc ;
14823  struct usb_bus *bus ;
14824  unsigned int port1 ;
14825  char *tmp ;
14826  int tmp___0 ;
14827  unsigned int tmp___1 ;
14828  int tmp___2 ;
14829  struct pm_message __constr_expr_0 ;
14830  int tmp___3 ;
14831  struct usb_bus *__cil_tmp12 ;
14832  unsigned char *__cil_tmp13 ;
14833  unsigned char *__cil_tmp14 ;
14834  unsigned char __cil_tmp15 ;
14835  unsigned int __cil_tmp16 ;
14836  struct usb_host_config *__cil_tmp17 ;
14837  unsigned long __cil_tmp18 ;
14838  struct usb_host_config *__cil_tmp19 ;
14839  unsigned long __cil_tmp20 ;
14840  struct usb_bus *__cil_tmp21 ;
14841  struct usb_device *__cil_tmp22 ;
14842  unsigned long __cil_tmp23 ;
14843  struct usb_device *__cil_tmp24 ;
14844  unsigned long __cil_tmp25 ;
14845  char **__cil_tmp26 ;
14846  char *__cil_tmp27 ;
14847  struct usb_host_config *__cil_tmp28 ;
14848  __le16 __cil_tmp29 ;
14849  unsigned int __cil_tmp30 ;
14850  void **__cil_tmp31 ;
14851  __u8 __cil_tmp32 ;
14852  int __cil_tmp33 ;
14853  int __cil_tmp34 ;
14854  u8 __cil_tmp35 ;
14855  u8 __cil_tmp36 ;
14856  unsigned int __cil_tmp37 ;
14857  struct device *__cil_tmp38 ;
14858  struct device  const  *__cil_tmp39 ;
14859  u8 __cil_tmp40 ;
14860  unsigned int __cil_tmp41 ;
14861  unsigned char *__cil_tmp42 ;
14862  unsigned char *__cil_tmp43 ;
14863  unsigned char __cil_tmp44 ;
14864  unsigned int __cil_tmp45 ;
14865  unsigned int __cil_tmp46 ;
14866  __u8 __cil_tmp47 ;
14867  __u8 __cil_tmp48 ;
14868  __u16 __cil_tmp49 ;
14869  __u16 __cil_tmp50 ;
14870  void *__cil_tmp51 ;
14871  __u16 __cil_tmp52 ;
14872  struct device *__cil_tmp53 ;
14873  struct device  const  *__cil_tmp54 ;
14874  struct usb_bus *__cil_tmp55 ;
14875  unsigned char *__cil_tmp56 ;
14876  unsigned char *__cil_tmp57 ;
14877  unsigned char __cil_tmp58 ;
14878  unsigned int __cil_tmp59 ;
14879  struct usb_bus *__cil_tmp60 ;
14880  unsigned char *__cil_tmp61 ;
14881  unsigned char *__cil_tmp62 ;
14882  unsigned char __cil_tmp63 ;
14883  unsigned int __cil_tmp64 ;
14884  struct device *__cil_tmp65 ;
14885  struct device  const  *__cil_tmp66 ;
14886
14887  {
14888#line 1740
14889  err = 0;
14890  {
14891#line 1748
14892  __cil_tmp12 = udev->bus;
14893#line 1748
14894  __cil_tmp13 = (unsigned char *)__cil_tmp12;
14895#line 1748
14896  __cil_tmp14 = __cil_tmp13 + 27UL;
14897#line 1748
14898  __cil_tmp15 = *__cil_tmp14;
14899#line 1748
14900  __cil_tmp16 = (unsigned int )__cil_tmp15;
14901#line 1748
14902  if (__cil_tmp16 == 0U) {
14903    {
14904#line 1748
14905    __cil_tmp17 = (struct usb_host_config *)0;
14906#line 1748
14907    __cil_tmp18 = (unsigned long )__cil_tmp17;
14908#line 1748
14909    __cil_tmp19 = udev->config;
14910#line 1748
14911    __cil_tmp20 = (unsigned long )__cil_tmp19;
14912#line 1748
14913    if (__cil_tmp20 != __cil_tmp18) {
14914      {
14915#line 1748
14916      __cil_tmp21 = udev->bus;
14917#line 1748
14918      __cil_tmp22 = __cil_tmp21->root_hub;
14919#line 1748
14920      __cil_tmp23 = (unsigned long )__cil_tmp22;
14921#line 1748
14922      __cil_tmp24 = udev->parent;
14923#line 1748
14924      __cil_tmp25 = (unsigned long )__cil_tmp24;
14925#line 1748
14926      if (__cil_tmp25 == __cil_tmp23) {
14927        {
14928#line 1751
14929        desc = (struct usb_otg_descriptor *)0;
14930#line 1752
14931        bus = udev->bus;
14932#line 1755
14933        __cil_tmp26 = udev->rawdescriptors;
14934#line 1755
14935        __cil_tmp27 = *__cil_tmp26;
14936#line 1755
14937        __cil_tmp28 = udev->config;
14938#line 1755
14939        __cil_tmp29 = __cil_tmp28->desc.wTotalLength;
14940#line 1755
14941        __cil_tmp30 = (unsigned int )__cil_tmp29;
14942#line 1755
14943        __cil_tmp31 = (void **)(& desc);
14944#line 1755
14945        tmp___2 = __usb_get_extra_descriptor(__cil_tmp27, __cil_tmp30, (unsigned char)9,
14946                                             __cil_tmp31);
14947        }
14948#line 1755
14949        if (tmp___2 == 0) {
14950          {
14951#line 1758
14952          __cil_tmp32 = desc->bmAttributes;
14953#line 1758
14954          __cil_tmp33 = (int )__cil_tmp32;
14955#line 1758
14956          __cil_tmp34 = __cil_tmp33 & 2;
14957#line 1758
14958          if (__cil_tmp34 != 0) {
14959#line 1759
14960            __cil_tmp35 = udev->portnum;
14961#line 1759
14962            port1 = (unsigned int )__cil_tmp35;
14963            {
14964#line 1761
14965            __cil_tmp36 = bus->otg_port;
14966#line 1761
14967            __cil_tmp37 = (unsigned int )__cil_tmp36;
14968#line 1761
14969            if (__cil_tmp37 == port1) {
14970#line 1761
14971              tmp = (char *)"";
14972            } else {
14973#line 1761
14974              tmp = (char *)"non-";
14975            }
14976            }
14977            {
14978#line 1761
14979            __cil_tmp38 = & udev->dev;
14980#line 1761
14981            __cil_tmp39 = (struct device  const  *)__cil_tmp38;
14982#line 1761
14983            _dev_info(__cil_tmp39, "Dual-Role OTG device on %sHNP port\n", tmp);
14984            }
14985            {
14986#line 1767
14987            __cil_tmp40 = bus->otg_port;
14988#line 1767
14989            __cil_tmp41 = (unsigned int )__cil_tmp40;
14990#line 1767
14991            if (__cil_tmp41 == port1) {
14992#line 1768
14993              bus->b_hnp_enable = (unsigned char)1;
14994            } else {
14995
14996            }
14997            }
14998            {
14999#line 1769
15000            __cil_tmp42 = (unsigned char *)bus;
15001#line 1769
15002            __cil_tmp43 = __cil_tmp42 + 27UL;
15003#line 1769
15004            __cil_tmp44 = *__cil_tmp43;
15005#line 1769
15006            __cil_tmp45 = (unsigned int )__cil_tmp44;
15007#line 1769
15008            if (__cil_tmp45 != 0U) {
15009#line 1769
15010              tmp___0 = 3;
15011            } else {
15012#line 1769
15013              tmp___0 = 5;
15014            }
15015            }
15016            {
15017#line 1769
15018            tmp___1 = __create_pipe(udev, 0U);
15019#line 1769
15020            __cil_tmp46 = tmp___1 | 2147483648U;
15021#line 1769
15022            __cil_tmp47 = (__u8 )3;
15023#line 1769
15024            __cil_tmp48 = (__u8 )0;
15025#line 1769
15026            __cil_tmp49 = (__u16 )tmp___0;
15027#line 1769
15028            __cil_tmp50 = (__u16 )0;
15029#line 1769
15030            __cil_tmp51 = (void *)0;
15031#line 1769
15032            __cil_tmp52 = (__u16 )0;
15033#line 1769
15034            err = usb_control_msg(udev, __cil_tmp46, __cil_tmp47, __cil_tmp48, __cil_tmp49,
15035                                  __cil_tmp50, __cil_tmp51, __cil_tmp52, 5000);
15036            }
15037#line 1776
15038            if (err < 0) {
15039              {
15040#line 1780
15041              __cil_tmp53 = & udev->dev;
15042#line 1780
15043              __cil_tmp54 = (struct device  const  *)__cil_tmp53;
15044#line 1780
15045              _dev_info(__cil_tmp54, "can\'t set HNP mode: %d\n", err);
15046#line 1783
15047              bus->b_hnp_enable = (unsigned char)0;
15048              }
15049            } else {
15050
15051            }
15052          } else {
15053
15054          }
15055          }
15056        } else {
15057
15058        }
15059      } else {
15060
15061      }
15062      }
15063    } else {
15064
15065    }
15066    }
15067  } else {
15068
15069  }
15070  }
15071  {
15072#line 1789
15073  tmp___3 = is_targeted(udev);
15074  }
15075#line 1789
15076  if (tmp___3 == 0) {
15077    {
15078#line 1794
15079    __cil_tmp55 = udev->bus;
15080#line 1794
15081    __cil_tmp56 = (unsigned char *)__cil_tmp55;
15082#line 1794
15083    __cil_tmp57 = __cil_tmp56 + 27UL;
15084#line 1794
15085    __cil_tmp58 = *__cil_tmp57;
15086#line 1794
15087    __cil_tmp59 = (unsigned int )__cil_tmp58;
15088#line 1794
15089    if (__cil_tmp59 != 0U) {
15090#line 1794
15091      goto _L;
15092    } else {
15093      {
15094#line 1794
15095      __cil_tmp60 = udev->bus;
15096#line 1794
15097      __cil_tmp61 = (unsigned char *)__cil_tmp60;
15098#line 1794
15099      __cil_tmp62 = __cil_tmp61 + 27UL;
15100#line 1794
15101      __cil_tmp63 = *__cil_tmp62;
15102#line 1794
15103      __cil_tmp64 = (unsigned int )__cil_tmp63;
15104#line 1794
15105      if (__cil_tmp64 != 0U) {
15106        _L: 
15107        {
15108#line 1795
15109        __constr_expr_0.event = 2;
15110#line 1795
15111        err = usb_port_suspend(udev, __constr_expr_0);
15112        }
15113#line 1796
15114        if (err < 0) {
15115          {
15116#line 1797
15117          __cil_tmp65 = & udev->dev;
15118#line 1797
15119          __cil_tmp66 = (struct device  const  *)__cil_tmp65;
15120#line 1797
15121          dev_printk("<7>", __cil_tmp66, "HNP fail, %d\n", err);
15122          }
15123        } else {
15124
15125        }
15126      } else {
15127
15128      }
15129      }
15130    }
15131    }
15132#line 1799
15133    err = -524;
15134#line 1800
15135    goto fail;
15136  } else {
15137
15138  }
15139  fail: ;
15140#line 1804
15141  return (err);
15142}
15143}
15144#line 1820 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
15145static int usb_enumerate_device(struct usb_device *udev ) 
15146{ int err ;
15147  struct usb_host_config *__cil_tmp3 ;
15148  unsigned long __cil_tmp4 ;
15149  struct usb_host_config *__cil_tmp5 ;
15150  unsigned long __cil_tmp6 ;
15151  struct device *__cil_tmp7 ;
15152  struct device  const  *__cil_tmp8 ;
15153  unsigned char *__cil_tmp9 ;
15154  unsigned char *__cil_tmp10 ;
15155  unsigned char __cil_tmp11 ;
15156  unsigned int __cil_tmp12 ;
15157  unsigned char *__cil_tmp13 ;
15158  unsigned char *__cil_tmp14 ;
15159  unsigned char __cil_tmp15 ;
15160  unsigned int __cil_tmp16 ;
15161  __u8 __cil_tmp17 ;
15162  int __cil_tmp18 ;
15163  __u8 __cil_tmp19 ;
15164  int __cil_tmp20 ;
15165  __u8 __cil_tmp21 ;
15166  int __cil_tmp22 ;
15167  __u8 __cil_tmp23 ;
15168  int __cil_tmp24 ;
15169  __u8 __cil_tmp25 ;
15170  int __cil_tmp26 ;
15171  __u8 __cil_tmp27 ;
15172  int __cil_tmp28 ;
15173
15174  {
15175  {
15176#line 1824
15177  __cil_tmp3 = (struct usb_host_config *)0;
15178#line 1824
15179  __cil_tmp4 = (unsigned long )__cil_tmp3;
15180#line 1824
15181  __cil_tmp5 = udev->config;
15182#line 1824
15183  __cil_tmp6 = (unsigned long )__cil_tmp5;
15184#line 1824
15185  if (__cil_tmp6 == __cil_tmp4) {
15186    {
15187#line 1825
15188    err = usb_get_configuration(udev);
15189    }
15190#line 1826
15191    if (err < 0) {
15192      {
15193#line 1827
15194      __cil_tmp7 = & udev->dev;
15195#line 1827
15196      __cil_tmp8 = (struct device  const  *)__cil_tmp7;
15197#line 1827
15198      dev_err(__cil_tmp8, "can\'t read configurations, error %d\n", err);
15199      }
15200#line 1829
15201      goto fail;
15202    } else {
15203
15204    }
15205  } else {
15206
15207  }
15208  }
15209  {
15210#line 1832
15211  __cil_tmp9 = (unsigned char *)udev;
15212#line 1832
15213  __cil_tmp10 = __cil_tmp9 + 1556UL;
15214#line 1832
15215  __cil_tmp11 = *__cil_tmp10;
15216#line 1832
15217  __cil_tmp12 = (unsigned int )__cil_tmp11;
15218#line 1832
15219  if (__cil_tmp12 != 0U) {
15220    {
15221#line 1832
15222    __cil_tmp13 = (unsigned char *)udev;
15223#line 1832
15224    __cil_tmp14 = __cil_tmp13 + 1556UL;
15225#line 1832
15226    __cil_tmp15 = *__cil_tmp14;
15227#line 1832
15228    __cil_tmp16 = (unsigned int )__cil_tmp15;
15229#line 1832
15230    if (__cil_tmp16 == 0U) {
15231      {
15232#line 1833
15233      udev->product = kstrdup("n/a (unauthorized)", 208U);
15234#line 1834
15235      udev->manufacturer = kstrdup("n/a (unauthorized)", 208U);
15236#line 1835
15237      udev->serial = kstrdup("n/a (unauthorized)", 208U);
15238      }
15239    } else {
15240      {
15241#line 1839
15242      __cil_tmp17 = udev->descriptor.iProduct;
15243#line 1839
15244      __cil_tmp18 = (int )__cil_tmp17;
15245#line 1839
15246      udev->product = usb_cache_string(udev, __cil_tmp18);
15247#line 1840
15248      __cil_tmp19 = udev->descriptor.iManufacturer;
15249#line 1840
15250      __cil_tmp20 = (int )__cil_tmp19;
15251#line 1840
15252      udev->manufacturer = usb_cache_string(udev, __cil_tmp20);
15253#line 1842
15254      __cil_tmp21 = udev->descriptor.iSerialNumber;
15255#line 1842
15256      __cil_tmp22 = (int )__cil_tmp21;
15257#line 1842
15258      udev->serial = usb_cache_string(udev, __cil_tmp22);
15259      }
15260    }
15261    }
15262  } else {
15263    {
15264#line 1839
15265    __cil_tmp23 = udev->descriptor.iProduct;
15266#line 1839
15267    __cil_tmp24 = (int )__cil_tmp23;
15268#line 1839
15269    udev->product = usb_cache_string(udev, __cil_tmp24);
15270#line 1840
15271    __cil_tmp25 = udev->descriptor.iManufacturer;
15272#line 1840
15273    __cil_tmp26 = (int )__cil_tmp25;
15274#line 1840
15275    udev->manufacturer = usb_cache_string(udev, __cil_tmp26);
15276#line 1842
15277    __cil_tmp27 = udev->descriptor.iSerialNumber;
15278#line 1842
15279    __cil_tmp28 = (int )__cil_tmp27;
15280#line 1842
15281    udev->serial = usb_cache_string(udev, __cil_tmp28);
15282    }
15283  }
15284  }
15285  {
15286#line 1844
15287  err = usb_enumerate_device_otg(udev);
15288  }
15289  fail: ;
15290#line 1846
15291  return (err);
15292}
15293}
15294#line 1870 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
15295int usb_new_device(struct usb_device *udev ) 
15296{ int err ;
15297  struct usb_device *__cil_tmp3 ;
15298  unsigned long __cil_tmp4 ;
15299  struct usb_device *__cil_tmp5 ;
15300  unsigned long __cil_tmp6 ;
15301  struct device *__cil_tmp7 ;
15302  bool __cil_tmp8 ;
15303  struct device *__cil_tmp9 ;
15304  struct device *__cil_tmp10 ;
15305  struct device *__cil_tmp11 ;
15306  struct device *__cil_tmp12 ;
15307  struct device *__cil_tmp13 ;
15308  struct device  const  *__cil_tmp14 ;
15309  int __cil_tmp15 ;
15310  struct usb_bus *__cil_tmp16 ;
15311  int __cil_tmp17 ;
15312  int __cil_tmp18 ;
15313  int __cil_tmp19 ;
15314  struct usb_bus *__cil_tmp20 ;
15315  int __cil_tmp21 ;
15316  int __cil_tmp22 ;
15317  int __cil_tmp23 ;
15318  int __cil_tmp24 ;
15319  int __cil_tmp25 ;
15320  int __cil_tmp26 ;
15321  struct usb_bus *__cil_tmp27 ;
15322  int __cil_tmp28 ;
15323  int __cil_tmp29 ;
15324  int __cil_tmp30 ;
15325  int __cil_tmp31 ;
15326  int __cil_tmp32 ;
15327  struct device *__cil_tmp33 ;
15328  struct device *__cil_tmp34 ;
15329  struct device *__cil_tmp35 ;
15330  struct device  const  *__cil_tmp36 ;
15331  struct device *__cil_tmp37 ;
15332  struct usb_host_endpoint *__cil_tmp38 ;
15333  struct device *__cil_tmp39 ;
15334  enum usb_device_state __cil_tmp40 ;
15335  struct device *__cil_tmp41 ;
15336  struct device *__cil_tmp42 ;
15337
15338  {
15339  {
15340#line 1874
15341  __cil_tmp3 = (struct usb_device *)0;
15342#line 1874
15343  __cil_tmp4 = (unsigned long )__cil_tmp3;
15344#line 1874
15345  __cil_tmp5 = udev->parent;
15346#line 1874
15347  __cil_tmp6 = (unsigned long )__cil_tmp5;
15348#line 1874
15349  if (__cil_tmp6 != __cil_tmp4) {
15350    {
15351#line 1879
15352    __cil_tmp7 = & udev->dev;
15353#line 1879
15354    __cil_tmp8 = (bool )0;
15355#line 1879
15356    device_init_wakeup(__cil_tmp7, __cil_tmp8);
15357    }
15358  } else {
15359
15360  }
15361  }
15362  {
15363#line 1883
15364  __cil_tmp9 = & udev->dev;
15365#line 1883
15366  pm_runtime_set_active(__cil_tmp9);
15367#line 1884
15368  __cil_tmp10 = & udev->dev;
15369#line 1884
15370  pm_runtime_get_noresume(__cil_tmp10);
15371#line 1885
15372  __cil_tmp11 = & udev->dev;
15373#line 1885
15374  pm_runtime_use_autosuspend(__cil_tmp11);
15375#line 1886
15376  __cil_tmp12 = & udev->dev;
15377#line 1886
15378  pm_runtime_enable(__cil_tmp12);
15379#line 1891
15380  usb_disable_autosuspend(udev);
15381#line 1893
15382  err = usb_enumerate_device(udev);
15383  }
15384#line 1894
15385  if (err < 0) {
15386#line 1895
15387    goto fail;
15388  } else {
15389
15390  }
15391  {
15392#line 1896
15393  __cil_tmp13 = & udev->dev;
15394#line 1896
15395  __cil_tmp14 = (struct device  const  *)__cil_tmp13;
15396#line 1896
15397  __cil_tmp15 = udev->devnum;
15398#line 1896
15399  __cil_tmp16 = udev->bus;
15400#line 1896
15401  __cil_tmp17 = __cil_tmp16->busnum;
15402#line 1896
15403  __cil_tmp18 = udev->devnum;
15404#line 1896
15405  __cil_tmp19 = __cil_tmp18 + -1;
15406#line 1896
15407  __cil_tmp20 = udev->bus;
15408#line 1896
15409  __cil_tmp21 = __cil_tmp20->busnum;
15410#line 1896
15411  __cil_tmp22 = __cil_tmp21 + -1;
15412#line 1896
15413  __cil_tmp23 = __cil_tmp22 * 128;
15414#line 1896
15415  __cil_tmp24 = __cil_tmp23 + __cil_tmp19;
15416#line 1896
15417  dev_printk("<7>", __cil_tmp14, "udev %d, busnum %d, minor = %d\n", __cil_tmp15,
15418             __cil_tmp17, __cil_tmp24);
15419#line 1900
15420  __cil_tmp25 = udev->devnum;
15421#line 1900
15422  __cil_tmp26 = __cil_tmp25 + -1;
15423#line 1900
15424  __cil_tmp27 = udev->bus;
15425#line 1900
15426  __cil_tmp28 = __cil_tmp27->busnum;
15427#line 1900
15428  __cil_tmp29 = __cil_tmp28 + -1;
15429#line 1900
15430  __cil_tmp30 = __cil_tmp29 * 128;
15431#line 1900
15432  __cil_tmp31 = __cil_tmp30 + __cil_tmp26;
15433#line 1900
15434  __cil_tmp32 = __cil_tmp31 | 198180864;
15435#line 1900
15436  udev->dev.devt = (dev_t )__cil_tmp32;
15437#line 1904
15438  announce_device(udev);
15439#line 1906
15440  __cil_tmp33 = & udev->dev;
15441#line 1906
15442  device_enable_async_suspend(__cil_tmp33);
15443#line 1911
15444  __cil_tmp34 = & udev->dev;
15445#line 1911
15446  err = device_add(__cil_tmp34);
15447  }
15448#line 1912
15449  if (err != 0) {
15450    {
15451#line 1913
15452    __cil_tmp35 = & udev->dev;
15453#line 1913
15454    __cil_tmp36 = (struct device  const  *)__cil_tmp35;
15455#line 1913
15456    dev_err(__cil_tmp36, "can\'t device_add, error %d\n", err);
15457    }
15458#line 1914
15459    goto fail;
15460  } else {
15461
15462  }
15463  {
15464#line 1917
15465  __cil_tmp37 = & udev->dev;
15466#line 1917
15467  __cil_tmp38 = & udev->ep0;
15468#line 1917
15469  usb_create_ep_devs(__cil_tmp37, __cil_tmp38, udev);
15470#line 1918
15471  usb_mark_last_busy(udev);
15472#line 1919
15473  __cil_tmp39 = & udev->dev;
15474#line 1919
15475  pm_runtime_put_sync_autosuspend(__cil_tmp39);
15476  }
15477#line 1920
15478  return (err);
15479  fail: 
15480  {
15481#line 1923
15482  __cil_tmp40 = (enum usb_device_state )0;
15483#line 1923
15484  usb_set_device_state(udev, __cil_tmp40);
15485#line 1924
15486  __cil_tmp41 = & udev->dev;
15487#line 1924
15488  pm_runtime_disable(__cil_tmp41);
15489#line 1925
15490  __cil_tmp42 = & udev->dev;
15491#line 1925
15492  pm_runtime_set_suspended(__cil_tmp42);
15493  }
15494#line 1926
15495  return (err);
15496}
15497}
15498#line 1940 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
15499int usb_deauthorize_device(struct usb_device *usb_dev ) 
15500{ struct device *__cil_tmp2 ;
15501  unsigned char *__cil_tmp3 ;
15502  unsigned char *__cil_tmp4 ;
15503  unsigned char __cil_tmp5 ;
15504  unsigned int __cil_tmp6 ;
15505  char *__cil_tmp7 ;
15506  void const   *__cil_tmp8 ;
15507  char *__cil_tmp9 ;
15508  void const   *__cil_tmp10 ;
15509  char *__cil_tmp11 ;
15510  void const   *__cil_tmp12 ;
15511  struct device *__cil_tmp13 ;
15512
15513  {
15514  {
15515#line 1942
15516  __cil_tmp2 = & usb_dev->dev;
15517#line 1942
15518  device_lock(__cil_tmp2);
15519  }
15520  {
15521#line 1943
15522  __cil_tmp3 = (unsigned char *)usb_dev;
15523#line 1943
15524  __cil_tmp4 = __cil_tmp3 + 1556UL;
15525#line 1943
15526  __cil_tmp5 = *__cil_tmp4;
15527#line 1943
15528  __cil_tmp6 = (unsigned int )__cil_tmp5;
15529#line 1943
15530  if (__cil_tmp6 == 0U) {
15531#line 1944
15532    goto out_unauthorized;
15533  } else {
15534
15535  }
15536  }
15537  {
15538#line 1946
15539  usb_dev->authorized = (unsigned char)0;
15540#line 1947
15541  usb_set_configuration(usb_dev, -1);
15542#line 1949
15543  __cil_tmp7 = usb_dev->product;
15544#line 1949
15545  __cil_tmp8 = (void const   *)__cil_tmp7;
15546#line 1949
15547  kfree(__cil_tmp8);
15548#line 1950
15549  usb_dev->product = kstrdup("n/a (unauthorized)", 208U);
15550#line 1951
15551  __cil_tmp9 = usb_dev->manufacturer;
15552#line 1951
15553  __cil_tmp10 = (void const   *)__cil_tmp9;
15554#line 1951
15555  kfree(__cil_tmp10);
15556#line 1952
15557  usb_dev->manufacturer = kstrdup("n/a (unauthorized)", 208U);
15558#line 1953
15559  __cil_tmp11 = usb_dev->serial;
15560#line 1953
15561  __cil_tmp12 = (void const   *)__cil_tmp11;
15562#line 1953
15563  kfree(__cil_tmp12);
15564#line 1954
15565  usb_dev->serial = kstrdup("n/a (unauthorized)", 208U);
15566#line 1956
15567  usb_destroy_configuration(usb_dev);
15568#line 1957
15569  usb_dev->descriptor.bNumConfigurations = (__u8 )0U;
15570  }
15571  out_unauthorized: 
15572  {
15573#line 1960
15574  __cil_tmp13 = & usb_dev->dev;
15575#line 1960
15576  device_unlock(__cil_tmp13);
15577  }
15578#line 1961
15579  return (0);
15580}
15581}
15582#line 1965 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
15583int usb_authorize_device(struct usb_device *usb_dev ) 
15584{ int result ;
15585  int c ;
15586  struct device *__cil_tmp4 ;
15587  unsigned char *__cil_tmp5 ;
15588  unsigned char *__cil_tmp6 ;
15589  unsigned char __cil_tmp7 ;
15590  unsigned int __cil_tmp8 ;
15591  struct device *__cil_tmp9 ;
15592  struct device  const  *__cil_tmp10 ;
15593  struct device *__cil_tmp11 ;
15594  struct device  const  *__cil_tmp12 ;
15595  char *__cil_tmp13 ;
15596  void const   *__cil_tmp14 ;
15597  char *__cil_tmp15 ;
15598  void const   *__cil_tmp16 ;
15599  char *__cil_tmp17 ;
15600  void const   *__cil_tmp18 ;
15601  struct device *__cil_tmp19 ;
15602  struct device  const  *__cil_tmp20 ;
15603  struct device *__cil_tmp21 ;
15604  struct device  const  *__cil_tmp22 ;
15605  struct device *__cil_tmp23 ;
15606
15607  {
15608  {
15609#line 1967
15610  result = 0;
15611#line 1969
15612  __cil_tmp4 = & usb_dev->dev;
15613#line 1969
15614  device_lock(__cil_tmp4);
15615  }
15616  {
15617#line 1970
15618  __cil_tmp5 = (unsigned char *)usb_dev;
15619#line 1970
15620  __cil_tmp6 = __cil_tmp5 + 1556UL;
15621#line 1970
15622  __cil_tmp7 = *__cil_tmp6;
15623#line 1970
15624  __cil_tmp8 = (unsigned int )__cil_tmp7;
15625#line 1970
15626  if (__cil_tmp8 != 0U) {
15627#line 1971
15628    goto out_authorized;
15629  } else {
15630
15631  }
15632  }
15633  {
15634#line 1973
15635  result = usb_autoresume_device(usb_dev);
15636  }
15637#line 1974
15638  if (result < 0) {
15639    {
15640#line 1975
15641    __cil_tmp9 = & usb_dev->dev;
15642#line 1975
15643    __cil_tmp10 = (struct device  const  *)__cil_tmp9;
15644#line 1975
15645    dev_err(__cil_tmp10, "can\'t autoresume for authorization: %d\n", result);
15646    }
15647#line 1977
15648    goto error_autoresume;
15649  } else {
15650
15651  }
15652  {
15653#line 1979
15654  result = usb_get_device_descriptor(usb_dev, 18U);
15655  }
15656#line 1980
15657  if (result < 0) {
15658    {
15659#line 1981
15660    __cil_tmp11 = & usb_dev->dev;
15661#line 1981
15662    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
15663#line 1981
15664    dev_err(__cil_tmp12, "can\'t re-read device descriptor for authorization: %d\n",
15665            result);
15666    }
15667#line 1983
15668    goto error_device_descriptor;
15669  } else {
15670
15671  }
15672  {
15673#line 1986
15674  __cil_tmp13 = usb_dev->product;
15675#line 1986
15676  __cil_tmp14 = (void const   *)__cil_tmp13;
15677#line 1986
15678  kfree(__cil_tmp14);
15679#line 1987
15680  usb_dev->product = (char *)0;
15681#line 1988
15682  __cil_tmp15 = usb_dev->manufacturer;
15683#line 1988
15684  __cil_tmp16 = (void const   *)__cil_tmp15;
15685#line 1988
15686  kfree(__cil_tmp16);
15687#line 1989
15688  usb_dev->manufacturer = (char *)0;
15689#line 1990
15690  __cil_tmp17 = usb_dev->serial;
15691#line 1990
15692  __cil_tmp18 = (void const   *)__cil_tmp17;
15693#line 1990
15694  kfree(__cil_tmp18);
15695#line 1991
15696  usb_dev->serial = (char *)0;
15697#line 1993
15698  usb_dev->authorized = (unsigned char)1;
15699#line 1994
15700  result = usb_enumerate_device(usb_dev);
15701  }
15702#line 1995
15703  if (result < 0) {
15704#line 1996
15705    goto error_enumerate;
15706  } else {
15707
15708  }
15709  {
15710#line 2000
15711  c = usb_choose_configuration(usb_dev);
15712  }
15713#line 2001
15714  if (c >= 0) {
15715    {
15716#line 2002
15717    result = usb_set_configuration(usb_dev, c);
15718    }
15719#line 2003
15720    if (result != 0) {
15721      {
15722#line 2004
15723      __cil_tmp19 = & usb_dev->dev;
15724#line 2004
15725      __cil_tmp20 = (struct device  const  *)__cil_tmp19;
15726#line 2004
15727      dev_err(__cil_tmp20, "can\'t set config #%d, error %d\n", c, result);
15728      }
15729    } else {
15730
15731    }
15732  } else {
15733
15734  }
15735  {
15736#line 2010
15737  __cil_tmp21 = & usb_dev->dev;
15738#line 2010
15739  __cil_tmp22 = (struct device  const  *)__cil_tmp21;
15740#line 2010
15741  _dev_info(__cil_tmp22, "authorized to connect\n");
15742  }
15743  error_enumerate: ;
15744  error_device_descriptor: 
15745  {
15746#line 2014
15747  usb_autosuspend_device(usb_dev);
15748  }
15749  error_autoresume: ;
15750  out_authorized: 
15751  {
15752#line 2017
15753  __cil_tmp23 = & usb_dev->dev;
15754#line 2017
15755  device_unlock(__cil_tmp23);
15756  }
15757#line 2018
15758  return (result);
15759}
15760}
15761#line 2023 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
15762static unsigned int hub_is_wusb(struct usb_hub *hub ) 
15763{ struct usb_hcd *hcd ;
15764  struct usb_bus  const  *__mptr ;
15765  struct usb_device *__cil_tmp4 ;
15766  unsigned long __cil_tmp5 ;
15767  struct usb_device *__cil_tmp6 ;
15768  struct usb_device *__cil_tmp7 ;
15769  unsigned long __cil_tmp8 ;
15770  struct usb_device *__cil_tmp9 ;
15771  struct usb_bus *__cil_tmp10 ;
15772  unsigned char __cil_tmp11 ;
15773
15774  {
15775  {
15776#line 2026
15777  __cil_tmp4 = (struct usb_device *)0;
15778#line 2026
15779  __cil_tmp5 = (unsigned long )__cil_tmp4;
15780#line 2026
15781  __cil_tmp6 = hub->hdev;
15782#line 2026
15783  __cil_tmp7 = __cil_tmp6->parent;
15784#line 2026
15785  __cil_tmp8 = (unsigned long )__cil_tmp7;
15786#line 2026
15787  if (__cil_tmp8 != __cil_tmp5) {
15788#line 2027
15789    return (0U);
15790  } else {
15791
15792  }
15793  }
15794#line 2028
15795  __cil_tmp9 = hub->hdev;
15796#line 2028
15797  __cil_tmp10 = __cil_tmp9->bus;
15798#line 2028
15799  __mptr = (struct usb_bus  const  *)__cil_tmp10;
15800#line 2028
15801  hcd = (struct usb_hcd *)__mptr;
15802  {
15803#line 2029
15804  __cil_tmp11 = hcd->wireless;
15805#line 2029
15806  return ((unsigned int )__cil_tmp11);
15807  }
15808}
15809}
15810#line 2044 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
15811static int hub_port_wait_reset(struct usb_hub *hub , int port1 , struct usb_device *udev ,
15812                               unsigned int delay ) 
15813{ int delay_time ;
15814  int ret ;
15815  u16 portstatus ;
15816  u16 portchange ;
15817  int tmp ;
15818  unsigned int tmp___0 ;
15819  int __cil_tmp11 ;
15820  int __cil_tmp12 ;
15821  int __cil_tmp13 ;
15822  int __cil_tmp14 ;
15823  int __cil_tmp15 ;
15824  int __cil_tmp16 ;
15825  int __cil_tmp17 ;
15826  struct usb_device *__cil_tmp18 ;
15827  int __cil_tmp19 ;
15828  int __cil_tmp20 ;
15829  int __cil_tmp21 ;
15830  int __cil_tmp22 ;
15831  struct device *__cil_tmp23 ;
15832  struct device  const  *__cil_tmp24 ;
15833  unsigned int __cil_tmp25 ;
15834  unsigned int __cil_tmp26 ;
15835
15836  {
15837#line 2051
15838  delay_time = 0;
15839#line 2051
15840  goto ldv_26074;
15841  ldv_26073: 
15842  {
15843#line 2055
15844  msleep(delay);
15845#line 2058
15846  ret = hub_port_status(hub, port1, & portstatus, & portchange);
15847  }
15848#line 2059
15849  if (ret < 0) {
15850#line 2060
15851    return (ret);
15852  } else {
15853
15854  }
15855  {
15856#line 2063
15857  __cil_tmp11 = (int )portstatus;
15858#line 2063
15859  __cil_tmp12 = __cil_tmp11 & 1;
15860#line 2063
15861  if (__cil_tmp12 == 0) {
15862#line 2064
15863    return (-107);
15864  } else {
15865
15866  }
15867  }
15868  {
15869#line 2067
15870  __cil_tmp13 = (int )portchange;
15871#line 2067
15872  if (__cil_tmp13 & 1) {
15873#line 2068
15874    return (-107);
15875  } else {
15876
15877  }
15878  }
15879  {
15880#line 2071
15881  __cil_tmp14 = (int )portstatus;
15882#line 2071
15883  __cil_tmp15 = __cil_tmp14 & 16;
15884#line 2071
15885  if (__cil_tmp15 == 0) {
15886    {
15887#line 2071
15888    __cil_tmp16 = (int )portstatus;
15889#line 2071
15890    __cil_tmp17 = __cil_tmp16 & 2;
15891#line 2071
15892    if (__cil_tmp17 != 0) {
15893      {
15894#line 2073
15895      tmp___0 = hub_is_wusb(hub);
15896      }
15897#line 2073
15898      if (tmp___0 != 0U) {
15899#line 2074
15900        udev->speed = (enum usb_device_speed )4;
15901      } else {
15902        {
15903#line 2075
15904        __cil_tmp18 = hub->hdev;
15905#line 2075
15906        tmp = hub_is_superspeed(__cil_tmp18);
15907        }
15908#line 2075
15909        if (tmp != 0) {
15910#line 2076
15911          udev->speed = (enum usb_device_speed )5;
15912        } else {
15913          {
15914#line 2077
15915          __cil_tmp19 = (int )portstatus;
15916#line 2077
15917          __cil_tmp20 = __cil_tmp19 & 1024;
15918#line 2077
15919          if (__cil_tmp20 != 0) {
15920#line 2078
15921            udev->speed = (enum usb_device_speed )3;
15922          } else {
15923            {
15924#line 2079
15925            __cil_tmp21 = (int )portstatus;
15926#line 2079
15927            __cil_tmp22 = __cil_tmp21 & 512;
15928#line 2079
15929            if (__cil_tmp22 != 0) {
15930#line 2080
15931              udev->speed = (enum usb_device_speed )1;
15932            } else {
15933#line 2082
15934              udev->speed = (enum usb_device_speed )2;
15935            }
15936            }
15937          }
15938          }
15939        }
15940      }
15941#line 2083
15942      return (0);
15943    } else {
15944
15945    }
15946    }
15947  } else {
15948
15949  }
15950  }
15951#line 2087
15952  if (delay_time > 19) {
15953#line 2088
15954    delay = 200U;
15955  } else {
15956
15957  }
15958  {
15959#line 2090
15960  __cil_tmp23 = hub->intfdev;
15961#line 2090
15962  __cil_tmp24 = (struct device  const  *)__cil_tmp23;
15963#line 2090
15964  dev_printk("<7>", __cil_tmp24, "port %d not reset yet, waiting %dms\n", port1, delay);
15965#line 2053
15966  __cil_tmp25 = (unsigned int )delay_time;
15967#line 2053
15968  __cil_tmp26 = __cil_tmp25 + delay;
15969#line 2053
15970  delay_time = (int )__cil_tmp26;
15971  }
15972  ldv_26074: ;
15973#line 2051
15974  if (delay_time <= 499) {
15975#line 2053
15976    goto ldv_26073;
15977  } else {
15978#line 2055
15979    goto ldv_26075;
15980  }
15981  ldv_26075: ;
15982#line 2095
15983  return (-16);
15984}
15985}
15986#line 2098 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
15987static int hub_port_reset(struct usb_hub *hub , int port1 , struct usb_device *udev ,
15988                          unsigned int delay ) 
15989{ int i ;
15990  int status ;
15991  struct usb_hcd *hcd ;
15992  int tmp ;
15993  struct usb_bus *__cil_tmp9 ;
15994  struct usb_device *__cil_tmp10 ;
15995  struct device *__cil_tmp11 ;
15996  struct device  const  *__cil_tmp12 ;
15997  struct device *__cil_tmp13 ;
15998  struct device  const  *__cil_tmp14 ;
15999  int (*__cil_tmp15)(struct usb_hcd * , struct usb_device * ) ;
16000  unsigned long __cil_tmp16 ;
16001  struct hc_driver  const  *__cil_tmp17 ;
16002  int (*__cil_tmp18)(struct usb_hcd * , struct usb_device * ) ;
16003  unsigned long __cil_tmp19 ;
16004  struct hc_driver  const  *__cil_tmp20 ;
16005  int (*__cil_tmp21)(struct usb_hcd * , struct usb_device * ) ;
16006  struct device *__cil_tmp22 ;
16007  struct device  const  *__cil_tmp23 ;
16008  struct usb_device *__cil_tmp24 ;
16009  enum usb_device_state __cil_tmp25 ;
16010  struct device *__cil_tmp26 ;
16011  struct device  const  *__cil_tmp27 ;
16012  struct device *__cil_tmp28 ;
16013  struct device  const  *__cil_tmp29 ;
16014
16015  {
16016  {
16017#line 2104
16018  __cil_tmp9 = udev->bus;
16019#line 2104
16020  hcd = bus_to_hcd(__cil_tmp9);
16021#line 2108
16022  down_read(& ehci_cf_port_reset_rwsem);
16023#line 2111
16024  i = 0;
16025  }
16026#line 2111
16027  goto ldv_26091;
16028  ldv_26090: 
16029  {
16030#line 2112
16031  __cil_tmp10 = hub->hdev;
16032#line 2112
16033  status = set_port_feature(__cil_tmp10, port1, 4);
16034  }
16035#line 2114
16036  if (status != 0) {
16037    {
16038#line 2115
16039    __cil_tmp11 = hub->intfdev;
16040#line 2115
16041    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
16042#line 2115
16043    dev_err(__cil_tmp12, "cannot reset port %d (err = %d)\n", port1, status);
16044    }
16045  } else {
16046    {
16047#line 2119
16048    status = hub_port_wait_reset(hub, port1, udev, delay);
16049    }
16050#line 2120
16051    if (status != 0) {
16052#line 2120
16053      if (status != -107) {
16054        {
16055#line 2121
16056        __cil_tmp13 = hub->intfdev;
16057#line 2121
16058        __cil_tmp14 = (struct device  const  *)__cil_tmp13;
16059#line 2121
16060        dev_printk("<7>", __cil_tmp14, "port_wait_reset: err = %d\n", status);
16061        }
16062      } else {
16063
16064      }
16065    } else {
16066
16067    }
16068  }
16069#line 2128
16070  if (status == 0) {
16071#line 2128
16072    goto case_0;
16073  } else
16074#line 2141
16075  if (status == -107) {
16076#line 2141
16077    goto case_neg_107;
16078  } else
16079#line 2142
16080  if (status == -19) {
16081#line 2142
16082    goto case_neg_19;
16083  } else
16084#line 2127
16085  if (0) {
16086    case_0: 
16087    {
16088#line 2130
16089    msleep(50U);
16090#line 2131
16091    update_devnum(udev, 0);
16092    }
16093    {
16094#line 2132
16095    __cil_tmp15 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
16096#line 2132
16097    __cil_tmp16 = (unsigned long )__cil_tmp15;
16098#line 2132
16099    __cil_tmp17 = hcd->driver;
16100#line 2132
16101    __cil_tmp18 = __cil_tmp17->reset_device;
16102#line 2132
16103    __cil_tmp19 = (unsigned long )__cil_tmp18;
16104#line 2132
16105    if (__cil_tmp19 != __cil_tmp16) {
16106      {
16107#line 2133
16108      __cil_tmp20 = hcd->driver;
16109#line 2133
16110      __cil_tmp21 = __cil_tmp20->reset_device;
16111#line 2133
16112      status = (*__cil_tmp21)(hcd, udev);
16113      }
16114#line 2134
16115      if (status < 0) {
16116        {
16117#line 2135
16118        __cil_tmp22 = & udev->dev;
16119#line 2135
16120        __cil_tmp23 = (struct device  const  *)__cil_tmp22;
16121#line 2135
16122        dev_err(__cil_tmp23, "Cannot reset HCD device state\n");
16123        }
16124#line 2137
16125        goto ldv_26086;
16126      } else {
16127
16128      }
16129    } else {
16130
16131    }
16132    }
16133    case_neg_107: ;
16134    case_neg_19: 
16135    {
16136#line 2143
16137    __cil_tmp24 = hub->hdev;
16138#line 2143
16139    clear_port_feature(__cil_tmp24, port1, 20);
16140    }
16141#line 2146
16142    if (status != 0) {
16143#line 2146
16144      tmp = 0;
16145    } else {
16146#line 2146
16147      tmp = 5;
16148    }
16149    {
16150#line 2146
16151    __cil_tmp25 = (enum usb_device_state )tmp;
16152#line 2146
16153    usb_set_device_state(udev, __cil_tmp25);
16154    }
16155#line 2149
16156    goto done;
16157  } else {
16158
16159  }
16160  ldv_26086: 
16161  {
16162#line 2152
16163  __cil_tmp26 = hub->intfdev;
16164#line 2152
16165  __cil_tmp27 = (struct device  const  *)__cil_tmp26;
16166#line 2152
16167  dev_printk("<7>", __cil_tmp27, "port %d not enabled, trying reset again...\n", port1);
16168#line 2155
16169  delay = 200U;
16170#line 2111
16171  i = i + 1;
16172  }
16173  ldv_26091: ;
16174#line 2111
16175  if (i <= 4) {
16176#line 2112
16177    goto ldv_26090;
16178  } else {
16179#line 2114
16180    goto ldv_26092;
16181  }
16182  ldv_26092: 
16183  {
16184#line 2158
16185  __cil_tmp28 = hub->intfdev;
16186#line 2158
16187  __cil_tmp29 = (struct device  const  *)__cil_tmp28;
16188#line 2158
16189  dev_err(__cil_tmp29, "Cannot enable port %i.  Maybe the USB cable is bad?\n", port1);
16190  }
16191  done: 
16192  {
16193#line 2163
16194  up_read(& ehci_cf_port_reset_rwsem);
16195  }
16196#line 2164
16197  return (status);
16198}
16199}
16200#line 2168 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
16201static int hub_port_warm_reset(struct usb_hub *hub , int port ) 
16202{ int ret ;
16203  u16 portstatus ;
16204  u16 portchange ;
16205  int tmp ;
16206  struct usb_device *__cil_tmp7 ;
16207  struct device *__cil_tmp8 ;
16208  struct device  const  *__cil_tmp9 ;
16209  struct usb_device *__cil_tmp10 ;
16210  struct device *__cil_tmp11 ;
16211  struct device  const  *__cil_tmp12 ;
16212  int __cil_tmp13 ;
16213  int __cil_tmp14 ;
16214  struct usb_device *__cil_tmp15 ;
16215  int __cil_tmp16 ;
16216  int __cil_tmp17 ;
16217  struct usb_device *__cil_tmp18 ;
16218  int __cil_tmp19 ;
16219  int __cil_tmp20 ;
16220  struct usb_device *__cil_tmp21 ;
16221
16222  {
16223  {
16224#line 2173
16225  __cil_tmp7 = hub->hdev;
16226#line 2173
16227  tmp = hub_is_superspeed(__cil_tmp7);
16228  }
16229#line 2173
16230  if (tmp == 0) {
16231    {
16232#line 2174
16233    __cil_tmp8 = hub->intfdev;
16234#line 2174
16235    __cil_tmp9 = (struct device  const  *)__cil_tmp8;
16236#line 2174
16237    dev_err(__cil_tmp9, "only USB3 hub support warm reset\n");
16238    }
16239#line 2175
16240    return (-22);
16241  } else {
16242
16243  }
16244  {
16245#line 2179
16246  __cil_tmp10 = hub->hdev;
16247#line 2179
16248  ret = set_port_feature(__cil_tmp10, port, 28);
16249  }
16250#line 2181
16251  if (ret != 0) {
16252    {
16253#line 2182
16254    __cil_tmp11 = hub->intfdev;
16255#line 2182
16256    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
16257#line 2182
16258    dev_err(__cil_tmp12, "cannot warm reset port %d\n", port);
16259    }
16260#line 2183
16261    return (ret);
16262  } else {
16263
16264  }
16265  {
16266#line 2186
16267  msleep(20U);
16268#line 2187
16269  ret = hub_port_status(hub, port, & portstatus, & portchange);
16270  }
16271  {
16272#line 2189
16273  __cil_tmp13 = (int )portchange;
16274#line 2189
16275  __cil_tmp14 = __cil_tmp13 & 16;
16276#line 2189
16277  if (__cil_tmp14 != 0) {
16278    {
16279#line 2190
16280    __cil_tmp15 = hub->hdev;
16281#line 2190
16282    clear_port_feature(__cil_tmp15, port, 20);
16283    }
16284  } else {
16285
16286  }
16287  }
16288  {
16289#line 2192
16290  __cil_tmp16 = (int )portchange;
16291#line 2192
16292  __cil_tmp17 = __cil_tmp16 & 32;
16293#line 2192
16294  if (__cil_tmp17 != 0) {
16295    {
16296#line 2193
16297    __cil_tmp18 = hub->hdev;
16298#line 2193
16299    clear_port_feature(__cil_tmp18, port, 29);
16300    }
16301  } else {
16302
16303  }
16304  }
16305  {
16306#line 2196
16307  __cil_tmp19 = (int )portchange;
16308#line 2196
16309  __cil_tmp20 = __cil_tmp19 & 64;
16310#line 2196
16311  if (__cil_tmp20 != 0) {
16312    {
16313#line 2197
16314    __cil_tmp21 = hub->hdev;
16315#line 2197
16316    clear_port_feature(__cil_tmp21, port, 25);
16317    }
16318  } else {
16319
16320  }
16321  }
16322#line 2200
16323  return (ret);
16324}
16325}
16326#line 2204 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
16327static int port_is_power_on(struct usb_hub *hub , unsigned int portstatus ) 
16328{ int ret ;
16329  int tmp ;
16330  struct usb_device *__cil_tmp5 ;
16331  unsigned int __cil_tmp6 ;
16332  unsigned int __cil_tmp7 ;
16333
16334  {
16335  {
16336#line 2206
16337  ret = 0;
16338#line 2208
16339  __cil_tmp5 = hub->hdev;
16340#line 2208
16341  tmp = hub_is_superspeed(__cil_tmp5);
16342  }
16343#line 2208
16344  if (tmp != 0) {
16345    {
16346#line 2209
16347    __cil_tmp6 = portstatus & 512U;
16348#line 2209
16349    if (__cil_tmp6 != 0U) {
16350#line 2210
16351      ret = 1;
16352    } else {
16353      {
16354#line 2212
16355      __cil_tmp7 = portstatus & 256U;
16356#line 2212
16357      if (__cil_tmp7 != 0U) {
16358#line 2213
16359        ret = 1;
16360      } else {
16361
16362      }
16363      }
16364    }
16365    }
16366  } else {
16367
16368  }
16369#line 2216
16370  return (ret);
16371}
16372}
16373#line 2222 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
16374static int port_is_suspended(struct usb_hub *hub , unsigned int portstatus ) 
16375{ int ret ;
16376  int tmp ;
16377  struct usb_device *__cil_tmp5 ;
16378  unsigned int __cil_tmp6 ;
16379  unsigned int __cil_tmp7 ;
16380
16381  {
16382  {
16383#line 2224
16384  ret = 0;
16385#line 2226
16386  __cil_tmp5 = hub->hdev;
16387#line 2226
16388  tmp = hub_is_superspeed(__cil_tmp5);
16389  }
16390#line 2226
16391  if (tmp != 0) {
16392    {
16393#line 2227
16394    __cil_tmp6 = portstatus & 480U;
16395#line 2227
16396    if (__cil_tmp6 == 96U) {
16397#line 2229
16398      ret = 1;
16399    } else {
16400      {
16401#line 2231
16402      __cil_tmp7 = portstatus & 4U;
16403#line 2231
16404      if (__cil_tmp7 != 0U) {
16405#line 2232
16406        ret = 1;
16407      } else {
16408
16409      }
16410      }
16411    }
16412    }
16413  } else {
16414
16415  }
16416#line 2235
16417  return (ret);
16418}
16419}
16420#line 2241 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
16421static int check_port_resume_type(struct usb_device *udev , struct usb_hub *hub ,
16422                                  int port1 , int status , unsigned int portchange ,
16423                                  unsigned int portstatus ) 
16424{ int tmp ;
16425  int tmp___0 ;
16426  unsigned int __cil_tmp9 ;
16427  unsigned int __cil_tmp10 ;
16428  unsigned char *__cil_tmp11 ;
16429  unsigned char *__cil_tmp12 ;
16430  unsigned char __cil_tmp13 ;
16431  unsigned int __cil_tmp14 ;
16432  unsigned char *__cil_tmp15 ;
16433  unsigned char *__cil_tmp16 ;
16434  unsigned char __cil_tmp17 ;
16435  unsigned int __cil_tmp18 ;
16436  struct device *__cil_tmp19 ;
16437  struct device  const  *__cil_tmp20 ;
16438  unsigned char *__cil_tmp21 ;
16439  unsigned char *__cil_tmp22 ;
16440  unsigned char __cil_tmp23 ;
16441  unsigned int __cil_tmp24 ;
16442  int __cil_tmp25 ;
16443  struct usb_device *__cil_tmp26 ;
16444  unsigned int __cil_tmp27 ;
16445  struct usb_device *__cil_tmp28 ;
16446
16447  {
16448#line 2246
16449  if (status != 0) {
16450#line 2246
16451    goto _L;
16452  } else {
16453    {
16454#line 2246
16455    tmp = port_is_suspended(hub, portstatus);
16456    }
16457#line 2246
16458    if (tmp != 0) {
16459#line 2246
16460      goto _L;
16461    } else {
16462      {
16463#line 2246
16464      tmp___0 = port_is_power_on(hub, portstatus);
16465      }
16466#line 2246
16467      if (tmp___0 == 0) {
16468#line 2246
16469        goto _L;
16470      } else {
16471        {
16472#line 2246
16473        __cil_tmp9 = portstatus & 1U;
16474#line 2246
16475        if (__cil_tmp9 == 0U) {
16476          _L: 
16477#line 2249
16478          if (status >= 0) {
16479#line 2250
16480            status = -19;
16481          } else {
16482            {
16483#line 2256
16484            __cil_tmp10 = portstatus & 2U;
16485#line 2256
16486            if (__cil_tmp10 == 0U) {
16487              {
16488#line 2256
16489              __cil_tmp11 = (unsigned char *)udev;
16490#line 2256
16491              __cil_tmp12 = __cil_tmp11 + 1904UL;
16492#line 2256
16493              __cil_tmp13 = *__cil_tmp12;
16494#line 2256
16495              __cil_tmp14 = (unsigned int )__cil_tmp13;
16496#line 2256
16497              if (__cil_tmp14 == 0U) {
16498                {
16499#line 2257
16500                __cil_tmp15 = (unsigned char *)udev;
16501#line 2257
16502                __cil_tmp16 = __cil_tmp15 + 1556UL;
16503#line 2257
16504                __cil_tmp17 = *__cil_tmp16;
16505#line 2257
16506                __cil_tmp18 = (unsigned int )__cil_tmp17;
16507#line 2257
16508                if (__cil_tmp18 != 0U) {
16509#line 2258
16510                  udev->reset_resume = (unsigned char)1;
16511                } else {
16512#line 2260
16513                  status = -19;
16514                }
16515                }
16516              } else {
16517
16518              }
16519              }
16520            } else {
16521
16522            }
16523            }
16524          }
16525        } else {
16526
16527        }
16528        }
16529      }
16530    }
16531  }
16532#line 2263
16533  if (status != 0) {
16534    {
16535#line 2264
16536    __cil_tmp19 = hub->intfdev;
16537#line 2264
16538    __cil_tmp20 = (struct device  const  *)__cil_tmp19;
16539#line 2264
16540    dev_printk("<7>", __cil_tmp20, "port %d status %04x.%04x after resume, %d\n",
16541               port1, portchange, portstatus, status);
16542    }
16543  } else {
16544    {
16545#line 2267
16546    __cil_tmp21 = (unsigned char *)udev;
16547#line 2267
16548    __cil_tmp22 = __cil_tmp21 + 1904UL;
16549#line 2267
16550    __cil_tmp23 = *__cil_tmp22;
16551#line 2267
16552    __cil_tmp24 = (unsigned int )__cil_tmp23;
16553#line 2267
16554    if (__cil_tmp24 != 0U) {
16555      {
16556#line 2270
16557      __cil_tmp25 = (int )portchange;
16558#line 2270
16559      if (__cil_tmp25 & 1) {
16560        {
16561#line 2271
16562        __cil_tmp26 = hub->hdev;
16563#line 2271
16564        clear_port_feature(__cil_tmp26, port1, 16);
16565        }
16566      } else {
16567
16568      }
16569      }
16570      {
16571#line 2273
16572      __cil_tmp27 = portchange & 2U;
16573#line 2273
16574      if (__cil_tmp27 != 0U) {
16575        {
16576#line 2274
16577        __cil_tmp28 = hub->hdev;
16578#line 2274
16579        clear_port_feature(__cil_tmp28, port1, 17);
16580        }
16581      } else {
16582
16583      }
16584      }
16585    } else {
16586
16587    }
16588    }
16589  }
16590#line 2278
16591  return (status);
16592}
16593}
16594#line 2329 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
16595int usb_port_suspend(struct usb_device *udev , pm_message_t msg ) 
16596{ struct usb_hub *hub ;
16597  struct usb_hub *tmp ;
16598  int port1 ;
16599  int status ;
16600  unsigned int tmp___0 ;
16601  int tmp___1 ;
16602  unsigned int tmp___2 ;
16603  char *tmp___3 ;
16604  struct usb_device *__cil_tmp11 ;
16605  u8 __cil_tmp12 ;
16606  unsigned char *__cil_tmp13 ;
16607  unsigned char *__cil_tmp14 ;
16608  unsigned char __cil_tmp15 ;
16609  unsigned int __cil_tmp16 ;
16610  unsigned int __cil_tmp17 ;
16611  __u8 __cil_tmp18 ;
16612  __u8 __cil_tmp19 ;
16613  __u16 __cil_tmp20 ;
16614  __u16 __cil_tmp21 ;
16615  void *__cil_tmp22 ;
16616  __u16 __cil_tmp23 ;
16617  struct device *__cil_tmp24 ;
16618  struct device  const  *__cil_tmp25 ;
16619  int __cil_tmp26 ;
16620  struct usb_device *__cil_tmp27 ;
16621  struct usb_device *__cil_tmp28 ;
16622  int __cil_tmp29 ;
16623  struct usb_device *__cil_tmp30 ;
16624  struct device *__cil_tmp31 ;
16625  struct device  const  *__cil_tmp32 ;
16626  unsigned char *__cil_tmp33 ;
16627  unsigned char *__cil_tmp34 ;
16628  unsigned char __cil_tmp35 ;
16629  unsigned int __cil_tmp36 ;
16630  unsigned int __cil_tmp37 ;
16631  __u8 __cil_tmp38 ;
16632  __u8 __cil_tmp39 ;
16633  __u16 __cil_tmp40 ;
16634  __u16 __cil_tmp41 ;
16635  void *__cil_tmp42 ;
16636  __u16 __cil_tmp43 ;
16637  int __cil_tmp44 ;
16638  int __cil_tmp45 ;
16639  struct device *__cil_tmp46 ;
16640  struct device  const  *__cil_tmp47 ;
16641  enum usb_device_state __cil_tmp48 ;
16642  struct usb_device *__cil_tmp49 ;
16643
16644  {
16645  {
16646#line 2331
16647  __cil_tmp11 = udev->parent;
16648#line 2331
16649  tmp = hdev_to_hub(__cil_tmp11);
16650#line 2331
16651  hub = tmp;
16652#line 2332
16653  __cil_tmp12 = udev->portnum;
16654#line 2332
16655  port1 = (int )__cil_tmp12;
16656  }
16657  {
16658#line 2343
16659  __cil_tmp13 = (unsigned char *)udev;
16660#line 2343
16661  __cil_tmp14 = __cil_tmp13 + 1904UL;
16662#line 2343
16663  __cil_tmp15 = *__cil_tmp14;
16664#line 2343
16665  __cil_tmp16 = (unsigned int )__cil_tmp15;
16666#line 2343
16667  if (__cil_tmp16 != 0U) {
16668    {
16669#line 2344
16670    tmp___0 = __create_pipe(udev, 0U);
16671#line 2344
16672    __cil_tmp17 = tmp___0 | 2147483648U;
16673#line 2344
16674    __cil_tmp18 = (__u8 )3;
16675#line 2344
16676    __cil_tmp19 = (__u8 )0;
16677#line 2344
16678    __cil_tmp20 = (__u16 )1;
16679#line 2344
16680    __cil_tmp21 = (__u16 )0;
16681#line 2344
16682    __cil_tmp22 = (void *)0;
16683#line 2344
16684    __cil_tmp23 = (__u16 )0;
16685#line 2344
16686    status = usb_control_msg(udev, __cil_tmp17, __cil_tmp18, __cil_tmp19, __cil_tmp20,
16687                             __cil_tmp21, __cil_tmp22, __cil_tmp23, 5000);
16688    }
16689#line 2349
16690    if (status != 0) {
16691      {
16692#line 2350
16693      __cil_tmp24 = & udev->dev;
16694#line 2350
16695      __cil_tmp25 = (struct device  const  *)__cil_tmp24;
16696#line 2350
16697      dev_printk("<7>", __cil_tmp25, "won\'t remote wakeup, status %d\n", status);
16698      }
16699      {
16700#line 2353
16701      __cil_tmp26 = msg.event & 1024;
16702#line 2353
16703      if (__cil_tmp26 != 0) {
16704#line 2354
16705        return (status);
16706      } else {
16707
16708      }
16709      }
16710    } else {
16711
16712    }
16713  } else {
16714
16715  }
16716  }
16717  {
16718#line 2359
16719  __cil_tmp27 = hub->hdev;
16720#line 2359
16721  tmp___1 = hub_is_superspeed(__cil_tmp27);
16722  }
16723#line 2359
16724  if (tmp___1 != 0) {
16725    {
16726#line 2360
16727    __cil_tmp28 = hub->hdev;
16728#line 2360
16729    __cil_tmp29 = port1 | 768;
16730#line 2360
16731    status = set_port_feature(__cil_tmp28, __cil_tmp29, 5);
16732    }
16733  } else {
16734    {
16735#line 2364
16736    __cil_tmp30 = hub->hdev;
16737#line 2364
16738    status = set_port_feature(__cil_tmp30, port1, 2);
16739    }
16740  }
16741#line 2366
16742  if (status != 0) {
16743    {
16744#line 2367
16745    __cil_tmp31 = hub->intfdev;
16746#line 2367
16747    __cil_tmp32 = (struct device  const  *)__cil_tmp31;
16748#line 2367
16749    dev_printk("<7>", __cil_tmp32, "can\'t suspend port %d, status %d\n", port1, status);
16750    }
16751    {
16752#line 2370
16753    __cil_tmp33 = (unsigned char *)udev;
16754#line 2370
16755    __cil_tmp34 = __cil_tmp33 + 1904UL;
16756#line 2370
16757    __cil_tmp35 = *__cil_tmp34;
16758#line 2370
16759    __cil_tmp36 = (unsigned int )__cil_tmp35;
16760#line 2370
16761    if (__cil_tmp36 != 0U) {
16762      {
16763#line 2371
16764      tmp___2 = __create_pipe(udev, 0U);
16765#line 2371
16766      __cil_tmp37 = tmp___2 | 2147483648U;
16767#line 2371
16768      __cil_tmp38 = (__u8 )1;
16769#line 2371
16770      __cil_tmp39 = (__u8 )0;
16771#line 2371
16772      __cil_tmp40 = (__u16 )1;
16773#line 2371
16774      __cil_tmp41 = (__u16 )0;
16775#line 2371
16776      __cil_tmp42 = (void *)0;
16777#line 2371
16778      __cil_tmp43 = (__u16 )0;
16779#line 2371
16780      usb_control_msg(udev, __cil_tmp37, __cil_tmp38, __cil_tmp39, __cil_tmp40, __cil_tmp41,
16781                      __cil_tmp42, __cil_tmp43, 5000);
16782      }
16783    } else {
16784
16785    }
16786    }
16787    {
16788#line 2378
16789    __cil_tmp44 = msg.event & 1024;
16790#line 2378
16791    if (__cil_tmp44 == 0) {
16792#line 2379
16793      status = 0;
16794    } else {
16795
16796    }
16797    }
16798  } else {
16799    {
16800#line 2382
16801    __cil_tmp45 = msg.event & 1024;
16802#line 2382
16803    if (__cil_tmp45 != 0) {
16804#line 2382
16805      tmp___3 = (char *)"auto-";
16806    } else {
16807#line 2382
16808      tmp___3 = (char *)"";
16809    }
16810    }
16811    {
16812#line 2382
16813    __cil_tmp46 = & udev->dev;
16814#line 2382
16815    __cil_tmp47 = (struct device  const  *)__cil_tmp46;
16816#line 2382
16817    dev_printk("<7>", __cil_tmp47, "usb %ssuspend\n", tmp___3);
16818#line 2384
16819    __cil_tmp48 = (enum usb_device_state )8;
16820#line 2384
16821    usb_set_device_state(udev, __cil_tmp48);
16822#line 2385
16823    msleep(10U);
16824    }
16825  }
16826  {
16827#line 2387
16828  __cil_tmp49 = hub->hdev;
16829#line 2387
16830  usb_mark_last_busy(__cil_tmp49);
16831  }
16832#line 2388
16833  return (status);
16834}
16835}
16836#line 2402 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
16837static int finish_port_resume(struct usb_device *udev ) 
16838{ int status ;
16839  u16 devstatus ;
16840  char *tmp ;
16841  int tmp___0 ;
16842  unsigned int tmp___1 ;
16843  unsigned char *__cil_tmp7 ;
16844  unsigned char *__cil_tmp8 ;
16845  unsigned char __cil_tmp9 ;
16846  unsigned int __cil_tmp10 ;
16847  struct device *__cil_tmp11 ;
16848  struct device  const  *__cil_tmp12 ;
16849  struct usb_host_config *__cil_tmp13 ;
16850  unsigned long __cil_tmp14 ;
16851  struct usb_host_config *__cil_tmp15 ;
16852  unsigned long __cil_tmp16 ;
16853  enum usb_device_state __cil_tmp17 ;
16854  unsigned char *__cil_tmp18 ;
16855  unsigned char *__cil_tmp19 ;
16856  unsigned char __cil_tmp20 ;
16857  unsigned int __cil_tmp21 ;
16858  void *__cil_tmp22 ;
16859  unsigned char *__cil_tmp23 ;
16860  unsigned char *__cil_tmp24 ;
16861  unsigned char __cil_tmp25 ;
16862  unsigned int __cil_tmp26 ;
16863  unsigned char *__cil_tmp27 ;
16864  unsigned char *__cil_tmp28 ;
16865  unsigned char __cil_tmp29 ;
16866  unsigned int __cil_tmp30 ;
16867  struct device *__cil_tmp31 ;
16868  struct device  const  *__cil_tmp32 ;
16869  struct device *__cil_tmp33 ;
16870  struct device  const  *__cil_tmp34 ;
16871  struct usb_host_config *__cil_tmp35 ;
16872  unsigned long __cil_tmp36 ;
16873  struct usb_host_config *__cil_tmp37 ;
16874  unsigned long __cil_tmp38 ;
16875  int __cil_tmp39 ;
16876  int __cil_tmp40 ;
16877  unsigned int __cil_tmp41 ;
16878  __u8 __cil_tmp42 ;
16879  __u8 __cil_tmp43 ;
16880  __u16 __cil_tmp44 ;
16881  __u16 __cil_tmp45 ;
16882  void *__cil_tmp46 ;
16883  __u16 __cil_tmp47 ;
16884  struct device *__cil_tmp48 ;
16885  struct device  const  *__cil_tmp49 ;
16886
16887  {
16888#line 2404
16889  status = 0;
16890  {
16891#line 2408
16892  __cil_tmp7 = (unsigned char *)udev;
16893#line 2408
16894  __cil_tmp8 = __cil_tmp7 + 1904UL;
16895#line 2408
16896  __cil_tmp9 = *__cil_tmp8;
16897#line 2408
16898  __cil_tmp10 = (unsigned int )__cil_tmp9;
16899#line 2408
16900  if (__cil_tmp10 != 0U) {
16901#line 2408
16902    tmp = (char *)"finish reset-resume";
16903  } else {
16904#line 2408
16905    tmp = (char *)"finish resume";
16906  }
16907  }
16908  {
16909#line 2408
16910  __cil_tmp11 = & udev->dev;
16911#line 2408
16912  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
16913#line 2408
16914  dev_printk("<7>", __cil_tmp12, "%s\n", tmp);
16915  }
16916  {
16917#line 2416
16918  __cil_tmp13 = (struct usb_host_config *)0;
16919#line 2416
16920  __cil_tmp14 = (unsigned long )__cil_tmp13;
16921#line 2416
16922  __cil_tmp15 = udev->actconfig;
16923#line 2416
16924  __cil_tmp16 = (unsigned long )__cil_tmp15;
16925#line 2416
16926  if (__cil_tmp16 != __cil_tmp14) {
16927#line 2416
16928    tmp___0 = 7;
16929  } else {
16930#line 2416
16931    tmp___0 = 6;
16932  }
16933  }
16934  {
16935#line 2416
16936  __cil_tmp17 = (enum usb_device_state )tmp___0;
16937#line 2416
16938  usb_set_device_state(udev, __cil_tmp17);
16939  }
16940  {
16941#line 2425
16942  __cil_tmp18 = (unsigned char *)udev;
16943#line 2425
16944  __cil_tmp19 = __cil_tmp18 + 1904UL;
16945#line 2425
16946  __cil_tmp20 = *__cil_tmp19;
16947#line 2425
16948  __cil_tmp21 = (unsigned int )__cil_tmp20;
16949#line 2425
16950  if (__cil_tmp21 != 0U) {
16951    retry_reset_resume: 
16952    {
16953#line 2427
16954    status = usb_reset_and_verify_device(udev);
16955    }
16956  } else {
16957
16958  }
16959  }
16960#line 2433
16961  if (status == 0) {
16962    {
16963#line 2434
16964    devstatus = (u16 )0U;
16965#line 2435
16966    __cil_tmp22 = (void *)(& devstatus);
16967#line 2435
16968    status = usb_get_status(udev, 0, 0, __cil_tmp22);
16969    }
16970#line 2436
16971    if (status >= 0) {
16972#line 2437
16973      if (status > 0) {
16974#line 2437
16975        status = 0;
16976      } else {
16977#line 2437
16978        status = -19;
16979      }
16980    } else {
16981
16982    }
16983#line 2440
16984    if (status != 0) {
16985      {
16986#line 2440
16987      __cil_tmp23 = (unsigned char *)udev;
16988#line 2440
16989      __cil_tmp24 = __cil_tmp23 + 1904UL;
16990#line 2440
16991      __cil_tmp25 = *__cil_tmp24;
16992#line 2440
16993      __cil_tmp26 = (unsigned int )__cil_tmp25;
16994#line 2440
16995      if (__cil_tmp26 == 0U) {
16996        {
16997#line 2440
16998        __cil_tmp27 = (unsigned char *)udev;
16999#line 2440
17000        __cil_tmp28 = __cil_tmp27 + 1556UL;
17001#line 2440
17002        __cil_tmp29 = *__cil_tmp28;
17003#line 2440
17004        __cil_tmp30 = (unsigned int )__cil_tmp29;
17005#line 2440
17006        if (__cil_tmp30 != 0U) {
17007          {
17008#line 2441
17009          __cil_tmp31 = & udev->dev;
17010#line 2441
17011          __cil_tmp32 = (struct device  const  *)__cil_tmp31;
17012#line 2441
17013          dev_printk("<7>", __cil_tmp32, "retry with reset-resume\n");
17014#line 2442
17015          udev->reset_resume = (unsigned char)1;
17016          }
17017#line 2443
17018          goto retry_reset_resume;
17019        } else {
17020
17021        }
17022        }
17023      } else {
17024
17025      }
17026      }
17027    } else {
17028
17029    }
17030  } else {
17031
17032  }
17033#line 2447
17034  if (status != 0) {
17035    {
17036#line 2448
17037    __cil_tmp33 = & udev->dev;
17038#line 2448
17039    __cil_tmp34 = (struct device  const  *)__cil_tmp33;
17040#line 2448
17041    dev_printk("<7>", __cil_tmp34, "gone after usb resume? status %d\n", status);
17042    }
17043  } else {
17044    {
17045#line 2450
17046    __cil_tmp35 = (struct usb_host_config *)0;
17047#line 2450
17048    __cil_tmp36 = (unsigned long )__cil_tmp35;
17049#line 2450
17050    __cil_tmp37 = udev->actconfig;
17051#line 2450
17052    __cil_tmp38 = (unsigned long )__cil_tmp37;
17053#line 2450
17054    if (__cil_tmp38 != __cil_tmp36) {
17055      {
17056#line 2452
17057      __cil_tmp39 = (int )devstatus;
17058#line 2452
17059      __cil_tmp40 = __cil_tmp39 & 2;
17060#line 2452
17061      if (__cil_tmp40 != 0) {
17062        {
17063#line 2453
17064        tmp___1 = __create_pipe(udev, 0U);
17065#line 2453
17066        __cil_tmp41 = tmp___1 | 2147483648U;
17067#line 2453
17068        __cil_tmp42 = (__u8 )1;
17069#line 2453
17070        __cil_tmp43 = (__u8 )0;
17071#line 2453
17072        __cil_tmp44 = (__u16 )1;
17073#line 2453
17074        __cil_tmp45 = (__u16 )0;
17075#line 2453
17076        __cil_tmp46 = (void *)0;
17077#line 2453
17078        __cil_tmp47 = (__u16 )0;
17079#line 2453
17080        status = usb_control_msg(udev, __cil_tmp41, __cil_tmp42, __cil_tmp43, __cil_tmp44,
17081                                 __cil_tmp45, __cil_tmp46, __cil_tmp47, 5000);
17082        }
17083#line 2460
17084        if (status != 0) {
17085          {
17086#line 2461
17087          __cil_tmp48 = & udev->dev;
17088#line 2461
17089          __cil_tmp49 = (struct device  const  *)__cil_tmp48;
17090#line 2461
17091          dev_printk("<7>", __cil_tmp49, "disable remote wakeup, status %d\n", status);
17092          }
17093        } else {
17094
17095        }
17096      } else {
17097
17098      }
17099      }
17100#line 2465
17101      status = 0;
17102    } else {
17103
17104    }
17105    }
17106  }
17107#line 2467
17108  return (status);
17109}
17110}
17111#line 2504 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17112int usb_port_resume(struct usb_device *udev , pm_message_t msg ) 
17113{ struct usb_hub *hub ;
17114  struct usb_hub *tmp ;
17115  int port1 ;
17116  int status ;
17117  u16 portchange ;
17118  u16 portstatus ;
17119  int tmp___0 ;
17120  int tmp___1 ;
17121  char *tmp___2 ;
17122  int tmp___3 ;
17123  struct usb_device *__cil_tmp13 ;
17124  u8 __cil_tmp14 ;
17125  unsigned int __cil_tmp15 ;
17126  unsigned int __cil_tmp16 ;
17127  unsigned long (*__cil_tmp17)[1U] ;
17128  unsigned long volatile   *__cil_tmp18 ;
17129  struct usb_device *__cil_tmp19 ;
17130  struct usb_device *__cil_tmp20 ;
17131  struct usb_device *__cil_tmp21 ;
17132  struct device *__cil_tmp22 ;
17133  struct device  const  *__cil_tmp23 ;
17134  int __cil_tmp24 ;
17135  struct device *__cil_tmp25 ;
17136  struct device  const  *__cil_tmp26 ;
17137  struct usb_device *__cil_tmp27 ;
17138  int __cil_tmp28 ;
17139  int __cil_tmp29 ;
17140  struct usb_device *__cil_tmp30 ;
17141  int __cil_tmp31 ;
17142  int __cil_tmp32 ;
17143  struct usb_device *__cil_tmp33 ;
17144  unsigned long (*__cil_tmp34)[1U] ;
17145  unsigned long volatile   *__cil_tmp35 ;
17146  unsigned int __cil_tmp36 ;
17147  unsigned int __cil_tmp37 ;
17148  struct device *__cil_tmp38 ;
17149  struct device  const  *__cil_tmp39 ;
17150
17151  {
17152  {
17153#line 2506
17154  __cil_tmp13 = udev->parent;
17155#line 2506
17156  tmp = hdev_to_hub(__cil_tmp13);
17157#line 2506
17158  hub = tmp;
17159#line 2507
17160  __cil_tmp14 = udev->portnum;
17161#line 2507
17162  port1 = (int )__cil_tmp14;
17163#line 2512
17164  status = hub_port_status(hub, port1, & portstatus, & portchange);
17165  }
17166#line 2513
17167  if (status == 0) {
17168    {
17169#line 2513
17170    __cil_tmp15 = (unsigned int )portstatus;
17171#line 2513
17172    tmp___0 = port_is_suspended(hub, __cil_tmp15);
17173    }
17174#line 2513
17175    if (tmp___0 == 0) {
17176#line 2514
17177      goto SuspendCleared;
17178    } else {
17179
17180    }
17181  } else {
17182
17183  }
17184  {
17185#line 2518
17186  __cil_tmp16 = (unsigned int )port1;
17187#line 2518
17188  __cil_tmp17 = & hub->busy_bits;
17189#line 2518
17190  __cil_tmp18 = (unsigned long volatile   *)__cil_tmp17;
17191#line 2518
17192  set_bit(__cil_tmp16, __cil_tmp18);
17193#line 2521
17194  __cil_tmp19 = hub->hdev;
17195#line 2521
17196  tmp___1 = hub_is_superspeed(__cil_tmp19);
17197  }
17198#line 2521
17199  if (tmp___1 != 0) {
17200    {
17201#line 2522
17202    __cil_tmp20 = hub->hdev;
17203#line 2522
17204    status = set_port_feature(__cil_tmp20, port1, 5);
17205    }
17206  } else {
17207    {
17208#line 2526
17209    __cil_tmp21 = hub->hdev;
17210#line 2526
17211    status = clear_port_feature(__cil_tmp21, port1, 2);
17212    }
17213  }
17214#line 2528
17215  if (status != 0) {
17216    {
17217#line 2529
17218    __cil_tmp22 = hub->intfdev;
17219#line 2529
17220    __cil_tmp23 = (struct device  const  *)__cil_tmp22;
17221#line 2529
17222    dev_printk("<7>", __cil_tmp23, "can\'t resume port %d, status %d\n", port1, status);
17223    }
17224  } else {
17225    {
17226#line 2533
17227    __cil_tmp24 = msg.event & 1024;
17228#line 2533
17229    if (__cil_tmp24 != 0) {
17230#line 2533
17231      tmp___2 = (char *)"auto-";
17232    } else {
17233#line 2533
17234      tmp___2 = (char *)"";
17235    }
17236    }
17237    {
17238#line 2533
17239    __cil_tmp25 = & udev->dev;
17240#line 2533
17241    __cil_tmp26 = (struct device  const  *)__cil_tmp25;
17242#line 2533
17243    dev_printk("<7>", __cil_tmp26, "usb %sresume\n", tmp___2);
17244#line 2535
17245    msleep(25U);
17246#line 2541
17247    status = hub_port_status(hub, port1, & portstatus, & portchange);
17248#line 2544
17249    msleep(10U);
17250    }
17251  }
17252  SuspendCleared: ;
17253#line 2548
17254  if (status == 0) {
17255    {
17256#line 2549
17257    __cil_tmp27 = hub->hdev;
17258#line 2549
17259    tmp___3 = hub_is_superspeed(__cil_tmp27);
17260    }
17261#line 2549
17262    if (tmp___3 != 0) {
17263      {
17264#line 2550
17265      __cil_tmp28 = (int )portchange;
17266#line 2550
17267      __cil_tmp29 = __cil_tmp28 & 64;
17268#line 2550
17269      if (__cil_tmp29 != 0) {
17270        {
17271#line 2551
17272        __cil_tmp30 = hub->hdev;
17273#line 2551
17274        clear_port_feature(__cil_tmp30, port1, 25);
17275        }
17276      } else {
17277        {
17278#line 2554
17279        __cil_tmp31 = (int )portchange;
17280#line 2554
17281        __cil_tmp32 = __cil_tmp31 & 4;
17282#line 2554
17283        if (__cil_tmp32 != 0) {
17284          {
17285#line 2555
17286          __cil_tmp33 = hub->hdev;
17287#line 2555
17288          clear_port_feature(__cil_tmp33, port1, 18);
17289          }
17290        } else {
17291
17292        }
17293        }
17294      }
17295      }
17296    } else {
17297
17298    }
17299  } else {
17300
17301  }
17302  {
17303#line 2560
17304  __cil_tmp34 = & hub->busy_bits;
17305#line 2560
17306  __cil_tmp35 = (unsigned long volatile   *)__cil_tmp34;
17307#line 2560
17308  clear_bit(port1, __cil_tmp35);
17309#line 2562
17310  __cil_tmp36 = (unsigned int )portchange;
17311#line 2562
17312  __cil_tmp37 = (unsigned int )portstatus;
17313#line 2562
17314  status = check_port_resume_type(udev, hub, port1, status, __cil_tmp36, __cil_tmp37);
17315  }
17316#line 2564
17317  if (status == 0) {
17318    {
17319#line 2565
17320    status = finish_port_resume(udev);
17321    }
17322  } else {
17323
17324  }
17325#line 2566
17326  if (status < 0) {
17327    {
17328#line 2567
17329    __cil_tmp38 = & udev->dev;
17330#line 2567
17331    __cil_tmp39 = (struct device  const  *)__cil_tmp38;
17332#line 2567
17333    dev_printk("<7>", __cil_tmp39, "can\'t resume, status %d\n", status);
17334#line 2568
17335    hub_port_logical_disconnect(hub, port1);
17336    }
17337  } else {
17338
17339  }
17340#line 2570
17341  return (status);
17342}
17343}
17344#line 2574 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17345int usb_remote_wakeup(struct usb_device *udev ) 
17346{ int status ;
17347  enum usb_device_state __cil_tmp3 ;
17348  unsigned int __cil_tmp4 ;
17349  struct device *__cil_tmp5 ;
17350  struct device  const  *__cil_tmp6 ;
17351  char *__cil_tmp7 ;
17352
17353  {
17354#line 2576
17355  status = 0;
17356  {
17357#line 2578
17358  __cil_tmp3 = udev->state;
17359#line 2578
17360  __cil_tmp4 = (unsigned int )__cil_tmp3;
17361#line 2578
17362  if (__cil_tmp4 == 8U) {
17363    {
17364#line 2579
17365    __cil_tmp5 = & udev->dev;
17366#line 2579
17367    __cil_tmp6 = (struct device  const  *)__cil_tmp5;
17368#line 2579
17369    __cil_tmp7 = (char *)"wakeup-";
17370#line 2579
17371    dev_printk("<7>", __cil_tmp6, "usb %sresume\n", __cil_tmp7);
17372#line 2580
17373    status = usb_autoresume_device(udev);
17374    }
17375#line 2581
17376    if (status == 0) {
17377      {
17378#line 2583
17379      usb_autosuspend_device(udev);
17380      }
17381    } else {
17382
17383    }
17384  } else {
17385
17386  }
17387  }
17388#line 2586
17389  return (status);
17390}
17391}
17392#line 2623 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17393static int hub_suspend(struct usb_interface *intf , pm_message_t msg ) 
17394{ struct usb_hub *hub ;
17395  void *tmp ;
17396  struct usb_device *hdev ;
17397  unsigned int port1 ;
17398  struct usb_device *udev ;
17399  struct usb_device *__cil_tmp8 ;
17400  unsigned long __cil_tmp9 ;
17401  unsigned long __cil_tmp10 ;
17402  unsigned char *__cil_tmp11 ;
17403  unsigned char *__cil_tmp12 ;
17404  unsigned char __cil_tmp13 ;
17405  unsigned int __cil_tmp14 ;
17406  struct device *__cil_tmp15 ;
17407  struct device  const  *__cil_tmp16 ;
17408  int __cil_tmp17 ;
17409  int __cil_tmp18 ;
17410  unsigned int __cil_tmp19 ;
17411  struct device *__cil_tmp20 ;
17412  struct device  const  *__cil_tmp21 ;
17413  enum hub_quiescing_type __cil_tmp22 ;
17414
17415  {
17416  {
17417#line 2625
17418  tmp = usb_get_intfdata(intf);
17419#line 2625
17420  hub = (struct usb_hub *)tmp;
17421#line 2626
17422  hdev = hub->hdev;
17423#line 2630
17424  port1 = 1U;
17425  }
17426#line 2630
17427  goto ldv_26154;
17428  ldv_26153: 
17429#line 2633
17430  udev = hdev->children[port1 - 1U];
17431  {
17432#line 2634
17433  __cil_tmp8 = (struct usb_device *)0;
17434#line 2634
17435  __cil_tmp9 = (unsigned long )__cil_tmp8;
17436#line 2634
17437  __cil_tmp10 = (unsigned long )udev;
17438#line 2634
17439  if (__cil_tmp10 != __cil_tmp9) {
17440    {
17441#line 2634
17442    __cil_tmp11 = (unsigned char *)udev;
17443#line 2634
17444    __cil_tmp12 = __cil_tmp11 + 1556UL;
17445#line 2634
17446    __cil_tmp13 = *__cil_tmp12;
17447#line 2634
17448    __cil_tmp14 = (unsigned int )__cil_tmp13;
17449#line 2634
17450    if (__cil_tmp14 != 0U) {
17451      {
17452#line 2635
17453      __cil_tmp15 = & intf->dev;
17454#line 2635
17455      __cil_tmp16 = (struct device  const  *)__cil_tmp15;
17456#line 2635
17457      dev_warn(__cil_tmp16, "port %d nyet suspended\n", port1);
17458      }
17459      {
17460#line 2636
17461      __cil_tmp17 = msg.event & 1024;
17462#line 2636
17463      if (__cil_tmp17 != 0) {
17464#line 2637
17465        return (-16);
17466      } else {
17467
17468      }
17469      }
17470    } else {
17471
17472    }
17473    }
17474  } else {
17475
17476  }
17477  }
17478#line 2630
17479  port1 = port1 + 1U;
17480  ldv_26154: ;
17481  {
17482#line 2630
17483  __cil_tmp18 = hdev->maxchild;
17484#line 2630
17485  __cil_tmp19 = (unsigned int )__cil_tmp18;
17486#line 2630
17487  if (__cil_tmp19 >= port1) {
17488#line 2631
17489    goto ldv_26153;
17490  } else {
17491#line 2633
17492    goto ldv_26155;
17493  }
17494  }
17495  ldv_26155: 
17496  {
17497#line 2641
17498  __cil_tmp20 = & intf->dev;
17499#line 2641
17500  __cil_tmp21 = (struct device  const  *)__cil_tmp20;
17501#line 2641
17502  dev_printk("<7>", __cil_tmp21, "%s\n", "hub_suspend");
17503#line 2644
17504  __cil_tmp22 = (enum hub_quiescing_type )2;
17505#line 2644
17506  hub_quiesce(hub, __cil_tmp22);
17507  }
17508#line 2645
17509  return (0);
17510}
17511}
17512#line 2648 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17513static int hub_resume(struct usb_interface *intf ) 
17514{ struct usb_hub *hub ;
17515  void *tmp ;
17516  struct device *__cil_tmp4 ;
17517  struct device  const  *__cil_tmp5 ;
17518  enum hub_activation_type __cil_tmp6 ;
17519
17520  {
17521  {
17522#line 2650
17523  tmp = usb_get_intfdata(intf);
17524#line 2650
17525  hub = (struct usb_hub *)tmp;
17526#line 2652
17527  __cil_tmp4 = & intf->dev;
17528#line 2652
17529  __cil_tmp5 = (struct device  const  *)__cil_tmp4;
17530#line 2652
17531  dev_printk("<7>", __cil_tmp5, "%s\n", "hub_resume");
17532#line 2653
17533  __cil_tmp6 = (enum hub_activation_type )4;
17534#line 2653
17535  hub_activate(hub, __cil_tmp6);
17536  }
17537#line 2654
17538  return (0);
17539}
17540}
17541#line 2657 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17542static int hub_reset_resume(struct usb_interface *intf ) 
17543{ struct usb_hub *hub ;
17544  void *tmp ;
17545  struct device *__cil_tmp4 ;
17546  struct device  const  *__cil_tmp5 ;
17547  enum hub_activation_type __cil_tmp6 ;
17548
17549  {
17550  {
17551#line 2659
17552  tmp = usb_get_intfdata(intf);
17553#line 2659
17554  hub = (struct usb_hub *)tmp;
17555#line 2661
17556  __cil_tmp4 = & intf->dev;
17557#line 2661
17558  __cil_tmp5 = (struct device  const  *)__cil_tmp4;
17559#line 2661
17560  dev_printk("<7>", __cil_tmp5, "%s\n", "hub_reset_resume");
17561#line 2662
17562  __cil_tmp6 = (enum hub_activation_type )5;
17563#line 2662
17564  hub_activate(hub, __cil_tmp6);
17565  }
17566#line 2663
17567  return (0);
17568}
17569}
17570#line 2677 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17571void usb_root_hub_lost_power(struct usb_device *rhdev ) 
17572{ struct device *__cil_tmp2 ;
17573  struct device  const  *__cil_tmp3 ;
17574
17575  {
17576  {
17577#line 2679
17578  __cil_tmp2 = & rhdev->dev;
17579#line 2679
17580  __cil_tmp3 = (struct device  const  *)__cil_tmp2;
17581#line 2679
17582  dev_warn(__cil_tmp3, "root hub lost power or was reset\n");
17583#line 2680
17584  rhdev->reset_resume = (unsigned char)1;
17585  }
17586#line 2681
17587  return;
17588}
17589}
17590#line 2707 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17591static int hub_port_debounce(struct usb_hub *hub , int port1 ) 
17592{ int ret ;
17593  int total_time ;
17594  int stable_time ;
17595  u16 portchange ;
17596  u16 portstatus ;
17597  unsigned int connection ;
17598  int __cil_tmp9 ;
17599  int __cil_tmp10 ;
17600  unsigned int __cil_tmp11 ;
17601  unsigned int __cil_tmp12 ;
17602  unsigned int __cil_tmp13 ;
17603  unsigned int __cil_tmp14 ;
17604  int __cil_tmp15 ;
17605  struct usb_device *__cil_tmp16 ;
17606  struct device *__cil_tmp17 ;
17607  struct device  const  *__cil_tmp18 ;
17608  int __cil_tmp19 ;
17609
17610  {
17611#line 2710
17612  stable_time = 0;
17613#line 2712
17614  connection = 65535U;
17615#line 2714
17616  total_time = 0;
17617  ldv_26187: 
17618  {
17619#line 2715
17620  ret = hub_port_status(hub, port1, & portstatus, & portchange);
17621  }
17622#line 2716
17623  if (ret < 0) {
17624#line 2717
17625    return (ret);
17626  } else {
17627
17628  }
17629  {
17630#line 2719
17631  __cil_tmp9 = (int )portchange;
17632#line 2719
17633  __cil_tmp10 = __cil_tmp9 & 1;
17634#line 2719
17635  if (__cil_tmp10 == 0) {
17636    {
17637#line 2719
17638    __cil_tmp11 = (unsigned int )portstatus;
17639#line 2719
17640    __cil_tmp12 = __cil_tmp11 & 1U;
17641#line 2719
17642    if (__cil_tmp12 == connection) {
17643#line 2721
17644      stable_time = stable_time + 25;
17645#line 2722
17646      if (stable_time > 99) {
17647#line 2723
17648        goto ldv_26186;
17649      } else {
17650
17651      }
17652    } else {
17653#line 2725
17654      stable_time = 0;
17655#line 2726
17656      __cil_tmp13 = (unsigned int )portstatus;
17657#line 2726
17658      connection = __cil_tmp13 & 1U;
17659    }
17660    }
17661  } else {
17662#line 2725
17663    stable_time = 0;
17664#line 2726
17665    __cil_tmp14 = (unsigned int )portstatus;
17666#line 2726
17667    connection = __cil_tmp14 & 1U;
17668  }
17669  }
17670  {
17671#line 2729
17672  __cil_tmp15 = (int )portchange;
17673#line 2729
17674  if (__cil_tmp15 & 1) {
17675    {
17676#line 2730
17677    __cil_tmp16 = hub->hdev;
17678#line 2730
17679    clear_port_feature(__cil_tmp16, port1, 16);
17680    }
17681  } else {
17682
17683  }
17684  }
17685#line 2734
17686  if (total_time > 1499) {
17687#line 2735
17688    goto ldv_26186;
17689  } else {
17690
17691  }
17692  {
17693#line 2736
17694  msleep(25U);
17695#line 2714
17696  total_time = total_time + 25;
17697  }
17698#line 2737
17699  goto ldv_26187;
17700  ldv_26186: 
17701  {
17702#line 2739
17703  __cil_tmp17 = hub->intfdev;
17704#line 2739
17705  __cil_tmp18 = (struct device  const  *)__cil_tmp17;
17706#line 2739
17707  __cil_tmp19 = (int )portstatus;
17708#line 2739
17709  dev_printk("<7>", __cil_tmp18, "debounce: port %d: total %dms stable %dms status 0x%x\n",
17710             port1, total_time, stable_time, __cil_tmp19);
17711  }
17712#line 2743
17713  if (stable_time <= 99) {
17714#line 2744
17715    return (-110);
17716  } else {
17717
17718  }
17719#line 2745
17720  return ((int )portstatus);
17721}
17722}
17723#line 2748 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17724void usb_ep0_reinit(struct usb_device *udev ) 
17725{ bool __cil_tmp2 ;
17726  bool __cil_tmp3 ;
17727  struct usb_host_endpoint *__cil_tmp4 ;
17728  bool __cil_tmp5 ;
17729
17730  {
17731  {
17732#line 2750
17733  __cil_tmp2 = (bool )1;
17734#line 2750
17735  usb_disable_endpoint(udev, 128U, __cil_tmp2);
17736#line 2751
17737  __cil_tmp3 = (bool )1;
17738#line 2751
17739  usb_disable_endpoint(udev, 0U, __cil_tmp3);
17740#line 2752
17741  __cil_tmp4 = & udev->ep0;
17742#line 2752
17743  __cil_tmp5 = (bool )1;
17744#line 2752
17745  usb_enable_endpoint(udev, __cil_tmp4, __cil_tmp5);
17746  }
17747#line 2753
17748  return;
17749}
17750}
17751#line 2759 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17752static int hub_set_address(struct usb_device *udev , int devnum ) 
17753{ int retval ;
17754  struct usb_hcd *hcd ;
17755  struct usb_hcd *tmp ;
17756  struct usb_bus *__cil_tmp6 ;
17757  int (*__cil_tmp7)(struct usb_hcd * , struct usb_device * ) ;
17758  unsigned long __cil_tmp8 ;
17759  struct hc_driver  const  *__cil_tmp9 ;
17760  int (*__cil_tmp10)(struct usb_hcd * , struct usb_device * ) ;
17761  unsigned long __cil_tmp11 ;
17762  enum usb_device_state __cil_tmp12 ;
17763  unsigned int __cil_tmp13 ;
17764  enum usb_device_state __cil_tmp14 ;
17765  unsigned int __cil_tmp15 ;
17766  int (*__cil_tmp16)(struct usb_hcd * , struct usb_device * ) ;
17767  unsigned long __cil_tmp17 ;
17768  struct hc_driver  const  *__cil_tmp18 ;
17769  int (*__cil_tmp19)(struct usb_hcd * , struct usb_device * ) ;
17770  unsigned long __cil_tmp20 ;
17771  struct hc_driver  const  *__cil_tmp21 ;
17772  int (*__cil_tmp22)(struct usb_hcd * , struct usb_device * ) ;
17773  __u8 __cil_tmp23 ;
17774  __u8 __cil_tmp24 ;
17775  __u16 __cil_tmp25 ;
17776  int __cil_tmp26 ;
17777  __u16 __cil_tmp27 ;
17778  __u16 __cil_tmp28 ;
17779  void *__cil_tmp29 ;
17780  __u16 __cil_tmp30 ;
17781  enum usb_device_state __cil_tmp31 ;
17782
17783  {
17784  {
17785#line 2762
17786  __cil_tmp6 = udev->bus;
17787#line 2762
17788  tmp = bus_to_hcd(__cil_tmp6);
17789#line 2762
17790  hcd = tmp;
17791  }
17792  {
17793#line 2768
17794  __cil_tmp7 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
17795#line 2768
17796  __cil_tmp8 = (unsigned long )__cil_tmp7;
17797#line 2768
17798  __cil_tmp9 = hcd->driver;
17799#line 2768
17800  __cil_tmp10 = __cil_tmp9->address_device;
17801#line 2768
17802  __cil_tmp11 = (unsigned long )__cil_tmp10;
17803#line 2768
17804  if (__cil_tmp11 == __cil_tmp8) {
17805#line 2768
17806    if (devnum <= 1) {
17807#line 2769
17808      return (-22);
17809    } else {
17810
17811    }
17812  } else {
17813
17814  }
17815  }
17816  {
17817#line 2770
17818  __cil_tmp12 = udev->state;
17819#line 2770
17820  __cil_tmp13 = (unsigned int )__cil_tmp12;
17821#line 2770
17822  if (__cil_tmp13 == 6U) {
17823#line 2771
17824    return (0);
17825  } else {
17826
17827  }
17828  }
17829  {
17830#line 2772
17831  __cil_tmp14 = udev->state;
17832#line 2772
17833  __cil_tmp15 = (unsigned int )__cil_tmp14;
17834#line 2772
17835  if (__cil_tmp15 != 5U) {
17836#line 2773
17837    return (-22);
17838  } else {
17839
17840  }
17841  }
17842  {
17843#line 2774
17844  __cil_tmp16 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
17845#line 2774
17846  __cil_tmp17 = (unsigned long )__cil_tmp16;
17847#line 2774
17848  __cil_tmp18 = hcd->driver;
17849#line 2774
17850  __cil_tmp19 = __cil_tmp18->address_device;
17851#line 2774
17852  __cil_tmp20 = (unsigned long )__cil_tmp19;
17853#line 2774
17854  if (__cil_tmp20 != __cil_tmp17) {
17855    {
17856#line 2775
17857    __cil_tmp21 = hcd->driver;
17858#line 2775
17859    __cil_tmp22 = __cil_tmp21->address_device;
17860#line 2775
17861    retval = (*__cil_tmp22)(hcd, udev);
17862    }
17863  } else {
17864    {
17865#line 2777
17866    __cil_tmp23 = (__u8 )5;
17867#line 2777
17868    __cil_tmp24 = (__u8 )0;
17869#line 2777
17870    __cil_tmp25 = (__u16 )devnum;
17871#line 2777
17872    __cil_tmp26 = (int )__cil_tmp25;
17873#line 2777
17874    __cil_tmp27 = (__u16 )__cil_tmp26;
17875#line 2777
17876    __cil_tmp28 = (__u16 )0;
17877#line 2777
17878    __cil_tmp29 = (void *)0;
17879#line 2777
17880    __cil_tmp30 = (__u16 )0;
17881#line 2777
17882    retval = usb_control_msg(udev, 2147483648U, __cil_tmp23, __cil_tmp24, __cil_tmp27,
17883                             __cil_tmp28, __cil_tmp29, __cil_tmp30, 5000);
17884    }
17885  }
17886  }
17887#line 2780
17888  if (retval == 0) {
17889    {
17890#line 2781
17891    update_devnum(udev, devnum);
17892#line 2783
17893    __cil_tmp31 = (enum usb_device_state )6;
17894#line 2783
17895    usb_set_device_state(udev, __cil_tmp31);
17896#line 2784
17897    usb_ep0_reinit(udev);
17898    }
17899  } else {
17900
17901  }
17902#line 2786
17903  return (retval);
17904}
17905}
17906#line 2799 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
17907static int hub_port_init(struct usb_hub *hub , struct usb_device *udev , int port1 ,
17908                         int retry_counter ) 
17909{ struct mutex usb_address0_mutex ;
17910  struct usb_device *hdev ;
17911  struct usb_hcd *hcd ;
17912  struct usb_hcd *tmp ;
17913  int i ;
17914  int j ;
17915  int retval ;
17916  unsigned int delay ;
17917  enum usb_device_speed oldspeed ;
17918  char *speed ;
17919  char *type ;
17920  int devnum ;
17921  char *tmp___0 ;
17922  struct usb_device_descriptor *buf ;
17923  int r ;
17924  void *tmp___1 ;
17925  char *tmp___2 ;
17926  struct usb_bus *__cil_tmp22 ;
17927  struct usb_device *__cil_tmp23 ;
17928  unsigned long __cil_tmp24 ;
17929  struct usb_device *__cil_tmp25 ;
17930  unsigned long __cil_tmp26 ;
17931  struct usb_bus *__cil_tmp27 ;
17932  u8 __cil_tmp28 ;
17933  int __cil_tmp29 ;
17934  struct usb_bus *__cil_tmp30 ;
17935  unsigned int __cil_tmp31 ;
17936  unsigned int __cil_tmp32 ;
17937  unsigned int __cil_tmp33 ;
17938  enum usb_device_speed __cil_tmp34 ;
17939  unsigned int __cil_tmp35 ;
17940  struct device *__cil_tmp36 ;
17941  struct device  const  *__cil_tmp37 ;
17942  enum usb_device_speed __cil_tmp38 ;
17943  unsigned int __cil_tmp39 ;
17944  int __cil_tmp40 ;
17945  enum usb_device_speed __cil_tmp41 ;
17946  unsigned int __cil_tmp42 ;
17947  int __cil_tmp43 ;
17948  enum usb_device_speed __cil_tmp44 ;
17949  unsigned int __cil_tmp45 ;
17950  int __cil_tmp46 ;
17951  enum usb_device_speed __cil_tmp47 ;
17952  unsigned int __cil_tmp48 ;
17953  int __cil_tmp49 ;
17954  enum usb_device_speed __cil_tmp50 ;
17955  unsigned int __cil_tmp51 ;
17956  int __cil_tmp52 ;
17957  enum usb_device_speed __cil_tmp53 ;
17958  unsigned int __cil_tmp54 ;
17959  int __cil_tmp55 ;
17960  enum usb_device_speed __cil_tmp56 ;
17961  unsigned int __cil_tmp57 ;
17962  int __cil_tmp58 ;
17963  enum usb_device_speed __cil_tmp59 ;
17964  unsigned int __cil_tmp60 ;
17965  int __cil_tmp61 ;
17966  enum usb_device_speed __cil_tmp62 ;
17967  unsigned int __cil_tmp63 ;
17968  int __cil_tmp64 ;
17969  enum usb_device_speed __cil_tmp65 ;
17970  unsigned int __cil_tmp66 ;
17971  int __cil_tmp67 ;
17972  enum usb_device_speed __cil_tmp68 ;
17973  unsigned int __cil_tmp69 ;
17974  struct usb_host_config *__cil_tmp70 ;
17975  unsigned long __cil_tmp71 ;
17976  struct usb_host_config *__cil_tmp72 ;
17977  unsigned long __cil_tmp73 ;
17978  struct device *__cil_tmp74 ;
17979  struct device  const  *__cil_tmp75 ;
17980  struct usb_bus *__cil_tmp76 ;
17981  struct device *__cil_tmp77 ;
17982  struct device_driver *__cil_tmp78 ;
17983  char const   *__cil_tmp79 ;
17984  struct usb_tt *__cil_tmp80 ;
17985  unsigned long __cil_tmp81 ;
17986  struct usb_tt *__cil_tmp82 ;
17987  unsigned long __cil_tmp83 ;
17988  enum usb_device_speed __cil_tmp84 ;
17989  unsigned int __cil_tmp85 ;
17990  enum usb_device_speed __cil_tmp86 ;
17991  unsigned int __cil_tmp87 ;
17992  struct usb_device *__cil_tmp88 ;
17993  unsigned long __cil_tmp89 ;
17994  struct usb_device *__cil_tmp90 ;
17995  unsigned long __cil_tmp91 ;
17996  struct device *__cil_tmp92 ;
17997  struct device  const  *__cil_tmp93 ;
17998  int __cil_tmp94 ;
17999  struct hc_driver  const  *__cil_tmp95 ;
18000  int __cil_tmp96 ;
18001  int __cil_tmp97 ;
18002  int __cil_tmp98 ;
18003  struct usb_device_descriptor *__cil_tmp99 ;
18004  unsigned long __cil_tmp100 ;
18005  unsigned long __cil_tmp101 ;
18006  __u8 __cil_tmp102 ;
18007  __u8 __cil_tmp103 ;
18008  __u16 __cil_tmp104 ;
18009  __u16 __cil_tmp105 ;
18010  void *__cil_tmp106 ;
18011  __u16 __cil_tmp107 ;
18012  __u8 __cil_tmp108 ;
18013  int __cil_tmp109 ;
18014  __u8 __cil_tmp110 ;
18015  int __cil_tmp111 ;
18016  __u8 __cil_tmp112 ;
18017  int __cil_tmp113 ;
18018  __u8 __cil_tmp114 ;
18019  int __cil_tmp115 ;
18020  __u8 __cil_tmp116 ;
18021  int __cil_tmp117 ;
18022  __u8 __cil_tmp118 ;
18023  unsigned int __cil_tmp119 ;
18024  void const   *__cil_tmp120 ;
18025  unsigned int __cil_tmp121 ;
18026  enum usb_device_speed __cil_tmp122 ;
18027  unsigned int __cil_tmp123 ;
18028  struct device *__cil_tmp124 ;
18029  struct device  const  *__cil_tmp125 ;
18030  struct device *__cil_tmp126 ;
18031  struct device  const  *__cil_tmp127 ;
18032  unsigned char *__cil_tmp128 ;
18033  unsigned char *__cil_tmp129 ;
18034  unsigned char __cil_tmp130 ;
18035  unsigned int __cil_tmp131 ;
18036  struct device *__cil_tmp132 ;
18037  struct device  const  *__cil_tmp133 ;
18038  enum usb_device_speed __cil_tmp134 ;
18039  unsigned int __cil_tmp135 ;
18040  struct usb_host_config *__cil_tmp136 ;
18041  unsigned long __cil_tmp137 ;
18042  struct usb_host_config *__cil_tmp138 ;
18043  unsigned long __cil_tmp139 ;
18044  struct device *__cil_tmp140 ;
18045  struct device  const  *__cil_tmp141 ;
18046  struct usb_bus *__cil_tmp142 ;
18047  struct device *__cil_tmp143 ;
18048  struct device_driver *__cil_tmp144 ;
18049  char const   *__cil_tmp145 ;
18050  int __cil_tmp146 ;
18051  struct hc_driver  const  *__cil_tmp147 ;
18052  int __cil_tmp148 ;
18053  int __cil_tmp149 ;
18054  int __cil_tmp150 ;
18055  struct device *__cil_tmp151 ;
18056  struct device  const  *__cil_tmp152 ;
18057  __u8 __cil_tmp153 ;
18058  unsigned int __cil_tmp154 ;
18059  enum usb_device_speed __cil_tmp155 ;
18060  unsigned int __cil_tmp156 ;
18061  __u8 __cil_tmp157 ;
18062  __le16 __cil_tmp158 ;
18063  int __cil_tmp159 ;
18064  enum usb_device_speed __cil_tmp160 ;
18065  unsigned int __cil_tmp161 ;
18066  struct device *__cil_tmp162 ;
18067  struct device  const  *__cil_tmp163 ;
18068  struct device *__cil_tmp164 ;
18069  struct device  const  *__cil_tmp165 ;
18070  enum usb_device_speed __cil_tmp166 ;
18071  unsigned int __cil_tmp167 ;
18072  struct device *__cil_tmp168 ;
18073  struct device  const  *__cil_tmp169 ;
18074  struct device *__cil_tmp170 ;
18075  struct device  const  *__cil_tmp171 ;
18076  struct device *__cil_tmp172 ;
18077  struct device  const  *__cil_tmp173 ;
18078  int (*__cil_tmp174)(struct usb_hcd * , struct usb_device * ) ;
18079  unsigned long __cil_tmp175 ;
18080  struct hc_driver  const  *__cil_tmp176 ;
18081  int (*__cil_tmp177)(struct usb_hcd * , struct usb_device * ) ;
18082  unsigned long __cil_tmp178 ;
18083  struct hc_driver  const  *__cil_tmp179 ;
18084  int (*__cil_tmp180)(struct usb_hcd * , struct usb_device * ) ;
18085
18086  {
18087  {
18088#line 2802
18089  usb_address0_mutex.count.counter = 1;
18090#line 2802
18091  usb_address0_mutex.wait_lock.ldv_6060.rlock.raw_lock.slock = 0U;
18092#line 2802
18093  usb_address0_mutex.wait_lock.ldv_6060.rlock.magic = 3735899821U;
18094#line 2802
18095  usb_address0_mutex.wait_lock.ldv_6060.rlock.owner_cpu = 4294967295U;
18096#line 2802
18097  usb_address0_mutex.wait_lock.ldv_6060.rlock.owner = (void *)1152921504606846975UL;
18098#line 2802
18099  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.key = (struct lock_class_key *)0;
18100#line 2802
18101  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.class_cache[0] = (struct lock_class *)0;
18102#line 2802
18103  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.class_cache[1] = (struct lock_class *)0;
18104#line 2802
18105  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.name = "usb_address0_mutex.wait_lock";
18106#line 2802
18107  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.cpu = 0;
18108#line 2802
18109  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.ip = 0UL;
18110#line 2802
18111  usb_address0_mutex.wait_list.next = & usb_address0_mutex.wait_list;
18112#line 2802
18113  usb_address0_mutex.wait_list.prev = & usb_address0_mutex.wait_list;
18114#line 2802
18115  usb_address0_mutex.owner = (struct task_struct *)0;
18116#line 2802
18117  usb_address0_mutex.name = (char const   *)0;
18118#line 2802
18119  usb_address0_mutex.magic = (void *)(& usb_address0_mutex);
18120#line 2802
18121  usb_address0_mutex.dep_map.key = (struct lock_class_key *)0;
18122#line 2802
18123  usb_address0_mutex.dep_map.class_cache[0] = (struct lock_class *)0;
18124#line 2802
18125  usb_address0_mutex.dep_map.class_cache[1] = (struct lock_class *)0;
18126#line 2802
18127  usb_address0_mutex.dep_map.name = "usb_address0_mutex";
18128#line 2802
18129  usb_address0_mutex.dep_map.cpu = 0;
18130#line 2802
18131  usb_address0_mutex.dep_map.ip = 0UL;
18132#line 2804
18133  hdev = hub->hdev;
18134#line 2805
18135  __cil_tmp22 = hdev->bus;
18136#line 2805
18137  tmp = bus_to_hcd(__cil_tmp22);
18138#line 2805
18139  hcd = tmp;
18140#line 2807
18141  delay = 10U;
18142#line 2808
18143  oldspeed = udev->speed;
18144#line 2810
18145  devnum = udev->devnum;
18146  }
18147  {
18148#line 2815
18149  __cil_tmp23 = (struct usb_device *)0;
18150#line 2815
18151  __cil_tmp24 = (unsigned long )__cil_tmp23;
18152#line 2815
18153  __cil_tmp25 = hdev->parent;
18154#line 2815
18155  __cil_tmp26 = (unsigned long )__cil_tmp25;
18156#line 2815
18157  if (__cil_tmp26 == __cil_tmp24) {
18158#line 2816
18159    delay = 50U;
18160    {
18161#line 2817
18162    __cil_tmp27 = hdev->bus;
18163#line 2817
18164    __cil_tmp28 = __cil_tmp27->otg_port;
18165#line 2817
18166    __cil_tmp29 = (int )__cil_tmp28;
18167#line 2817
18168    if (__cil_tmp29 == port1) {
18169#line 2818
18170      __cil_tmp30 = hdev->bus;
18171#line 2818
18172      __cil_tmp30->b_hnp_enable = (unsigned char)0;
18173    } else {
18174
18175    }
18176    }
18177  } else {
18178
18179  }
18180  }
18181  {
18182#line 2823
18183  __cil_tmp31 = (unsigned int )oldspeed;
18184#line 2823
18185  if (__cil_tmp31 == 1U) {
18186#line 2824
18187    delay = 200U;
18188  } else {
18189
18190  }
18191  }
18192  {
18193#line 2826
18194  mutex_lock_nested(& usb_address0_mutex, 0U);
18195#line 2830
18196  retval = hub_port_reset(hub, port1, udev, delay);
18197  }
18198#line 2831
18199  if (retval < 0) {
18200#line 2832
18201    goto fail;
18202  } else {
18203
18204  }
18205#line 2835
18206  retval = -19;
18207  {
18208#line 2837
18209  __cil_tmp32 = (unsigned int )oldspeed;
18210#line 2837
18211  if (__cil_tmp32 != 0U) {
18212    {
18213#line 2837
18214    __cil_tmp33 = (unsigned int )oldspeed;
18215#line 2837
18216    __cil_tmp34 = udev->speed;
18217#line 2837
18218    __cil_tmp35 = (unsigned int )__cil_tmp34;
18219#line 2837
18220    if (__cil_tmp35 != __cil_tmp33) {
18221      {
18222#line 2838
18223      __cil_tmp36 = & udev->dev;
18224#line 2838
18225      __cil_tmp37 = (struct device  const  *)__cil_tmp36;
18226#line 2838
18227      dev_printk("<7>", __cil_tmp37, "device reset changed speed!\n");
18228      }
18229#line 2839
18230      goto fail;
18231    } else {
18232
18233    }
18234    }
18235  } else {
18236
18237  }
18238  }
18239#line 2841
18240  oldspeed = udev->speed;
18241  {
18242#line 2849
18243  __cil_tmp38 = udev->speed;
18244#line 2849
18245  __cil_tmp39 = (unsigned int )__cil_tmp38;
18246#line 2849
18247  __cil_tmp40 = (int )__cil_tmp39;
18248#line 2849
18249  if (__cil_tmp40 == 5) {
18250#line 2849
18251    goto case_5;
18252  } else {
18253    {
18254#line 2850
18255    __cil_tmp41 = udev->speed;
18256#line 2850
18257    __cil_tmp42 = (unsigned int )__cil_tmp41;
18258#line 2850
18259    __cil_tmp43 = (int )__cil_tmp42;
18260#line 2850
18261    if (__cil_tmp43 == 4) {
18262#line 2850
18263      goto case_4;
18264    } else {
18265      {
18266#line 2853
18267      __cil_tmp44 = udev->speed;
18268#line 2853
18269      __cil_tmp45 = (unsigned int )__cil_tmp44;
18270#line 2853
18271      __cil_tmp46 = (int )__cil_tmp45;
18272#line 2853
18273      if (__cil_tmp46 == 3) {
18274#line 2853
18275        goto case_3;
18276      } else {
18277        {
18278#line 2856
18279        __cil_tmp47 = udev->speed;
18280#line 2856
18281        __cil_tmp48 = (unsigned int )__cil_tmp47;
18282#line 2856
18283        __cil_tmp49 = (int )__cil_tmp48;
18284#line 2856
18285        if (__cil_tmp49 == 2) {
18286#line 2856
18287          goto case_2;
18288        } else {
18289          {
18290#line 2863
18291          __cil_tmp50 = udev->speed;
18292#line 2863
18293          __cil_tmp51 = (unsigned int )__cil_tmp50;
18294#line 2863
18295          __cil_tmp52 = (int )__cil_tmp51;
18296#line 2863
18297          if (__cil_tmp52 == 1) {
18298#line 2863
18299            goto case_1;
18300          } else {
18301#line 2866
18302            goto switch_default;
18303#line 2848
18304            if (0) {
18305              case_5: ;
18306              case_4: 
18307#line 2851
18308              udev->ep0.desc.wMaxPacketSize = (__le16 )512U;
18309#line 2852
18310              goto ldv_26224;
18311              case_3: 
18312#line 2854
18313              udev->ep0.desc.wMaxPacketSize = (__le16 )64U;
18314#line 2855
18315              goto ldv_26224;
18316              case_2: 
18317#line 2861
18318              udev->ep0.desc.wMaxPacketSize = (__le16 )64U;
18319#line 2862
18320              goto ldv_26224;
18321              case_1: 
18322#line 2864
18323              udev->ep0.desc.wMaxPacketSize = (__le16 )8U;
18324#line 2865
18325              goto ldv_26224;
18326              switch_default: ;
18327#line 2867
18328              goto fail;
18329            } else {
18330
18331            }
18332          }
18333          }
18334        }
18335        }
18336      }
18337      }
18338    }
18339    }
18340  }
18341  }
18342  ldv_26224: 
18343#line 2870
18344  type = (char *)"";
18345  {
18346#line 2872
18347  __cil_tmp53 = udev->speed;
18348#line 2872
18349  __cil_tmp54 = (unsigned int )__cil_tmp53;
18350#line 2872
18351  __cil_tmp55 = (int )__cil_tmp54;
18352#line 2872
18353  if (__cil_tmp55 == 1) {
18354#line 2872
18355    goto case_1___0;
18356  } else {
18357    {
18358#line 2873
18359    __cil_tmp56 = udev->speed;
18360#line 2873
18361    __cil_tmp57 = (unsigned int )__cil_tmp56;
18362#line 2873
18363    __cil_tmp58 = (int )__cil_tmp57;
18364#line 2873
18365    if (__cil_tmp58 == 2) {
18366#line 2873
18367      goto case_2___0;
18368    } else {
18369      {
18370#line 2874
18371      __cil_tmp59 = udev->speed;
18372#line 2874
18373      __cil_tmp60 = (unsigned int )__cil_tmp59;
18374#line 2874
18375      __cil_tmp61 = (int )__cil_tmp60;
18376#line 2874
18377      if (__cil_tmp61 == 3) {
18378#line 2874
18379        goto case_3___0;
18380      } else {
18381        {
18382#line 2875
18383        __cil_tmp62 = udev->speed;
18384#line 2875
18385        __cil_tmp63 = (unsigned int )__cil_tmp62;
18386#line 2875
18387        __cil_tmp64 = (int )__cil_tmp63;
18388#line 2875
18389        if (__cil_tmp64 == 5) {
18390#line 2875
18391          goto case_5___0;
18392        } else {
18393          {
18394#line 2878
18395          __cil_tmp65 = udev->speed;
18396#line 2878
18397          __cil_tmp66 = (unsigned int )__cil_tmp65;
18398#line 2878
18399          __cil_tmp67 = (int )__cil_tmp66;
18400#line 2878
18401          if (__cil_tmp67 == 4) {
18402#line 2878
18403            goto case_4___0;
18404          } else {
18405#line 2882
18406            goto switch_default___0;
18407#line 2871
18408            if (0) {
18409              case_1___0: 
18410#line 2872
18411              speed = (char *)"low";
18412#line 2872
18413              goto ldv_26230;
18414              case_2___0: 
18415#line 2873
18416              speed = (char *)"full";
18417#line 2873
18418              goto ldv_26230;
18419              case_3___0: 
18420#line 2874
18421              speed = (char *)"high";
18422#line 2874
18423              goto ldv_26230;
18424              case_5___0: 
18425#line 2876
18426              speed = (char *)"super";
18427#line 2877
18428              goto ldv_26230;
18429              case_4___0: 
18430#line 2879
18431              speed = (char *)"variable";
18432#line 2880
18433              type = (char *)"Wireless ";
18434#line 2881
18435              goto ldv_26230;
18436              switch_default___0: 
18437#line 2882
18438              speed = (char *)"?";
18439#line 2882
18440              goto ldv_26230;
18441            } else {
18442
18443            }
18444          }
18445          }
18446        }
18447        }
18448      }
18449      }
18450    }
18451    }
18452  }
18453  }
18454  ldv_26230: ;
18455  {
18456#line 2884
18457  __cil_tmp68 = udev->speed;
18458#line 2884
18459  __cil_tmp69 = (unsigned int )__cil_tmp68;
18460#line 2884
18461  if (__cil_tmp69 != 5U) {
18462    {
18463#line 2885
18464    __cil_tmp70 = (struct usb_host_config *)0;
18465#line 2885
18466    __cil_tmp71 = (unsigned long )__cil_tmp70;
18467#line 2885
18468    __cil_tmp72 = udev->config;
18469#line 2885
18470    __cil_tmp73 = (unsigned long )__cil_tmp72;
18471#line 2885
18472    if (__cil_tmp73 != __cil_tmp71) {
18473#line 2885
18474      tmp___0 = (char *)"reset";
18475    } else {
18476#line 2885
18477      tmp___0 = (char *)"new";
18478    }
18479    }
18480    {
18481#line 2885
18482    __cil_tmp74 = & udev->dev;
18483#line 2885
18484    __cil_tmp75 = (struct device  const  *)__cil_tmp74;
18485#line 2885
18486    __cil_tmp76 = udev->bus;
18487#line 2885
18488    __cil_tmp77 = __cil_tmp76->controller;
18489#line 2885
18490    __cil_tmp78 = __cil_tmp77->driver;
18491#line 2885
18492    __cil_tmp79 = __cil_tmp78->name;
18493#line 2885
18494    _dev_info(__cil_tmp75, "%s %s speed %sUSB device number %d using %s\n", tmp___0,
18495              speed, type, devnum, __cil_tmp79);
18496    }
18497  } else {
18498
18499  }
18500  }
18501  {
18502#line 2891
18503  __cil_tmp80 = (struct usb_tt *)0;
18504#line 2891
18505  __cil_tmp81 = (unsigned long )__cil_tmp80;
18506#line 2891
18507  __cil_tmp82 = hdev->tt;
18508#line 2891
18509  __cil_tmp83 = (unsigned long )__cil_tmp82;
18510#line 2891
18511  if (__cil_tmp83 != __cil_tmp81) {
18512#line 2892
18513    udev->tt = hdev->tt;
18514#line 2893
18515    udev->ttport = hdev->ttport;
18516  } else {
18517    {
18518#line 2894
18519    __cil_tmp84 = udev->speed;
18520#line 2894
18521    __cil_tmp85 = (unsigned int )__cil_tmp84;
18522#line 2894
18523    if (__cil_tmp85 != 3U) {
18524      {
18525#line 2894
18526      __cil_tmp86 = hdev->speed;
18527#line 2894
18528      __cil_tmp87 = (unsigned int )__cil_tmp86;
18529#line 2894
18530      if (__cil_tmp87 == 3U) {
18531        {
18532#line 2896
18533        __cil_tmp88 = (struct usb_device *)0;
18534#line 2896
18535        __cil_tmp89 = (unsigned long )__cil_tmp88;
18536#line 2896
18537        __cil_tmp90 = hub->tt.hub;
18538#line 2896
18539        __cil_tmp91 = (unsigned long )__cil_tmp90;
18540#line 2896
18541        if (__cil_tmp91 == __cil_tmp89) {
18542          {
18543#line 2897
18544          __cil_tmp92 = & udev->dev;
18545#line 2897
18546          __cil_tmp93 = (struct device  const  *)__cil_tmp92;
18547#line 2897
18548          dev_err(__cil_tmp93, "parent hub has no TT\n");
18549#line 2898
18550          retval = -22;
18551          }
18552#line 2899
18553          goto fail;
18554        } else {
18555
18556        }
18557        }
18558#line 2901
18559        udev->tt = & hub->tt;
18560#line 2902
18561        udev->ttport = port1;
18562      } else {
18563
18564      }
18565      }
18566    } else {
18567
18568    }
18569    }
18570  }
18571  }
18572#line 2917
18573  i = 0;
18574#line 2917
18575  goto ldv_26254;
18576  ldv_26253: ;
18577  {
18578#line 2918
18579  __cil_tmp94 = retry_counter / 2;
18580#line 2918
18581  if (__cil_tmp94 == old_scheme_first) {
18582    {
18583#line 2918
18584    __cil_tmp95 = hcd->driver;
18585#line 2918
18586    __cil_tmp96 = __cil_tmp95->flags;
18587#line 2918
18588    __cil_tmp97 = (int )__cil_tmp96;
18589#line 2918
18590    __cil_tmp98 = __cil_tmp97 & 64;
18591#line 2918
18592    if (__cil_tmp98 == 0) {
18593      {
18594#line 2920
18595      r = 0;
18596#line 2923
18597      tmp___1 = kmalloc(64UL, 16U);
18598#line 2923
18599      buf = (struct usb_device_descriptor *)tmp___1;
18600      }
18601      {
18602#line 2924
18603      __cil_tmp99 = (struct usb_device_descriptor *)0;
18604#line 2924
18605      __cil_tmp100 = (unsigned long )__cil_tmp99;
18606#line 2924
18607      __cil_tmp101 = (unsigned long )buf;
18608#line 2924
18609      if (__cil_tmp101 == __cil_tmp100) {
18610#line 2925
18611        retval = -12;
18612#line 2926
18613        goto ldv_26238;
18614      } else {
18615
18616      }
18617      }
18618#line 2933
18619      j = 0;
18620#line 2933
18621      goto ldv_26248;
18622      ldv_26247: 
18623      {
18624#line 2934
18625      buf->bMaxPacketSize0 = (__u8 )0U;
18626#line 2935
18627      __cil_tmp102 = (__u8 )6;
18628#line 2935
18629      __cil_tmp103 = (__u8 )128;
18630#line 2935
18631      __cil_tmp104 = (__u16 )256;
18632#line 2935
18633      __cil_tmp105 = (__u16 )0;
18634#line 2935
18635      __cil_tmp106 = (void *)buf;
18636#line 2935
18637      __cil_tmp107 = (__u16 )64;
18638#line 2935
18639      r = usb_control_msg(udev, 2147483776U, __cil_tmp102, __cil_tmp103, __cil_tmp104,
18640                          __cil_tmp105, __cil_tmp106, __cil_tmp107, initial_descriptor_timeout);
18641      }
18642      {
18643#line 2941
18644      __cil_tmp108 = buf->bMaxPacketSize0;
18645#line 2941
18646      __cil_tmp109 = (int )__cil_tmp108;
18647#line 2941
18648      if (__cil_tmp109 == 8) {
18649#line 2941
18650        goto case_8;
18651      } else {
18652        {
18653#line 2941
18654        __cil_tmp110 = buf->bMaxPacketSize0;
18655#line 2941
18656        __cil_tmp111 = (int )__cil_tmp110;
18657#line 2941
18658        if (__cil_tmp111 == 16) {
18659#line 2941
18660          goto case_16;
18661        } else {
18662          {
18663#line 2941
18664          __cil_tmp112 = buf->bMaxPacketSize0;
18665#line 2941
18666          __cil_tmp113 = (int )__cil_tmp112;
18667#line 2941
18668          if (__cil_tmp113 == 32) {
18669#line 2941
18670            goto case_32;
18671          } else {
18672            {
18673#line 2941
18674            __cil_tmp114 = buf->bMaxPacketSize0;
18675#line 2941
18676            __cil_tmp115 = (int )__cil_tmp114;
18677#line 2941
18678            if (__cil_tmp115 == 64) {
18679#line 2941
18680              goto case_64;
18681            } else {
18682              {
18683#line 2941
18684              __cil_tmp116 = buf->bMaxPacketSize0;
18685#line 2941
18686              __cil_tmp117 = (int )__cil_tmp116;
18687#line 2941
18688              if (__cil_tmp117 == 255) {
18689#line 2941
18690                goto case_255;
18691              } else {
18692#line 2948
18693                goto switch_default___1;
18694#line 2940
18695                if (0) {
18696                  case_8: ;
18697                  case_16: ;
18698                  case_32: ;
18699                  case_64: ;
18700                  case_255: ;
18701                  {
18702#line 2942
18703                  __cil_tmp118 = buf->bDescriptorType;
18704#line 2942
18705                  __cil_tmp119 = (unsigned int )__cil_tmp118;
18706#line 2942
18707                  if (__cil_tmp119 == 1U) {
18708#line 2944
18709                    r = 0;
18710#line 2945
18711                    goto ldv_26244;
18712                  } else {
18713
18714                  }
18715                  }
18716                  switch_default___1: ;
18717#line 2949
18718                  if (r == 0) {
18719#line 2950
18720                    r = -71;
18721                  } else {
18722
18723                  }
18724#line 2951
18725                  goto ldv_26244;
18726                } else {
18727
18728                }
18729              }
18730              }
18731            }
18732            }
18733          }
18734          }
18735        }
18736        }
18737      }
18738      }
18739      ldv_26244: ;
18740#line 2953
18741      if (r == 0) {
18742#line 2954
18743        goto ldv_26246;
18744      } else {
18745
18746      }
18747#line 2933
18748      j = j + 1;
18749      ldv_26248: ;
18750#line 2933
18751      if (j <= 2) {
18752#line 2934
18753        goto ldv_26247;
18754      } else {
18755#line 2936
18756        goto ldv_26246;
18757      }
18758      ldv_26246: 
18759      {
18760#line 2956
18761      udev->descriptor.bMaxPacketSize0 = buf->bMaxPacketSize0;
18762#line 2958
18763      __cil_tmp120 = (void const   *)buf;
18764#line 2958
18765      kfree(__cil_tmp120);
18766#line 2960
18767      retval = hub_port_reset(hub, port1, udev, delay);
18768      }
18769#line 2961
18770      if (retval < 0) {
18771#line 2962
18772        goto fail;
18773      } else {
18774
18775      }
18776      {
18777#line 2963
18778      __cil_tmp121 = (unsigned int )oldspeed;
18779#line 2963
18780      __cil_tmp122 = udev->speed;
18781#line 2963
18782      __cil_tmp123 = (unsigned int )__cil_tmp122;
18783#line 2963
18784      if (__cil_tmp123 != __cil_tmp121) {
18785        {
18786#line 2964
18787        __cil_tmp124 = & udev->dev;
18788#line 2964
18789        __cil_tmp125 = (struct device  const  *)__cil_tmp124;
18790#line 2964
18791        dev_printk("<7>", __cil_tmp125, "device reset changed speed!\n");
18792#line 2966
18793        retval = -19;
18794        }
18795#line 2967
18796        goto fail;
18797      } else {
18798
18799      }
18800      }
18801#line 2969
18802      if (r != 0) {
18803        {
18804#line 2970
18805        __cil_tmp126 = & udev->dev;
18806#line 2970
18807        __cil_tmp127 = (struct device  const  *)__cil_tmp126;
18808#line 2970
18809        dev_err(__cil_tmp127, "device descriptor read/64, error %d\n", r);
18810#line 2973
18811        retval = -90;
18812        }
18813#line 2974
18814        goto ldv_26238;
18815      } else {
18816
18817      }
18818    } else {
18819
18820    }
18821    }
18822  } else {
18823
18824  }
18825  }
18826  {
18827#line 2984
18828  __cil_tmp128 = (unsigned char *)udev;
18829#line 2984
18830  __cil_tmp129 = __cil_tmp128 + 1556UL;
18831#line 2984
18832  __cil_tmp130 = *__cil_tmp129;
18833#line 2984
18834  __cil_tmp131 = (unsigned int )__cil_tmp130;
18835#line 2984
18836  if (__cil_tmp131 == 0U) {
18837#line 2985
18838    j = 0;
18839#line 2985
18840    goto ldv_26251;
18841    ldv_26250: 
18842    {
18843#line 2986
18844    retval = hub_set_address(udev, devnum);
18845    }
18846#line 2987
18847    if (retval >= 0) {
18848#line 2988
18849      goto ldv_26249;
18850    } else {
18851
18852    }
18853    {
18854#line 2989
18855    msleep(200U);
18856#line 2985
18857    j = j + 1;
18858    }
18859    ldv_26251: ;
18860#line 2985
18861    if (j <= 1) {
18862#line 2986
18863      goto ldv_26250;
18864    } else {
18865#line 2988
18866      goto ldv_26249;
18867    }
18868    ldv_26249: ;
18869#line 2991
18870    if (retval < 0) {
18871      {
18872#line 2992
18873      __cil_tmp132 = & udev->dev;
18874#line 2992
18875      __cil_tmp133 = (struct device  const  *)__cil_tmp132;
18876#line 2992
18877      dev_err(__cil_tmp133, "device not accepting address %d, error %d\n", devnum,
18878              retval);
18879      }
18880#line 2995
18881      goto fail;
18882    } else {
18883
18884    }
18885    {
18886#line 2997
18887    __cil_tmp134 = udev->speed;
18888#line 2997
18889    __cil_tmp135 = (unsigned int )__cil_tmp134;
18890#line 2997
18891    if (__cil_tmp135 == 5U) {
18892#line 2998
18893      devnum = udev->devnum;
18894      {
18895#line 2999
18896      __cil_tmp136 = (struct usb_host_config *)0;
18897#line 2999
18898      __cil_tmp137 = (unsigned long )__cil_tmp136;
18899#line 2999
18900      __cil_tmp138 = udev->config;
18901#line 2999
18902      __cil_tmp139 = (unsigned long )__cil_tmp138;
18903#line 2999
18904      if (__cil_tmp139 != __cil_tmp137) {
18905#line 2999
18906        tmp___2 = (char *)"reset";
18907      } else {
18908#line 2999
18909        tmp___2 = (char *)"new";
18910      }
18911      }
18912      {
18913#line 2999
18914      __cil_tmp140 = & udev->dev;
18915#line 2999
18916      __cil_tmp141 = (struct device  const  *)__cil_tmp140;
18917#line 2999
18918      __cil_tmp142 = udev->bus;
18919#line 2999
18920      __cil_tmp143 = __cil_tmp142->controller;
18921#line 2999
18922      __cil_tmp144 = __cil_tmp143->driver;
18923#line 2999
18924      __cil_tmp145 = __cil_tmp144->name;
18925#line 2999
18926      _dev_info(__cil_tmp141, "%s SuperSpeed USB device number %d using %s\n", tmp___2,
18927                devnum, __cil_tmp145);
18928      }
18929    } else {
18930
18931    }
18932    }
18933    {
18934#line 3009
18935    msleep(10U);
18936    }
18937    {
18938#line 3010
18939    __cil_tmp146 = retry_counter / 2;
18940#line 3010
18941    if (__cil_tmp146 == old_scheme_first) {
18942      {
18943#line 3010
18944      __cil_tmp147 = hcd->driver;
18945#line 3010
18946      __cil_tmp148 = __cil_tmp147->flags;
18947#line 3010
18948      __cil_tmp149 = (int )__cil_tmp148;
18949#line 3010
18950      __cil_tmp150 = __cil_tmp149 & 64;
18951#line 3010
18952      if (__cil_tmp150 == 0) {
18953#line 3011
18954        goto ldv_26252;
18955      } else {
18956
18957      }
18958      }
18959    } else {
18960
18961    }
18962    }
18963  } else {
18964
18965  }
18966  }
18967  {
18968#line 3014
18969  retval = usb_get_device_descriptor(udev, 8U);
18970  }
18971#line 3015
18972  if (retval <= 7) {
18973    {
18974#line 3016
18975    __cil_tmp151 = & udev->dev;
18976#line 3016
18977    __cil_tmp152 = (struct device  const  *)__cil_tmp151;
18978#line 3016
18979    dev_err(__cil_tmp152, "device descriptor read/8, error %d\n", retval);
18980    }
18981#line 3019
18982    if (retval >= 0) {
18983#line 3020
18984      retval = -90;
18985    } else {
18986
18987    }
18988  } else {
18989#line 3022
18990    retval = 0;
18991#line 3023
18992    goto ldv_26252;
18993  }
18994  ldv_26238: 
18995  {
18996#line 2917
18997  i = i + 1;
18998#line 2917
18999  msleep(100U);
19000  }
19001  ldv_26254: ;
19002#line 2917
19003  if (i <= 1) {
19004#line 2918
19005    goto ldv_26253;
19006  } else {
19007#line 2920
19008    goto ldv_26252;
19009  }
19010  ldv_26252: ;
19011#line 3026
19012  if (retval != 0) {
19013#line 3027
19014    goto fail;
19015  } else {
19016
19017  }
19018  {
19019#line 3029
19020  __cil_tmp153 = udev->descriptor.bMaxPacketSize0;
19021#line 3029
19022  __cil_tmp154 = (unsigned int )__cil_tmp153;
19023#line 3029
19024  if (__cil_tmp154 == 255U) {
19025#line 3031
19026    i = 512;
19027  } else {
19028    {
19029#line 3029
19030    __cil_tmp155 = udev->speed;
19031#line 3029
19032    __cil_tmp156 = (unsigned int )__cil_tmp155;
19033#line 3029
19034    if (__cil_tmp156 == 5U) {
19035#line 3031
19036      i = 512;
19037    } else {
19038#line 3033
19039      __cil_tmp157 = udev->descriptor.bMaxPacketSize0;
19040#line 3033
19041      i = (int )__cil_tmp157;
19042    }
19043    }
19044  }
19045  }
19046  {
19047#line 3034
19048  __cil_tmp158 = udev->ep0.desc.wMaxPacketSize;
19049#line 3034
19050  __cil_tmp159 = (int )__cil_tmp158;
19051#line 3034
19052  if (__cil_tmp159 != i) {
19053    {
19054#line 3035
19055    __cil_tmp160 = udev->speed;
19056#line 3035
19057    __cil_tmp161 = (unsigned int )__cil_tmp160;
19058#line 3035
19059    if (__cil_tmp161 == 1U) {
19060      {
19061#line 3037
19062      __cil_tmp162 = & udev->dev;
19063#line 3037
19064      __cil_tmp163 = (struct device  const  *)__cil_tmp162;
19065#line 3037
19066      dev_err(__cil_tmp163, "Invalid ep0 maxpacket: %d\n", i);
19067#line 3038
19068      retval = -90;
19069      }
19070#line 3039
19071      goto fail;
19072    } else
19073#line 3035
19074    if (i != 8) {
19075#line 3035
19076      if (i != 16) {
19077#line 3035
19078        if (i != 32) {
19079#line 3035
19080          if (i != 64) {
19081            {
19082#line 3037
19083            __cil_tmp164 = & udev->dev;
19084#line 3037
19085            __cil_tmp165 = (struct device  const  *)__cil_tmp164;
19086#line 3037
19087            dev_err(__cil_tmp165, "Invalid ep0 maxpacket: %d\n", i);
19088#line 3038
19089            retval = -90;
19090            }
19091#line 3039
19092            goto fail;
19093          } else {
19094
19095          }
19096        } else {
19097
19098        }
19099      } else {
19100
19101      }
19102    } else {
19103
19104    }
19105    }
19106    {
19107#line 3041
19108    __cil_tmp166 = udev->speed;
19109#line 3041
19110    __cil_tmp167 = (unsigned int )__cil_tmp166;
19111#line 3041
19112    if (__cil_tmp167 == 2U) {
19113      {
19114#line 3042
19115      __cil_tmp168 = & udev->dev;
19116#line 3042
19117      __cil_tmp169 = (struct device  const  *)__cil_tmp168;
19118#line 3042
19119      dev_printk("<7>", __cil_tmp169, "ep0 maxpacket = %d\n", i);
19120      }
19121    } else {
19122      {
19123#line 3044
19124      __cil_tmp170 = & udev->dev;
19125#line 3044
19126      __cil_tmp171 = (struct device  const  *)__cil_tmp170;
19127#line 3044
19128      dev_warn(__cil_tmp171, "Using ep0 maxpacket: %d\n", i);
19129      }
19130    }
19131    }
19132    {
19133#line 3045
19134    udev->ep0.desc.wMaxPacketSize = (unsigned short )i;
19135#line 3046
19136    usb_ep0_reinit(udev);
19137    }
19138  } else {
19139
19140  }
19141  }
19142  {
19143#line 3049
19144  retval = usb_get_device_descriptor(udev, 18U);
19145  }
19146#line 3050
19147  if (retval <= 17) {
19148    {
19149#line 3051
19150    __cil_tmp172 = & udev->dev;
19151#line 3051
19152    __cil_tmp173 = (struct device  const  *)__cil_tmp172;
19153#line 3051
19154    dev_err(__cil_tmp173, "device descriptor read/all, error %d\n", retval);
19155    }
19156#line 3053
19157    if (retval >= 0) {
19158#line 3054
19159      retval = -42;
19160    } else {
19161
19162    }
19163#line 3055
19164    goto fail;
19165  } else {
19166
19167  }
19168#line 3058
19169  retval = 0;
19170  {
19171#line 3060
19172  __cil_tmp174 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
19173#line 3060
19174  __cil_tmp175 = (unsigned long )__cil_tmp174;
19175#line 3060
19176  __cil_tmp176 = hcd->driver;
19177#line 3060
19178  __cil_tmp177 = __cil_tmp176->update_device;
19179#line 3060
19180  __cil_tmp178 = (unsigned long )__cil_tmp177;
19181#line 3060
19182  if (__cil_tmp178 != __cil_tmp175) {
19183    {
19184#line 3061
19185    __cil_tmp179 = hcd->driver;
19186#line 3061
19187    __cil_tmp180 = __cil_tmp179->update_device;
19188#line 3061
19189    (*__cil_tmp180)(hcd, udev);
19190    }
19191  } else {
19192
19193  }
19194  }
19195  fail: ;
19196#line 3063
19197  if (retval != 0) {
19198    {
19199#line 3064
19200    hub_port_disable(hub, port1, 0);
19201#line 3065
19202    update_devnum(udev, devnum);
19203    }
19204  } else {
19205
19206  }
19207  {
19208#line 3067
19209  mutex_unlock(& usb_address0_mutex);
19210  }
19211#line 3068
19212  return (retval);
19213}
19214}
19215#line 3072 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
19216static void check_highspeed(struct usb_hub *hub , struct usb_device *udev , int port1 ) 
19217{ struct usb_qualifier_descriptor *qual ;
19218  int status ;
19219  void *tmp ;
19220  struct usb_qualifier_descriptor *__cil_tmp7 ;
19221  unsigned long __cil_tmp8 ;
19222  unsigned long __cil_tmp9 ;
19223  void *__cil_tmp10 ;
19224  struct device *__cil_tmp11 ;
19225  struct device  const  *__cil_tmp12 ;
19226  unsigned char *__cil_tmp13 ;
19227  unsigned char *__cil_tmp14 ;
19228  unsigned char __cil_tmp15 ;
19229  unsigned int __cil_tmp16 ;
19230  struct delayed_work *__cil_tmp17 ;
19231  void const   *__cil_tmp18 ;
19232
19233  {
19234  {
19235#line 3077
19236  tmp = kmalloc(10UL, 208U);
19237#line 3077
19238  qual = (struct usb_qualifier_descriptor *)tmp;
19239  }
19240  {
19241#line 3078
19242  __cil_tmp7 = (struct usb_qualifier_descriptor *)0;
19243#line 3078
19244  __cil_tmp8 = (unsigned long )__cil_tmp7;
19245#line 3078
19246  __cil_tmp9 = (unsigned long )qual;
19247#line 3078
19248  if (__cil_tmp9 == __cil_tmp8) {
19249#line 3079
19250    return;
19251  } else {
19252
19253  }
19254  }
19255  {
19256#line 3081
19257  __cil_tmp10 = (void *)qual;
19258#line 3081
19259  status = usb_get_descriptor(udev, (unsigned char)6, (unsigned char)0, __cil_tmp10,
19260                              10);
19261  }
19262#line 3083
19263  if (status == 10) {
19264    {
19265#line 3084
19266    __cil_tmp11 = & udev->dev;
19267#line 3084
19268    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
19269#line 3084
19270    _dev_info(__cil_tmp12, "not running at top speed; connect to a high speed hub\n");
19271    }
19272    {
19273#line 3087
19274    __cil_tmp13 = (unsigned char *)hub;
19275#line 3087
19276    __cil_tmp14 = __cil_tmp13 + 468UL;
19277#line 3087
19278    __cil_tmp15 = *__cil_tmp14;
19279#line 3087
19280    __cil_tmp16 = (unsigned int )__cil_tmp15;
19281#line 3087
19282    if (__cil_tmp16 != 0U) {
19283      {
19284#line 3088
19285      hub->indicator[port1 + -1] = (u8 )2U;
19286#line 3089
19287      __cil_tmp17 = & hub->leds;
19288#line 3089
19289      schedule_delayed_work(__cil_tmp17, 0UL);
19290      }
19291    } else {
19292
19293    }
19294    }
19295  } else {
19296
19297  }
19298  {
19299#line 3092
19300  __cil_tmp18 = (void const   *)qual;
19301#line 3092
19302  kfree(__cil_tmp18);
19303  }
19304#line 3093
19305  return;
19306}
19307}
19308#line 3096 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
19309static unsigned int hub_power_remaining(struct usb_hub *hub ) 
19310{ struct usb_device *hdev ;
19311  int remaining ;
19312  int port1 ;
19313  struct usb_device *udev ;
19314  int delta ;
19315  unsigned char *__cil_tmp7 ;
19316  unsigned char *__cil_tmp8 ;
19317  unsigned char __cil_tmp9 ;
19318  unsigned int __cil_tmp10 ;
19319  struct usb_hub_descriptor *__cil_tmp11 ;
19320  __u8 __cil_tmp12 ;
19321  int __cil_tmp13 ;
19322  unsigned short __cil_tmp14 ;
19323  int __cil_tmp15 ;
19324  struct usb_device *__cil_tmp16 ;
19325  unsigned long __cil_tmp17 ;
19326  unsigned long __cil_tmp18 ;
19327  struct usb_host_config *__cil_tmp19 ;
19328  unsigned long __cil_tmp20 ;
19329  struct usb_host_config *__cil_tmp21 ;
19330  unsigned long __cil_tmp22 ;
19331  struct usb_host_config *__cil_tmp23 ;
19332  __u8 __cil_tmp24 ;
19333  int __cil_tmp25 ;
19334  struct usb_bus *__cil_tmp26 ;
19335  u8 __cil_tmp27 ;
19336  int __cil_tmp28 ;
19337  struct usb_device *__cil_tmp29 ;
19338  unsigned long __cil_tmp30 ;
19339  struct usb_device *__cil_tmp31 ;
19340  unsigned long __cil_tmp32 ;
19341  unsigned int __cil_tmp33 ;
19342  unsigned int __cil_tmp34 ;
19343  struct device *__cil_tmp35 ;
19344  struct device  const  *__cil_tmp36 ;
19345  unsigned int __cil_tmp37 ;
19346  int __cil_tmp38 ;
19347  struct device *__cil_tmp39 ;
19348  struct device  const  *__cil_tmp40 ;
19349  int __cil_tmp41 ;
19350
19351  {
19352#line 3098
19353  hdev = hub->hdev;
19354  {
19355#line 3102
19356  __cil_tmp7 = (unsigned char *)hub;
19357#line 3102
19358  __cil_tmp8 = __cil_tmp7 + 468UL;
19359#line 3102
19360  __cil_tmp9 = *__cil_tmp8;
19361#line 3102
19362  __cil_tmp10 = (unsigned int )__cil_tmp9;
19363#line 3102
19364  if (__cil_tmp10 == 0U) {
19365#line 3103
19366    return (0U);
19367  } else {
19368
19369  }
19370  }
19371#line 3105
19372  __cil_tmp11 = hub->descriptor;
19373#line 3105
19374  __cil_tmp12 = __cil_tmp11->bHubContrCurrent;
19375#line 3105
19376  __cil_tmp13 = (int )__cil_tmp12;
19377#line 3105
19378  __cil_tmp14 = hdev->bus_mA;
19379#line 3105
19380  __cil_tmp15 = (int )__cil_tmp14;
19381#line 3105
19382  remaining = __cil_tmp15 - __cil_tmp13;
19383#line 3106
19384  port1 = 1;
19385#line 3106
19386  goto ldv_26272;
19387  ldv_26271: 
19388#line 3107
19389  udev = hdev->children[port1 + -1];
19390  {
19391#line 3110
19392  __cil_tmp16 = (struct usb_device *)0;
19393#line 3110
19394  __cil_tmp17 = (unsigned long )__cil_tmp16;
19395#line 3110
19396  __cil_tmp18 = (unsigned long )udev;
19397#line 3110
19398  if (__cil_tmp18 == __cil_tmp17) {
19399#line 3111
19400    goto ldv_26270;
19401  } else {
19402
19403  }
19404  }
19405  {
19406#line 3115
19407  __cil_tmp19 = (struct usb_host_config *)0;
19408#line 3115
19409  __cil_tmp20 = (unsigned long )__cil_tmp19;
19410#line 3115
19411  __cil_tmp21 = udev->actconfig;
19412#line 3115
19413  __cil_tmp22 = (unsigned long )__cil_tmp21;
19414#line 3115
19415  if (__cil_tmp22 != __cil_tmp20) {
19416#line 3116
19417    __cil_tmp23 = udev->actconfig;
19418#line 3116
19419    __cil_tmp24 = __cil_tmp23->desc.bMaxPower;
19420#line 3116
19421    __cil_tmp25 = (int )__cil_tmp24;
19422#line 3116
19423    delta = __cil_tmp25 * 2;
19424  } else {
19425    {
19426#line 3117
19427    __cil_tmp26 = udev->bus;
19428#line 3117
19429    __cil_tmp27 = __cil_tmp26->otg_port;
19430#line 3117
19431    __cil_tmp28 = (int )__cil_tmp27;
19432#line 3117
19433    if (__cil_tmp28 != port1) {
19434#line 3118
19435      delta = 100;
19436    } else {
19437      {
19438#line 3117
19439      __cil_tmp29 = (struct usb_device *)0;
19440#line 3117
19441      __cil_tmp30 = (unsigned long )__cil_tmp29;
19442#line 3117
19443      __cil_tmp31 = hdev->parent;
19444#line 3117
19445      __cil_tmp32 = (unsigned long )__cil_tmp31;
19446#line 3117
19447      if (__cil_tmp32 != __cil_tmp30) {
19448#line 3118
19449        delta = 100;
19450      } else {
19451#line 3120
19452        delta = 8;
19453      }
19454      }
19455    }
19456    }
19457  }
19458  }
19459  {
19460#line 3121
19461  __cil_tmp33 = hub->mA_per_port;
19462#line 3121
19463  __cil_tmp34 = (unsigned int )delta;
19464#line 3121
19465  if (__cil_tmp34 > __cil_tmp33) {
19466    {
19467#line 3122
19468    __cil_tmp35 = & udev->dev;
19469#line 3122
19470    __cil_tmp36 = (struct device  const  *)__cil_tmp35;
19471#line 3122
19472    __cil_tmp37 = hub->mA_per_port;
19473#line 3122
19474    dev_warn(__cil_tmp36, "%dmA is over %umA budget for port %d!\n", delta, __cil_tmp37,
19475             port1);
19476    }
19477  } else {
19478
19479  }
19480  }
19481#line 3125
19482  remaining = remaining - delta;
19483  ldv_26270: 
19484#line 3106
19485  port1 = port1 + 1;
19486  ldv_26272: ;
19487  {
19488#line 3106
19489  __cil_tmp38 = hdev->maxchild;
19490#line 3106
19491  if (__cil_tmp38 >= port1) {
19492#line 3107
19493    goto ldv_26271;
19494  } else {
19495#line 3109
19496    goto ldv_26273;
19497  }
19498  }
19499  ldv_26273: ;
19500#line 3127
19501  if (remaining < 0) {
19502    {
19503#line 3128
19504    __cil_tmp39 = hub->intfdev;
19505#line 3128
19506    __cil_tmp40 = (struct device  const  *)__cil_tmp39;
19507#line 3128
19508    __cil_tmp41 = - remaining;
19509#line 3128
19510    dev_warn(__cil_tmp40, "%dmA over power budget!\n", __cil_tmp41);
19511#line 3130
19512    remaining = 0;
19513    }
19514  } else {
19515
19516  }
19517#line 3132
19518  return ((unsigned int )remaining);
19519}
19520}
19521#line 3143 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
19522static void hub_port_connect_change(struct usb_hub *hub , int port1 , u16 portstatus ,
19523                                    u16 portchange ) 
19524{ struct usb_device *hdev ;
19525  struct device *hub_dev ;
19526  struct usb_hcd *hcd ;
19527  struct usb_hcd *tmp ;
19528  unsigned int wHubCharacteristics ;
19529  struct usb_device *udev ;
19530  int status ;
19531  int i ;
19532  char *tmp___0 ;
19533  int tmp___1 ;
19534  int tmp___2 ;
19535  int tmp___3 ;
19536  unsigned int tmp___4 ;
19537  int tmp___5 ;
19538  u16 devstat ;
19539  unsigned int tmp___6 ;
19540  int tmp___7 ;
19541  struct usb_bus *__cil_tmp22 ;
19542  struct usb_hub_descriptor *__cil_tmp23 ;
19543  __le16 __cil_tmp24 ;
19544  int __cil_tmp25 ;
19545  struct device  const  *__cil_tmp26 ;
19546  int __cil_tmp27 ;
19547  int __cil_tmp28 ;
19548  unsigned char *__cil_tmp29 ;
19549  unsigned char *__cil_tmp30 ;
19550  unsigned char __cil_tmp31 ;
19551  unsigned int __cil_tmp32 ;
19552  struct usb_bus *__cil_tmp33 ;
19553  unsigned char *__cil_tmp34 ;
19554  unsigned char *__cil_tmp35 ;
19555  unsigned char __cil_tmp36 ;
19556  unsigned int __cil_tmp37 ;
19557  unsigned int __cil_tmp38 ;
19558  unsigned int __cil_tmp39 ;
19559  int __cil_tmp40 ;
19560  struct usb_device *__cil_tmp41 ;
19561  unsigned long __cil_tmp42 ;
19562  unsigned long __cil_tmp43 ;
19563  enum usb_device_state __cil_tmp44 ;
19564  unsigned int __cil_tmp45 ;
19565  struct device *__cil_tmp46 ;
19566  int __cil_tmp47 ;
19567  int __cil_tmp48 ;
19568  enum usb_device_state __cil_tmp49 ;
19569  unsigned int __cil_tmp50 ;
19570  unsigned char *__cil_tmp51 ;
19571  unsigned char *__cil_tmp52 ;
19572  unsigned char __cil_tmp53 ;
19573  unsigned int __cil_tmp54 ;
19574  struct device *__cil_tmp55 ;
19575  unsigned long (*__cil_tmp56)[1U] ;
19576  unsigned long volatile   *__cil_tmp57 ;
19577  struct usb_device *__cil_tmp58 ;
19578  unsigned long __cil_tmp59 ;
19579  unsigned long __cil_tmp60 ;
19580  unsigned long __cil_tmp61 ;
19581  unsigned long __cil_tmp62 ;
19582  struct usb_device *(*__cil_tmp63)[31U] ;
19583  struct usb_device **__cil_tmp64 ;
19584  struct usb_device **__cil_tmp65 ;
19585  unsigned long (*__cil_tmp66)[1U] ;
19586  unsigned long volatile   *__cil_tmp67 ;
19587  int __cil_tmp68 ;
19588  int __cil_tmp69 ;
19589  unsigned long (*__cil_tmp70)[1U] ;
19590  unsigned long volatile   *__cil_tmp71 ;
19591  int __cil_tmp72 ;
19592  unsigned long (*__cil_tmp73)[1U] ;
19593  unsigned long volatile   *__cil_tmp74 ;
19594  int __cil_tmp75 ;
19595  int __cil_tmp76 ;
19596  struct device  const  *__cil_tmp77 ;
19597  unsigned int __cil_tmp78 ;
19598  unsigned int __cil_tmp79 ;
19599  int __cil_tmp80 ;
19600  int __cil_tmp81 ;
19601  unsigned long (*__cil_tmp82)[1U] ;
19602  unsigned long const volatile   *__cil_tmp83 ;
19603  unsigned int __cil_tmp84 ;
19604  unsigned int __cil_tmp85 ;
19605  int __cil_tmp86 ;
19606  int __cil_tmp87 ;
19607  struct usb_bus *__cil_tmp88 ;
19608  unsigned int __cil_tmp89 ;
19609  struct usb_device *__cil_tmp90 ;
19610  unsigned long __cil_tmp91 ;
19611  unsigned long __cil_tmp92 ;
19612  struct device  const  *__cil_tmp93 ;
19613  enum usb_device_state __cil_tmp94 ;
19614  unsigned int __cil_tmp95 ;
19615  u8 __cil_tmp96 ;
19616  unsigned int __cil_tmp97 ;
19617  unsigned int __cil_tmp98 ;
19618  struct usb_device *__cil_tmp99 ;
19619  int __cil_tmp100 ;
19620  u32 __cil_tmp101 ;
19621  unsigned int __cil_tmp102 ;
19622  __u8 __cil_tmp103 ;
19623  unsigned int __cil_tmp104 ;
19624  unsigned short __cil_tmp105 ;
19625  unsigned int __cil_tmp106 ;
19626  void *__cil_tmp107 ;
19627  struct device *__cil_tmp108 ;
19628  struct device  const  *__cil_tmp109 ;
19629  int __cil_tmp110 ;
19630  int __cil_tmp111 ;
19631  struct device *__cil_tmp112 ;
19632  struct device  const  *__cil_tmp113 ;
19633  unsigned char *__cil_tmp114 ;
19634  unsigned char *__cil_tmp115 ;
19635  unsigned char __cil_tmp116 ;
19636  unsigned int __cil_tmp117 ;
19637  struct delayed_work *__cil_tmp118 ;
19638  __le16 __cil_tmp119 ;
19639  unsigned int __cil_tmp120 ;
19640  enum usb_device_speed __cil_tmp121 ;
19641  unsigned int __cil_tmp122 ;
19642  enum usb_device_state __cil_tmp123 ;
19643  unsigned int __cil_tmp124 ;
19644  struct device  const  *__cil_tmp125 ;
19645  int __cil_tmp126 ;
19646  int __cil_tmp127 ;
19647  struct usb_device *__cil_tmp128 ;
19648  unsigned long __cil_tmp129 ;
19649  struct usb_device *__cil_tmp130 ;
19650  struct usb_device *__cil_tmp131 ;
19651  unsigned long __cil_tmp132 ;
19652  struct device  const  *__cil_tmp133 ;
19653  int (*__cil_tmp134)(struct usb_hcd * , int  ) ;
19654  unsigned long __cil_tmp135 ;
19655  struct hc_driver  const  *__cil_tmp136 ;
19656  int (*__cil_tmp137)(struct usb_hcd * , int  ) ;
19657  unsigned long __cil_tmp138 ;
19658  struct device  const  *__cil_tmp139 ;
19659  struct hc_driver  const  *__cil_tmp140 ;
19660  int (*__cil_tmp141)(struct usb_hcd * , int  ) ;
19661  struct device  const  *__cil_tmp142 ;
19662  void (*__cil_tmp143)(struct usb_hcd * , int  ) ;
19663  unsigned long __cil_tmp144 ;
19664  struct hc_driver  const  *__cil_tmp145 ;
19665  void (*__cil_tmp146)(struct usb_hcd * , int  ) ;
19666  unsigned long __cil_tmp147 ;
19667  struct usb_device *__cil_tmp148 ;
19668  unsigned long __cil_tmp149 ;
19669  struct usb_device *__cil_tmp150 ;
19670  struct usb_device *__cil_tmp151 ;
19671  unsigned long __cil_tmp152 ;
19672  struct hc_driver  const  *__cil_tmp153 ;
19673  void (*__cil_tmp154)(struct usb_hcd * , int  ) ;
19674
19675  {
19676  {
19677#line 3146
19678  hdev = hub->hdev;
19679#line 3147
19680  hub_dev = hub->intfdev;
19681#line 3148
19682  __cil_tmp22 = hdev->bus;
19683#line 3148
19684  tmp = bus_to_hcd(__cil_tmp22);
19685#line 3148
19686  hcd = tmp;
19687#line 3149
19688  __cil_tmp23 = hub->descriptor;
19689#line 3149
19690  __cil_tmp24 = __cil_tmp23->wHubCharacteristics;
19691#line 3149
19692  wHubCharacteristics = (unsigned int )__cil_tmp24;
19693#line 3154
19694  __cil_tmp25 = (int )portstatus;
19695#line 3154
19696  tmp___0 = portspeed(hub, __cil_tmp25);
19697#line 3154
19698  __cil_tmp26 = (struct device  const  *)hub_dev;
19699#line 3154
19700  __cil_tmp27 = (int )portstatus;
19701#line 3154
19702  __cil_tmp28 = (int )portchange;
19703#line 3154
19704  dev_printk("<7>", __cil_tmp26, "port %d, status %04x, change %04x, %s\n", port1,
19705             __cil_tmp27, __cil_tmp28, tmp___0);
19706  }
19707  {
19708#line 3158
19709  __cil_tmp29 = (unsigned char *)hub;
19710#line 3158
19711  __cil_tmp30 = __cil_tmp29 + 468UL;
19712#line 3158
19713  __cil_tmp31 = *__cil_tmp30;
19714#line 3158
19715  __cil_tmp32 = (unsigned int )__cil_tmp31;
19716#line 3158
19717  if (__cil_tmp32 != 0U) {
19718    {
19719#line 3159
19720    set_port_led(hub, port1, 0);
19721#line 3160
19722    hub->indicator[port1 + -1] = (u8 )0U;
19723    }
19724  } else {
19725
19726  }
19727  }
19728  {
19729#line 3165
19730  __cil_tmp33 = hdev->bus;
19731#line 3165
19732  __cil_tmp34 = (unsigned char *)__cil_tmp33;
19733#line 3165
19734  __cil_tmp35 = __cil_tmp34 + 27UL;
19735#line 3165
19736  __cil_tmp36 = *__cil_tmp35;
19737#line 3165
19738  __cil_tmp37 = (unsigned int )__cil_tmp36;
19739#line 3165
19740  if (__cil_tmp37 != 0U) {
19741#line 3166
19742    __cil_tmp38 = (unsigned int )portchange;
19743#line 3166
19744    __cil_tmp39 = __cil_tmp38 & 65532U;
19745#line 3166
19746    portchange = (u16 )__cil_tmp39;
19747  } else {
19748
19749  }
19750  }
19751#line 3171
19752  udev = hdev->children[port1 + -1];
19753  {
19754#line 3172
19755  __cil_tmp40 = (int )portstatus;
19756#line 3172
19757  if (__cil_tmp40 & 1) {
19758    {
19759#line 3172
19760    __cil_tmp41 = (struct usb_device *)0;
19761#line 3172
19762    __cil_tmp42 = (unsigned long )__cil_tmp41;
19763#line 3172
19764    __cil_tmp43 = (unsigned long )udev;
19765#line 3172
19766    if (__cil_tmp43 != __cil_tmp42) {
19767      {
19768#line 3172
19769      __cil_tmp44 = udev->state;
19770#line 3172
19771      __cil_tmp45 = (unsigned int )__cil_tmp44;
19772#line 3172
19773      if (__cil_tmp45 != 0U) {
19774        {
19775#line 3174
19776        __cil_tmp46 = & udev->dev;
19777#line 3174
19778        device_lock(__cil_tmp46);
19779        }
19780        {
19781#line 3175
19782        __cil_tmp47 = (int )portstatus;
19783#line 3175
19784        __cil_tmp48 = __cil_tmp47 & 2;
19785#line 3175
19786        if (__cil_tmp48 != 0) {
19787#line 3176
19788          status = 0;
19789        } else {
19790          {
19791#line 3179
19792          __cil_tmp49 = udev->state;
19793#line 3179
19794          __cil_tmp50 = (unsigned int )__cil_tmp49;
19795#line 3179
19796          if (__cil_tmp50 == 8U) {
19797            {
19798#line 3179
19799            __cil_tmp51 = (unsigned char *)udev;
19800#line 3179
19801            __cil_tmp52 = __cil_tmp51 + 1556UL;
19802#line 3179
19803            __cil_tmp53 = *__cil_tmp52;
19804#line 3179
19805            __cil_tmp54 = (unsigned int )__cil_tmp53;
19806#line 3179
19807            if (__cil_tmp54 != 0U) {
19808              {
19809#line 3184
19810              status = usb_remote_wakeup(udev);
19811              }
19812            } else {
19813#line 3188
19814              status = -19;
19815            }
19816            }
19817          } else {
19818#line 3188
19819            status = -19;
19820          }
19821          }
19822        }
19823        }
19824        {
19825#line 3190
19826        __cil_tmp55 = & udev->dev;
19827#line 3190
19828        device_unlock(__cil_tmp55);
19829        }
19830#line 3192
19831        if (status == 0) {
19832          {
19833#line 3193
19834          __cil_tmp56 = & hub->change_bits;
19835#line 3193
19836          __cil_tmp57 = (unsigned long volatile   *)__cil_tmp56;
19837#line 3193
19838          clear_bit(port1, __cil_tmp57);
19839          }
19840#line 3194
19841          return;
19842        } else {
19843
19844        }
19845      } else {
19846
19847      }
19848      }
19849    } else {
19850
19851    }
19852    }
19853  } else {
19854
19855  }
19856  }
19857  {
19858#line 3199
19859  __cil_tmp58 = (struct usb_device *)0;
19860#line 3199
19861  __cil_tmp59 = (unsigned long )__cil_tmp58;
19862#line 3199
19863  __cil_tmp60 = (unsigned long )udev;
19864#line 3199
19865  if (__cil_tmp60 != __cil_tmp59) {
19866    {
19867#line 3200
19868    __cil_tmp61 = (unsigned long )port1;
19869#line 3200
19870    __cil_tmp62 = __cil_tmp61 + 1152921504606846975UL;
19871#line 3200
19872    __cil_tmp63 = & hdev->children;
19873#line 3200
19874    __cil_tmp64 = (struct usb_device **)__cil_tmp63;
19875#line 3200
19876    __cil_tmp65 = __cil_tmp64 + __cil_tmp62;
19877#line 3200
19878    usb_disconnect(__cil_tmp65);
19879    }
19880  } else {
19881
19882  }
19883  }
19884  {
19885#line 3201
19886  __cil_tmp66 = & hub->change_bits;
19887#line 3201
19888  __cil_tmp67 = (unsigned long volatile   *)__cil_tmp66;
19889#line 3201
19890  clear_bit(port1, __cil_tmp67);
19891  }
19892  {
19893#line 3206
19894  __cil_tmp68 = (int )portstatus;
19895#line 3206
19896  __cil_tmp69 = __cil_tmp68 & 1;
19897#line 3206
19898  if (__cil_tmp69 == 0) {
19899    {
19900#line 3208
19901    __cil_tmp70 = & hub->removed_bits;
19902#line 3208
19903    __cil_tmp71 = (unsigned long volatile   *)__cil_tmp70;
19904#line 3208
19905    clear_bit(port1, __cil_tmp71);
19906    }
19907  } else {
19908    {
19909#line 3206
19910    __cil_tmp72 = (int )portchange;
19911#line 3206
19912    if (__cil_tmp72 & 1) {
19913      {
19914#line 3208
19915      __cil_tmp73 = & hub->removed_bits;
19916#line 3208
19917      __cil_tmp74 = (unsigned long volatile   *)__cil_tmp73;
19918#line 3208
19919      clear_bit(port1, __cil_tmp74);
19920      }
19921    } else {
19922
19923    }
19924    }
19925  }
19926  }
19927  {
19928#line 3210
19929  __cil_tmp75 = (int )portchange;
19930#line 3210
19931  __cil_tmp76 = __cil_tmp75 & 3;
19932#line 3210
19933  if (__cil_tmp76 != 0) {
19934    {
19935#line 3212
19936    status = hub_port_debounce(hub, port1);
19937    }
19938#line 3213
19939    if (status < 0) {
19940      {
19941#line 3214
19942      tmp___1 = __printk_ratelimit("hub_port_connect_change");
19943      }
19944#line 3214
19945      if (tmp___1 != 0) {
19946        {
19947#line 3215
19948        __cil_tmp77 = (struct device  const  *)hub_dev;
19949#line 3215
19950        dev_err(__cil_tmp77, "connect-debounce failed, port %d disabled\n", port1);
19951        }
19952      } else {
19953
19954      }
19955#line 3217
19956      __cil_tmp78 = (unsigned int )portstatus;
19957#line 3217
19958      __cil_tmp79 = __cil_tmp78 & 65534U;
19959#line 3217
19960      portstatus = (u16 )__cil_tmp79;
19961    } else {
19962#line 3219
19963      portstatus = (u16 )status;
19964    }
19965  } else {
19966
19967  }
19968  }
19969  {
19970#line 3226
19971  __cil_tmp80 = (int )portstatus;
19972#line 3226
19973  __cil_tmp81 = __cil_tmp80 & 1;
19974#line 3226
19975  if (__cil_tmp81 == 0) {
19976#line 3226
19977    goto _L;
19978  } else {
19979    {
19980#line 3226
19981    __cil_tmp82 = & hub->removed_bits;
19982#line 3226
19983    __cil_tmp83 = (unsigned long const volatile   *)__cil_tmp82;
19984#line 3226
19985    tmp___3 = variable_test_bit(port1, __cil_tmp83);
19986    }
19987#line 3226
19988    if (tmp___3 != 0) {
19989      _L: 
19990      {
19991#line 3230
19992      __cil_tmp84 = wHubCharacteristics & 3U;
19993#line 3230
19994      if (__cil_tmp84 <= 1U) {
19995        {
19996#line 3230
19997        __cil_tmp85 = (unsigned int )portstatus;
19998#line 3230
19999        tmp___2 = port_is_power_on(hub, __cil_tmp85);
20000        }
20001#line 3230
20002        if (tmp___2 == 0) {
20003          {
20004#line 3232
20005          set_port_feature(hdev, port1, 8);
20006          }
20007        } else {
20008
20009        }
20010      } else {
20011
20012      }
20013      }
20014      {
20015#line 3234
20016      __cil_tmp86 = (int )portstatus;
20017#line 3234
20018      __cil_tmp87 = __cil_tmp86 & 2;
20019#line 3234
20020      if (__cil_tmp87 != 0) {
20021#line 3235
20022        goto done;
20023      } else {
20024
20025      }
20026      }
20027#line 3236
20028      return;
20029    } else {
20030
20031    }
20032  }
20033  }
20034#line 3239
20035  i = 0;
20036#line 3239
20037  goto ldv_26294;
20038  ldv_26293: 
20039  {
20040#line 3244
20041  __cil_tmp88 = hdev->bus;
20042#line 3244
20043  __cil_tmp89 = (unsigned int )port1;
20044#line 3244
20045  udev = usb_alloc_dev(hdev, __cil_tmp88, __cil_tmp89);
20046  }
20047  {
20048#line 3245
20049  __cil_tmp90 = (struct usb_device *)0;
20050#line 3245
20051  __cil_tmp91 = (unsigned long )__cil_tmp90;
20052#line 3245
20053  __cil_tmp92 = (unsigned long )udev;
20054#line 3245
20055  if (__cil_tmp92 == __cil_tmp91) {
20056    {
20057#line 3246
20058    __cil_tmp93 = (struct device  const  *)hub_dev;
20059#line 3246
20060    dev_err(__cil_tmp93, "couldn\'t allocate port %d usb_device\n", port1);
20061    }
20062#line 3249
20063    goto done;
20064  } else {
20065
20066  }
20067  }
20068  {
20069#line 3252
20070  __cil_tmp94 = (enum usb_device_state )2;
20071#line 3252
20072  usb_set_device_state(udev, __cil_tmp94);
20073#line 3253
20074  __cil_tmp95 = hub->mA_per_port;
20075#line 3253
20076  udev->bus_mA = (unsigned short )__cil_tmp95;
20077#line 3254
20078  __cil_tmp96 = hdev->level;
20079#line 3254
20080  __cil_tmp97 = (unsigned int )__cil_tmp96;
20081#line 3254
20082  __cil_tmp98 = __cil_tmp97 + 1U;
20083#line 3254
20084  udev->level = (u8 )__cil_tmp98;
20085#line 3255
20086  tmp___4 = hub_is_wusb(hub);
20087#line 3255
20088  udev->wusb = (unsigned char )tmp___4;
20089#line 3258
20090  __cil_tmp99 = hub->hdev;
20091#line 3258
20092  tmp___5 = hub_is_superspeed(__cil_tmp99);
20093  }
20094#line 3258
20095  if (tmp___5 != 0) {
20096#line 3259
20097    udev->speed = (enum usb_device_speed )5;
20098  } else {
20099#line 3261
20100    udev->speed = (enum usb_device_speed )0;
20101  }
20102  {
20103#line 3263
20104  choose_devnum(udev);
20105  }
20106  {
20107#line 3264
20108  __cil_tmp100 = udev->devnum;
20109#line 3264
20110  if (__cil_tmp100 <= 0) {
20111#line 3265
20112    status = -107;
20113#line 3266
20114    goto loop;
20115  } else {
20116
20117  }
20118  }
20119  {
20120#line 3270
20121  status = hub_port_init(hub, udev, port1, i);
20122  }
20123#line 3271
20124  if (status < 0) {
20125#line 3272
20126    goto loop;
20127  } else {
20128
20129  }
20130  {
20131#line 3274
20132  usb_detect_quirks(udev);
20133  }
20134  {
20135#line 3275
20136  __cil_tmp101 = udev->quirks;
20137#line 3275
20138  __cil_tmp102 = __cil_tmp101 & 64U;
20139#line 3275
20140  if (__cil_tmp102 != 0U) {
20141    {
20142#line 3276
20143    msleep(1000U);
20144    }
20145  } else {
20146
20147  }
20148  }
20149  {
20150#line 3284
20151  __cil_tmp103 = udev->descriptor.bDeviceClass;
20152#line 3284
20153  __cil_tmp104 = (unsigned int )__cil_tmp103;
20154#line 3284
20155  if (__cil_tmp104 == 9U) {
20156    {
20157#line 3284
20158    __cil_tmp105 = udev->bus_mA;
20159#line 3284
20160    __cil_tmp106 = (unsigned int )__cil_tmp105;
20161#line 3284
20162    if (__cil_tmp106 <= 100U) {
20163      {
20164#line 3288
20165      __cil_tmp107 = (void *)(& devstat);
20166#line 3288
20167      status = usb_get_status(udev, 0, 0, __cil_tmp107);
20168      }
20169#line 3290
20170      if (status <= 1) {
20171        {
20172#line 3291
20173        __cil_tmp108 = & udev->dev;
20174#line 3291
20175        __cil_tmp109 = (struct device  const  *)__cil_tmp108;
20176#line 3291
20177        dev_printk("<7>", __cil_tmp109, "get status %d ?\n", status);
20178        }
20179#line 3292
20180        goto loop_disable;
20181      } else {
20182
20183      }
20184      {
20185#line 3295
20186      __cil_tmp110 = (int )devstat;
20187#line 3295
20188      __cil_tmp111 = __cil_tmp110 & 1;
20189#line 3295
20190      if (__cil_tmp111 == 0) {
20191        {
20192#line 3296
20193        __cil_tmp112 = & udev->dev;
20194#line 3296
20195        __cil_tmp113 = (struct device  const  *)__cil_tmp112;
20196#line 3296
20197        dev_err(__cil_tmp113, "can\'t connect bus-powered hub to this port\n");
20198        }
20199        {
20200#line 3299
20201        __cil_tmp114 = (unsigned char *)hub;
20202#line 3299
20203        __cil_tmp115 = __cil_tmp114 + 468UL;
20204#line 3299
20205        __cil_tmp116 = *__cil_tmp115;
20206#line 3299
20207        __cil_tmp117 = (unsigned int )__cil_tmp116;
20208#line 3299
20209        if (__cil_tmp117 != 0U) {
20210          {
20211#line 3300
20212          hub->indicator[port1 + -1] = (u8 )4U;
20213#line 3302
20214          __cil_tmp118 = & hub->leds;
20215#line 3302
20216          schedule_delayed_work(__cil_tmp118, 0UL);
20217          }
20218        } else {
20219
20220        }
20221        }
20222#line 3304
20223        status = -107;
20224#line 3305
20225        goto loop_disable;
20226      } else {
20227
20228      }
20229      }
20230    } else {
20231
20232    }
20233    }
20234  } else {
20235
20236  }
20237  }
20238  {
20239#line 3310
20240  __cil_tmp119 = udev->descriptor.bcdUSB;
20241#line 3310
20242  __cil_tmp120 = (unsigned int )__cil_tmp119;
20243#line 3310
20244  if (__cil_tmp120 > 511U) {
20245    {
20246#line 3310
20247    __cil_tmp121 = udev->speed;
20248#line 3310
20249    __cil_tmp122 = (unsigned int )__cil_tmp121;
20250#line 3310
20251    if (__cil_tmp122 == 2U) {
20252#line 3310
20253      if (highspeed_hubs != 0U) {
20254        {
20255#line 3313
20256        check_highspeed(hub, udev, port1);
20257        }
20258      } else {
20259
20260      }
20261    } else {
20262
20263    }
20264    }
20265  } else {
20266
20267  }
20268  }
20269  {
20270#line 3319
20271  status = 0;
20272#line 3325
20273  spin_lock_irq(& device_state_lock);
20274  }
20275  {
20276#line 3326
20277  __cil_tmp123 = hdev->state;
20278#line 3326
20279  __cil_tmp124 = (unsigned int )__cil_tmp123;
20280#line 3326
20281  if (__cil_tmp124 == 0U) {
20282#line 3327
20283    status = -107;
20284  } else {
20285#line 3329
20286    hdev->children[port1 + -1] = udev;
20287  }
20288  }
20289  {
20290#line 3330
20291  spin_unlock_irq(& device_state_lock);
20292  }
20293#line 3333
20294  if (status == 0) {
20295    {
20296#line 3334
20297    status = usb_new_device(udev);
20298    }
20299#line 3335
20300    if (status != 0) {
20301      {
20302#line 3336
20303      spin_lock_irq(& device_state_lock);
20304#line 3337
20305      hdev->children[port1 + -1] = (struct usb_device *)0;
20306#line 3338
20307      spin_unlock_irq(& device_state_lock);
20308      }
20309    } else {
20310
20311    }
20312  } else {
20313
20314  }
20315#line 3342
20316  if (status != 0) {
20317#line 3343
20318    goto loop_disable;
20319  } else {
20320
20321  }
20322  {
20323#line 3345
20324  tmp___6 = hub_power_remaining(hub);
20325#line 3345
20326  status = (int )tmp___6;
20327  }
20328#line 3346
20329  if (status != 0) {
20330    {
20331#line 3347
20332    __cil_tmp125 = (struct device  const  *)hub_dev;
20333#line 3347
20334    dev_printk("<7>", __cil_tmp125, "%dmA power budget left\n", status);
20335    }
20336  } else {
20337
20338  }
20339#line 3349
20340  return;
20341  loop_disable: 
20342  {
20343#line 3352
20344  hub_port_disable(hub, port1, 1);
20345  }
20346  loop: 
20347  {
20348#line 3354
20349  usb_ep0_reinit(udev);
20350#line 3355
20351  release_devnum(udev);
20352#line 3356
20353  hub_free_dev(udev);
20354#line 3357
20355  usb_put_dev(udev);
20356  }
20357#line 3358
20358  if (status == -107) {
20359#line 3359
20360    goto ldv_26292;
20361  } else
20362#line 3358
20363  if (status == -524) {
20364#line 3359
20365    goto ldv_26292;
20366  } else {
20367
20368  }
20369#line 3239
20370  i = i + 1;
20371  ldv_26294: ;
20372  {
20373#line 3239
20374  __cil_tmp126 = use_both_schemes + 1;
20375#line 3239
20376  __cil_tmp127 = __cil_tmp126 * 2;
20377#line 3239
20378  if (__cil_tmp127 > i) {
20379#line 3240
20380    goto ldv_26293;
20381  } else {
20382#line 3242
20383    goto ldv_26292;
20384  }
20385  }
20386  ldv_26292: ;
20387  {
20388#line 3361
20389  __cil_tmp128 = (struct usb_device *)0;
20390#line 3361
20391  __cil_tmp129 = (unsigned long )__cil_tmp128;
20392#line 3361
20393  __cil_tmp130 = hub->hdev;
20394#line 3361
20395  __cil_tmp131 = __cil_tmp130->parent;
20396#line 3361
20397  __cil_tmp132 = (unsigned long )__cil_tmp131;
20398#line 3361
20399  if (__cil_tmp132 != __cil_tmp129) {
20400    {
20401#line 3364
20402    __cil_tmp133 = (struct device  const  *)hub_dev;
20403#line 3364
20404    dev_err(__cil_tmp133, "unable to enumerate USB device on port %d\n", port1);
20405    }
20406  } else {
20407    {
20408#line 3361
20409    __cil_tmp134 = (int (* const  )(struct usb_hcd * , int  ))0;
20410#line 3361
20411    __cil_tmp135 = (unsigned long )__cil_tmp134;
20412#line 3361
20413    __cil_tmp136 = hcd->driver;
20414#line 3361
20415    __cil_tmp137 = __cil_tmp136->port_handed_over;
20416#line 3361
20417    __cil_tmp138 = (unsigned long )__cil_tmp137;
20418#line 3361
20419    if (__cil_tmp138 == __cil_tmp135) {
20420      {
20421#line 3364
20422      __cil_tmp139 = (struct device  const  *)hub_dev;
20423#line 3364
20424      dev_err(__cil_tmp139, "unable to enumerate USB device on port %d\n", port1);
20425      }
20426    } else {
20427      {
20428#line 3361
20429      __cil_tmp140 = hcd->driver;
20430#line 3361
20431      __cil_tmp141 = __cil_tmp140->port_handed_over;
20432#line 3361
20433      tmp___7 = (*__cil_tmp141)(hcd, port1);
20434      }
20435#line 3361
20436      if (tmp___7 == 0) {
20437        {
20438#line 3364
20439        __cil_tmp142 = (struct device  const  *)hub_dev;
20440#line 3364
20441        dev_err(__cil_tmp142, "unable to enumerate USB device on port %d\n", port1);
20442        }
20443      } else {
20444
20445      }
20446    }
20447    }
20448  }
20449  }
20450  done: 
20451  {
20452#line 3368
20453  hub_port_disable(hub, port1, 1);
20454  }
20455  {
20456#line 3369
20457  __cil_tmp143 = (void (* const  )(struct usb_hcd * , int  ))0;
20458#line 3369
20459  __cil_tmp144 = (unsigned long )__cil_tmp143;
20460#line 3369
20461  __cil_tmp145 = hcd->driver;
20462#line 3369
20463  __cil_tmp146 = __cil_tmp145->relinquish_port;
20464#line 3369
20465  __cil_tmp147 = (unsigned long )__cil_tmp146;
20466#line 3369
20467  if (__cil_tmp147 != __cil_tmp144) {
20468    {
20469#line 3369
20470    __cil_tmp148 = (struct usb_device *)0;
20471#line 3369
20472    __cil_tmp149 = (unsigned long )__cil_tmp148;
20473#line 3369
20474    __cil_tmp150 = hub->hdev;
20475#line 3369
20476    __cil_tmp151 = __cil_tmp150->parent;
20477#line 3369
20478    __cil_tmp152 = (unsigned long )__cil_tmp151;
20479#line 3369
20480    if (__cil_tmp152 == __cil_tmp149) {
20481      {
20482#line 3370
20483      __cil_tmp153 = hcd->driver;
20484#line 3370
20485      __cil_tmp154 = __cil_tmp153->relinquish_port;
20486#line 3370
20487      (*__cil_tmp154)(hcd, port1);
20488      }
20489    } else {
20490
20491    }
20492    }
20493  } else {
20494
20495  }
20496  }
20497#line 3371
20498  return;
20499}
20500}
20501#line 3373 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
20502static void hub_events(void) 
20503{ struct list_head *tmp ;
20504  struct usb_device *hdev ;
20505  struct usb_interface *intf ;
20506  struct usb_hub *hub ;
20507  struct device *hub_dev ;
20508  u16 hubstatus ;
20509  u16 hubchange ;
20510  u16 portstatus ;
20511  u16 portchange ;
20512  int i ;
20513  int ret ;
20514  int connect_change ;
20515  int tmp___0 ;
20516  struct list_head  const  *__mptr ;
20517  struct device  const  *__mptr___0 ;
20518  int tmp___1 ;
20519  long tmp___2 ;
20520  int tmp___3 ;
20521  int tmp___4 ;
20522  struct usb_device *udev ;
20523  u16 status ;
20524  u16 unused ;
20525  int tmp___5 ;
20526  int tmp___6 ;
20527  u16 status___0 ;
20528  u16 unused___0 ;
20529  int tmp___7 ;
20530  int tmp___8 ;
20531  struct list_head  const  *__cil_tmp29 ;
20532  struct usb_hub *__cil_tmp30 ;
20533  struct kref *__cil_tmp31 ;
20534  struct usb_interface *__cil_tmp32 ;
20535  struct usb_hub_descriptor *__cil_tmp33 ;
20536  unsigned long __cil_tmp34 ;
20537  struct usb_hub_descriptor *__cil_tmp35 ;
20538  unsigned long __cil_tmp36 ;
20539  struct usb_hub_descriptor *__cil_tmp37 ;
20540  __u8 __cil_tmp38 ;
20541  struct device  const  *__cil_tmp39 ;
20542  enum usb_device_state __cil_tmp40 ;
20543  unsigned int __cil_tmp41 ;
20544  unsigned long __cil_tmp42 ;
20545  unsigned short __cil_tmp43 ;
20546  int __cil_tmp44 ;
20547  unsigned long __cil_tmp45 ;
20548  unsigned short __cil_tmp46 ;
20549  int __cil_tmp47 ;
20550  struct device *__cil_tmp48 ;
20551  unsigned char *__cil_tmp49 ;
20552  unsigned char *__cil_tmp50 ;
20553  unsigned char __cil_tmp51 ;
20554  unsigned int __cil_tmp52 ;
20555  int __cil_tmp53 ;
20556  long __cil_tmp54 ;
20557  enum usb_device_state __cil_tmp55 ;
20558  unsigned int __cil_tmp56 ;
20559  enum hub_quiescing_type __cil_tmp57 ;
20560  struct device  const  *__cil_tmp58 ;
20561  unsigned char *__cil_tmp59 ;
20562  unsigned char *__cil_tmp60 ;
20563  unsigned char __cil_tmp61 ;
20564  unsigned int __cil_tmp62 ;
20565  int __cil_tmp63 ;
20566  struct device  const  *__cil_tmp64 ;
20567  int __cil_tmp65 ;
20568  struct device  const  *__cil_tmp66 ;
20569  unsigned long (*__cil_tmp67)[1U] ;
20570  unsigned long const volatile   *__cil_tmp68 ;
20571  unsigned long (*__cil_tmp69)[1U] ;
20572  unsigned long const volatile   *__cil_tmp70 ;
20573  unsigned long (*__cil_tmp71)[1U] ;
20574  unsigned long volatile   *__cil_tmp72 ;
20575  int __cil_tmp73 ;
20576  int __cil_tmp74 ;
20577  int __cil_tmp75 ;
20578  struct device  const  *__cil_tmp76 ;
20579  int __cil_tmp77 ;
20580  int __cil_tmp78 ;
20581  int __cil_tmp79 ;
20582  struct usb_device *__cil_tmp80 ;
20583  unsigned long __cil_tmp81 ;
20584  struct usb_device *__cil_tmp82 ;
20585  unsigned long __cil_tmp83 ;
20586  struct device  const  *__cil_tmp84 ;
20587  int __cil_tmp85 ;
20588  int __cil_tmp86 ;
20589  struct usb_device *__cil_tmp87 ;
20590  unsigned long __cil_tmp88 ;
20591  unsigned long __cil_tmp89 ;
20592  struct device *__cil_tmp90 ;
20593  struct usb_device *__cil_tmp91 ;
20594  struct device *__cil_tmp92 ;
20595  struct device  const  *__cil_tmp93 ;
20596  int __cil_tmp94 ;
20597  int __cil_tmp95 ;
20598  struct device  const  *__cil_tmp96 ;
20599  bool __cil_tmp97 ;
20600  int __cil_tmp98 ;
20601  int __cil_tmp99 ;
20602  struct device  const  *__cil_tmp100 ;
20603  int __cil_tmp101 ;
20604  int __cil_tmp102 ;
20605  struct device  const  *__cil_tmp103 ;
20606  int __cil_tmp104 ;
20607  int __cil_tmp105 ;
20608  struct usb_device *__cil_tmp106 ;
20609  struct device  const  *__cil_tmp107 ;
20610  int __cil_tmp108 ;
20611  int __cil_tmp109 ;
20612  struct usb_device *__cil_tmp110 ;
20613  int __cil_tmp111 ;
20614  int __cil_tmp112 ;
20615  struct device  const  *__cil_tmp113 ;
20616  struct usb_device *__cil_tmp114 ;
20617  struct usb_device *__cil_tmp115 ;
20618  int __cil_tmp116 ;
20619  int __cil_tmp117 ;
20620  struct device  const  *__cil_tmp118 ;
20621  int __cil_tmp119 ;
20622  u16 __cil_tmp120 ;
20623  int __cil_tmp121 ;
20624  u16 __cil_tmp122 ;
20625  struct usb_hub_descriptor *__cil_tmp123 ;
20626  __u8 __cil_tmp124 ;
20627  int __cil_tmp125 ;
20628  unsigned long (*__cil_tmp126)[1U] ;
20629  unsigned long volatile   *__cil_tmp127 ;
20630  struct device  const  *__cil_tmp128 ;
20631  int __cil_tmp129 ;
20632  struct device  const  *__cil_tmp130 ;
20633  int __cil_tmp131 ;
20634  int __cil_tmp132 ;
20635  int __cil_tmp133 ;
20636  struct device  const  *__cil_tmp134 ;
20637  bool __cil_tmp135 ;
20638  int __cil_tmp136 ;
20639  int __cil_tmp137 ;
20640  struct device  const  *__cil_tmp138 ;
20641  struct device *__cil_tmp139 ;
20642  struct kref *__cil_tmp140 ;
20643
20644  {
20645  ldv_26327: 
20646  {
20647#line 3396
20648  spin_lock_irq(& hub_event_lock);
20649#line 3397
20650  __cil_tmp29 = (struct list_head  const  *)(& hub_event_list);
20651#line 3397
20652  tmp___0 = list_empty(__cil_tmp29);
20653  }
20654#line 3397
20655  if (tmp___0 != 0) {
20656    {
20657#line 3398
20658    spin_unlock_irq(& hub_event_lock);
20659    }
20660#line 3399
20661    goto ldv_26310;
20662  } else {
20663
20664  }
20665  {
20666#line 3402
20667  tmp = hub_event_list.next;
20668#line 3403
20669  list_del_init(tmp);
20670#line 3405
20671  __mptr = (struct list_head  const  *)tmp;
20672#line 3405
20673  __cil_tmp30 = (struct usb_hub *)__mptr;
20674#line 3405
20675  hub = __cil_tmp30 + 1152921504606846752UL;
20676#line 3406
20677  __cil_tmp31 = & hub->kref;
20678#line 3406
20679  kref_get(__cil_tmp31);
20680#line 3407
20681  spin_unlock_irq(& hub_event_lock);
20682#line 3409
20683  hdev = hub->hdev;
20684#line 3410
20685  hub_dev = hub->intfdev;
20686#line 3411
20687  __mptr___0 = (struct device  const  *)hub_dev;
20688#line 3411
20689  __cil_tmp32 = (struct usb_interface *)__mptr___0;
20690#line 3411
20691  intf = __cil_tmp32 + 1152921504606846928UL;
20692  }
20693  {
20694#line 3412
20695  __cil_tmp33 = (struct usb_hub_descriptor *)0;
20696#line 3412
20697  __cil_tmp34 = (unsigned long )__cil_tmp33;
20698#line 3412
20699  __cil_tmp35 = hub->descriptor;
20700#line 3412
20701  __cil_tmp36 = (unsigned long )__cil_tmp35;
20702#line 3412
20703  if (__cil_tmp36 != __cil_tmp34) {
20704#line 3412
20705    __cil_tmp37 = hub->descriptor;
20706#line 3412
20707    __cil_tmp38 = __cil_tmp37->bNbrPorts;
20708#line 3412
20709    tmp___1 = (int )__cil_tmp38;
20710  } else {
20711#line 3412
20712    tmp___1 = 0;
20713  }
20714  }
20715  {
20716#line 3412
20717  __cil_tmp39 = (struct device  const  *)hub_dev;
20718#line 3412
20719  __cil_tmp40 = hdev->state;
20720#line 3412
20721  __cil_tmp41 = (unsigned int )__cil_tmp40;
20722#line 3412
20723  __cil_tmp42 = hub->change_bits[0];
20724#line 3412
20725  __cil_tmp43 = (unsigned short )__cil_tmp42;
20726#line 3412
20727  __cil_tmp44 = (int )__cil_tmp43;
20728#line 3412
20729  __cil_tmp45 = hub->event_bits[0];
20730#line 3412
20731  __cil_tmp46 = (unsigned short )__cil_tmp45;
20732#line 3412
20733  __cil_tmp47 = (int )__cil_tmp46;
20734#line 3412
20735  dev_printk("<7>", __cil_tmp39, "state %d ports %d chg %04x evt %04x\n", __cil_tmp41,
20736             tmp___1, __cil_tmp44, __cil_tmp47);
20737#line 3422
20738  __cil_tmp48 = & hdev->dev;
20739#line 3422
20740  device_lock(__cil_tmp48);
20741#line 3423
20742  __cil_tmp49 = (unsigned char *)hub;
20743#line 3423
20744  __cil_tmp50 = __cil_tmp49 + 468UL;
20745#line 3423
20746  __cil_tmp51 = *__cil_tmp50;
20747#line 3423
20748  __cil_tmp52 = (unsigned int )__cil_tmp51;
20749#line 3423
20750  __cil_tmp53 = __cil_tmp52 != 0U;
20751#line 3423
20752  __cil_tmp54 = (long )__cil_tmp53;
20753#line 3423
20754  tmp___2 = __builtin_expect(__cil_tmp54, 0L);
20755  }
20756#line 3423
20757  if (tmp___2 != 0L) {
20758#line 3424
20759    goto loop_disconnected;
20760  } else {
20761
20762  }
20763  {
20764#line 3427
20765  __cil_tmp55 = hdev->state;
20766#line 3427
20767  __cil_tmp56 = (unsigned int )__cil_tmp55;
20768#line 3427
20769  if (__cil_tmp56 == 0U) {
20770    {
20771#line 3428
20772    hub->error = -19;
20773#line 3429
20774    __cil_tmp57 = (enum hub_quiescing_type )0;
20775#line 3429
20776    hub_quiesce(hub, __cil_tmp57);
20777    }
20778#line 3430
20779    goto loop;
20780  } else {
20781
20782  }
20783  }
20784  {
20785#line 3434
20786  ret = usb_autopm_get_interface(intf);
20787  }
20788#line 3435
20789  if (ret != 0) {
20790    {
20791#line 3436
20792    __cil_tmp58 = (struct device  const  *)hub_dev;
20793#line 3436
20794    dev_printk("<7>", __cil_tmp58, "Can\'t autoresume: %d\n", ret);
20795    }
20796#line 3437
20797    goto loop;
20798  } else {
20799
20800  }
20801  {
20802#line 3441
20803  __cil_tmp59 = (unsigned char *)hub;
20804#line 3441
20805  __cil_tmp60 = __cil_tmp59 + 468UL;
20806#line 3441
20807  __cil_tmp61 = *__cil_tmp60;
20808#line 3441
20809  __cil_tmp62 = (unsigned int )__cil_tmp61;
20810#line 3441
20811  if (__cil_tmp62 != 0U) {
20812#line 3442
20813    goto loop_autopm;
20814  } else {
20815
20816  }
20817  }
20818  {
20819#line 3444
20820  __cil_tmp63 = hub->error;
20821#line 3444
20822  if (__cil_tmp63 != 0) {
20823    {
20824#line 3445
20825    __cil_tmp64 = (struct device  const  *)hub_dev;
20826#line 3445
20827    __cil_tmp65 = hub->error;
20828#line 3445
20829    dev_printk("<7>", __cil_tmp64, "resetting for error %d\n", __cil_tmp65);
20830#line 3448
20831    ret = usb_reset_device(hdev);
20832    }
20833#line 3449
20834    if (ret != 0) {
20835      {
20836#line 3450
20837      __cil_tmp66 = (struct device  const  *)hub_dev;
20838#line 3450
20839      dev_printk("<7>", __cil_tmp66, "error resetting hub: %d\n", ret);
20840      }
20841#line 3452
20842      goto loop_autopm;
20843    } else {
20844
20845    }
20846#line 3455
20847    hub->nerrors = 0;
20848#line 3456
20849    hub->error = 0;
20850  } else {
20851
20852  }
20853  }
20854#line 3460
20855  i = 1;
20856#line 3460
20857  goto ldv_26323;
20858  ldv_26322: 
20859  {
20860#line 3461
20861  __cil_tmp67 = & hub->busy_bits;
20862#line 3461
20863  __cil_tmp68 = (unsigned long const volatile   *)__cil_tmp67;
20864#line 3461
20865  tmp___3 = variable_test_bit(i, __cil_tmp68);
20866  }
20867#line 3461
20868  if (tmp___3 != 0) {
20869#line 3462
20870    goto ldv_26318;
20871  } else {
20872
20873  }
20874  {
20875#line 3463
20876  __cil_tmp69 = & hub->change_bits;
20877#line 3463
20878  __cil_tmp70 = (unsigned long const volatile   *)__cil_tmp69;
20879#line 3463
20880  connect_change = variable_test_bit(i, __cil_tmp70);
20881#line 3464
20882  __cil_tmp71 = & hub->event_bits;
20883#line 3464
20884  __cil_tmp72 = (unsigned long volatile   *)__cil_tmp71;
20885#line 3464
20886  tmp___4 = test_and_clear_bit(i, __cil_tmp72);
20887  }
20888#line 3464
20889  if (tmp___4 == 0) {
20890#line 3464
20891    if (connect_change == 0) {
20892#line 3466
20893      goto ldv_26318;
20894    } else {
20895
20896    }
20897  } else {
20898
20899  }
20900  {
20901#line 3468
20902  ret = hub_port_status(hub, i, & portstatus, & portchange);
20903  }
20904#line 3470
20905  if (ret < 0) {
20906#line 3471
20907    goto ldv_26318;
20908  } else {
20909
20910  }
20911  {
20912#line 3473
20913  __cil_tmp73 = (int )portchange;
20914#line 3473
20915  if (__cil_tmp73 & 1) {
20916    {
20917#line 3474
20918    clear_port_feature(hdev, i, 16);
20919#line 3476
20920    connect_change = 1;
20921    }
20922  } else {
20923
20924  }
20925  }
20926  {
20927#line 3479
20928  __cil_tmp74 = (int )portchange;
20929#line 3479
20930  __cil_tmp75 = __cil_tmp74 & 2;
20931#line 3479
20932  if (__cil_tmp75 != 0) {
20933#line 3480
20934    if (connect_change == 0) {
20935      {
20936#line 3481
20937      __cil_tmp76 = (struct device  const  *)hub_dev;
20938#line 3481
20939      __cil_tmp77 = (int )portstatus;
20940#line 3481
20941      dev_printk("<7>", __cil_tmp76, "port %d enable change, status %08x\n", i, __cil_tmp77);
20942      }
20943    } else {
20944
20945    }
20946    {
20947#line 3485
20948    clear_port_feature(hdev, i, 17);
20949    }
20950    {
20951#line 3494
20952    __cil_tmp78 = (int )portstatus;
20953#line 3494
20954    __cil_tmp79 = __cil_tmp78 & 2;
20955#line 3494
20956    if (__cil_tmp79 == 0) {
20957#line 3494
20958      if (connect_change == 0) {
20959        {
20960#line 3494
20961        __cil_tmp80 = (struct usb_device *)0;
20962#line 3494
20963        __cil_tmp81 = (unsigned long )__cil_tmp80;
20964#line 3494
20965        __cil_tmp82 = hdev->children[i + -1];
20966#line 3494
20967        __cil_tmp83 = (unsigned long )__cil_tmp82;
20968#line 3494
20969        if (__cil_tmp83 != __cil_tmp81) {
20970          {
20971#line 3497
20972          __cil_tmp84 = (struct device  const  *)hub_dev;
20973#line 3497
20974          dev_err(__cil_tmp84, "port %i disabled by hub (EMI?), re-enabling...\n",
20975                  i);
20976#line 3502
20977          connect_change = 1;
20978          }
20979        } else {
20980
20981        }
20982        }
20983      } else {
20984
20985      }
20986    } else {
20987
20988    }
20989    }
20990  } else {
20991
20992  }
20993  }
20994  {
20995#line 3506
20996  __cil_tmp85 = (int )portchange;
20997#line 3506
20998  __cil_tmp86 = __cil_tmp85 & 4;
20999#line 3506
21000  if (__cil_tmp86 != 0) {
21001    {
21002#line 3509
21003    clear_port_feature(hdev, i, 18);
21004#line 3511
21005    udev = hdev->children[i + -1];
21006    }
21007    {
21008#line 3512
21009    __cil_tmp87 = (struct usb_device *)0;
21010#line 3512
21011    __cil_tmp88 = (unsigned long )__cil_tmp87;
21012#line 3512
21013    __cil_tmp89 = (unsigned long )udev;
21014#line 3512
21015    if (__cil_tmp89 != __cil_tmp88) {
21016      {
21017#line 3514
21018      msleep(10U);
21019#line 3516
21020      __cil_tmp90 = & udev->dev;
21021#line 3516
21022      device_lock(__cil_tmp90);
21023#line 3517
21024      __cil_tmp91 = hdev->children[i + -1];
21025#line 3517
21026      ret = usb_remote_wakeup(__cil_tmp91);
21027#line 3519
21028      __cil_tmp92 = & udev->dev;
21029#line 3519
21030      device_unlock(__cil_tmp92);
21031      }
21032#line 3520
21033      if (ret < 0) {
21034#line 3521
21035        connect_change = 1;
21036      } else {
21037
21038      }
21039    } else {
21040      {
21041#line 3523
21042      ret = -19;
21043#line 3524
21044      hub_port_disable(hub, i, 1);
21045      }
21046    }
21047    }
21048    {
21049#line 3526
21050    __cil_tmp93 = (struct device  const  *)hub_dev;
21051#line 3526
21052    dev_printk("<7>", __cil_tmp93, "resume on port %d, status %d\n", i, ret);
21053    }
21054  } else {
21055
21056  }
21057  }
21058  {
21059#line 3531
21060  __cil_tmp94 = (int )portchange;
21061#line 3531
21062  __cil_tmp95 = __cil_tmp94 & 8;
21063#line 3531
21064  if (__cil_tmp95 != 0) {
21065    {
21066#line 3532
21067    status = (u16 )0U;
21068#line 3535
21069    __cil_tmp96 = (struct device  const  *)hub_dev;
21070#line 3535
21071    dev_printk("<7>", __cil_tmp96, "over-current change on port %d\n", i);
21072#line 3537
21073    clear_port_feature(hdev, i, 19);
21074#line 3539
21075    msleep(100U);
21076#line 3540
21077    __cil_tmp97 = (bool )1;
21078#line 3540
21079    hub_power_on(hub, __cil_tmp97);
21080#line 3541
21081    hub_port_status(hub, i, & status, & unused);
21082    }
21083    {
21084#line 3542
21085    __cil_tmp98 = (int )status;
21086#line 3542
21087    __cil_tmp99 = __cil_tmp98 & 8;
21088#line 3542
21089    if (__cil_tmp99 != 0) {
21090      {
21091#line 3543
21092      __cil_tmp100 = (struct device  const  *)hub_dev;
21093#line 3543
21094      dev_err(__cil_tmp100, "over-current condition on port %d\n", i);
21095      }
21096    } else {
21097
21098    }
21099    }
21100  } else {
21101
21102  }
21103  }
21104  {
21105#line 3547
21106  __cil_tmp101 = (int )portchange;
21107#line 3547
21108  __cil_tmp102 = __cil_tmp101 & 16;
21109#line 3547
21110  if (__cil_tmp102 != 0) {
21111    {
21112#line 3548
21113    __cil_tmp103 = (struct device  const  *)hub_dev;
21114#line 3548
21115    dev_printk("<7>", __cil_tmp103, "reset change on port %d\n", i);
21116#line 3551
21117    clear_port_feature(hdev, i, 20);
21118    }
21119  } else {
21120
21121  }
21122  }
21123  {
21124#line 3554
21125  __cil_tmp104 = (int )portchange;
21126#line 3554
21127  __cil_tmp105 = __cil_tmp104 & 32;
21128#line 3554
21129  if (__cil_tmp105 != 0) {
21130    {
21131#line 3554
21132    __cil_tmp106 = hub->hdev;
21133#line 3554
21134    tmp___5 = hub_is_superspeed(__cil_tmp106);
21135    }
21136#line 3554
21137    if (tmp___5 != 0) {
21138      {
21139#line 3556
21140      __cil_tmp107 = (struct device  const  *)hub_dev;
21141#line 3556
21142      dev_printk("<7>", __cil_tmp107, "warm reset change on port %d\n", i);
21143#line 3559
21144      clear_port_feature(hdev, i, 29);
21145      }
21146    } else {
21147
21148    }
21149  } else {
21150
21151  }
21152  }
21153  {
21154#line 3562
21155  __cil_tmp108 = (int )portchange;
21156#line 3562
21157  __cil_tmp109 = __cil_tmp108 & 64;
21158#line 3562
21159  if (__cil_tmp109 != 0) {
21160    {
21161#line 3563
21162    __cil_tmp110 = hub->hdev;
21163#line 3563
21164    clear_port_feature(__cil_tmp110, i, 25);
21165    }
21166  } else {
21167
21168  }
21169  }
21170  {
21171#line 3566
21172  __cil_tmp111 = (int )portchange;
21173#line 3566
21174  __cil_tmp112 = __cil_tmp111 & 128;
21175#line 3566
21176  if (__cil_tmp112 != 0) {
21177    {
21178#line 3567
21179    __cil_tmp113 = (struct device  const  *)hub_dev;
21180#line 3567
21181    dev_warn(__cil_tmp113, "config error on port %d\n", i);
21182#line 3570
21183    __cil_tmp114 = hub->hdev;
21184#line 3570
21185    clear_port_feature(__cil_tmp114, i, 26);
21186    }
21187  } else {
21188
21189  }
21190  }
21191  {
21192#line 3577
21193  __cil_tmp115 = hub->hdev;
21194#line 3577
21195  tmp___6 = hub_is_superspeed(__cil_tmp115);
21196  }
21197#line 3577
21198  if (tmp___6 != 0) {
21199    {
21200#line 3577
21201    __cil_tmp116 = (int )portstatus;
21202#line 3577
21203    __cil_tmp117 = __cil_tmp116 & 480;
21204#line 3577
21205    if (__cil_tmp117 == 192) {
21206      {
21207#line 3580
21208      __cil_tmp118 = (struct device  const  *)hub_dev;
21209#line 3580
21210      dev_printk("<7>", __cil_tmp118, "warm reset port %d\n", i);
21211#line 3581
21212      hub_port_warm_reset(hub, i);
21213      }
21214    } else {
21215
21216    }
21217    }
21218  } else {
21219
21220  }
21221#line 3584
21222  if (connect_change != 0) {
21223    {
21224#line 3585
21225    __cil_tmp119 = (int )portstatus;
21226#line 3585
21227    __cil_tmp120 = (u16 )__cil_tmp119;
21228#line 3585
21229    __cil_tmp121 = (int )portchange;
21230#line 3585
21231    __cil_tmp122 = (u16 )__cil_tmp121;
21232#line 3585
21233    hub_port_connect_change(hub, i, __cil_tmp120, __cil_tmp122);
21234    }
21235  } else {
21236
21237  }
21238  ldv_26318: 
21239#line 3460
21240  i = i + 1;
21241  ldv_26323: ;
21242  {
21243#line 3460
21244  __cil_tmp123 = hub->descriptor;
21245#line 3460
21246  __cil_tmp124 = __cil_tmp123->bNbrPorts;
21247#line 3460
21248  __cil_tmp125 = (int )__cil_tmp124;
21249#line 3460
21250  if (__cil_tmp125 >= i) {
21251#line 3461
21252    goto ldv_26322;
21253  } else {
21254#line 3463
21255    goto ldv_26324;
21256  }
21257  }
21258  ldv_26324: 
21259  {
21260#line 3590
21261  __cil_tmp126 = & hub->event_bits;
21262#line 3590
21263  __cil_tmp127 = (unsigned long volatile   *)__cil_tmp126;
21264#line 3590
21265  tmp___8 = test_and_clear_bit(0, __cil_tmp127);
21266  }
21267#line 3590
21268  if (tmp___8 == 0) {
21269
21270  } else {
21271    {
21272#line 3592
21273    tmp___7 = hub_hub_status(hub, & hubstatus, & hubchange);
21274    }
21275#line 3592
21276    if (tmp___7 < 0) {
21277      {
21278#line 3593
21279      __cil_tmp128 = (struct device  const  *)hub_dev;
21280#line 3593
21281      dev_err(__cil_tmp128, "get_hub_status failed\n");
21282      }
21283    } else {
21284      {
21285#line 3595
21286      __cil_tmp129 = (int )hubchange;
21287#line 3595
21288      if (__cil_tmp129 & 1) {
21289        {
21290#line 3596
21291        __cil_tmp130 = (struct device  const  *)hub_dev;
21292#line 3596
21293        dev_printk("<7>", __cil_tmp130, "power change\n");
21294#line 3597
21295        clear_hub_feature(hdev, 0);
21296        }
21297        {
21298#line 3598
21299        __cil_tmp131 = (int )hubstatus;
21300#line 3598
21301        if (__cil_tmp131 & 1) {
21302#line 3600
21303          hub->limited_power = (unsigned char)1;
21304        } else {
21305#line 3602
21306          hub->limited_power = (unsigned char)0;
21307        }
21308        }
21309      } else {
21310
21311      }
21312      }
21313      {
21314#line 3604
21315      __cil_tmp132 = (int )hubchange;
21316#line 3604
21317      __cil_tmp133 = __cil_tmp132 & 2;
21318#line 3604
21319      if (__cil_tmp133 != 0) {
21320        {
21321#line 3605
21322        status___0 = (u16 )0U;
21323#line 3608
21324        __cil_tmp134 = (struct device  const  *)hub_dev;
21325#line 3608
21326        dev_printk("<7>", __cil_tmp134, "over-current change\n");
21327#line 3609
21328        clear_hub_feature(hdev, 1);
21329#line 3610
21330        msleep(500U);
21331#line 3611
21332        __cil_tmp135 = (bool )1;
21333#line 3611
21334        hub_power_on(hub, __cil_tmp135);
21335#line 3612
21336        hub_hub_status(hub, & status___0, & unused___0);
21337        }
21338        {
21339#line 3613
21340        __cil_tmp136 = (int )status___0;
21341#line 3613
21342        __cil_tmp137 = __cil_tmp136 & 2;
21343#line 3613
21344        if (__cil_tmp137 != 0) {
21345          {
21346#line 3614
21347          __cil_tmp138 = (struct device  const  *)hub_dev;
21348#line 3614
21349          dev_err(__cil_tmp138, "over-current condition\n");
21350          }
21351        } else {
21352
21353        }
21354        }
21355      } else {
21356
21357      }
21358      }
21359    }
21360  }
21361  loop_autopm: 
21362  {
21363#line 3621
21364  usb_autopm_put_interface_no_suspend(intf);
21365  }
21366  loop: 
21367  {
21368#line 3626
21369  usb_autopm_put_interface(intf);
21370  }
21371  loop_disconnected: 
21372  {
21373#line 3628
21374  __cil_tmp139 = & hdev->dev;
21375#line 3628
21376  device_unlock(__cil_tmp139);
21377#line 3629
21378  __cil_tmp140 = & hub->kref;
21379#line 3629
21380  kref_put(__cil_tmp140, & hub_release);
21381  }
21382#line 3631
21383  goto ldv_26327;
21384  ldv_26310: ;
21385#line 3633
21386  return;
21387}
21388}
21389#line 3634 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
21390static int hub_thread(void *__unused ) 
21391{ int __retval ;
21392  int __ret ;
21393  wait_queue_t __wait ;
21394  struct task_struct *tmp ;
21395  int tmp___0 ;
21396  int tmp___1 ;
21397  struct task_struct *tmp___2 ;
21398  int tmp___3 ;
21399  struct task_struct *tmp___4 ;
21400  int tmp___5 ;
21401  int tmp___6 ;
21402  int tmp___7 ;
21403  struct task_struct *tmp___8 ;
21404  int tmp___9 ;
21405  int tmp___10 ;
21406  int tmp___11 ;
21407  struct task_struct *tmp___12 ;
21408  int tmp___13 ;
21409  int tmp___14 ;
21410  int tmp___15 ;
21411  int tmp___16 ;
21412  struct list_head  const  *__cil_tmp23 ;
21413  struct list_head  const  *__cil_tmp24 ;
21414  struct list_head  const  *__cil_tmp25 ;
21415  struct list_head  const  *__cil_tmp26 ;
21416
21417  {
21418  {
21419#line 3641
21420  set_freezable();
21421  }
21422  ldv_26341: 
21423  {
21424#line 3644
21425  hub_events();
21426  }
21427  ldv_26339: 
21428  {
21429#line 3645
21430  __ret = 0;
21431#line 3645
21432  __cil_tmp23 = (struct list_head  const  *)(& hub_event_list);
21433#line 3645
21434  tmp___6 = list_empty(__cil_tmp23);
21435  }
21436#line 3645
21437  if (tmp___6 != 0) {
21438    {
21439#line 3645
21440    tmp___7 = kthread_should_stop();
21441    }
21442#line 3645
21443    if (tmp___7 == 0) {
21444      {
21445#line 3645
21446      tmp___8 = get_current();
21447#line 3645
21448      tmp___9 = freezing(tmp___8);
21449      }
21450#line 3645
21451      if (tmp___9 == 0) {
21452        {
21453#line 3645
21454        tmp = get_current();
21455#line 3645
21456        __wait.flags = 0U;
21457#line 3645
21458        __wait.private = (void *)tmp;
21459#line 3645
21460        __wait.func = & autoremove_wake_function;
21461#line 3645
21462        __wait.task_list.next = & __wait.task_list;
21463#line 3645
21464        __wait.task_list.prev = & __wait.task_list;
21465        }
21466        ldv_26336: 
21467        {
21468#line 3645
21469        prepare_to_wait(& khubd_wait, & __wait, 1);
21470#line 3645
21471        __cil_tmp24 = (struct list_head  const  *)(& hub_event_list);
21472#line 3645
21473        tmp___0 = list_empty(__cil_tmp24);
21474        }
21475#line 3645
21476        if (tmp___0 == 0) {
21477#line 3645
21478          goto ldv_26334;
21479        } else {
21480          {
21481#line 3645
21482          tmp___1 = kthread_should_stop();
21483          }
21484#line 3645
21485          if (tmp___1 != 0) {
21486#line 3645
21487            goto ldv_26334;
21488          } else {
21489            {
21490#line 3645
21491            tmp___2 = get_current();
21492#line 3645
21493            tmp___3 = freezing(tmp___2);
21494            }
21495#line 3645
21496            if (tmp___3 != 0) {
21497#line 3645
21498              goto ldv_26334;
21499            } else {
21500
21501            }
21502          }
21503        }
21504        {
21505#line 3645
21506        tmp___4 = get_current();
21507#line 3645
21508        tmp___5 = signal_pending(tmp___4);
21509        }
21510#line 3645
21511        if (tmp___5 == 0) {
21512          {
21513#line 3645
21514          schedule();
21515          }
21516#line 3645
21517          goto ldv_26335;
21518        } else {
21519
21520        }
21521#line 3645
21522        __ret = -512;
21523#line 3645
21524        goto ldv_26334;
21525        ldv_26335: ;
21526#line 3645
21527        goto ldv_26336;
21528        ldv_26334: 
21529        {
21530#line 3645
21531        finish_wait(& khubd_wait, & __wait);
21532        }
21533      } else {
21534
21535      }
21536    } else {
21537
21538    }
21539  } else {
21540
21541  }
21542#line 3645
21543  __retval = __ret;
21544#line 3645
21545  if (__retval != 0) {
21546    {
21547#line 3645
21548    tmp___12 = get_current();
21549#line 3645
21550    tmp___13 = freezing(tmp___12);
21551    }
21552#line 3645
21553    if (tmp___13 == 0) {
21554#line 3645
21555      goto ldv_26338;
21556    } else {
21557#line 3645
21558      goto _L;
21559    }
21560  } else {
21561    _L: 
21562    {
21563#line 3645
21564    __cil_tmp25 = (struct list_head  const  *)(& hub_event_list);
21565#line 3645
21566    tmp___10 = list_empty(__cil_tmp25);
21567    }
21568#line 3645
21569    if (tmp___10 != 0) {
21570      {
21571#line 3645
21572      tmp___11 = kthread_should_stop();
21573      }
21574#line 3645
21575      if (tmp___11 == 0) {
21576#line 3645
21577        __retval = -512;
21578      } else {
21579
21580      }
21581    } else {
21582
21583    }
21584  }
21585  {
21586#line 3645
21587  tmp___14 = try_to_freeze();
21588  }
21589#line 3645
21590  if (tmp___14 != 0) {
21591#line 3646
21592    goto ldv_26339;
21593  } else {
21594#line 3648
21595    goto ldv_26338;
21596  }
21597  ldv_26338: 
21598  {
21599#line 3648
21600  tmp___15 = kthread_should_stop();
21601  }
21602#line 3648
21603  if (tmp___15 == 0) {
21604#line 3649
21605    goto ldv_26341;
21606  } else {
21607    {
21608#line 3648
21609    __cil_tmp26 = (struct list_head  const  *)(& hub_event_list);
21610#line 3648
21611    tmp___16 = list_empty(__cil_tmp26);
21612    }
21613#line 3648
21614    if (tmp___16 == 0) {
21615#line 3649
21616      goto ldv_26341;
21617    } else {
21618#line 3651
21619      goto ldv_26342;
21620    }
21621  }
21622  ldv_26342: 
21623  {
21624#line 3650
21625  printk("<7>%s: khubd exiting\n", usbcore_name);
21626  }
21627#line 3651
21628  return (0);
21629}
21630}
21631#line 3654 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
21632static struct usb_device_id  const  hub_id_table[3U]  = {      {(__u16 )16U, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
21633      (__u8 )9U, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
21634      (unsigned char)0, 0UL}, 
21635        {(__u16 )128U, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
21636      (unsigned char)0, (unsigned char)0, (unsigned char)0, (__u8 )9U, (unsigned char)0,
21637      (unsigned char)0, 0UL}, 
21638        {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
21639      (unsigned short)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
21640      (unsigned char)0, (unsigned char)0, 0UL}};
21641#line 3662 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
21642struct usb_device_id  const  __mod_usb_device_table  ;
21643#line 3664 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
21644static struct usb_driver hub_driver  = 
21645#line 3664
21646     {"hub", & hub_probe, & hub_disconnect, & hub_ioctl, & hub_suspend, & hub_resume,
21647    & hub_reset_resume, & hub_pre_reset, & hub_post_reset, (struct usb_device_id  const  *)(& hub_id_table),
21648    {{{{{0U}, 0U, 0U, (void *)0, {(struct lock_class_key *)0, {(struct lock_class *)0,
21649                                                               (struct lock_class *)0},
21650                                  (char const   *)0, 0, 0UL}}}}, {(struct list_head *)0,
21651                                                                  (struct list_head *)0}},
21652    {{(char const   *)0, (struct bus_type *)0, (struct module *)0, (char const   *)0,
21653      (_Bool)0, (struct of_device_id  const  *)0, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
21654      (void (*)(struct device * ))0, (int (*)(struct device * , pm_message_t  ))0,
21655      (int (*)(struct device * ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
21656      (struct driver_private *)0}, 0}, (unsigned char)0, (unsigned char)1, (unsigned char)0};
21657#line 3678 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
21658int usb_hub_init(void) 
21659{ int tmp ;
21660  struct task_struct *__k ;
21661  struct task_struct *tmp___0 ;
21662  long tmp___1 ;
21663  long tmp___2 ;
21664  void *__cil_tmp6 ;
21665  void const   *__cil_tmp7 ;
21666  void const   *__cil_tmp8 ;
21667
21668  {
21669  {
21670#line 3680
21671  tmp = usb_register(& hub_driver);
21672  }
21673#line 3680
21674  if (tmp < 0) {
21675    {
21676#line 3681
21677    printk("<3>%s: can\'t register hub driver\n", usbcore_name);
21678    }
21679#line 3683
21680    return (-1);
21681  } else {
21682
21683  }
21684  {
21685#line 3686
21686  __cil_tmp6 = (void *)0;
21687#line 3686
21688  tmp___0 = kthread_create_on_node(& hub_thread, __cil_tmp6, -1, "khubd");
21689#line 3686
21690  __k = tmp___0;
21691#line 3686
21692  __cil_tmp7 = (void const   *)__k;
21693#line 3686
21694  tmp___1 = IS_ERR(__cil_tmp7);
21695  }
21696#line 3686
21697  if (tmp___1 == 0L) {
21698    {
21699#line 3686
21700    wake_up_process(__k);
21701    }
21702  } else {
21703
21704  }
21705  {
21706#line 3686
21707  khubd_task = __k;
21708#line 3687
21709  __cil_tmp8 = (void const   *)khubd_task;
21710#line 3687
21711  tmp___2 = IS_ERR(__cil_tmp8);
21712  }
21713#line 3687
21714  if (tmp___2 == 0L) {
21715#line 3688
21716    return (0);
21717  } else {
21718
21719  }
21720  {
21721#line 3691
21722  usb_deregister(& hub_driver);
21723#line 3692
21724  printk("<3>%s: can\'t start khubd\n", usbcore_name);
21725  }
21726#line 3694
21727  return (-1);
21728}
21729}
21730#line 3697 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
21731void usb_hub_cleanup(void) 
21732{ 
21733
21734  {
21735  {
21736#line 3699
21737  kthread_stop(khubd_task);
21738#line 3708
21739  usb_deregister(& hub_driver);
21740  }
21741#line 3709
21742  return;
21743}
21744}
21745#line 3711 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
21746static int descriptors_changed(struct usb_device *udev , struct usb_device_descriptor *old_device_descriptor ) 
21747{ int changed ;
21748  unsigned int index ;
21749  unsigned int serial_len ;
21750  unsigned int len ;
21751  unsigned int old_length ;
21752  int length ;
21753  char *buf ;
21754  int tmp ;
21755  size_t tmp___0 ;
21756  unsigned int _max1 ;
21757  unsigned int _max2 ;
21758  unsigned int tmp___1 ;
21759  void *tmp___2 ;
21760  int tmp___3 ;
21761  int tmp___4 ;
21762  struct usb_device_descriptor *__cil_tmp18 ;
21763  void const   *__cil_tmp19 ;
21764  void const   *__cil_tmp20 ;
21765  char *__cil_tmp21 ;
21766  unsigned long __cil_tmp22 ;
21767  char *__cil_tmp23 ;
21768  unsigned long __cil_tmp24 ;
21769  char *__cil_tmp25 ;
21770  char const   *__cil_tmp26 ;
21771  unsigned int __cil_tmp27 ;
21772  unsigned long __cil_tmp28 ;
21773  struct usb_host_config *__cil_tmp29 ;
21774  struct usb_host_config *__cil_tmp30 ;
21775  __le16 __cil_tmp31 ;
21776  __u8 __cil_tmp32 ;
21777  unsigned int __cil_tmp33 ;
21778  size_t __cil_tmp34 ;
21779  char *__cil_tmp35 ;
21780  unsigned long __cil_tmp36 ;
21781  unsigned long __cil_tmp37 ;
21782  struct device *__cil_tmp38 ;
21783  struct device  const  *__cil_tmp39 ;
21784  unsigned long __cil_tmp40 ;
21785  struct usb_host_config *__cil_tmp41 ;
21786  struct usb_host_config *__cil_tmp42 ;
21787  __le16 __cil_tmp43 ;
21788  unsigned char __cil_tmp44 ;
21789  int __cil_tmp45 ;
21790  unsigned char __cil_tmp46 ;
21791  void *__cil_tmp47 ;
21792  int __cil_tmp48 ;
21793  unsigned int __cil_tmp49 ;
21794  struct device *__cil_tmp50 ;
21795  struct device  const  *__cil_tmp51 ;
21796  void const   *__cil_tmp52 ;
21797  unsigned long __cil_tmp53 ;
21798  char **__cil_tmp54 ;
21799  char **__cil_tmp55 ;
21800  char *__cil_tmp56 ;
21801  void const   *__cil_tmp57 ;
21802  size_t __cil_tmp58 ;
21803  struct device *__cil_tmp59 ;
21804  struct device  const  *__cil_tmp60 ;
21805  struct usb_config_descriptor *__cil_tmp61 ;
21806  __u8 __cil_tmp62 ;
21807  int __cil_tmp63 ;
21808  __u8 __cil_tmp64 ;
21809  unsigned int __cil_tmp65 ;
21810  __u8 __cil_tmp66 ;
21811  int __cil_tmp67 ;
21812  size_t __cil_tmp68 ;
21813  int __cil_tmp69 ;
21814  unsigned int __cil_tmp70 ;
21815  struct device *__cil_tmp71 ;
21816  struct device  const  *__cil_tmp72 ;
21817  void const   *__cil_tmp73 ;
21818  char *__cil_tmp74 ;
21819  void const   *__cil_tmp75 ;
21820  size_t __cil_tmp76 ;
21821  struct device *__cil_tmp77 ;
21822  struct device  const  *__cil_tmp78 ;
21823  void const   *__cil_tmp79 ;
21824
21825  {
21826  {
21827#line 3714
21828  changed = 0;
21829#line 3716
21830  serial_len = 0U;
21831#line 3722
21832  __cil_tmp18 = & udev->descriptor;
21833#line 3722
21834  __cil_tmp19 = (void const   *)__cil_tmp18;
21835#line 3722
21836  __cil_tmp20 = (void const   *)old_device_descriptor;
21837#line 3722
21838  tmp = memcmp(__cil_tmp19, __cil_tmp20, 18UL);
21839  }
21840#line 3722
21841  if (tmp != 0) {
21842#line 3724
21843    return (1);
21844  } else {
21845
21846  }
21847  {
21848#line 3732
21849  __cil_tmp21 = (char *)0;
21850#line 3732
21851  __cil_tmp22 = (unsigned long )__cil_tmp21;
21852#line 3732
21853  __cil_tmp23 = udev->serial;
21854#line 3732
21855  __cil_tmp24 = (unsigned long )__cil_tmp23;
21856#line 3732
21857  if (__cil_tmp24 != __cil_tmp22) {
21858    {
21859#line 3733
21860    __cil_tmp25 = udev->serial;
21861#line 3733
21862    __cil_tmp26 = (char const   *)__cil_tmp25;
21863#line 3733
21864    tmp___0 = strlen(__cil_tmp26);
21865#line 3733
21866    __cil_tmp27 = (unsigned int )tmp___0;
21867#line 3733
21868    serial_len = __cil_tmp27 + 1U;
21869    }
21870  } else {
21871
21872  }
21873  }
21874#line 3735
21875  len = serial_len;
21876#line 3736
21877  index = 0U;
21878#line 3736
21879  goto ldv_26369;
21880  ldv_26368: 
21881#line 3737
21882  __cil_tmp28 = (unsigned long )index;
21883#line 3737
21884  __cil_tmp29 = udev->config;
21885#line 3737
21886  __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
21887#line 3737
21888  __cil_tmp31 = __cil_tmp30->desc.wTotalLength;
21889#line 3737
21890  old_length = (unsigned int )__cil_tmp31;
21891#line 3738
21892  _max1 = len;
21893#line 3738
21894  _max2 = old_length;
21895#line 3738
21896  if (_max1 > _max2) {
21897#line 3738
21898    tmp___1 = _max1;
21899  } else {
21900#line 3738
21901    tmp___1 = _max2;
21902  }
21903#line 3738
21904  len = tmp___1;
21905#line 3736
21906  index = index + 1U;
21907  ldv_26369: ;
21908  {
21909#line 3736
21910  __cil_tmp32 = udev->descriptor.bNumConfigurations;
21911#line 3736
21912  __cil_tmp33 = (unsigned int )__cil_tmp32;
21913#line 3736
21914  if (__cil_tmp33 > index) {
21915#line 3737
21916    goto ldv_26368;
21917  } else {
21918#line 3739
21919    goto ldv_26370;
21920  }
21921  }
21922  ldv_26370: 
21923  {
21924#line 3741
21925  __cil_tmp34 = (size_t )len;
21926#line 3741
21927  tmp___2 = kmalloc(__cil_tmp34, 16U);
21928#line 3741
21929  buf = (char *)tmp___2;
21930  }
21931  {
21932#line 3742
21933  __cil_tmp35 = (char *)0;
21934#line 3742
21935  __cil_tmp36 = (unsigned long )__cil_tmp35;
21936#line 3742
21937  __cil_tmp37 = (unsigned long )buf;
21938#line 3742
21939  if (__cil_tmp37 == __cil_tmp36) {
21940    {
21941#line 3743
21942    __cil_tmp38 = & udev->dev;
21943#line 3743
21944    __cil_tmp39 = (struct device  const  *)__cil_tmp38;
21945#line 3743
21946    dev_err(__cil_tmp39, "no mem to re-read configs after reset\n");
21947    }
21948#line 3745
21949    return (1);
21950  } else {
21951
21952  }
21953  }
21954#line 3747
21955  index = 0U;
21956#line 3747
21957  goto ldv_26373;
21958  ldv_26372: 
21959  {
21960#line 3748
21961  __cil_tmp40 = (unsigned long )index;
21962#line 3748
21963  __cil_tmp41 = udev->config;
21964#line 3748
21965  __cil_tmp42 = __cil_tmp41 + __cil_tmp40;
21966#line 3748
21967  __cil_tmp43 = __cil_tmp42->desc.wTotalLength;
21968#line 3748
21969  old_length = (unsigned int )__cil_tmp43;
21970#line 3749
21971  __cil_tmp44 = (unsigned char )index;
21972#line 3749
21973  __cil_tmp45 = (int )__cil_tmp44;
21974#line 3749
21975  __cil_tmp46 = (unsigned char )__cil_tmp45;
21976#line 3749
21977  __cil_tmp47 = (void *)buf;
21978#line 3749
21979  __cil_tmp48 = (int )old_length;
21980#line 3749
21981  length = usb_get_descriptor(udev, (unsigned char)2, __cil_tmp46, __cil_tmp47, __cil_tmp48);
21982  }
21983  {
21984#line 3751
21985  __cil_tmp49 = (unsigned int )length;
21986#line 3751
21987  if (__cil_tmp49 != old_length) {
21988    {
21989#line 3752
21990    __cil_tmp50 = & udev->dev;
21991#line 3752
21992    __cil_tmp51 = (struct device  const  *)__cil_tmp50;
21993#line 3752
21994    dev_printk("<7>", __cil_tmp51, "config index %d, error %d\n", index, length);
21995#line 3754
21996    changed = 1;
21997    }
21998#line 3755
21999    goto ldv_26371;
22000  } else {
22001
22002  }
22003  }
22004  {
22005#line 3757
22006  __cil_tmp52 = (void const   *)buf;
22007#line 3757
22008  __cil_tmp53 = (unsigned long )index;
22009#line 3757
22010  __cil_tmp54 = udev->rawdescriptors;
22011#line 3757
22012  __cil_tmp55 = __cil_tmp54 + __cil_tmp53;
22013#line 3757
22014  __cil_tmp56 = *__cil_tmp55;
22015#line 3757
22016  __cil_tmp57 = (void const   *)__cil_tmp56;
22017#line 3757
22018  __cil_tmp58 = (size_t )old_length;
22019#line 3757
22020  tmp___3 = memcmp(__cil_tmp52, __cil_tmp57, __cil_tmp58);
22021  }
22022#line 3757
22023  if (tmp___3 != 0) {
22024    {
22025#line 3759
22026    __cil_tmp59 = & udev->dev;
22027#line 3759
22028    __cil_tmp60 = (struct device  const  *)__cil_tmp59;
22029#line 3759
22030    __cil_tmp61 = (struct usb_config_descriptor *)buf;
22031#line 3759
22032    __cil_tmp62 = __cil_tmp61->bConfigurationValue;
22033#line 3759
22034    __cil_tmp63 = (int )__cil_tmp62;
22035#line 3759
22036    dev_printk("<7>", __cil_tmp60, "config index %d changed (#%d)\n", index, __cil_tmp63);
22037#line 3763
22038    changed = 1;
22039    }
22040#line 3764
22041    goto ldv_26371;
22042  } else {
22043
22044  }
22045#line 3747
22046  index = index + 1U;
22047  ldv_26373: ;
22048  {
22049#line 3747
22050  __cil_tmp64 = udev->descriptor.bNumConfigurations;
22051#line 3747
22052  __cil_tmp65 = (unsigned int )__cil_tmp64;
22053#line 3747
22054  if (__cil_tmp65 > index) {
22055#line 3748
22056    goto ldv_26372;
22057  } else {
22058#line 3750
22059    goto ldv_26371;
22060  }
22061  }
22062  ldv_26371: ;
22063#line 3768
22064  if (changed == 0) {
22065#line 3768
22066    if (serial_len != 0U) {
22067      {
22068#line 3769
22069      __cil_tmp66 = udev->descriptor.iSerialNumber;
22070#line 3769
22071      __cil_tmp67 = (int )__cil_tmp66;
22072#line 3769
22073      __cil_tmp68 = (size_t )serial_len;
22074#line 3769
22075      length = usb_string(udev, __cil_tmp67, buf, __cil_tmp68);
22076      }
22077      {
22078#line 3771
22079      __cil_tmp69 = length + 1;
22080#line 3771
22081      __cil_tmp70 = (unsigned int )__cil_tmp69;
22082#line 3771
22083      if (__cil_tmp70 != serial_len) {
22084        {
22085#line 3772
22086        __cil_tmp71 = & udev->dev;
22087#line 3772
22088        __cil_tmp72 = (struct device  const  *)__cil_tmp71;
22089#line 3772
22090        dev_printk("<7>", __cil_tmp72, "serial string error %d\n", length);
22091#line 3774
22092        changed = 1;
22093        }
22094      } else {
22095        {
22096#line 3775
22097        __cil_tmp73 = (void const   *)buf;
22098#line 3775
22099        __cil_tmp74 = udev->serial;
22100#line 3775
22101        __cil_tmp75 = (void const   *)__cil_tmp74;
22102#line 3775
22103        __cil_tmp76 = (size_t )length;
22104#line 3775
22105        tmp___4 = memcmp(__cil_tmp73, __cil_tmp75, __cil_tmp76);
22106        }
22107#line 3775
22108        if (tmp___4 != 0) {
22109          {
22110#line 3776
22111          __cil_tmp77 = & udev->dev;
22112#line 3776
22113          __cil_tmp78 = (struct device  const  *)__cil_tmp77;
22114#line 3776
22115          dev_printk("<7>", __cil_tmp78, "serial string changed\n");
22116#line 3777
22117          changed = 1;
22118          }
22119        } else {
22120
22121        }
22122      }
22123      }
22124    } else {
22125
22126    }
22127  } else {
22128
22129  }
22130  {
22131#line 3781
22132  __cil_tmp79 = (void const   *)buf;
22133#line 3781
22134  kfree(__cil_tmp79);
22135  }
22136#line 3782
22137  return (changed);
22138}
22139}
22140#line 3815 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
22141static int usb_reset_and_verify_device(struct usb_device *udev ) 
22142{ struct usb_device *parent_hdev ;
22143  struct usb_hub *parent_hub ;
22144  struct usb_hcd *hcd ;
22145  struct usb_hcd *tmp ;
22146  struct usb_device_descriptor descriptor ;
22147  int i ;
22148  int ret ;
22149  int port1 ;
22150  int tmp___0 ;
22151  unsigned int tmp___1 ;
22152  struct usb_host_config *config ;
22153  struct usb_interface *intf ;
22154  struct usb_interface_descriptor *desc ;
22155  struct usb_bus *__cil_tmp15 ;
22156  u8 __cil_tmp16 ;
22157  enum usb_device_state __cil_tmp17 ;
22158  unsigned int __cil_tmp18 ;
22159  struct device *__cil_tmp19 ;
22160  struct device  const  *__cil_tmp20 ;
22161  enum usb_device_state __cil_tmp21 ;
22162  unsigned int __cil_tmp22 ;
22163  enum usb_device_state __cil_tmp23 ;
22164  unsigned int __cil_tmp24 ;
22165  struct device *__cil_tmp25 ;
22166  struct device  const  *__cil_tmp26 ;
22167  enum usb_device_state __cil_tmp27 ;
22168  unsigned int __cil_tmp28 ;
22169  struct usb_device *__cil_tmp29 ;
22170  unsigned long __cil_tmp30 ;
22171  unsigned long __cil_tmp31 ;
22172  struct device *__cil_tmp32 ;
22173  struct device  const  *__cil_tmp33 ;
22174  unsigned int __cil_tmp34 ;
22175  unsigned long (*__cil_tmp35)[1U] ;
22176  unsigned long volatile   *__cil_tmp36 ;
22177  int __cil_tmp37 ;
22178  int __cil_tmp38 ;
22179  unsigned long (*__cil_tmp39)[1U] ;
22180  unsigned long volatile   *__cil_tmp40 ;
22181  struct device *__cil_tmp41 ;
22182  struct device  const  *__cil_tmp42 ;
22183  struct usb_host_config *__cil_tmp43 ;
22184  unsigned long __cil_tmp44 ;
22185  struct usb_host_config *__cil_tmp45 ;
22186  unsigned long __cil_tmp46 ;
22187  struct mutex *__cil_tmp47 ;
22188  struct usb_host_config *__cil_tmp48 ;
22189  struct usb_host_interface *__cil_tmp49 ;
22190  struct usb_host_interface *__cil_tmp50 ;
22191  struct device *__cil_tmp51 ;
22192  struct device  const  *__cil_tmp52 ;
22193  struct mutex *__cil_tmp53 ;
22194  unsigned int __cil_tmp54 ;
22195  __u8 __cil_tmp55 ;
22196  __u8 __cil_tmp56 ;
22197  struct usb_host_config *__cil_tmp57 ;
22198  __u8 __cil_tmp58 ;
22199  int __cil_tmp59 ;
22200  __u16 __cil_tmp60 ;
22201  __u16 __cil_tmp61 ;
22202  void *__cil_tmp62 ;
22203  __u16 __cil_tmp63 ;
22204  struct device *__cil_tmp64 ;
22205  struct device  const  *__cil_tmp65 ;
22206  struct usb_host_config *__cil_tmp66 ;
22207  __u8 __cil_tmp67 ;
22208  int __cil_tmp68 ;
22209  struct mutex *__cil_tmp69 ;
22210  struct mutex *__cil_tmp70 ;
22211  enum usb_device_state __cil_tmp71 ;
22212  struct usb_host_interface *__cil_tmp72 ;
22213  __u8 __cil_tmp73 ;
22214  unsigned int __cil_tmp74 ;
22215  bool __cil_tmp75 ;
22216  bool __cil_tmp76 ;
22217  __u8 __cil_tmp77 ;
22218  int __cil_tmp78 ;
22219  __u8 __cil_tmp79 ;
22220  int __cil_tmp80 ;
22221  struct device *__cil_tmp81 ;
22222  struct device  const  *__cil_tmp82 ;
22223  __u8 __cil_tmp83 ;
22224  int __cil_tmp84 ;
22225  __u8 __cil_tmp85 ;
22226  int __cil_tmp86 ;
22227  struct usb_host_config *__cil_tmp87 ;
22228  __u8 __cil_tmp88 ;
22229  int __cil_tmp89 ;
22230
22231  {
22232  {
22233#line 3817
22234  parent_hdev = udev->parent;
22235#line 3819
22236  __cil_tmp15 = udev->bus;
22237#line 3819
22238  tmp = bus_to_hcd(__cil_tmp15);
22239#line 3819
22240  hcd = tmp;
22241#line 3820
22242  descriptor = udev->descriptor;
22243#line 3821
22244  ret = 0;
22245#line 3822
22246  __cil_tmp16 = udev->portnum;
22247#line 3822
22248  port1 = (int )__cil_tmp16;
22249  }
22250  {
22251#line 3824
22252  __cil_tmp17 = udev->state;
22253#line 3824
22254  __cil_tmp18 = (unsigned int )__cil_tmp17;
22255#line 3824
22256  if (__cil_tmp18 == 0U) {
22257    {
22258#line 3826
22259    __cil_tmp19 = & udev->dev;
22260#line 3826
22261    __cil_tmp20 = (struct device  const  *)__cil_tmp19;
22262#line 3826
22263    __cil_tmp21 = udev->state;
22264#line 3826
22265    __cil_tmp22 = (unsigned int )__cil_tmp21;
22266#line 3826
22267    dev_printk("<7>", __cil_tmp20, "device reset not allowed in state %d\n", __cil_tmp22);
22268    }
22269#line 3828
22270    return (-22);
22271  } else {
22272    {
22273#line 3824
22274    __cil_tmp23 = udev->state;
22275#line 3824
22276    __cil_tmp24 = (unsigned int )__cil_tmp23;
22277#line 3824
22278    if (__cil_tmp24 == 8U) {
22279      {
22280#line 3826
22281      __cil_tmp25 = & udev->dev;
22282#line 3826
22283      __cil_tmp26 = (struct device  const  *)__cil_tmp25;
22284#line 3826
22285      __cil_tmp27 = udev->state;
22286#line 3826
22287      __cil_tmp28 = (unsigned int )__cil_tmp27;
22288#line 3826
22289      dev_printk("<7>", __cil_tmp26, "device reset not allowed in state %d\n", __cil_tmp28);
22290      }
22291#line 3828
22292      return (-22);
22293    } else {
22294
22295    }
22296    }
22297  }
22298  }
22299  {
22300#line 3831
22301  __cil_tmp29 = (struct usb_device *)0;
22302#line 3831
22303  __cil_tmp30 = (unsigned long )__cil_tmp29;
22304#line 3831
22305  __cil_tmp31 = (unsigned long )parent_hdev;
22306#line 3831
22307  if (__cil_tmp31 == __cil_tmp30) {
22308    {
22309#line 3833
22310    __cil_tmp32 = & udev->dev;
22311#line 3833
22312    __cil_tmp33 = (struct device  const  *)__cil_tmp32;
22313#line 3833
22314    dev_printk("<7>", __cil_tmp33, "%s for root hub!\n", "usb_reset_and_verify_device");
22315    }
22316#line 3834
22317    return (-21);
22318  } else {
22319
22320  }
22321  }
22322  {
22323#line 3836
22324  parent_hub = hdev_to_hub(parent_hdev);
22325#line 3838
22326  __cil_tmp34 = (unsigned int )port1;
22327#line 3838
22328  __cil_tmp35 = & parent_hub->busy_bits;
22329#line 3838
22330  __cil_tmp36 = (unsigned long volatile   *)__cil_tmp35;
22331#line 3838
22332  set_bit(__cil_tmp34, __cil_tmp36);
22333#line 3839
22334  i = 0;
22335  }
22336#line 3839
22337  goto ldv_26387;
22338  ldv_26386: 
22339  {
22340#line 3843
22341  usb_ep0_reinit(udev);
22342#line 3844
22343  ret = hub_port_init(parent_hub, udev, port1, i);
22344  }
22345#line 3845
22346  if (ret >= 0) {
22347#line 3846
22348    goto ldv_26385;
22349  } else
22350#line 3845
22351  if (ret == -107) {
22352#line 3846
22353    goto ldv_26385;
22354  } else
22355#line 3845
22356  if (ret == -19) {
22357#line 3846
22358    goto ldv_26385;
22359  } else {
22360
22361  }
22362#line 3839
22363  i = i + 1;
22364  ldv_26387: ;
22365  {
22366#line 3839
22367  __cil_tmp37 = use_both_schemes + 1;
22368#line 3839
22369  __cil_tmp38 = __cil_tmp37 * 2;
22370#line 3839
22371  if (__cil_tmp38 > i) {
22372#line 3840
22373    goto ldv_26386;
22374  } else {
22375#line 3842
22376    goto ldv_26385;
22377  }
22378  }
22379  ldv_26385: 
22380  {
22381#line 3848
22382  __cil_tmp39 = & parent_hub->busy_bits;
22383#line 3848
22384  __cil_tmp40 = (unsigned long volatile   *)__cil_tmp39;
22385#line 3848
22386  clear_bit(port1, __cil_tmp40);
22387  }
22388#line 3850
22389  if (ret < 0) {
22390#line 3851
22391    goto re_enumerate;
22392  } else {
22393
22394  }
22395  {
22396#line 3854
22397  tmp___0 = descriptors_changed(udev, & descriptor);
22398  }
22399#line 3854
22400  if (tmp___0 != 0) {
22401    {
22402#line 3855
22403    __cil_tmp41 = & udev->dev;
22404#line 3855
22405    __cil_tmp42 = (struct device  const  *)__cil_tmp41;
22406#line 3855
22407    _dev_info(__cil_tmp42, "device firmware changed\n");
22408#line 3856
22409    udev->descriptor = descriptor;
22410    }
22411#line 3857
22412    goto re_enumerate;
22413  } else {
22414
22415  }
22416  {
22417#line 3861
22418  __cil_tmp43 = (struct usb_host_config *)0;
22419#line 3861
22420  __cil_tmp44 = (unsigned long )__cil_tmp43;
22421#line 3861
22422  __cil_tmp45 = udev->actconfig;
22423#line 3861
22424  __cil_tmp46 = (unsigned long )__cil_tmp45;
22425#line 3861
22426  if (__cil_tmp46 == __cil_tmp44) {
22427#line 3862
22428    goto done;
22429  } else {
22430
22431  }
22432  }
22433  {
22434#line 3864
22435  __cil_tmp47 = hcd->bandwidth_mutex;
22436#line 3864
22437  mutex_lock_nested(__cil_tmp47, 0U);
22438#line 3865
22439  __cil_tmp48 = udev->actconfig;
22440#line 3865
22441  __cil_tmp49 = (struct usb_host_interface *)0;
22442#line 3865
22443  __cil_tmp50 = (struct usb_host_interface *)0;
22444#line 3865
22445  ret = usb_hcd_alloc_bandwidth(udev, __cil_tmp48, __cil_tmp49, __cil_tmp50);
22446  }
22447#line 3866
22448  if (ret < 0) {
22449    {
22450#line 3867
22451    __cil_tmp51 = & udev->dev;
22452#line 3867
22453    __cil_tmp52 = (struct device  const  *)__cil_tmp51;
22454#line 3867
22455    dev_warn(__cil_tmp52, "Busted HC?  Not enough HCD resources for old configuration.\n");
22456#line 3870
22457    __cil_tmp53 = hcd->bandwidth_mutex;
22458#line 3870
22459    mutex_unlock(__cil_tmp53);
22460    }
22461#line 3871
22462    goto re_enumerate;
22463  } else {
22464
22465  }
22466  {
22467#line 3873
22468  tmp___1 = __create_pipe(udev, 0U);
22469#line 3873
22470  __cil_tmp54 = tmp___1 | 2147483648U;
22471#line 3873
22472  __cil_tmp55 = (__u8 )9;
22473#line 3873
22474  __cil_tmp56 = (__u8 )0;
22475#line 3873
22476  __cil_tmp57 = udev->actconfig;
22477#line 3873
22478  __cil_tmp58 = __cil_tmp57->desc.bConfigurationValue;
22479#line 3873
22480  __cil_tmp59 = (int )__cil_tmp58;
22481#line 3873
22482  __cil_tmp60 = (__u16 )__cil_tmp59;
22483#line 3873
22484  __cil_tmp61 = (__u16 )0;
22485#line 3873
22486  __cil_tmp62 = (void *)0;
22487#line 3873
22488  __cil_tmp63 = (__u16 )0;
22489#line 3873
22490  ret = usb_control_msg(udev, __cil_tmp54, __cil_tmp55, __cil_tmp56, __cil_tmp60,
22491                        __cil_tmp61, __cil_tmp62, __cil_tmp63, 5000);
22492  }
22493#line 3877
22494  if (ret < 0) {
22495    {
22496#line 3878
22497    __cil_tmp64 = & udev->dev;
22498#line 3878
22499    __cil_tmp65 = (struct device  const  *)__cil_tmp64;
22500#line 3878
22501    __cil_tmp66 = udev->actconfig;
22502#line 3878
22503    __cil_tmp67 = __cil_tmp66->desc.bConfigurationValue;
22504#line 3878
22505    __cil_tmp68 = (int )__cil_tmp67;
22506#line 3878
22507    dev_err(__cil_tmp65, "can\'t restore configuration #%d (error=%d)\n", __cil_tmp68,
22508            ret);
22509#line 3881
22510    __cil_tmp69 = hcd->bandwidth_mutex;
22511#line 3881
22512    mutex_unlock(__cil_tmp69);
22513    }
22514#line 3882
22515    goto re_enumerate;
22516  } else {
22517
22518  }
22519  {
22520#line 3884
22521  __cil_tmp70 = hcd->bandwidth_mutex;
22522#line 3884
22523  mutex_unlock(__cil_tmp70);
22524#line 3885
22525  __cil_tmp71 = (enum usb_device_state )7;
22526#line 3885
22527  usb_set_device_state(udev, __cil_tmp71);
22528#line 3893
22529  i = 0;
22530  }
22531#line 3893
22532  goto ldv_26394;
22533  ldv_26393: 
22534#line 3894
22535  config = udev->actconfig;
22536#line 3895
22537  intf = config->interface[i];
22538#line 3898
22539  __cil_tmp72 = intf->cur_altsetting;
22540#line 3898
22541  desc = & __cil_tmp72->desc;
22542  {
22543#line 3899
22544  __cil_tmp73 = desc->bAlternateSetting;
22545#line 3899
22546  __cil_tmp74 = (unsigned int )__cil_tmp73;
22547#line 3899
22548  if (__cil_tmp74 == 0U) {
22549    {
22550#line 3900
22551    __cil_tmp75 = (bool )1;
22552#line 3900
22553    usb_disable_interface(udev, intf, __cil_tmp75);
22554#line 3901
22555    __cil_tmp76 = (bool )1;
22556#line 3901
22557    usb_enable_interface(udev, intf, __cil_tmp76);
22558#line 3902
22559    ret = 0;
22560    }
22561  } else {
22562    {
22563#line 3908
22564    intf->resetting_device = (unsigned char)1;
22565#line 3909
22566    __cil_tmp77 = desc->bInterfaceNumber;
22567#line 3909
22568    __cil_tmp78 = (int )__cil_tmp77;
22569#line 3909
22570    __cil_tmp79 = desc->bAlternateSetting;
22571#line 3909
22572    __cil_tmp80 = (int )__cil_tmp79;
22573#line 3909
22574    ret = usb_set_interface(udev, __cil_tmp78, __cil_tmp80);
22575#line 3911
22576    intf->resetting_device = (unsigned char)0;
22577    }
22578  }
22579  }
22580#line 3913
22581  if (ret < 0) {
22582    {
22583#line 3914
22584    __cil_tmp81 = & udev->dev;
22585#line 3914
22586    __cil_tmp82 = (struct device  const  *)__cil_tmp81;
22587#line 3914
22588    __cil_tmp83 = desc->bInterfaceNumber;
22589#line 3914
22590    __cil_tmp84 = (int )__cil_tmp83;
22591#line 3914
22592    __cil_tmp85 = desc->bAlternateSetting;
22593#line 3914
22594    __cil_tmp86 = (int )__cil_tmp85;
22595#line 3914
22596    dev_err(__cil_tmp82, "failed to restore interface %d altsetting %d (error=%d)\n",
22597            __cil_tmp84, __cil_tmp86, ret);
22598    }
22599#line 3919
22600    goto re_enumerate;
22601  } else {
22602
22603  }
22604#line 3893
22605  i = i + 1;
22606  ldv_26394: ;
22607  {
22608#line 3893
22609  __cil_tmp87 = udev->actconfig;
22610#line 3893
22611  __cil_tmp88 = __cil_tmp87->desc.bNumInterfaces;
22612#line 3893
22613  __cil_tmp89 = (int )__cil_tmp88;
22614#line 3893
22615  if (__cil_tmp89 > i) {
22616#line 3894
22617    goto ldv_26393;
22618  } else {
22619#line 3896
22620    goto ldv_26395;
22621  }
22622  }
22623  ldv_26395: ;
22624  done: ;
22625#line 3924
22626  return (0);
22627  re_enumerate: 
22628  {
22629#line 3927
22630  hub_port_logical_disconnect(parent_hub, port1);
22631  }
22632#line 3928
22633  return (-19);
22634}
22635}
22636#line 3951 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
22637int usb_reset_device(struct usb_device *udev ) 
22638{ int ret ;
22639  int i ;
22640  struct usb_host_config *config ;
22641  struct usb_interface *cintf ;
22642  struct usb_driver *drv ;
22643  int unbind ;
22644  struct device_driver  const  *__mptr ;
22645  struct usb_interface *cintf___0 ;
22646  struct usb_driver *drv___0 ;
22647  int rebind ;
22648  struct device_driver  const  *__mptr___0 ;
22649  enum usb_device_state __cil_tmp13 ;
22650  unsigned int __cil_tmp14 ;
22651  struct device *__cil_tmp15 ;
22652  struct device  const  *__cil_tmp16 ;
22653  enum usb_device_state __cil_tmp17 ;
22654  unsigned int __cil_tmp18 ;
22655  enum usb_device_state __cil_tmp19 ;
22656  unsigned int __cil_tmp20 ;
22657  struct device *__cil_tmp21 ;
22658  struct device  const  *__cil_tmp22 ;
22659  enum usb_device_state __cil_tmp23 ;
22660  unsigned int __cil_tmp24 ;
22661  struct usb_host_config *__cil_tmp25 ;
22662  unsigned long __cil_tmp26 ;
22663  unsigned long __cil_tmp27 ;
22664  struct device_driver *__cil_tmp28 ;
22665  unsigned long __cil_tmp29 ;
22666  struct device_driver *__cil_tmp30 ;
22667  unsigned long __cil_tmp31 ;
22668  struct device_driver *__cil_tmp32 ;
22669  struct usb_driver *__cil_tmp33 ;
22670  int (*__cil_tmp34)(struct usb_interface * ) ;
22671  unsigned long __cil_tmp35 ;
22672  int (*__cil_tmp36)(struct usb_interface * ) ;
22673  unsigned long __cil_tmp37 ;
22674  int (*__cil_tmp38)(struct usb_interface * ) ;
22675  unsigned long __cil_tmp39 ;
22676  int (*__cil_tmp40)(struct usb_interface * ) ;
22677  unsigned long __cil_tmp41 ;
22678  int (*__cil_tmp42)(struct usb_interface * ) ;
22679  enum usb_interface_condition __cil_tmp43 ;
22680  unsigned int __cil_tmp44 ;
22681  __u8 __cil_tmp45 ;
22682  int __cil_tmp46 ;
22683  struct usb_host_config *__cil_tmp47 ;
22684  unsigned long __cil_tmp48 ;
22685  unsigned long __cil_tmp49 ;
22686  __u8 __cil_tmp50 ;
22687  int __cil_tmp51 ;
22688  unsigned char __cil_tmp52 ;
22689  struct device_driver *__cil_tmp53 ;
22690  unsigned long __cil_tmp54 ;
22691  struct device_driver *__cil_tmp55 ;
22692  unsigned long __cil_tmp56 ;
22693  struct device_driver *__cil_tmp57 ;
22694  struct usb_driver *__cil_tmp58 ;
22695  int (*__cil_tmp59)(struct usb_interface * ) ;
22696  unsigned long __cil_tmp60 ;
22697  int (*__cil_tmp61)(struct usb_interface * ) ;
22698  unsigned long __cil_tmp62 ;
22699  int (*__cil_tmp63)(struct usb_interface * ) ;
22700  enum usb_interface_condition __cil_tmp64 ;
22701  unsigned int __cil_tmp65 ;
22702
22703  {
22704#line 3955
22705  config = udev->actconfig;
22706  {
22707#line 3957
22708  __cil_tmp13 = udev->state;
22709#line 3957
22710  __cil_tmp14 = (unsigned int )__cil_tmp13;
22711#line 3957
22712  if (__cil_tmp14 == 0U) {
22713    {
22714#line 3959
22715    __cil_tmp15 = & udev->dev;
22716#line 3959
22717    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
22718#line 3959
22719    __cil_tmp17 = udev->state;
22720#line 3959
22721    __cil_tmp18 = (unsigned int )__cil_tmp17;
22722#line 3959
22723    dev_printk("<7>", __cil_tmp16, "device reset not allowed in state %d\n", __cil_tmp18);
22724    }
22725#line 3961
22726    return (-22);
22727  } else {
22728    {
22729#line 3957
22730    __cil_tmp19 = udev->state;
22731#line 3957
22732    __cil_tmp20 = (unsigned int )__cil_tmp19;
22733#line 3957
22734    if (__cil_tmp20 == 8U) {
22735      {
22736#line 3959
22737      __cil_tmp21 = & udev->dev;
22738#line 3959
22739      __cil_tmp22 = (struct device  const  *)__cil_tmp21;
22740#line 3959
22741      __cil_tmp23 = udev->state;
22742#line 3959
22743      __cil_tmp24 = (unsigned int )__cil_tmp23;
22744#line 3959
22745      dev_printk("<7>", __cil_tmp22, "device reset not allowed in state %d\n", __cil_tmp24);
22746      }
22747#line 3961
22748      return (-22);
22749    } else {
22750
22751    }
22752    }
22753  }
22754  }
22755  {
22756#line 3965
22757  usb_autoresume_device(udev);
22758  }
22759  {
22760#line 3967
22761  __cil_tmp25 = (struct usb_host_config *)0;
22762#line 3967
22763  __cil_tmp26 = (unsigned long )__cil_tmp25;
22764#line 3967
22765  __cil_tmp27 = (unsigned long )config;
22766#line 3967
22767  if (__cil_tmp27 != __cil_tmp26) {
22768#line 3968
22769    i = 0;
22770#line 3968
22771    goto ldv_26408;
22772    ldv_26407: 
22773#line 3969
22774    cintf = config->interface[i];
22775#line 3971
22776    unbind = 0;
22777    {
22778#line 3973
22779    __cil_tmp28 = (struct device_driver *)0;
22780#line 3973
22781    __cil_tmp29 = (unsigned long )__cil_tmp28;
22782#line 3973
22783    __cil_tmp30 = cintf->dev.driver;
22784#line 3973
22785    __cil_tmp31 = (unsigned long )__cil_tmp30;
22786#line 3973
22787    if (__cil_tmp31 != __cil_tmp29) {
22788#line 3974
22789      __cil_tmp32 = cintf->dev.driver;
22790#line 3974
22791      __mptr = (struct device_driver  const  *)__cil_tmp32;
22792#line 3974
22793      __cil_tmp33 = (struct usb_driver *)__mptr;
22794#line 3974
22795      drv = __cil_tmp33 + 1152921504606846808UL;
22796      {
22797#line 3975
22798      __cil_tmp34 = (int (*)(struct usb_interface * ))0;
22799#line 3975
22800      __cil_tmp35 = (unsigned long )__cil_tmp34;
22801#line 3975
22802      __cil_tmp36 = drv->pre_reset;
22803#line 3975
22804      __cil_tmp37 = (unsigned long )__cil_tmp36;
22805#line 3975
22806      if (__cil_tmp37 != __cil_tmp35) {
22807        {
22808#line 3975
22809        __cil_tmp38 = (int (*)(struct usb_interface * ))0;
22810#line 3975
22811        __cil_tmp39 = (unsigned long )__cil_tmp38;
22812#line 3975
22813        __cil_tmp40 = drv->post_reset;
22814#line 3975
22815        __cil_tmp41 = (unsigned long )__cil_tmp40;
22816#line 3975
22817        if (__cil_tmp41 != __cil_tmp39) {
22818          {
22819#line 3976
22820          __cil_tmp42 = drv->pre_reset;
22821#line 3976
22822          unbind = (*__cil_tmp42)(cintf);
22823          }
22824        } else {
22825#line 3975
22826          goto _L;
22827        }
22828        }
22829      } else {
22830        _L: 
22831        {
22832#line 3977
22833        __cil_tmp43 = cintf->condition;
22834#line 3977
22835        __cil_tmp44 = (unsigned int )__cil_tmp43;
22836#line 3977
22837        if (__cil_tmp44 == 2U) {
22838#line 3979
22839          unbind = 1;
22840        } else {
22841
22842        }
22843        }
22844      }
22845      }
22846#line 3980
22847      if (unbind != 0) {
22848        {
22849#line 3981
22850        usb_forced_unbind_intf(cintf);
22851        }
22852      } else {
22853
22854      }
22855    } else {
22856
22857    }
22858    }
22859#line 3968
22860    i = i + 1;
22861    ldv_26408: ;
22862    {
22863#line 3968
22864    __cil_tmp45 = config->desc.bNumInterfaces;
22865#line 3968
22866    __cil_tmp46 = (int )__cil_tmp45;
22867#line 3968
22868    if (__cil_tmp46 > i) {
22869#line 3969
22870      goto ldv_26407;
22871    } else {
22872#line 3971
22873      goto ldv_26409;
22874    }
22875    }
22876    ldv_26409: ;
22877  } else {
22878
22879  }
22880  }
22881  {
22882#line 3986
22883  ret = usb_reset_and_verify_device(udev);
22884  }
22885  {
22886#line 3988
22887  __cil_tmp47 = (struct usb_host_config *)0;
22888#line 3988
22889  __cil_tmp48 = (unsigned long )__cil_tmp47;
22890#line 3988
22891  __cil_tmp49 = (unsigned long )config;
22892#line 3988
22893  if (__cil_tmp49 != __cil_tmp48) {
22894#line 3989
22895    __cil_tmp50 = config->desc.bNumInterfaces;
22896#line 3989
22897    __cil_tmp51 = (int )__cil_tmp50;
22898#line 3989
22899    i = __cil_tmp51 + -1;
22900#line 3989
22901    goto ldv_26416;
22902    ldv_26415: 
22903#line 3990
22904    cintf___0 = config->interface[i];
22905#line 3992
22906    __cil_tmp52 = cintf___0->needs_binding;
22907#line 3992
22908    rebind = (int )__cil_tmp52;
22909#line 3994
22910    if (rebind == 0) {
22911      {
22912#line 3994
22913      __cil_tmp53 = (struct device_driver *)0;
22914#line 3994
22915      __cil_tmp54 = (unsigned long )__cil_tmp53;
22916#line 3994
22917      __cil_tmp55 = cintf___0->dev.driver;
22918#line 3994
22919      __cil_tmp56 = (unsigned long )__cil_tmp55;
22920#line 3994
22921      if (__cil_tmp56 != __cil_tmp54) {
22922#line 3995
22923        __cil_tmp57 = cintf___0->dev.driver;
22924#line 3995
22925        __mptr___0 = (struct device_driver  const  *)__cil_tmp57;
22926#line 3995
22927        __cil_tmp58 = (struct usb_driver *)__mptr___0;
22928#line 3995
22929        drv___0 = __cil_tmp58 + 1152921504606846808UL;
22930        {
22931#line 3996
22932        __cil_tmp59 = (int (*)(struct usb_interface * ))0;
22933#line 3996
22934        __cil_tmp60 = (unsigned long )__cil_tmp59;
22935#line 3996
22936        __cil_tmp61 = drv___0->post_reset;
22937#line 3996
22938        __cil_tmp62 = (unsigned long )__cil_tmp61;
22939#line 3996
22940        if (__cil_tmp62 != __cil_tmp60) {
22941          {
22942#line 3997
22943          __cil_tmp63 = drv___0->post_reset;
22944#line 3997
22945          rebind = (*__cil_tmp63)(cintf___0);
22946          }
22947        } else {
22948          {
22949#line 3998
22950          __cil_tmp64 = cintf___0->condition;
22951#line 3998
22952          __cil_tmp65 = (unsigned int )__cil_tmp64;
22953#line 3998
22954          if (__cil_tmp65 == 2U) {
22955#line 4000
22956            rebind = 1;
22957          } else {
22958
22959          }
22960          }
22961        }
22962        }
22963      } else {
22964
22965      }
22966      }
22967    } else {
22968
22969    }
22970#line 4002
22971    if (ret == 0) {
22972#line 4002
22973      if (rebind != 0) {
22974        {
22975#line 4003
22976        usb_rebind_intf(cintf___0);
22977        }
22978      } else {
22979
22980      }
22981    } else {
22982
22983    }
22984#line 3989
22985    i = i - 1;
22986    ldv_26416: ;
22987#line 3989
22988    if (i >= 0) {
22989#line 3990
22990      goto ldv_26415;
22991    } else {
22992#line 3992
22993      goto ldv_26417;
22994    }
22995    ldv_26417: ;
22996  } else {
22997
22998  }
22999  }
23000  {
23001#line 4007
23002  usb_autosuspend_device(udev);
23003  }
23004#line 4008
23005  return (ret);
23006}
23007}
23008#line 4049 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hub.c.p"
23009void usb_queue_reset_device(struct usb_interface *iface ) 
23010{ struct work_struct *__cil_tmp2 ;
23011
23012  {
23013  {
23014#line 4051
23015  __cil_tmp2 = & iface->reset_ws;
23016#line 4051
23017  schedule_work(__cil_tmp2);
23018  }
23019#line 4052
23020  return;
23021}
23022}
23023#line 4074
23024extern void ldv_check_return_value(int  ) ;
23025#line 60 "include/linux/list.h"
23026__inline static void list_add(struct list_head *new , struct list_head *head ) 
23027{ struct list_head *__cil_tmp3 ;
23028
23029  {
23030  {
23031#line 62
23032  __cil_tmp3 = head->next;
23033#line 62
23034  __list_add(new, head, __cil_tmp3);
23035  }
23036#line 63
23037  return;
23038}
23039}
23040#line 47 "include/linux/byteorder/little_endian.h"
23041__inline static __u64 __le64_to_cpup(__le64 const   *p ) 
23042{ __le64 __cil_tmp2 ;
23043
23044  {
23045  {
23046#line 49
23047  __cil_tmp2 = *p;
23048#line 49
23049  return ((__u64 )__cil_tmp2);
23050  }
23051}
23052}
23053#line 125 "include/linux/kernel.h"
23054extern void __might_sleep(char const   * , int  , int  ) ;
23055#line 307
23056extern int sscanf(char const   * , char const   *  , ...) ;
23057#line 61 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/page_64_types.h"
23058extern unsigned long __phys_addr(unsigned long  ) ;
23059#line 349 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
23060extern struct pv_irq_ops pv_irq_ops ;
23061#line 55 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/string_64.h"
23062extern void *memset(void * , int  , size_t  ) ;
23063#line 851 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
23064__inline static unsigned long arch_local_save_flags(void) 
23065{ unsigned long __ret ;
23066  unsigned long __edi ;
23067  unsigned long __esi ;
23068  unsigned long __edx ;
23069  unsigned long __ecx ;
23070  unsigned long __eax ;
23071  long tmp ;
23072  void *__cil_tmp8 ;
23073  unsigned long __cil_tmp9 ;
23074  unsigned long __cil_tmp10 ;
23075  int __cil_tmp11 ;
23076  long __cil_tmp12 ;
23077
23078  {
23079  {
23080#line 853
23081  __edi = __edi;
23082#line 853
23083  __esi = __esi;
23084#line 853
23085  __edx = __edx;
23086#line 853
23087  __ecx = __ecx;
23088#line 853
23089  __eax = __eax;
23090#line 853
23091  __cil_tmp8 = (void *)0;
23092#line 853
23093  __cil_tmp9 = (unsigned long )__cil_tmp8;
23094#line 853
23095  __cil_tmp10 = (unsigned long )pv_irq_ops.save_fl.func;
23096#line 853
23097  __cil_tmp11 = __cil_tmp10 == __cil_tmp9;
23098#line 853
23099  __cil_tmp12 = (long )__cil_tmp11;
23100#line 853
23101  tmp = __builtin_expect(__cil_tmp12, 0L);
23102  }
23103#line 853
23104  if (tmp != 0L) {
23105#line 853
23106    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"),
23107                         "i" (853), "i" (12UL));
23108    ldv_4705: ;
23109#line 853
23110    goto ldv_4705;
23111  } else {
23112
23113  }
23114#line 853
23115  __asm__  volatile   ("771:\n\tcall *%c2;\n772:\n.pushsection .parainstructions,\"a\"\n .balign 8 \n .quad  771b\n  .byte %c1\n  .byte 772b-771b\n  .short %c3\n.popsection\n": "=a" (__eax): [paravirt_typenum] "i" (46UL),
23116                       [paravirt_opptr] "i" (& pv_irq_ops.save_fl.func), [paravirt_clobber] "i" (1): "memory",
23117                       "cc");
23118#line 853
23119  __ret = __eax;
23120#line 853
23121  return (__ret);
23122}
23123}
23124#line 856 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
23125__inline static void arch_local_irq_restore(unsigned long f ) 
23126{ unsigned long __edi ;
23127  unsigned long __esi ;
23128  unsigned long __edx ;
23129  unsigned long __ecx ;
23130  unsigned long __eax ;
23131  long tmp ;
23132  void *__cil_tmp8 ;
23133  unsigned long __cil_tmp9 ;
23134  unsigned long __cil_tmp10 ;
23135  int __cil_tmp11 ;
23136  long __cil_tmp12 ;
23137
23138  {
23139  {
23140#line 858
23141  __edi = __edi;
23142#line 858
23143  __esi = __esi;
23144#line 858
23145  __edx = __edx;
23146#line 858
23147  __ecx = __ecx;
23148#line 858
23149  __eax = __eax;
23150#line 858
23151  __cil_tmp8 = (void *)0;
23152#line 858
23153  __cil_tmp9 = (unsigned long )__cil_tmp8;
23154#line 858
23155  __cil_tmp10 = (unsigned long )pv_irq_ops.restore_fl.func;
23156#line 858
23157  __cil_tmp11 = __cil_tmp10 == __cil_tmp9;
23158#line 858
23159  __cil_tmp12 = (long )__cil_tmp11;
23160#line 858
23161  tmp = __builtin_expect(__cil_tmp12, 0L);
23162  }
23163#line 858
23164  if (tmp != 0L) {
23165#line 858
23166    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"),
23167                         "i" (858), "i" (12UL));
23168    ldv_4715: ;
23169#line 858
23170    goto ldv_4715;
23171  } else {
23172
23173  }
23174#line 858
23175  __asm__  volatile   ("771:\n\tcall *%c2;\n772:\n.pushsection .parainstructions,\"a\"\n .balign 8 \n .quad  771b\n  .byte %c1\n  .byte 772b-771b\n  .short %c3\n.popsection\n": "=a" (__eax): [paravirt_typenum] "i" (47UL),
23176                       [paravirt_opptr] "i" (& pv_irq_ops.restore_fl.func), [paravirt_clobber] "i" (1),
23177                       "D" (f): "memory", "cc");
23178#line 860
23179  return;
23180}
23181}
23182#line 861 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
23183__inline static void arch_local_irq_disable(void) 
23184{ unsigned long __edi ;
23185  unsigned long __esi ;
23186  unsigned long __edx ;
23187  unsigned long __ecx ;
23188  unsigned long __eax ;
23189  long tmp ;
23190  void *__cil_tmp7 ;
23191  unsigned long __cil_tmp8 ;
23192  unsigned long __cil_tmp9 ;
23193  int __cil_tmp10 ;
23194  long __cil_tmp11 ;
23195
23196  {
23197  {
23198#line 863
23199  __edi = __edi;
23200#line 863
23201  __esi = __esi;
23202#line 863
23203  __edx = __edx;
23204#line 863
23205  __ecx = __ecx;
23206#line 863
23207  __eax = __eax;
23208#line 863
23209  __cil_tmp7 = (void *)0;
23210#line 863
23211  __cil_tmp8 = (unsigned long )__cil_tmp7;
23212#line 863
23213  __cil_tmp9 = (unsigned long )pv_irq_ops.irq_disable.func;
23214#line 863
23215  __cil_tmp10 = __cil_tmp9 == __cil_tmp8;
23216#line 863
23217  __cil_tmp11 = (long )__cil_tmp10;
23218#line 863
23219  tmp = __builtin_expect(__cil_tmp11, 0L);
23220  }
23221#line 863
23222  if (tmp != 0L) {
23223#line 863
23224    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"),
23225                         "i" (863), "i" (12UL));
23226    ldv_4724: ;
23227#line 863
23228    goto ldv_4724;
23229  } else {
23230
23231  }
23232#line 863
23233  __asm__  volatile   ("771:\n\tcall *%c2;\n772:\n.pushsection .parainstructions,\"a\"\n .balign 8 \n .quad  771b\n  .byte %c1\n  .byte 772b-771b\n  .short %c3\n.popsection\n": "=a" (__eax): [paravirt_typenum] "i" (48UL),
23234                       [paravirt_opptr] "i" (& pv_irq_ops.irq_disable.func), [paravirt_clobber] "i" (1): "memory",
23235                       "cc");
23236#line 865
23237  return;
23238}
23239}
23240#line 871 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
23241__inline static unsigned long arch_local_irq_save(void) 
23242{ unsigned long f ;
23243
23244  {
23245  {
23246#line 875
23247  f = arch_local_save_flags();
23248#line 876
23249  arch_local_irq_disable();
23250  }
23251#line 877
23252  return (f);
23253}
23254}
23255#line 154 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/irqflags.h"
23256__inline static int arch_irqs_disabled_flags(unsigned long flags ) 
23257{ unsigned long __cil_tmp2 ;
23258
23259  {
23260  {
23261#line 156
23262  __cil_tmp2 = flags & 512UL;
23263#line 156
23264  return (__cil_tmp2 == 0UL);
23265  }
23266}
23267}
23268#line 20 "include/linux/irqflags.h"
23269extern void trace_hardirqs_on(void) ;
23270#line 21
23271extern void trace_hardirqs_off(void) ;
23272#line 23 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
23273__inline static int atomic_read(atomic_t const   *v ) 
23274{ int const   *__cil_tmp2 ;
23275  int volatile   *__cil_tmp3 ;
23276  int volatile   __cil_tmp4 ;
23277
23278  {
23279  {
23280#line 25
23281  __cil_tmp2 = & v->counter;
23282#line 25
23283  __cil_tmp3 = (int volatile   *)__cil_tmp2;
23284#line 25
23285  __cil_tmp4 = *__cil_tmp3;
23286#line 25
23287  return ((int )__cil_tmp4);
23288  }
23289}
23290}
23291#line 105 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
23292__inline static void atomic_dec(atomic_t *v ) 
23293{ 
23294
23295  {
23296#line 107
23297  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; decl %0": "+m" (v->counter));
23298#line 109
23299  return;
23300}
23301}
23302#line 22 "include/linux/spinlock_api_smp.h"
23303extern void _raw_spin_lock(raw_spinlock_t * ) ;
23304#line 39
23305extern void _raw_spin_unlock(raw_spinlock_t * ) ;
23306#line 283 "include/linux/spinlock.h"
23307__inline static void spin_lock(spinlock_t *lock ) 
23308{ struct raw_spinlock *__cil_tmp2 ;
23309
23310  {
23311  {
23312#line 285
23313  __cil_tmp2 = & lock->ldv_6060.rlock;
23314#line 285
23315  _raw_spin_lock(__cil_tmp2);
23316  }
23317#line 286
23318  return;
23319}
23320}
23321#line 323 "include/linux/spinlock.h"
23322__inline static void spin_unlock(spinlock_t *lock ) 
23323{ struct raw_spinlock *__cil_tmp2 ;
23324
23325  {
23326  {
23327#line 325
23328  __cil_tmp2 = & lock->ldv_6060.rlock;
23329#line 325
23330  _raw_spin_unlock(__cil_tmp2);
23331  }
23332#line 326
23333  return;
23334}
23335}
23336#line 210 "include/linux/timer.h"
23337extern int del_timer(struct timer_list * ) ;
23338#line 211
23339extern int mod_timer(struct timer_list * , unsigned long  ) ;
23340#line 280
23341extern int del_timer_sync(struct timer_list * ) ;
23342#line 349 "include/linux/workqueue.h"
23343extern int queue_work(struct workqueue_struct * , struct work_struct * ) ;
23344#line 157 "include/linux/sysfs.h"
23345extern int sysfs_create_group(struct kobject * , struct attribute_group  const  * ) ;
23346#line 161
23347extern void sysfs_remove_group(struct kobject * , struct attribute_group  const  * ) ;
23348#line 80 "include/linux/kobject.h"
23349__inline static char const   *kobject_name(struct kobject  const  *kobj ) 
23350{ char const   *__cil_tmp2 ;
23351
23352  {
23353  {
23354#line 82
23355  __cil_tmp2 = kobj->name;
23356#line 82
23357  return ((char const   *)__cil_tmp2);
23358  }
23359}
23360}
23361#line 48 "include/linux/utsname.h"
23362extern struct uts_namespace init_uts_ns ;
23363#line 88 "include/linux/utsname.h"
23364__inline static struct new_utsname *init_utsname(void) 
23365{ 
23366
23367  {
23368#line 90
23369  return (& init_uts_ns.name);
23370}
23371}
23372#line 720 "include/linux/mm.h"
23373__inline static void *lowmem_page_address(struct page *page ) 
23374{ long __cil_tmp2 ;
23375  long __cil_tmp3 ;
23376  long __cil_tmp4 ;
23377  unsigned long long __cil_tmp5 ;
23378  unsigned long long __cil_tmp6 ;
23379  unsigned long __cil_tmp7 ;
23380  unsigned long __cil_tmp8 ;
23381
23382  {
23383  {
23384#line 722
23385  __cil_tmp2 = (long )page;
23386#line 722
23387  __cil_tmp3 = __cil_tmp2 + 24189255811072L;
23388#line 722
23389  __cil_tmp4 = __cil_tmp3 / 56L;
23390#line 722
23391  __cil_tmp5 = (unsigned long long )__cil_tmp4;
23392#line 722
23393  __cil_tmp6 = __cil_tmp5 << 12;
23394#line 722
23395  __cil_tmp7 = (unsigned long )__cil_tmp6;
23396#line 722
23397  __cil_tmp8 = __cil_tmp7 + 1152789563211513856UL;
23398#line 722
23399  return ((void *)__cil_tmp8);
23400  }
23401}
23402}
23403#line 65 "include/linux/pm_wakeup.h"
23404__inline static bool device_can_wakeup(struct device *dev ) 
23405{ unsigned char __cil_tmp2 ;
23406  int __cil_tmp3 ;
23407  int __cil_tmp4 ;
23408
23409  {
23410  {
23411#line 67
23412  __cil_tmp2 = dev->power.can_wakeup;
23413#line 67
23414  __cil_tmp3 = (int )__cil_tmp2;
23415#line 67
23416  __cil_tmp4 = __cil_tmp3 != 0;
23417#line 67
23418  return ((bool )__cil_tmp4);
23419  }
23420}
23421}
23422#line 70 "include/linux/pm_wakeup.h"
23423__inline static bool device_may_wakeup(struct device *dev ) 
23424{ int tmp ;
23425  unsigned char *__cil_tmp3 ;
23426  unsigned char *__cil_tmp4 ;
23427  unsigned char __cil_tmp5 ;
23428  unsigned int __cil_tmp6 ;
23429  struct wakeup_source *__cil_tmp7 ;
23430  unsigned long __cil_tmp8 ;
23431  struct wakeup_source *__cil_tmp9 ;
23432  unsigned long __cil_tmp10 ;
23433
23434  {
23435  {
23436#line 72
23437  __cil_tmp3 = (unsigned char *)dev;
23438#line 72
23439  __cil_tmp4 = __cil_tmp3 + 292UL;
23440#line 72
23441  __cil_tmp5 = *__cil_tmp4;
23442#line 72
23443  __cil_tmp6 = (unsigned int )__cil_tmp5;
23444#line 72
23445  if (__cil_tmp6 != 0U) {
23446    {
23447#line 72
23448    __cil_tmp7 = (struct wakeup_source *)0;
23449#line 72
23450    __cil_tmp8 = (unsigned long )__cil_tmp7;
23451#line 72
23452    __cil_tmp9 = dev->power.wakeup;
23453#line 72
23454    __cil_tmp10 = (unsigned long )__cil_tmp9;
23455#line 72
23456    if (__cil_tmp10 != __cil_tmp8) {
23457#line 72
23458      tmp = 1;
23459    } else {
23460#line 72
23461      tmp = 0;
23462    }
23463    }
23464  } else {
23465#line 72
23466    tmp = 0;
23467  }
23468  }
23469#line 72
23470  return ((bool )tmp);
23471}
23472}
23473#line 86
23474extern int device_set_wakeup_enable(struct device * , bool  ) ;
23475#line 608 "include/linux/device.h"
23476__inline static char const   *dev_name(struct device  const  *dev ) 
23477{ char const   *tmp ;
23478  char const   *__cil_tmp3 ;
23479  unsigned long __cil_tmp4 ;
23480  char const   *__cil_tmp5 ;
23481  unsigned long __cil_tmp6 ;
23482  char const   *__cil_tmp7 ;
23483  struct kobject  const  *__cil_tmp8 ;
23484
23485  {
23486  {
23487#line 611
23488  __cil_tmp3 = (char const   * const  )0;
23489#line 611
23490  __cil_tmp4 = (unsigned long )__cil_tmp3;
23491#line 611
23492  __cil_tmp5 = dev->init_name;
23493#line 611
23494  __cil_tmp6 = (unsigned long )__cil_tmp5;
23495#line 611
23496  if (__cil_tmp6 != __cil_tmp4) {
23497    {
23498#line 612
23499    __cil_tmp7 = dev->init_name;
23500#line 612
23501    return ((char const   *)__cil_tmp7);
23502    }
23503  } else {
23504
23505  }
23506  }
23507  {
23508#line 614
23509  __cil_tmp8 = & dev->kobj;
23510#line 614
23511  tmp = kobject_name(__cil_tmp8);
23512  }
23513#line 614
23514  return (tmp);
23515}
23516}
23517#line 93 "include/linux/scatterlist.h"
23518__inline static struct page *sg_page(struct scatterlist *sg ) 
23519{ long tmp ;
23520  long tmp___0 ;
23521  unsigned long __cil_tmp4 ;
23522  int __cil_tmp5 ;
23523  long __cil_tmp6 ;
23524  unsigned long __cil_tmp7 ;
23525  int __cil_tmp8 ;
23526  long __cil_tmp9 ;
23527  long __cil_tmp10 ;
23528  unsigned long __cil_tmp11 ;
23529  unsigned long __cil_tmp12 ;
23530
23531  {
23532  {
23533#line 96
23534  __cil_tmp4 = sg->sg_magic;
23535#line 96
23536  __cil_tmp5 = __cil_tmp4 != 2271560481UL;
23537#line 96
23538  __cil_tmp6 = (long )__cil_tmp5;
23539#line 96
23540  tmp = __builtin_expect(__cil_tmp6, 0L);
23541  }
23542#line 96
23543  if (tmp != 0L) {
23544#line 96
23545    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/linux/scatterlist.h"),
23546                         "i" (96), "i" (12UL));
23547    ldv_20377: ;
23548#line 96
23549    goto ldv_20377;
23550  } else {
23551
23552  }
23553  {
23554#line 97
23555  __cil_tmp7 = sg->page_link;
23556#line 97
23557  __cil_tmp8 = (int )__cil_tmp7;
23558#line 97
23559  __cil_tmp9 = (long )__cil_tmp8;
23560#line 97
23561  __cil_tmp10 = __cil_tmp9 & 1L;
23562#line 97
23563  tmp___0 = __builtin_expect(__cil_tmp10, 0L);
23564  }
23565#line 97
23566  if (tmp___0 != 0L) {
23567#line 97
23568    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/linux/scatterlist.h"),
23569                         "i" (97), "i" (12UL));
23570    ldv_20378: ;
23571#line 97
23572    goto ldv_20378;
23573  } else {
23574
23575  }
23576  {
23577#line 99
23578  __cil_tmp11 = sg->page_link;
23579#line 99
23580  __cil_tmp12 = __cil_tmp11 & 1152921504606846972UL;
23581#line 99
23582  return ((struct page *)__cil_tmp12);
23583  }
23584}
23585}
23586#line 197 "include/linux/scatterlist.h"
23587__inline static void *sg_virt(struct scatterlist *sg ) 
23588{ struct page *tmp ;
23589  void *tmp___0 ;
23590  unsigned int __cil_tmp4 ;
23591  unsigned long __cil_tmp5 ;
23592
23593  {
23594  {
23595#line 199
23596  tmp = sg_page(sg);
23597#line 199
23598  tmp___0 = lowmem_page_address(tmp);
23599  }
23600  {
23601#line 199
23602  __cil_tmp4 = sg->offset;
23603#line 199
23604  __cil_tmp5 = (unsigned long )__cil_tmp4;
23605#line 199
23606  return (tmp___0 + __cil_tmp5);
23607  }
23608}
23609}
23610#line 202
23611extern struct scatterlist *sg_next(struct scatterlist * ) ;
23612#line 80 "include/linux/dma-mapping.h"
23613__inline static int valid_dma_direction(int dma_direction ) 
23614{ int tmp ;
23615
23616  {
23617#line 82
23618  if (dma_direction == 0) {
23619#line 82
23620    tmp = 1;
23621  } else
23622#line 82
23623  if (dma_direction == 1) {
23624#line 82
23625    tmp = 1;
23626  } else
23627#line 82
23628  if (dma_direction == 2) {
23629#line 82
23630    tmp = 1;
23631  } else {
23632#line 82
23633    tmp = 0;
23634  }
23635#line 82
23636  return (tmp);
23637}
23638}
23639#line 131 "include/linux/kmemcheck.h"
23640__inline static void kmemcheck_mark_initialized(void *address , unsigned int n ) 
23641{ 
23642
23643  {
23644#line 133
23645  return;
23646}
23647}
23648#line 37 "include/linux/dma-debug.h"
23649extern void debug_dma_map_page(struct device * , struct page * , size_t  , size_t  ,
23650                               int  , dma_addr_t  , bool  ) ;
23651#line 42
23652extern void debug_dma_unmap_page(struct device * , dma_addr_t  , size_t  , int  ,
23653                                 bool  ) ;
23654#line 45
23655extern void debug_dma_map_sg(struct device * , struct scatterlist * , int  , int  ,
23656                             int  ) ;
23657#line 48
23658extern void debug_dma_unmap_sg(struct device * , struct scatterlist * , int  , int  ) ;
23659#line 29 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
23660extern struct dma_map_ops *dma_ops ;
23661#line 31 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
23662__inline static struct dma_map_ops *get_dma_ops(struct device *dev ) 
23663{ long tmp ;
23664  struct device *__cil_tmp3 ;
23665  unsigned long __cil_tmp4 ;
23666  unsigned long __cil_tmp5 ;
23667  int __cil_tmp6 ;
23668  long __cil_tmp7 ;
23669  struct dma_map_ops *__cil_tmp8 ;
23670  unsigned long __cil_tmp9 ;
23671  struct dma_map_ops *__cil_tmp10 ;
23672  unsigned long __cil_tmp11 ;
23673
23674  {
23675  {
23676#line 36
23677  __cil_tmp3 = (struct device *)0;
23678#line 36
23679  __cil_tmp4 = (unsigned long )__cil_tmp3;
23680#line 36
23681  __cil_tmp5 = (unsigned long )dev;
23682#line 36
23683  __cil_tmp6 = __cil_tmp5 == __cil_tmp4;
23684#line 36
23685  __cil_tmp7 = (long )__cil_tmp6;
23686#line 36
23687  tmp = __builtin_expect(__cil_tmp7, 0L);
23688  }
23689#line 36
23690  if (tmp != 0L) {
23691#line 37
23692    return (dma_ops);
23693  } else {
23694    {
23695#line 36
23696    __cil_tmp8 = (struct dma_map_ops *)0;
23697#line 36
23698    __cil_tmp9 = (unsigned long )__cil_tmp8;
23699#line 36
23700    __cil_tmp10 = dev->archdata.dma_ops;
23701#line 36
23702    __cil_tmp11 = (unsigned long )__cil_tmp10;
23703#line 36
23704    if (__cil_tmp11 == __cil_tmp9) {
23705#line 37
23706      return (dma_ops);
23707    } else {
23708#line 39
23709      return (dev->archdata.dma_ops);
23710    }
23711    }
23712  }
23713}
23714}
23715#line 9 "include/asm-generic/dma-mapping-common.h"
23716__inline static dma_addr_t dma_map_single_attrs(struct device *dev , void *ptr , size_t size ,
23717                                                enum dma_data_direction dir , struct dma_attrs *attrs ) 
23718{ struct dma_map_ops *ops ;
23719  struct dma_map_ops *tmp ;
23720  dma_addr_t addr ;
23721  int tmp___0 ;
23722  long tmp___1 ;
23723  unsigned long tmp___2 ;
23724  unsigned long tmp___3 ;
23725  unsigned int __cil_tmp13 ;
23726  int __cil_tmp14 ;
23727  int __cil_tmp15 ;
23728  long __cil_tmp16 ;
23729  unsigned long __cil_tmp17 ;
23730  dma_addr_t (*__cil_tmp18)(struct device * , struct page * , unsigned long  , size_t  ,
23731                            enum dma_data_direction  , struct dma_attrs * ) ;
23732  unsigned long __cil_tmp19 ;
23733  unsigned long __cil_tmp20 ;
23734  struct page *__cil_tmp21 ;
23735  unsigned long __cil_tmp22 ;
23736  unsigned long __cil_tmp23 ;
23737  unsigned long __cil_tmp24 ;
23738  unsigned long __cil_tmp25 ;
23739  unsigned long __cil_tmp26 ;
23740  struct page *__cil_tmp27 ;
23741  unsigned long __cil_tmp28 ;
23742  unsigned long __cil_tmp29 ;
23743  int __cil_tmp30 ;
23744  bool __cil_tmp31 ;
23745
23746  {
23747  {
23748#line 14
23749  tmp = get_dma_ops(dev);
23750#line 14
23751  ops = tmp;
23752#line 17
23753  __cil_tmp13 = (unsigned int )size;
23754#line 17
23755  kmemcheck_mark_initialized(ptr, __cil_tmp13);
23756#line 18
23757  __cil_tmp14 = (int )dir;
23758#line 18
23759  tmp___0 = valid_dma_direction(__cil_tmp14);
23760#line 18
23761  __cil_tmp15 = tmp___0 == 0;
23762#line 18
23763  __cil_tmp16 = (long )__cil_tmp15;
23764#line 18
23765  tmp___1 = __builtin_expect(__cil_tmp16, 0L);
23766  }
23767#line 18
23768  if (tmp___1 != 0L) {
23769#line 18
23770    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"),
23771                         "i" (18), "i" (12UL));
23772    ldv_20812: ;
23773#line 18
23774    goto ldv_20812;
23775  } else {
23776
23777  }
23778  {
23779#line 19
23780  __cil_tmp17 = (unsigned long )ptr;
23781#line 19
23782  tmp___2 = __phys_addr(__cil_tmp17);
23783#line 19
23784  __cil_tmp18 = ops->map_page;
23785#line 19
23786  __cil_tmp19 = tmp___2 >> 12;
23787#line 19
23788  __cil_tmp20 = 1152897315351035904UL + __cil_tmp19;
23789#line 19
23790  __cil_tmp21 = (struct page *)__cil_tmp20;
23791#line 19
23792  __cil_tmp22 = (unsigned long )ptr;
23793#line 19
23794  __cil_tmp23 = __cil_tmp22 & 4095UL;
23795#line 19
23796  addr = (*__cil_tmp18)(dev, __cil_tmp21, __cil_tmp23, size, dir, attrs);
23797#line 22
23798  __cil_tmp24 = (unsigned long )ptr;
23799#line 22
23800  tmp___3 = __phys_addr(__cil_tmp24);
23801#line 22
23802  __cil_tmp25 = tmp___3 >> 12;
23803#line 22
23804  __cil_tmp26 = 1152897315351035904UL + __cil_tmp25;
23805#line 22
23806  __cil_tmp27 = (struct page *)__cil_tmp26;
23807#line 22
23808  __cil_tmp28 = (unsigned long )ptr;
23809#line 22
23810  __cil_tmp29 = __cil_tmp28 & 4095UL;
23811#line 22
23812  __cil_tmp30 = (int )dir;
23813#line 22
23814  __cil_tmp31 = (bool )1;
23815#line 22
23816  debug_dma_map_page(dev, __cil_tmp27, __cil_tmp29, size, __cil_tmp30, addr, __cil_tmp31);
23817  }
23818#line 25
23819  return (addr);
23820}
23821}
23822#line 28 "include/asm-generic/dma-mapping-common.h"
23823__inline static void dma_unmap_single_attrs(struct device *dev , dma_addr_t addr ,
23824                                            size_t size , enum dma_data_direction dir ,
23825                                            struct dma_attrs *attrs ) 
23826{ struct dma_map_ops *ops ;
23827  struct dma_map_ops *tmp ;
23828  int tmp___0 ;
23829  long tmp___1 ;
23830  int __cil_tmp10 ;
23831  int __cil_tmp11 ;
23832  long __cil_tmp12 ;
23833  void (*__cil_tmp13)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
23834                      struct dma_attrs * ) ;
23835  unsigned long __cil_tmp14 ;
23836  void (*__cil_tmp15)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
23837                      struct dma_attrs * ) ;
23838  unsigned long __cil_tmp16 ;
23839  void (*__cil_tmp17)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
23840                      struct dma_attrs * ) ;
23841  int __cil_tmp18 ;
23842  bool __cil_tmp19 ;
23843
23844  {
23845  {
23846#line 33
23847  tmp = get_dma_ops(dev);
23848#line 33
23849  ops = tmp;
23850#line 35
23851  __cil_tmp10 = (int )dir;
23852#line 35
23853  tmp___0 = valid_dma_direction(__cil_tmp10);
23854#line 35
23855  __cil_tmp11 = tmp___0 == 0;
23856#line 35
23857  __cil_tmp12 = (long )__cil_tmp11;
23858#line 35
23859  tmp___1 = __builtin_expect(__cil_tmp12, 0L);
23860  }
23861#line 35
23862  if (tmp___1 != 0L) {
23863#line 35
23864    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"),
23865                         "i" (35), "i" (12UL));
23866    ldv_20821: ;
23867#line 35
23868    goto ldv_20821;
23869  } else {
23870
23871  }
23872  {
23873#line 36
23874  __cil_tmp13 = (void (*)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
23875                          struct dma_attrs * ))0;
23876#line 36
23877  __cil_tmp14 = (unsigned long )__cil_tmp13;
23878#line 36
23879  __cil_tmp15 = ops->unmap_page;
23880#line 36
23881  __cil_tmp16 = (unsigned long )__cil_tmp15;
23882#line 36
23883  if (__cil_tmp16 != __cil_tmp14) {
23884    {
23885#line 37
23886    __cil_tmp17 = ops->unmap_page;
23887#line 37
23888    (*__cil_tmp17)(dev, addr, size, dir, attrs);
23889    }
23890  } else {
23891
23892  }
23893  }
23894  {
23895#line 38
23896  __cil_tmp18 = (int )dir;
23897#line 38
23898  __cil_tmp19 = (bool )1;
23899#line 38
23900  debug_dma_unmap_page(dev, addr, size, __cil_tmp18, __cil_tmp19);
23901  }
23902#line 39
23903  return;
23904}
23905}
23906#line 41 "include/asm-generic/dma-mapping-common.h"
23907__inline static int dma_map_sg_attrs(struct device *dev , struct scatterlist *sg ,
23908                                     int nents , enum dma_data_direction dir , struct dma_attrs *attrs ) 
23909{ struct dma_map_ops *ops ;
23910  struct dma_map_ops *tmp ;
23911  int i ;
23912  int ents ;
23913  struct scatterlist *s ;
23914  void *tmp___0 ;
23915  int tmp___1 ;
23916  long tmp___2 ;
23917  unsigned int __cil_tmp14 ;
23918  int __cil_tmp15 ;
23919  int __cil_tmp16 ;
23920  long __cil_tmp17 ;
23921  int (*__cil_tmp18)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
23922                     struct dma_attrs * ) ;
23923  int __cil_tmp19 ;
23924
23925  {
23926  {
23927#line 45
23928  tmp = get_dma_ops(dev);
23929#line 45
23930  ops = tmp;
23931#line 49
23932  i = 0;
23933#line 49
23934  s = sg;
23935  }
23936#line 49
23937  goto ldv_20834;
23938  ldv_20833: 
23939  {
23940#line 50
23941  tmp___0 = sg_virt(s);
23942#line 50
23943  __cil_tmp14 = s->length;
23944#line 50
23945  kmemcheck_mark_initialized(tmp___0, __cil_tmp14);
23946#line 49
23947  i = i + 1;
23948#line 49
23949  s = sg_next(s);
23950  }
23951  ldv_20834: ;
23952#line 49
23953  if (i < nents) {
23954#line 50
23955    goto ldv_20833;
23956  } else {
23957#line 52
23958    goto ldv_20835;
23959  }
23960  ldv_20835: 
23961  {
23962#line 51
23963  __cil_tmp15 = (int )dir;
23964#line 51
23965  tmp___1 = valid_dma_direction(__cil_tmp15);
23966#line 51
23967  __cil_tmp16 = tmp___1 == 0;
23968#line 51
23969  __cil_tmp17 = (long )__cil_tmp16;
23970#line 51
23971  tmp___2 = __builtin_expect(__cil_tmp17, 0L);
23972  }
23973#line 51
23974  if (tmp___2 != 0L) {
23975#line 51
23976    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"),
23977                         "i" (51), "i" (12UL));
23978    ldv_20836: ;
23979#line 51
23980    goto ldv_20836;
23981  } else {
23982
23983  }
23984  {
23985#line 52
23986  __cil_tmp18 = ops->map_sg;
23987#line 52
23988  ents = (*__cil_tmp18)(dev, sg, nents, dir, attrs);
23989#line 53
23990  __cil_tmp19 = (int )dir;
23991#line 53
23992  debug_dma_map_sg(dev, sg, nents, ents, __cil_tmp19);
23993  }
23994#line 55
23995  return (ents);
23996}
23997}
23998#line 58 "include/asm-generic/dma-mapping-common.h"
23999__inline static void dma_unmap_sg_attrs(struct device *dev , struct scatterlist *sg ,
24000                                        int nents , enum dma_data_direction dir ,
24001                                        struct dma_attrs *attrs ) 
24002{ struct dma_map_ops *ops ;
24003  struct dma_map_ops *tmp ;
24004  int tmp___0 ;
24005  long tmp___1 ;
24006  int __cil_tmp10 ;
24007  int __cil_tmp11 ;
24008  long __cil_tmp12 ;
24009  int __cil_tmp13 ;
24010  void (*__cil_tmp14)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
24011                      struct dma_attrs * ) ;
24012  unsigned long __cil_tmp15 ;
24013  void (*__cil_tmp16)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
24014                      struct dma_attrs * ) ;
24015  unsigned long __cil_tmp17 ;
24016  void (*__cil_tmp18)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
24017                      struct dma_attrs * ) ;
24018
24019  {
24020  {
24021#line 62
24022  tmp = get_dma_ops(dev);
24023#line 62
24024  ops = tmp;
24025#line 64
24026  __cil_tmp10 = (int )dir;
24027#line 64
24028  tmp___0 = valid_dma_direction(__cil_tmp10);
24029#line 64
24030  __cil_tmp11 = tmp___0 == 0;
24031#line 64
24032  __cil_tmp12 = (long )__cil_tmp11;
24033#line 64
24034  tmp___1 = __builtin_expect(__cil_tmp12, 0L);
24035  }
24036#line 64
24037  if (tmp___1 != 0L) {
24038#line 64
24039    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"),
24040                         "i" (64), "i" (12UL));
24041    ldv_20845: ;
24042#line 64
24043    goto ldv_20845;
24044  } else {
24045
24046  }
24047  {
24048#line 65
24049  __cil_tmp13 = (int )dir;
24050#line 65
24051  debug_dma_unmap_sg(dev, sg, nents, __cil_tmp13);
24052  }
24053  {
24054#line 66
24055  __cil_tmp14 = (void (*)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
24056                          struct dma_attrs * ))0;
24057#line 66
24058  __cil_tmp15 = (unsigned long )__cil_tmp14;
24059#line 66
24060  __cil_tmp16 = ops->unmap_sg;
24061#line 66
24062  __cil_tmp17 = (unsigned long )__cil_tmp16;
24063#line 66
24064  if (__cil_tmp17 != __cil_tmp15) {
24065    {
24066#line 67
24067    __cil_tmp18 = ops->unmap_sg;
24068#line 67
24069    (*__cil_tmp18)(dev, sg, nents, dir, attrs);
24070    }
24071  } else {
24072
24073  }
24074  }
24075#line 68
24076  return;
24077}
24078}
24079#line 70 "include/asm-generic/dma-mapping-common.h"
24080__inline static dma_addr_t dma_map_page(struct device *dev , struct page *page , size_t offset ,
24081                                        size_t size , enum dma_data_direction dir ) 
24082{ struct dma_map_ops *ops ;
24083  struct dma_map_ops *tmp ;
24084  dma_addr_t addr ;
24085  void *tmp___0 ;
24086  int tmp___1 ;
24087  long tmp___2 ;
24088  void *__cil_tmp12 ;
24089  unsigned int __cil_tmp13 ;
24090  int __cil_tmp14 ;
24091  int __cil_tmp15 ;
24092  long __cil_tmp16 ;
24093  dma_addr_t (*__cil_tmp17)(struct device * , struct page * , unsigned long  , size_t  ,
24094                            enum dma_data_direction  , struct dma_attrs * ) ;
24095  struct dma_attrs *__cil_tmp18 ;
24096  int __cil_tmp19 ;
24097  bool __cil_tmp20 ;
24098
24099  {
24100  {
24101#line 74
24102  tmp = get_dma_ops(dev);
24103#line 74
24104  ops = tmp;
24105#line 77
24106  tmp___0 = lowmem_page_address(page);
24107#line 77
24108  __cil_tmp12 = tmp___0 + offset;
24109#line 77
24110  __cil_tmp13 = (unsigned int )size;
24111#line 77
24112  kmemcheck_mark_initialized(__cil_tmp12, __cil_tmp13);
24113#line 78
24114  __cil_tmp14 = (int )dir;
24115#line 78
24116  tmp___1 = valid_dma_direction(__cil_tmp14);
24117#line 78
24118  __cil_tmp15 = tmp___1 == 0;
24119#line 78
24120  __cil_tmp16 = (long )__cil_tmp15;
24121#line 78
24122  tmp___2 = __builtin_expect(__cil_tmp16, 0L);
24123  }
24124#line 78
24125  if (tmp___2 != 0L) {
24126#line 78
24127    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"),
24128                         "i" (78), "i" (12UL));
24129    ldv_20855: ;
24130#line 78
24131    goto ldv_20855;
24132  } else {
24133
24134  }
24135  {
24136#line 79
24137  __cil_tmp17 = ops->map_page;
24138#line 79
24139  __cil_tmp18 = (struct dma_attrs *)0;
24140#line 79
24141  addr = (*__cil_tmp17)(dev, page, offset, size, dir, __cil_tmp18);
24142#line 80
24143  __cil_tmp19 = (int )dir;
24144#line 80
24145  __cil_tmp20 = (bool )0;
24146#line 80
24147  debug_dma_map_page(dev, page, offset, size, __cil_tmp19, addr, __cil_tmp20);
24148  }
24149#line 82
24150  return (addr);
24151}
24152}
24153#line 85 "include/asm-generic/dma-mapping-common.h"
24154__inline static void dma_unmap_page(struct device *dev , dma_addr_t addr , size_t size ,
24155                                    enum dma_data_direction dir ) 
24156{ struct dma_map_ops *ops ;
24157  struct dma_map_ops *tmp ;
24158  int tmp___0 ;
24159  long tmp___1 ;
24160  int __cil_tmp9 ;
24161  int __cil_tmp10 ;
24162  long __cil_tmp11 ;
24163  void (*__cil_tmp12)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
24164                      struct dma_attrs * ) ;
24165  unsigned long __cil_tmp13 ;
24166  void (*__cil_tmp14)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
24167                      struct dma_attrs * ) ;
24168  unsigned long __cil_tmp15 ;
24169  void (*__cil_tmp16)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
24170                      struct dma_attrs * ) ;
24171  struct dma_attrs *__cil_tmp17 ;
24172  int __cil_tmp18 ;
24173  bool __cil_tmp19 ;
24174
24175  {
24176  {
24177#line 88
24178  tmp = get_dma_ops(dev);
24179#line 88
24180  ops = tmp;
24181#line 90
24182  __cil_tmp9 = (int )dir;
24183#line 90
24184  tmp___0 = valid_dma_direction(__cil_tmp9);
24185#line 90
24186  __cil_tmp10 = tmp___0 == 0;
24187#line 90
24188  __cil_tmp11 = (long )__cil_tmp10;
24189#line 90
24190  tmp___1 = __builtin_expect(__cil_tmp11, 0L);
24191  }
24192#line 90
24193  if (tmp___1 != 0L) {
24194#line 90
24195    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/asm-generic/dma-mapping-common.h"),
24196                         "i" (90), "i" (12UL));
24197    ldv_20863: ;
24198#line 90
24199    goto ldv_20863;
24200  } else {
24201
24202  }
24203  {
24204#line 91
24205  __cil_tmp12 = (void (*)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
24206                          struct dma_attrs * ))0;
24207#line 91
24208  __cil_tmp13 = (unsigned long )__cil_tmp12;
24209#line 91
24210  __cil_tmp14 = ops->unmap_page;
24211#line 91
24212  __cil_tmp15 = (unsigned long )__cil_tmp14;
24213#line 91
24214  if (__cil_tmp15 != __cil_tmp13) {
24215    {
24216#line 92
24217    __cil_tmp16 = ops->unmap_page;
24218#line 92
24219    __cil_tmp17 = (struct dma_attrs *)0;
24220#line 92
24221    (*__cil_tmp16)(dev, addr, size, dir, __cil_tmp17);
24222    }
24223  } else {
24224
24225  }
24226  }
24227  {
24228#line 93
24229  __cil_tmp18 = (int )dir;
24230#line 93
24231  __cil_tmp19 = (bool )0;
24232#line 93
24233  debug_dma_unmap_page(dev, addr, size, __cil_tmp18, __cil_tmp19);
24234  }
24235#line 94
24236  return;
24237}
24238}
24239#line 46 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
24240__inline static int dma_mapping_error(struct device *dev , dma_addr_t dma_addr ) 
24241{ struct dma_map_ops *ops ;
24242  struct dma_map_ops *tmp ;
24243  int tmp___0 ;
24244  int (*__cil_tmp6)(struct device * , dma_addr_t  ) ;
24245  unsigned long __cil_tmp7 ;
24246  int (*__cil_tmp8)(struct device * , dma_addr_t  ) ;
24247  unsigned long __cil_tmp9 ;
24248  int (*__cil_tmp10)(struct device * , dma_addr_t  ) ;
24249
24250  {
24251  {
24252#line 48
24253  tmp = get_dma_ops(dev);
24254#line 48
24255  ops = tmp;
24256  }
24257  {
24258#line 49
24259  __cil_tmp6 = (int (*)(struct device * , dma_addr_t  ))0;
24260#line 49
24261  __cil_tmp7 = (unsigned long )__cil_tmp6;
24262#line 49
24263  __cil_tmp8 = ops->mapping_error;
24264#line 49
24265  __cil_tmp9 = (unsigned long )__cil_tmp8;
24266#line 49
24267  if (__cil_tmp9 != __cil_tmp7) {
24268    {
24269#line 50
24270    __cil_tmp10 = ops->mapping_error;
24271#line 50
24272    tmp___0 = (*__cil_tmp10)(dev, dma_addr);
24273    }
24274#line 50
24275    return (tmp___0);
24276  } else {
24277
24278  }
24279  }
24280#line 52
24281  return (dma_addr == 0ULL);
24282}
24283}
24284#line 17 "include/linux/unaligned/access_ok.h"
24285__inline static u64 get_unaligned_le64(void const   *p ) 
24286{ __u64 tmp ;
24287  __le64 const   *__cil_tmp3 ;
24288
24289  {
24290  {
24291#line 19
24292  __cil_tmp3 = (__le64 const   *)p;
24293#line 19
24294  tmp = __le64_to_cpup(__cil_tmp3);
24295  }
24296#line 19
24297  return (tmp);
24298}
24299}
24300#line 37 "include/linux/unaligned/access_ok.h"
24301__inline static void put_unaligned_le16(u16 val , void *p ) 
24302{ __le16 *__cil_tmp3 ;
24303
24304  {
24305#line 39
24306  __cil_tmp3 = (__le16 *)p;
24307#line 39
24308  *__cil_tmp3 = val;
24309#line 40
24310  return;
24311}
24312}
24313#line 42 "include/linux/unaligned/access_ok.h"
24314__inline static void put_unaligned_le32(u32 val , void *p ) 
24315{ __le32 *__cil_tmp3 ;
24316
24317  {
24318#line 44
24319  __cil_tmp3 = (__le32 *)p;
24320#line 44
24321  *__cil_tmp3 = val;
24322#line 45
24323  return;
24324}
24325}
24326#line 47 "include/linux/unaligned/access_ok.h"
24327__inline static void put_unaligned_le64(u64 val , void *p ) 
24328{ __le64 *__cil_tmp3 ;
24329
24330  {
24331#line 49
24332  __cil_tmp3 = (__le64 *)p;
24333#line 49
24334  *__cil_tmp3 = val;
24335#line 50
24336  return;
24337}
24338}
24339#line 8 "include/linux/unaligned/generic.h"
24340extern void __bad_unaligned_access_size(void) ;
24341#line 138 "include/linux/platform_device.h"
24342__inline static void *platform_get_drvdata(struct platform_device  const  *pdev ) 
24343{ void *tmp ;
24344  struct device  const  *__cil_tmp3 ;
24345
24346  {
24347  {
24348#line 140
24349  __cil_tmp3 = & pdev->dev;
24350#line 140
24351  tmp = dev_get_drvdata(__cil_tmp3);
24352  }
24353#line 140
24354  return (tmp);
24355}
24356}
24357#line 401 "include/linux/usb/ch9.h"
24358__inline static int usb_endpoint_num(struct usb_endpoint_descriptor  const  *epd ) 
24359{ __u8 __cil_tmp2 ;
24360  int __cil_tmp3 ;
24361
24362  {
24363  {
24364#line 403
24365  __cil_tmp2 = epd->bEndpointAddress;
24366#line 403
24367  __cil_tmp3 = (int )__cil_tmp2;
24368#line 403
24369  return (__cil_tmp3 & 15);
24370  }
24371}
24372}
24373#line 413 "include/linux/usb/ch9.h"
24374__inline static int usb_endpoint_type(struct usb_endpoint_descriptor  const  *epd ) 
24375{ __u8 __cil_tmp2 ;
24376  int __cil_tmp3 ;
24377
24378  {
24379  {
24380#line 415
24381  __cil_tmp2 = epd->bmAttributes;
24382#line 415
24383  __cil_tmp3 = (int )__cil_tmp2;
24384#line 415
24385  return (__cil_tmp3 & 3);
24386  }
24387}
24388}
24389#line 435 "include/linux/usb/ch9.h"
24390__inline static int usb_endpoint_dir_out(struct usb_endpoint_descriptor  const  *epd ) 
24391{ __u8 __cil_tmp2 ;
24392  signed char __cil_tmp3 ;
24393  int __cil_tmp4 ;
24394
24395  {
24396  {
24397#line 438
24398  __cil_tmp2 = epd->bEndpointAddress;
24399#line 438
24400  __cil_tmp3 = (signed char )__cil_tmp2;
24401#line 438
24402  __cil_tmp4 = (int )__cil_tmp3;
24403#line 438
24404  return (__cil_tmp4 >= 0);
24405  }
24406}
24407}
24408#line 447 "include/linux/usb/ch9.h"
24409__inline static int usb_endpoint_xfer_bulk(struct usb_endpoint_descriptor  const  *epd ) 
24410{ __u8 __cil_tmp2 ;
24411  int __cil_tmp3 ;
24412  int __cil_tmp4 ;
24413
24414  {
24415  {
24416#line 450
24417  __cil_tmp2 = epd->bmAttributes;
24418#line 450
24419  __cil_tmp3 = (int )__cil_tmp2;
24420#line 450
24421  __cil_tmp4 = __cil_tmp3 & 3;
24422#line 450
24423  return (__cil_tmp4 == 2);
24424  }
24425}
24426}
24427#line 460 "include/linux/usb/ch9.h"
24428__inline static int usb_endpoint_xfer_control(struct usb_endpoint_descriptor  const  *epd ) 
24429{ __u8 __cil_tmp2 ;
24430  int __cil_tmp3 ;
24431  int __cil_tmp4 ;
24432
24433  {
24434  {
24435#line 463
24436  __cil_tmp2 = epd->bmAttributes;
24437#line 463
24438  __cil_tmp3 = (int )__cil_tmp2;
24439#line 463
24440  __cil_tmp4 = __cil_tmp3 & 3;
24441#line 463
24442  return (__cil_tmp4 == 0);
24443  }
24444}
24445}
24446#line 124 "include/linux/interrupt.h"
24447extern int request_threaded_irq(unsigned int  , irqreturn_t (*)(int  , void * ) ,
24448                                irqreturn_t (*)(int  , void * ) , unsigned long  ,
24449                                char const   * , void * ) ;
24450#line 129 "include/linux/interrupt.h"
24451__inline static int request_irq(unsigned int irq , irqreturn_t (*handler)(int  , void * ) ,
24452                                unsigned long flags , char const   *name , void *dev ) 
24453{ int tmp ;
24454  irqreturn_t (*__cil_tmp7)(int  , void * ) ;
24455
24456  {
24457  {
24458#line 132
24459  __cil_tmp7 = (irqreturn_t (*)(int  , void * ))0;
24460#line 132
24461  tmp = request_threaded_irq(irq, handler, __cil_tmp7, flags, name, dev);
24462  }
24463#line 132
24464  return (tmp);
24465}
24466}
24467#line 170
24468extern void free_irq(unsigned int  , void * ) ;
24469#line 27 "include/linux/pm_runtime.h"
24470extern struct workqueue_struct *pm_wq ;
24471#line 566 "include/linux/usb.h"
24472int usb_alloc_streams(struct usb_interface *interface , struct usb_host_endpoint **eps ,
24473                      unsigned int num_eps , unsigned int num_streams , gfp_t mem_flags ) ;
24474#line 571
24475void usb_free_streams(struct usb_interface *interface , struct usb_host_endpoint **eps ,
24476                      unsigned int num_eps , gfp_t mem_flags ) ;
24477#line 1335
24478struct urb *usb_get_urb(struct urb *urb ) ;
24479#line 1346
24480void usb_unanchor_urb(struct urb *urb ) ;
24481#line 1360 "include/linux/usb.h"
24482__inline static int usb_urb_dir_in(struct urb *urb ) 
24483{ unsigned int __cil_tmp2 ;
24484  unsigned int __cil_tmp3 ;
24485
24486  {
24487  {
24488#line 1362
24489  __cil_tmp2 = urb->transfer_flags;
24490#line 1362
24491  __cil_tmp3 = __cil_tmp2 & 512U;
24492#line 1362
24493  return (__cil_tmp3 != 0U);
24494  }
24495}
24496}
24497#line 348 "include/linux/usb/hcd.h"
24498int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd , struct urb *urb ) ;
24499#line 349
24500int usb_hcd_check_unlink_urb(struct usb_hcd *hcd , struct urb *urb , int status ) ;
24501#line 351
24502void usb_hcd_unlink_urb_from_ep(struct usb_hcd *hcd , struct urb *urb ) ;
24503#line 353
24504int usb_hcd_submit_urb(struct urb *urb , gfp_t mem_flags ) ;
24505#line 354
24506int usb_hcd_unlink_urb(struct urb *urb , int status ) ;
24507#line 355
24508void usb_hcd_giveback_urb(struct usb_hcd *hcd , struct urb *urb , int status ) ;
24509#line 357
24510int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd , struct urb *urb , gfp_t mem_flags ) ;
24511#line 359
24512void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *hcd , struct urb *urb ) ;
24513#line 360
24514void usb_hcd_unmap_urb_for_dma(struct usb_hcd *hcd , struct urb *urb ) ;
24515#line 361
24516void usb_hcd_flush_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) ;
24517#line 363
24518void usb_hcd_disable_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) ;
24519#line 365
24520void usb_hcd_reset_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) ;
24521#line 374
24522struct usb_hcd *usb_create_hcd(struct hc_driver  const  *driver , struct device *dev ,
24523                               char const   *bus_name ) ;
24524#line 376
24525struct usb_hcd *usb_create_shared_hcd(struct hc_driver  const  *driver , struct device *dev ,
24526                                      char const   *bus_name , struct usb_hcd *primary_hcd ) ;
24527#line 381
24528int usb_hcd_is_primary_hcd(struct usb_hcd *hcd ) ;
24529#line 382
24530int usb_add_hcd(struct usb_hcd *hcd , unsigned int irqnum , unsigned long irqflags ) ;
24531#line 384
24532void usb_remove_hcd(struct usb_hcd *hcd ) ;
24533#line 387
24534void usb_hcd_platform_shutdown(struct platform_device *dev ) ;
24535#line 403
24536int hcd_buffer_create(struct usb_hcd *hcd ) ;
24537#line 404
24538void hcd_buffer_destroy(struct usb_hcd *hcd ) ;
24539#line 412
24540irqreturn_t usb_hcd_irq(int irq , void *__hcd ) ;
24541#line 414
24542void usb_hc_died(struct usb_hcd *hcd ) ;
24543#line 415
24544void usb_hcd_poll_rh_status(struct usb_hcd *hcd ) ;
24545#line 548
24546long usb_calc_bus_time(int speed , int is_input , int isoc , int bytecount ) ;
24547#line 560
24548struct list_head usb_bus_list ;
24549#line 561
24550struct mutex usb_bus_list_lock ;
24551#line 562
24552wait_queue_head_t usb_kill_urb_queue ;
24553#line 571
24554int hcd_bus_suspend(struct usb_device *rhdev , pm_message_t msg ) ;
24555#line 572
24556int hcd_bus_resume(struct usb_device *rhdev , pm_message_t msg ) ;
24557#line 576
24558void usb_hcd_resume_root_hub(struct usb_hcd *hcd ) ;
24559#line 618 "include/linux/usb/hcd.h"
24560struct usb_mon_operations *mon_ops  ;
24561#line 620 "include/linux/usb/hcd.h"
24562__inline static void usbmon_urb_submit(struct usb_bus *bus , struct urb *urb ) 
24563{ int __cil_tmp3 ;
24564  void (*__cil_tmp4)(struct usb_bus * , struct urb * ) ;
24565
24566  {
24567  {
24568#line 622
24569  __cil_tmp3 = bus->monitored;
24570#line 622
24571  if (__cil_tmp3 != 0) {
24572    {
24573#line 623
24574    __cil_tmp4 = mon_ops->urb_submit;
24575#line 623
24576    (*__cil_tmp4)(bus, urb);
24577    }
24578  } else {
24579
24580  }
24581  }
24582#line 624
24583  return;
24584}
24585}
24586#line 626 "include/linux/usb/hcd.h"
24587__inline static void usbmon_urb_submit_error(struct usb_bus *bus , struct urb *urb ,
24588                                             int error ) 
24589{ int __cil_tmp4 ;
24590  void (*__cil_tmp5)(struct usb_bus * , struct urb * , int  ) ;
24591
24592  {
24593  {
24594#line 629
24595  __cil_tmp4 = bus->monitored;
24596#line 629
24597  if (__cil_tmp4 != 0) {
24598    {
24599#line 630
24600    __cil_tmp5 = mon_ops->urb_submit_error;
24601#line 630
24602    (*__cil_tmp5)(bus, urb, error);
24603    }
24604  } else {
24605
24606  }
24607  }
24608#line 631
24609  return;
24610}
24611}
24612#line 633 "include/linux/usb/hcd.h"
24613__inline static void usbmon_urb_complete(struct usb_bus *bus , struct urb *urb , int status ) 
24614{ int __cil_tmp4 ;
24615  void (*__cil_tmp5)(struct usb_bus * , struct urb * , int  ) ;
24616
24617  {
24618  {
24619#line 636
24620  __cil_tmp4 = bus->monitored;
24621#line 636
24622  if (__cil_tmp4 != 0) {
24623    {
24624#line 637
24625    __cil_tmp5 = mon_ops->urb_complete;
24626#line 637
24627    (*__cil_tmp5)(bus, urb, status);
24628    }
24629  } else {
24630
24631  }
24632  }
24633#line 638
24634  return;
24635}
24636}
24637#line 640
24638int usb_mon_register(struct usb_mon_operations *ops ) ;
24639#line 641
24640void usb_mon_deregister(void) ;
24641#line 670 "include/linux/usb/hcd.h"
24642unsigned long usb_hcds_loaded  ;
24643#line 162 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
24644void usb_notify_add_bus(struct usb_bus *ubus ) ;
24645#line 163
24646void usb_notify_remove_bus(struct usb_bus *ubus ) ;
24647#line 96 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24648struct list_head usb_bus_list  =    {& usb_bus_list, & usb_bus_list};
24649#line 104 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24650static struct usb_busmap busmap  ;
24651#line 107 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24652struct mutex usb_bus_list_lock  =    {{1}, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24653                                                                            {(struct lock_class *)0,
24654                                                                             (struct lock_class *)0},
24655                                                                            "usb_bus_list_lock.wait_lock",
24656                                                                            0, 0UL}}}},
24657    {& usb_bus_list_lock.wait_list, & usb_bus_list_lock.wait_list}, (struct task_struct *)0,
24658    (char const   *)0, (void *)(& usb_bus_list_lock), {(struct lock_class_key *)0,
24659                                                       {(struct lock_class *)0, (struct lock_class *)0},
24660                                                       "usb_bus_list_lock", 0, 0UL}};
24661#line 111 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24662static spinlock_t hcd_root_hub_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24663                                                                      {(struct lock_class *)0,
24664                                                                       (struct lock_class *)0},
24665                                                                      "hcd_root_hub_lock",
24666                                                                      0, 0UL}}}};
24667#line 114 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24668static spinlock_t hcd_urb_list_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24669                                                                      {(struct lock_class *)0,
24670                                                                       (struct lock_class *)0},
24671                                                                      "hcd_urb_list_lock",
24672                                                                      0, 0UL}}}};
24673#line 117 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24674static spinlock_t hcd_urb_unlink_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24675                                                                      {(struct lock_class *)0,
24676                                                                       (struct lock_class *)0},
24677                                                                      "hcd_urb_unlink_lock",
24678                                                                      0, 0UL}}}};
24679#line 120 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24680wait_queue_head_t usb_kill_urb_queue  =    {{{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24681                                                                       {(struct lock_class *)0,
24682                                                                        (struct lock_class *)0},
24683                                                                       "usb_kill_urb_queue.lock",
24684                                                                       0, 0UL}}}},
24685    {& usb_kill_urb_queue.task_list, & usb_kill_urb_queue.task_list}};
24686#line 122 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24687__inline static int is_root_hub(struct usb_device *udev ) 
24688{ struct usb_device *__cil_tmp2 ;
24689  unsigned long __cil_tmp3 ;
24690  struct usb_device *__cil_tmp4 ;
24691  unsigned long __cil_tmp5 ;
24692
24693  {
24694  {
24695#line 124
24696  __cil_tmp2 = (struct usb_device *)0;
24697#line 124
24698  __cil_tmp3 = (unsigned long )__cil_tmp2;
24699#line 124
24700  __cil_tmp4 = udev->parent;
24701#line 124
24702  __cil_tmp5 = (unsigned long )__cil_tmp4;
24703#line 124
24704  return (__cil_tmp5 == __cil_tmp3);
24705  }
24706}
24707}
24708#line 139 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24709static u8 const   usb3_rh_dev_descriptor[18U]  = 
24710#line 139
24711  {      (u8 const   )18U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )3U, 
24712        (u8 const   )9U,      (u8 const   )0U,      (u8 const   )3U,      (u8 const   )9U, 
24713        (u8 const   )107U,      (u8 const   )29U,      (u8 const   )3U,      (u8 const   )0U, 
24714        (u8 const   )0U,      (u8 const   )3U,      (u8 const   )3U,      (u8 const   )2U, 
24715        (u8 const   )1U,      (u8 const   )1U};
24716#line 160 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24717static u8 const   usb2_rh_dev_descriptor[18U]  = 
24718#line 160
24719  {      (u8 const   )18U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )2U, 
24720        (u8 const   )9U,      (u8 const   )0U,      (u8 const   )0U,      (u8 const   )64U, 
24721        (u8 const   )107U,      (u8 const   )29U,      (u8 const   )2U,      (u8 const   )0U, 
24722        (u8 const   )0U,      (u8 const   )3U,      (u8 const   )3U,      (u8 const   )2U, 
24723        (u8 const   )1U,      (u8 const   )1U};
24724#line 183 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24725static u8 const   usb11_rh_dev_descriptor[18U]  = 
24726#line 183
24727  {      (u8 const   )18U,      (u8 const   )1U,      (u8 const   )16U,      (u8 const   )1U, 
24728        (u8 const   )9U,      (u8 const   )0U,      (u8 const   )0U,      (u8 const   )64U, 
24729        (u8 const   )107U,      (u8 const   )29U,      (u8 const   )1U,      (u8 const   )0U, 
24730        (u8 const   )0U,      (u8 const   )3U,      (u8 const   )3U,      (u8 const   )2U, 
24731        (u8 const   )1U,      (u8 const   )1U};
24732#line 208 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24733static u8 const   fs_rh_config_descriptor[25U]  = 
24734#line 208
24735  {      (u8 const   )9U,      (u8 const   )2U,      (u8 const   )25U,      (u8 const   )0U, 
24736        (u8 const   )1U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )192U, 
24737        (u8 const   )0U,      (u8 const   )9U,      (u8 const   )4U,      (u8 const   )0U, 
24738        (u8 const   )0U,      (u8 const   )1U,      (u8 const   )9U,      (u8 const   )0U, 
24739        (u8 const   )0U,      (u8 const   )0U,      (u8 const   )7U,      (u8 const   )5U, 
24740        (u8 const   )129U,      (u8 const   )3U,      (u8 const   )2U,      (u8 const   )0U, 
24741        (u8 const   )255U};
24742#line 255 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24743static u8 const   hs_rh_config_descriptor[25U]  = 
24744#line 255
24745  {      (u8 const   )9U,      (u8 const   )2U,      (u8 const   )25U,      (u8 const   )0U, 
24746        (u8 const   )1U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )192U, 
24747        (u8 const   )0U,      (u8 const   )9U,      (u8 const   )4U,      (u8 const   )0U, 
24748        (u8 const   )0U,      (u8 const   )1U,      (u8 const   )9U,      (u8 const   )0U, 
24749        (u8 const   )0U,      (u8 const   )0U,      (u8 const   )7U,      (u8 const   )5U, 
24750        (u8 const   )129U,      (u8 const   )3U,      (u8 const   )4U,      (u8 const   )0U, 
24751        (u8 const   )12U};
24752#line 304 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24753static u8 const   ss_rh_config_descriptor[31U]  = 
24754#line 304
24755  {      (u8 const   )9U,      (u8 const   )2U,      (u8 const   )31U,      (u8 const   )0U, 
24756        (u8 const   )1U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )192U, 
24757        (u8 const   )0U,      (u8 const   )9U,      (u8 const   )4U,      (u8 const   )0U, 
24758        (u8 const   )0U,      (u8 const   )1U,      (u8 const   )9U,      (u8 const   )0U, 
24759        (u8 const   )0U,      (u8 const   )0U,      (u8 const   )7U,      (u8 const   )5U, 
24760        (u8 const   )129U,      (u8 const   )3U,      (u8 const   )4U,      (u8 const   )0U, 
24761        (u8 const   )12U,      (u8 const   )6U,      (u8 const   )48U,      (u8 const   )0U, 
24762        (u8 const   )0U,      (u8 const   )2U,      (u8 const   )0U};
24763#line 363 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24764static unsigned int ascii2desc(char const   *s , u8 *buf , unsigned int len ) 
24765{ unsigned int n ;
24766  unsigned int t ;
24767  size_t tmp ;
24768  u8 *tmp___0 ;
24769  unsigned int tmp___1 ;
24770  u8 *tmp___2 ;
24771  char const   *tmp___3 ;
24772  unsigned int tmp___4 ;
24773  size_t __cil_tmp12 ;
24774  unsigned int __cil_tmp13 ;
24775  unsigned int __cil_tmp14 ;
24776  char __cil_tmp15 ;
24777  unsigned char __cil_tmp16 ;
24778
24779  {
24780  {
24781#line 365
24782  tmp = strlen(s);
24783#line 365
24784  __cil_tmp12 = tmp + 1UL;
24785#line 365
24786  __cil_tmp13 = (unsigned int )__cil_tmp12;
24787#line 365
24788  t = __cil_tmp13 * 2U;
24789  }
24790#line 367
24791  if (t > 254U) {
24792#line 368
24793    t = 254U;
24794  } else {
24795
24796  }
24797#line 369
24798  if (len > t) {
24799#line 370
24800    len = t;
24801  } else {
24802
24803  }
24804#line 372
24805  t = t + 768U;
24806#line 374
24807  n = len;
24808#line 375
24809  goto ldv_27663;
24810  ldv_27662: 
24811#line 376
24812  tmp___0 = buf;
24813#line 376
24814  buf = buf + 1;
24815#line 376
24816  *tmp___0 = (u8 )t;
24817#line 377
24818  tmp___1 = n;
24819#line 377
24820  n = n - 1U;
24821#line 377
24822  if (tmp___1 == 0U) {
24823#line 378
24824    goto ldv_27661;
24825  } else {
24826
24827  }
24828#line 379
24829  tmp___2 = buf;
24830#line 379
24831  buf = buf + 1;
24832#line 379
24833  __cil_tmp14 = t >> 8;
24834#line 379
24835  *tmp___2 = (u8 )__cil_tmp14;
24836#line 380
24837  tmp___3 = s;
24838#line 380
24839  s = s + 1;
24840#line 380
24841  __cil_tmp15 = *tmp___3;
24842#line 380
24843  __cil_tmp16 = (unsigned char )__cil_tmp15;
24844#line 380
24845  t = (unsigned int )__cil_tmp16;
24846  ldv_27663: 
24847#line 375
24848  tmp___4 = n;
24849#line 375
24850  n = n - 1U;
24851#line 375
24852  if (tmp___4 != 0U) {
24853#line 376
24854    goto ldv_27662;
24855  } else {
24856#line 378
24857    goto ldv_27661;
24858  }
24859  ldv_27661: ;
24860#line 382
24861  return (len);
24862}
24863}
24864#line 398 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24865static unsigned int rh_string(int id , struct usb_hcd  const  *hcd , u8 *data , unsigned int len ) 
24866{ char buf[100U] ;
24867  char const   *s ;
24868  char langids[4U] ;
24869  size_t __len ;
24870  void *__ret ;
24871  struct new_utsname *tmp ;
24872  struct new_utsname *tmp___0 ;
24873  unsigned int tmp___1 ;
24874  void *__cil_tmp13 ;
24875  void const   *__cil_tmp14 ;
24876  char const   *__cil_tmp15 ;
24877  char const   *__cil_tmp16 ;
24878  char *__cil_tmp17 ;
24879  char (*__cil_tmp18)[65U] ;
24880  char *__cil_tmp19 ;
24881  char (*__cil_tmp20)[65U] ;
24882  char *__cil_tmp21 ;
24883  struct hc_driver  const  *__cil_tmp22 ;
24884  char const   *__cil_tmp23 ;
24885
24886  {
24887#line 402
24888  langids[0] = (char)4;
24889#line 402
24890  langids[1] = (char)3;
24891#line 402
24892  langids[2] = (char)9;
24893#line 402
24894  langids[3] = (char)4;
24895#line 406
24896  if (id == 0) {
24897#line 406
24898    goto case_0;
24899  } else
24900#line 413
24901  if (id == 1) {
24902#line 413
24903    goto case_1;
24904  } else
24905#line 417
24906  if (id == 2) {
24907#line 417
24908    goto case_2;
24909  } else
24910#line 421
24911  if (id == 3) {
24912#line 421
24913    goto case_3;
24914  } else {
24915#line 427
24916    goto switch_default;
24917#line 405
24918    if (0) {
24919      case_0: ;
24920#line 409
24921      if (len > 4U) {
24922#line 410
24923        len = 4U;
24924      } else {
24925
24926      }
24927      {
24928#line 411
24929      __len = (size_t )len;
24930#line 411
24931      __cil_tmp13 = (void *)data;
24932#line 411
24933      __cil_tmp14 = (void const   *)(& langids);
24934#line 411
24935      __ret = __builtin_memcpy(__cil_tmp13, __cil_tmp14, __len);
24936      }
24937#line 412
24938      return (len);
24939      case_1: 
24940#line 415
24941      __cil_tmp15 = hcd->self.bus_name;
24942#line 415
24943      s = (char const   *)__cil_tmp15;
24944#line 416
24945      goto ldv_27678;
24946      case_2: 
24947#line 419
24948      __cil_tmp16 = hcd->product_desc;
24949#line 419
24950      s = (char const   *)__cil_tmp16;
24951#line 420
24952      goto ldv_27678;
24953      case_3: 
24954      {
24955#line 423
24956      tmp = init_utsname();
24957#line 423
24958      tmp___0 = init_utsname();
24959#line 423
24960      __cil_tmp17 = (char *)(& buf);
24961#line 423
24962      __cil_tmp18 = & tmp___0->sysname;
24963#line 423
24964      __cil_tmp19 = (char *)__cil_tmp18;
24965#line 423
24966      __cil_tmp20 = & tmp->release;
24967#line 423
24968      __cil_tmp21 = (char *)__cil_tmp20;
24969#line 423
24970      __cil_tmp22 = hcd->driver;
24971#line 423
24972      __cil_tmp23 = __cil_tmp22->description;
24973#line 423
24974      snprintf(__cil_tmp17, 100UL, "%s %s %s", __cil_tmp19, __cil_tmp21, __cil_tmp23);
24975#line 425
24976      s = (char const   *)(& buf);
24977      }
24978#line 426
24979      goto ldv_27678;
24980      switch_default: ;
24981#line 429
24982      return (0U);
24983    } else {
24984
24985    }
24986  }
24987  ldv_27678: 
24988  {
24989#line 432
24990  tmp___1 = ascii2desc(s, data, len);
24991  }
24992#line 432
24993  return (tmp___1);
24994}
24995}
24996#line 437 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
24997static int rh_call_control(struct usb_hcd *hcd , struct urb *urb ) 
24998{ struct usb_ctrlrequest *cmd ;
24999  u16 typeReq ;
25000  u16 wValue ;
25001  u16 wIndex ;
25002  u16 wLength ;
25003  u8 *ubuf ;
25004  u8 tbuf[15U] ;
25005  u8 const   *bufp ;
25006  unsigned int len ;
25007  int status ;
25008  u8 patch_wakeup ;
25009  u8 patch_protocol ;
25010  bool tmp ;
25011  bool tmp___0 ;
25012  bool tmp___1 ;
25013  size_t __len ;
25014  void *__ret ;
25015  void *__cil_tmp20 ;
25016  unsigned char *__cil_tmp21 ;
25017  __u8 __cil_tmp22 ;
25018  short __cil_tmp23 ;
25019  int __cil_tmp24 ;
25020  __u8 __cil_tmp25 ;
25021  int __cil_tmp26 ;
25022  int __cil_tmp27 ;
25023  short __cil_tmp28 ;
25024  int __cil_tmp29 ;
25025  int __cil_tmp30 ;
25026  u32 __cil_tmp31 ;
25027  u32 __cil_tmp32 ;
25028  int __cil_tmp33 ;
25029  int __cil_tmp34 ;
25030  int __cil_tmp35 ;
25031  int __cil_tmp36 ;
25032  int __cil_tmp37 ;
25033  int __cil_tmp38 ;
25034  int __cil_tmp39 ;
25035  int __cil_tmp40 ;
25036  int __cil_tmp41 ;
25037  int __cil_tmp42 ;
25038  int __cil_tmp43 ;
25039  int __cil_tmp44 ;
25040  struct usb_device *__cil_tmp45 ;
25041  struct device *__cil_tmp46 ;
25042  int __cil_tmp47 ;
25043  int __cil_tmp48 ;
25044  signed char __cil_tmp49 ;
25045  int __cil_tmp50 ;
25046  int __cil_tmp51 ;
25047  unsigned int __cil_tmp52 ;
25048  struct usb_device *__cil_tmp53 ;
25049  struct device *__cil_tmp54 ;
25050  bool __cil_tmp55 ;
25051  struct usb_device *__cil_tmp56 ;
25052  struct device *__cil_tmp57 ;
25053  unsigned int __cil_tmp58 ;
25054  struct usb_device *__cil_tmp59 ;
25055  struct device *__cil_tmp60 ;
25056  bool __cil_tmp61 ;
25057  int __cil_tmp62 ;
25058  int __cil_tmp63 ;
25059  int __cil_tmp64 ;
25060  int __cil_tmp65 ;
25061  int __cil_tmp66 ;
25062  int __cil_tmp67 ;
25063  int __cil_tmp68 ;
25064  int __cil_tmp69 ;
25065  int __cil_tmp70 ;
25066  unsigned char *__cil_tmp71 ;
25067  unsigned char *__cil_tmp72 ;
25068  unsigned char __cil_tmp73 ;
25069  unsigned int __cil_tmp74 ;
25070  int __cil_tmp75 ;
25071  int __cil_tmp76 ;
25072  int __cil_tmp77 ;
25073  struct usb_device *__cil_tmp78 ;
25074  struct device *__cil_tmp79 ;
25075  int __cil_tmp80 ;
25076  int __cil_tmp81 ;
25077  int __cil_tmp82 ;
25078  int __cil_tmp83 ;
25079  struct usb_hcd  const  *__cil_tmp84 ;
25080  unsigned int __cil_tmp85 ;
25081  struct device *__cil_tmp86 ;
25082  struct device  const  *__cil_tmp87 ;
25083  int __cil_tmp88 ;
25084  struct device *__cil_tmp89 ;
25085  struct device  const  *__cil_tmp90 ;
25086  int __cil_tmp91 ;
25087  int __cil_tmp92 ;
25088  int __cil_tmp93 ;
25089  struct hc_driver  const  *__cil_tmp94 ;
25090  int (*__cil_tmp95)(struct usb_hcd * , u16  , u16  , u16  , char * , u16  ) ;
25091  int __cil_tmp96 ;
25092  u16 __cil_tmp97 ;
25093  int __cil_tmp98 ;
25094  u16 __cil_tmp99 ;
25095  int __cil_tmp100 ;
25096  u16 __cil_tmp101 ;
25097  char *__cil_tmp102 ;
25098  int __cil_tmp103 ;
25099  u16 __cil_tmp104 ;
25100  struct device *__cil_tmp105 ;
25101  struct device  const  *__cil_tmp106 ;
25102  int __cil_tmp107 ;
25103  int __cil_tmp108 ;
25104  int __cil_tmp109 ;
25105  int __cil_tmp110 ;
25106  u32 __cil_tmp111 ;
25107  void *__cil_tmp112 ;
25108  void const   *__cil_tmp113 ;
25109  unsigned int __cil_tmp114 ;
25110  struct usb_config_descriptor *__cil_tmp115 ;
25111  struct usb_config_descriptor *__cil_tmp116 ;
25112  __u8 __cil_tmp117 ;
25113  unsigned int __cil_tmp118 ;
25114  unsigned int __cil_tmp119 ;
25115  unsigned int __cil_tmp120 ;
25116  struct usb_device_descriptor *__cil_tmp121 ;
25117
25118  {
25119  {
25120#line 441
25121  __cil_tmp20 = urb->transfer_buffer;
25122#line 441
25123  ubuf = (u8 *)__cil_tmp20;
25124#line 444
25125  bufp = (u8 const   *)(& tbuf);
25126#line 445
25127  len = 0U;
25128#line 447
25129  patch_wakeup = (u8 )0U;
25130#line 448
25131  patch_protocol = (u8 )0U;
25132#line 450
25133  __might_sleep("/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p",
25134                450, 0);
25135#line 452
25136  spin_lock_irq(& hcd_root_hub_lock);
25137#line 453
25138  status = usb_hcd_link_urb_to_ep(hcd, urb);
25139#line 454
25140  spin_unlock_irq(& hcd_root_hub_lock);
25141  }
25142#line 455
25143  if (status != 0) {
25144#line 456
25145    return (status);
25146  } else {
25147
25148  }
25149#line 457
25150  urb->hcpriv = (void *)hcd;
25151#line 459
25152  __cil_tmp21 = urb->setup_packet;
25153#line 459
25154  cmd = (struct usb_ctrlrequest *)__cil_tmp21;
25155#line 460
25156  __cil_tmp22 = cmd->bRequest;
25157#line 460
25158  __cil_tmp23 = (short )__cil_tmp22;
25159#line 460
25160  __cil_tmp24 = (int )__cil_tmp23;
25161#line 460
25162  __cil_tmp25 = cmd->bRequestType;
25163#line 460
25164  __cil_tmp26 = (int )__cil_tmp25;
25165#line 460
25166  __cil_tmp27 = __cil_tmp26 << 8;
25167#line 460
25168  __cil_tmp28 = (short )__cil_tmp27;
25169#line 460
25170  __cil_tmp29 = (int )__cil_tmp28;
25171#line 460
25172  __cil_tmp30 = __cil_tmp29 | __cil_tmp24;
25173#line 460
25174  typeReq = (u16 )__cil_tmp30;
25175#line 461
25176  wValue = cmd->wValue;
25177#line 462
25178  wIndex = cmd->wIndex;
25179#line 463
25180  wLength = cmd->wLength;
25181  {
25182#line 465
25183  __cil_tmp31 = urb->transfer_buffer_length;
25184#line 465
25185  __cil_tmp32 = (u32 )wLength;
25186#line 465
25187  if (__cil_tmp32 > __cil_tmp31) {
25188#line 466
25189    goto error;
25190  } else {
25191
25192  }
25193  }
25194#line 468
25195  urb->actual_length = 0U;
25196  {
25197#line 489
25198  __cil_tmp33 = (int )typeReq;
25199#line 489
25200  if (__cil_tmp33 == 32768) {
25201#line 489
25202    goto case_32768;
25203  } else {
25204    {
25205#line 496
25206    __cil_tmp34 = (int )typeReq;
25207#line 496
25208    if (__cil_tmp34 == 1) {
25209#line 496
25210      goto case_1;
25211    } else {
25212      {
25213#line 502
25214      __cil_tmp35 = (int )typeReq;
25215#line 502
25216      if (__cil_tmp35 == 3) {
25217#line 502
25218        goto case_3;
25219      } else {
25220        {
25221#line 509
25222        __cil_tmp36 = (int )typeReq;
25223#line 509
25224        if (__cil_tmp36 == 32776) {
25225#line 509
25226          goto case_32776;
25227        } else {
25228          {
25229#line 513
25230          __cil_tmp37 = (int )typeReq;
25231#line 513
25232          if (__cil_tmp37 == 9) {
25233#line 513
25234            goto case_9;
25235          } else {
25236            {
25237#line 515
25238            __cil_tmp38 = (int )typeReq;
25239#line 515
25240            if (__cil_tmp38 == 32774) {
25241#line 515
25242              goto case_32774;
25243            } else {
25244              {
25245#line 566
25246              __cil_tmp39 = (int )typeReq;
25247#line 566
25248              if (__cil_tmp39 == 32778) {
25249#line 566
25250                goto case_32778;
25251              } else {
25252                {
25253#line 570
25254                __cil_tmp40 = (int )typeReq;
25255#line 570
25256                if (__cil_tmp40 == 11) {
25257#line 570
25258                  goto case_11;
25259                } else {
25260                  {
25261#line 572
25262                  __cil_tmp41 = (int )typeReq;
25263#line 572
25264                  if (__cil_tmp41 == 5) {
25265#line 572
25266                    goto case_5;
25267                  } else {
25268                    {
25269#line 582
25270                    __cil_tmp42 = (int )typeReq;
25271#line 582
25272                    if (__cil_tmp42 == 33024) {
25273#line 582
25274                      goto case_33024;
25275                    } else {
25276                      {
25277#line 588
25278                      __cil_tmp43 = (int )typeReq;
25279#line 588
25280                      if (__cil_tmp43 == 257) {
25281#line 588
25282                        goto case_257;
25283                      } else {
25284                        {
25285#line 589
25286                        __cil_tmp44 = (int )typeReq;
25287#line 589
25288                        if (__cil_tmp44 == 259) {
25289#line 589
25290                          goto case_259;
25291                        } else {
25292#line 595
25293                          goto switch_default___2;
25294#line 469
25295                          if (0) {
25296                            case_32768: 
25297                            {
25298#line 490
25299                            __cil_tmp45 = hcd->self.root_hub;
25300#line 490
25301                            __cil_tmp46 = & __cil_tmp45->dev;
25302#line 490
25303                            tmp = device_may_wakeup(__cil_tmp46);
25304#line 490
25305                            __cil_tmp47 = (int )tmp;
25306#line 490
25307                            __cil_tmp48 = __cil_tmp47 << 1;
25308#line 490
25309                            __cil_tmp49 = (signed char )__cil_tmp48;
25310#line 490
25311                            __cil_tmp50 = (int )__cil_tmp49;
25312#line 490
25313                            __cil_tmp51 = __cil_tmp50 | 1;
25314#line 490
25315                            tbuf[0] = (u8 )__cil_tmp51;
25316#line 493
25317                            tbuf[1] = (u8 )0U;
25318#line 494
25319                            len = 2U;
25320                            }
25321#line 495
25322                            goto ldv_27700;
25323                            case_1: ;
25324                            {
25325#line 497
25326                            __cil_tmp52 = (unsigned int )wValue;
25327#line 497
25328                            if (__cil_tmp52 == 1U) {
25329                              {
25330#line 498
25331                              __cil_tmp53 = hcd->self.root_hub;
25332#line 498
25333                              __cil_tmp54 = & __cil_tmp53->dev;
25334#line 498
25335                              __cil_tmp55 = (bool )0;
25336#line 498
25337                              device_set_wakeup_enable(__cil_tmp54, __cil_tmp55);
25338                              }
25339                            } else {
25340#line 500
25341                              goto error;
25342                            }
25343                            }
25344#line 501
25345                            goto ldv_27700;
25346                            case_3: 
25347                            {
25348#line 503
25349                            __cil_tmp56 = hcd->self.root_hub;
25350#line 503
25351                            __cil_tmp57 = & __cil_tmp56->dev;
25352#line 503
25353                            tmp___0 = device_can_wakeup(__cil_tmp57);
25354                            }
25355#line 503
25356                            if ((int )tmp___0) {
25357                              {
25358#line 503
25359                              __cil_tmp58 = (unsigned int )wValue;
25360#line 503
25361                              if (__cil_tmp58 == 1U) {
25362                                {
25363#line 505
25364                                __cil_tmp59 = hcd->self.root_hub;
25365#line 505
25366                                __cil_tmp60 = & __cil_tmp59->dev;
25367#line 505
25368                                __cil_tmp61 = (bool )1;
25369#line 505
25370                                device_set_wakeup_enable(__cil_tmp60, __cil_tmp61);
25371                                }
25372                              } else {
25373#line 507
25374                                goto error;
25375                              }
25376                              }
25377                            } else {
25378#line 507
25379                              goto error;
25380                            }
25381#line 508
25382                            goto ldv_27700;
25383                            case_32776: 
25384#line 510
25385                            tbuf[0] = (u8 )1U;
25386#line 511
25387                            len = 1U;
25388                            case_9: ;
25389#line 514
25390                            goto ldv_27700;
25391                            case_32774: ;
25392                            {
25393#line 517
25394                            __cil_tmp62 = (int )wValue;
25395#line 517
25396                            __cil_tmp63 = __cil_tmp62 & 65280;
25397#line 517
25398                            if (__cil_tmp63 == 256) {
25399#line 517
25400                              goto case_256;
25401                            } else {
25402                              {
25403#line 535
25404                              __cil_tmp64 = (int )wValue;
25405#line 535
25406                              __cil_tmp65 = __cil_tmp64 & 65280;
25407#line 535
25408                              if (__cil_tmp65 == 512) {
25409#line 535
25410                                goto case_512;
25411                              } else {
25412                                {
25413#line 555
25414                                __cil_tmp66 = (int )wValue;
25415#line 555
25416                                __cil_tmp67 = __cil_tmp66 & 65280;
25417#line 555
25418                                if (__cil_tmp67 == 768) {
25419#line 555
25420                                  goto case_768;
25421                                } else {
25422#line 562
25423                                  goto switch_default___1;
25424#line 516
25425                                  if (0) {
25426                                    case_256: ;
25427                                    {
25428#line 519
25429                                    __cil_tmp68 = hcd->speed;
25430#line 519
25431                                    if (__cil_tmp68 == 64) {
25432#line 519
25433                                      goto case_64;
25434                                    } else {
25435                                      {
25436#line 522
25437                                      __cil_tmp69 = hcd->speed;
25438#line 522
25439                                      if (__cil_tmp69 == 32) {
25440#line 522
25441                                        goto case_32;
25442                                      } else {
25443                                        {
25444#line 525
25445                                        __cil_tmp70 = hcd->speed;
25446#line 525
25447                                        if (__cil_tmp70 == 16) {
25448#line 525
25449                                          goto case_16;
25450                                        } else {
25451#line 528
25452                                          goto switch_default;
25453#line 518
25454                                          if (0) {
25455                                            case_64: 
25456#line 520
25457                                            bufp = (u8 const   *)(& usb3_rh_dev_descriptor);
25458#line 521
25459                                            goto ldv_27708;
25460                                            case_32: 
25461#line 523
25462                                            bufp = (u8 const   *)(& usb2_rh_dev_descriptor);
25463#line 524
25464                                            goto ldv_27708;
25465                                            case_16: 
25466#line 526
25467                                            bufp = (u8 const   *)(& usb11_rh_dev_descriptor);
25468#line 527
25469                                            goto ldv_27708;
25470                                            switch_default: ;
25471#line 529
25472                                            goto error;
25473                                          } else {
25474
25475                                          }
25476                                        }
25477                                        }
25478                                      }
25479                                      }
25480                                    }
25481                                    }
25482                                    ldv_27708: 
25483#line 531
25484                                    len = 18U;
25485                                    {
25486#line 532
25487                                    __cil_tmp71 = (unsigned char *)hcd;
25488#line 532
25489                                    __cil_tmp72 = __cil_tmp71 + 408UL;
25490#line 532
25491                                    __cil_tmp73 = *__cil_tmp72;
25492#line 532
25493                                    __cil_tmp74 = (unsigned int )__cil_tmp73;
25494#line 532
25495                                    if (__cil_tmp74 != 0U) {
25496#line 533
25497                                      patch_protocol = (u8 )1U;
25498                                    } else {
25499
25500                                    }
25501                                    }
25502#line 534
25503                                    goto ldv_27712;
25504                                    case_512: ;
25505                                    {
25506#line 537
25507                                    __cil_tmp75 = hcd->speed;
25508#line 537
25509                                    if (__cil_tmp75 == 64) {
25510#line 537
25511                                      goto case_64___0;
25512                                    } else {
25513                                      {
25514#line 541
25515                                      __cil_tmp76 = hcd->speed;
25516#line 541
25517                                      if (__cil_tmp76 == 32) {
25518#line 541
25519                                        goto case_32___0;
25520                                      } else {
25521                                        {
25522#line 545
25523                                        __cil_tmp77 = hcd->speed;
25524#line 545
25525                                        if (__cil_tmp77 == 16) {
25526#line 545
25527                                          goto case_16___0;
25528                                        } else {
25529#line 549
25530                                          goto switch_default___0;
25531#line 536
25532                                          if (0) {
25533                                            case_64___0: 
25534#line 538
25535                                            bufp = (u8 const   *)(& ss_rh_config_descriptor);
25536#line 539
25537                                            len = 31U;
25538#line 540
25539                                            goto ldv_27715;
25540                                            case_32___0: 
25541#line 542
25542                                            bufp = (u8 const   *)(& hs_rh_config_descriptor);
25543#line 543
25544                                            len = 25U;
25545#line 544
25546                                            goto ldv_27715;
25547                                            case_16___0: 
25548#line 546
25549                                            bufp = (u8 const   *)(& fs_rh_config_descriptor);
25550#line 547
25551                                            len = 25U;
25552#line 548
25553                                            goto ldv_27715;
25554                                            switch_default___0: ;
25555#line 550
25556                                            goto error;
25557                                          } else {
25558
25559                                          }
25560                                        }
25561                                        }
25562                                      }
25563                                      }
25564                                    }
25565                                    }
25566                                    ldv_27715: 
25567                                    {
25568#line 552
25569                                    __cil_tmp78 = hcd->self.root_hub;
25570#line 552
25571                                    __cil_tmp79 = & __cil_tmp78->dev;
25572#line 552
25573                                    tmp___1 = device_can_wakeup(__cil_tmp79);
25574                                    }
25575#line 552
25576                                    if ((int )tmp___1) {
25577#line 553
25578                                      patch_wakeup = (u8 )1U;
25579                                    } else {
25580
25581                                    }
25582#line 554
25583                                    goto ldv_27712;
25584                                    case_768: ;
25585                                    {
25586#line 556
25587                                    __cil_tmp80 = (int )wValue;
25588#line 556
25589                                    __cil_tmp81 = __cil_tmp80 & 255;
25590#line 556
25591                                    if (__cil_tmp81 <= 3) {
25592                                      {
25593#line 557
25594                                      __cil_tmp82 = (int )wValue;
25595#line 557
25596                                      __cil_tmp83 = __cil_tmp82 & 255;
25597#line 557
25598                                      __cil_tmp84 = (struct usb_hcd  const  *)hcd;
25599#line 557
25600                                      __cil_tmp85 = (unsigned int )wLength;
25601#line 557
25602                                      urb->actual_length = rh_string(__cil_tmp83,
25603                                                                     __cil_tmp84,
25604                                                                     ubuf, __cil_tmp85);
25605                                      }
25606                                    } else {
25607#line 560
25608                                      goto error;
25609                                    }
25610                                    }
25611#line 561
25612                                    goto ldv_27712;
25613                                    switch_default___1: ;
25614#line 563
25615                                    goto error;
25616                                  } else {
25617
25618                                  }
25619                                }
25620                                }
25621                              }
25622                              }
25623                            }
25624                            }
25625                            ldv_27712: ;
25626#line 565
25627                            goto ldv_27700;
25628                            case_32778: 
25629#line 567
25630                            tbuf[0] = (u8 )0U;
25631#line 568
25632                            len = 1U;
25633                            case_11: ;
25634#line 571
25635                            goto ldv_27700;
25636                            case_5: 
25637                            {
25638#line 574
25639                            __cil_tmp86 = hcd->self.controller;
25640#line 574
25641                            __cil_tmp87 = (struct device  const  *)__cil_tmp86;
25642#line 574
25643                            __cil_tmp88 = (int )wValue;
25644#line 574
25645                            dev_printk("<7>", __cil_tmp87, "root hub device address %d\n",
25646                                       __cil_tmp88);
25647                            }
25648#line 576
25649                            goto ldv_27700;
25650                            case_33024: 
25651#line 584
25652                            tbuf[0] = (u8 )0U;
25653#line 585
25654                            tbuf[1] = (u8 )0U;
25655#line 586
25656                            len = 2U;
25657                            case_257: ;
25658                            case_259: 
25659                            {
25660#line 590
25661                            __cil_tmp89 = hcd->self.controller;
25662#line 590
25663                            __cil_tmp90 = (struct device  const  *)__cil_tmp89;
25664#line 590
25665                            dev_printk("<7>", __cil_tmp90, "no endpoint features yet\n");
25666                            }
25667#line 591
25668                            goto ldv_27700;
25669                            switch_default___2: ;
25670                            {
25671#line 598
25672                            __cil_tmp91 = (int )typeReq;
25673#line 598
25674                            if (__cil_tmp91 == 40960) {
25675#line 598
25676                              goto case_40960;
25677                            } else {
25678                              {
25679#line 599
25680                              __cil_tmp92 = (int )typeReq;
25681#line 599
25682                              if (__cil_tmp92 == 41728) {
25683#line 599
25684                                goto case_41728;
25685                              } else {
25686                                {
25687#line 602
25688                                __cil_tmp93 = (int )typeReq;
25689#line 602
25690                                if (__cil_tmp93 == 40966) {
25691#line 602
25692                                  goto case_40966;
25693                                } else
25694#line 597
25695                                if (0) {
25696                                  case_40960: ;
25697                                  case_41728: 
25698#line 600
25699                                  len = 4U;
25700#line 601
25701                                  goto ldv_27730;
25702                                  case_40966: 
25703#line 603
25704                                  len = 15U;
25705#line 604
25706                                  goto ldv_27730;
25707                                } else {
25708
25709                                }
25710                                }
25711                              }
25712                              }
25713                            }
25714                            }
25715                            ldv_27730: 
25716                            {
25717#line 606
25718                            __cil_tmp94 = hcd->driver;
25719#line 606
25720                            __cil_tmp95 = __cil_tmp94->hub_control;
25721#line 606
25722                            __cil_tmp96 = (int )typeReq;
25723#line 606
25724                            __cil_tmp97 = (u16 )__cil_tmp96;
25725#line 606
25726                            __cil_tmp98 = (int )wValue;
25727#line 606
25728                            __cil_tmp99 = (u16 )__cil_tmp98;
25729#line 606
25730                            __cil_tmp100 = (int )wIndex;
25731#line 606
25732                            __cil_tmp101 = (u16 )__cil_tmp100;
25733#line 606
25734                            __cil_tmp102 = (char *)(& tbuf);
25735#line 606
25736                            __cil_tmp103 = (int )wLength;
25737#line 606
25738                            __cil_tmp104 = (u16 )__cil_tmp103;
25739#line 606
25740                            status = (*__cil_tmp95)(hcd, __cil_tmp97, __cil_tmp99,
25741                                                    __cil_tmp101, __cil_tmp102, __cil_tmp104);
25742                            }
25743#line 609
25744                            goto ldv_27700;
25745                            error: 
25746#line 612
25747                            status = -32;
25748                          } else {
25749
25750                          }
25751                        }
25752                        }
25753                      }
25754                      }
25755                    }
25756                    }
25757                  }
25758                  }
25759                }
25760                }
25761              }
25762              }
25763            }
25764            }
25765          }
25766          }
25767        }
25768        }
25769      }
25770      }
25771    }
25772    }
25773  }
25774  }
25775  ldv_27700: ;
25776#line 615
25777  if (status != 0) {
25778#line 616
25779    len = 0U;
25780#line 617
25781    if (status != -32) {
25782      {
25783#line 618
25784      __cil_tmp105 = hcd->self.controller;
25785#line 618
25786      __cil_tmp106 = (struct device  const  *)__cil_tmp105;
25787#line 618
25788      __cil_tmp107 = (int )typeReq;
25789#line 618
25790      __cil_tmp108 = (int )wValue;
25791#line 618
25792      __cil_tmp109 = (int )wIndex;
25793#line 618
25794      __cil_tmp110 = (int )wLength;
25795#line 618
25796      dev_printk("<7>", __cil_tmp106, "CTRL: TypeReq=0x%x val=0x%x idx=0x%x len=%d ==> %d\n",
25797                 __cil_tmp107, __cil_tmp108, __cil_tmp109, __cil_tmp110, status);
25798      }
25799    } else {
25800
25801    }
25802  } else {
25803
25804  }
25805#line 625
25806  if (len != 0U) {
25807    {
25808#line 626
25809    __cil_tmp111 = urb->transfer_buffer_length;
25810#line 626
25811    if (__cil_tmp111 < len) {
25812#line 627
25813      len = urb->transfer_buffer_length;
25814    } else {
25815
25816    }
25817    }
25818    {
25819#line 628
25820    urb->actual_length = len;
25821#line 630
25822    __len = (size_t )len;
25823#line 630
25824    __cil_tmp112 = (void *)ubuf;
25825#line 630
25826    __cil_tmp113 = (void const   *)bufp;
25827#line 630
25828    __ret = __builtin_memcpy(__cil_tmp112, __cil_tmp113, __len);
25829    }
25830    {
25831#line 633
25832    __cil_tmp114 = (unsigned int )patch_wakeup;
25833#line 633
25834    if (__cil_tmp114 != 0U) {
25835#line 633
25836      if (len > 7U) {
25837#line 637
25838        __cil_tmp115 = (struct usb_config_descriptor *)ubuf;
25839#line 637
25840        __cil_tmp116 = (struct usb_config_descriptor *)ubuf;
25841#line 637
25842        __cil_tmp117 = __cil_tmp116->bmAttributes;
25843#line 637
25844        __cil_tmp118 = (unsigned int )__cil_tmp117;
25845#line 637
25846        __cil_tmp119 = __cil_tmp118 | 32U;
25847#line 637
25848        __cil_tmp115->bmAttributes = (__u8 )__cil_tmp119;
25849      } else {
25850
25851      }
25852    } else {
25853
25854    }
25855    }
25856    {
25857#line 640
25858    __cil_tmp120 = (unsigned int )patch_protocol;
25859#line 640
25860    if (__cil_tmp120 != 0U) {
25861#line 640
25862      if (len > 6U) {
25863#line 643
25864        __cil_tmp121 = (struct usb_device_descriptor *)ubuf;
25865#line 643
25866        __cil_tmp121->bDeviceProtocol = (__u8 )1U;
25867      } else {
25868
25869      }
25870    } else {
25871
25872    }
25873    }
25874  } else {
25875
25876  }
25877  {
25878#line 648
25879  spin_lock_irq(& hcd_root_hub_lock);
25880#line 649
25881  usb_hcd_unlink_urb_from_ep(hcd, urb);
25882#line 655
25883  spin_unlock(& hcd_root_hub_lock);
25884#line 656
25885  usb_hcd_giveback_urb(hcd, urb, status);
25886#line 657
25887  spin_lock(& hcd_root_hub_lock);
25888#line 659
25889  spin_unlock_irq(& hcd_root_hub_lock);
25890  }
25891#line 660
25892  return (0);
25893}
25894}
25895#line 673 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
25896void usb_hcd_poll_rh_status(struct usb_hcd *hcd ) 
25897{ struct urb *urb ;
25898  int length ;
25899  unsigned long flags ;
25900  char buffer[6U] ;
25901  long tmp ;
25902  raw_spinlock_t *tmp___0 ;
25903  size_t __len ;
25904  void *__ret ;
25905  int tmp___1 ;
25906  int tmp___2 ;
25907  unsigned char *__cil_tmp12 ;
25908  unsigned char *__cil_tmp13 ;
25909  unsigned char __cil_tmp14 ;
25910  unsigned int __cil_tmp15 ;
25911  int __cil_tmp16 ;
25912  long __cil_tmp17 ;
25913  unsigned char *__cil_tmp18 ;
25914  unsigned char *__cil_tmp19 ;
25915  unsigned char __cil_tmp20 ;
25916  unsigned int __cil_tmp21 ;
25917  struct urb *__cil_tmp22 ;
25918  unsigned long __cil_tmp23 ;
25919  struct urb *__cil_tmp24 ;
25920  unsigned long __cil_tmp25 ;
25921  struct hc_driver  const  *__cil_tmp26 ;
25922  int (*__cil_tmp27)(struct usb_hcd * , char * ) ;
25923  char *__cil_tmp28 ;
25924  struct urb *__cil_tmp29 ;
25925  unsigned long __cil_tmp30 ;
25926  unsigned long __cil_tmp31 ;
25927  unsigned long *__cil_tmp32 ;
25928  unsigned long volatile   *__cil_tmp33 ;
25929  void *__cil_tmp34 ;
25930  void const   *__cil_tmp35 ;
25931  unsigned long *__cil_tmp36 ;
25932  unsigned long volatile   *__cil_tmp37 ;
25933  unsigned char *__cil_tmp38 ;
25934  unsigned char *__cil_tmp39 ;
25935  unsigned char __cil_tmp40 ;
25936  unsigned int __cil_tmp41 ;
25937  unsigned long __cil_tmp42 ;
25938  unsigned long __cil_tmp43 ;
25939  struct urb *__cil_tmp44 ;
25940  unsigned long __cil_tmp45 ;
25941  struct urb *__cil_tmp46 ;
25942  unsigned long __cil_tmp47 ;
25943  struct timer_list *__cil_tmp48 ;
25944  unsigned long __cil_tmp49 ;
25945  unsigned long __cil_tmp50 ;
25946  unsigned long __cil_tmp51 ;
25947  unsigned long __cil_tmp52 ;
25948
25949  {
25950  {
25951#line 680
25952  __cil_tmp12 = (unsigned char *)hcd;
25953#line 680
25954  __cil_tmp13 = __cil_tmp12 + 408UL;
25955#line 680
25956  __cil_tmp14 = *__cil_tmp13;
25957#line 680
25958  __cil_tmp15 = (unsigned int )__cil_tmp14;
25959#line 680
25960  __cil_tmp16 = __cil_tmp15 == 0U;
25961#line 680
25962  __cil_tmp17 = (long )__cil_tmp16;
25963#line 680
25964  tmp = __builtin_expect(__cil_tmp17, 0L);
25965  }
25966#line 680
25967  if (tmp != 0L) {
25968#line 681
25969    return;
25970  } else {
25971
25972  }
25973  {
25974#line 682
25975  __cil_tmp18 = (unsigned char *)hcd;
25976#line 682
25977  __cil_tmp19 = __cil_tmp18 + 408UL;
25978#line 682
25979  __cil_tmp20 = *__cil_tmp19;
25980#line 682
25981  __cil_tmp21 = (unsigned int )__cil_tmp20;
25982#line 682
25983  if (__cil_tmp21 == 0U) {
25984    {
25985#line 682
25986    __cil_tmp22 = (struct urb *)0;
25987#line 682
25988    __cil_tmp23 = (unsigned long )__cil_tmp22;
25989#line 682
25990    __cil_tmp24 = hcd->status_urb;
25991#line 682
25992    __cil_tmp25 = (unsigned long )__cil_tmp24;
25993#line 682
25994    if (__cil_tmp25 == __cil_tmp23) {
25995#line 683
25996      return;
25997    } else {
25998
25999    }
26000    }
26001  } else {
26002
26003  }
26004  }
26005  {
26006#line 685
26007  __cil_tmp26 = hcd->driver;
26008#line 685
26009  __cil_tmp27 = __cil_tmp26->hub_status_data;
26010#line 685
26011  __cil_tmp28 = (char *)(& buffer);
26012#line 685
26013  length = (*__cil_tmp27)(hcd, __cil_tmp28);
26014  }
26015#line 686
26016  if (length > 0) {
26017    {
26018#line 689
26019    tmp___0 = spinlock_check(& hcd_root_hub_lock);
26020#line 689
26021    flags = _raw_spin_lock_irqsave(tmp___0);
26022#line 690
26023    urb = hcd->status_urb;
26024    }
26025    {
26026#line 691
26027    __cil_tmp29 = (struct urb *)0;
26028#line 691
26029    __cil_tmp30 = (unsigned long )__cil_tmp29;
26030#line 691
26031    __cil_tmp31 = (unsigned long )urb;
26032#line 691
26033    if (__cil_tmp31 != __cil_tmp30) {
26034      {
26035#line 692
26036      __cil_tmp32 = & hcd->flags;
26037#line 692
26038      __cil_tmp33 = (unsigned long volatile   *)__cil_tmp32;
26039#line 692
26040      clear_bit(3, __cil_tmp33);
26041#line 693
26042      hcd->status_urb = (struct urb *)0;
26043#line 694
26044      urb->actual_length = (u32 )length;
26045#line 695
26046      __len = (size_t )length;
26047#line 695
26048      __cil_tmp34 = urb->transfer_buffer;
26049#line 695
26050      __cil_tmp35 = (void const   *)(& buffer);
26051#line 695
26052      __ret = __builtin_memcpy(__cil_tmp34, __cil_tmp35, __len);
26053#line 697
26054      usb_hcd_unlink_urb_from_ep(hcd, urb);
26055#line 698
26056      spin_unlock(& hcd_root_hub_lock);
26057#line 699
26058      usb_hcd_giveback_urb(hcd, urb, 0);
26059#line 700
26060      spin_lock(& hcd_root_hub_lock);
26061      }
26062    } else {
26063      {
26064#line 702
26065      length = 0;
26066#line 703
26067      __cil_tmp36 = & hcd->flags;
26068#line 703
26069      __cil_tmp37 = (unsigned long volatile   *)__cil_tmp36;
26070#line 703
26071      set_bit(3U, __cil_tmp37);
26072      }
26073    }
26074    }
26075    {
26076#line 705
26077    spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
26078    }
26079  } else {
26080
26081  }
26082  {
26083#line 712
26084  __cil_tmp38 = (unsigned char *)hcd;
26085#line 712
26086  __cil_tmp39 = __cil_tmp38 + 408UL;
26087#line 712
26088  __cil_tmp40 = *__cil_tmp39;
26089#line 712
26090  __cil_tmp41 = (unsigned int )__cil_tmp40;
26091#line 712
26092  if (__cil_tmp41 != 0U) {
26093#line 712
26094    __cil_tmp42 = hcd->flags;
26095#line 712
26096    __cil_tmp43 = __cil_tmp42 & 4UL;
26097#line 712
26098    tmp___2 = __cil_tmp43 != 0UL;
26099  } else {
26100#line 712
26101    if (length == 0) {
26102      {
26103#line 712
26104      __cil_tmp44 = (struct urb *)0;
26105#line 712
26106      __cil_tmp45 = (unsigned long )__cil_tmp44;
26107#line 712
26108      __cil_tmp46 = hcd->status_urb;
26109#line 712
26110      __cil_tmp47 = (unsigned long )__cil_tmp46;
26111#line 712
26112      if (__cil_tmp47 != __cil_tmp45) {
26113#line 712
26114        tmp___1 = 1;
26115      } else {
26116#line 712
26117        tmp___1 = 0;
26118      }
26119      }
26120    } else {
26121#line 712
26122      tmp___1 = 0;
26123    }
26124#line 712
26125    tmp___2 = tmp___1 != 0;
26126  }
26127  }
26128#line 712
26129  if (tmp___2) {
26130    {
26131#line 714
26132    __cil_tmp48 = & hcd->rh_timer;
26133#line 714
26134    __cil_tmp49 = (unsigned long )jiffies;
26135#line 714
26136    __cil_tmp50 = __cil_tmp49 / 62UL;
26137#line 714
26138    __cil_tmp51 = __cil_tmp50 + 1UL;
26139#line 714
26140    __cil_tmp52 = __cil_tmp51 * 62UL;
26141#line 714
26142    mod_timer(__cil_tmp48, __cil_tmp52);
26143    }
26144  } else {
26145
26146  }
26147#line 715
26148  return;
26149}
26150}
26151#line 719 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26152static void rh_timer_func(unsigned long _hcd ) 
26153{ struct usb_hcd *__cil_tmp2 ;
26154
26155  {
26156  {
26157#line 721
26158  __cil_tmp2 = (struct usb_hcd *)_hcd;
26159#line 721
26160  usb_hcd_poll_rh_status(__cil_tmp2);
26161  }
26162#line 722
26163  return;
26164}
26165}
26166#line 726 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26167static int rh_queue_status(struct usb_hcd *hcd , struct urb *urb ) 
26168{ int retval ;
26169  unsigned long flags ;
26170  unsigned int len ;
26171  raw_spinlock_t *tmp ;
26172  struct usb_device *__cil_tmp7 ;
26173  int __cil_tmp8 ;
26174  int __cil_tmp9 ;
26175  int __cil_tmp10 ;
26176  struct urb *__cil_tmp11 ;
26177  unsigned long __cil_tmp12 ;
26178  struct urb *__cil_tmp13 ;
26179  unsigned long __cil_tmp14 ;
26180  struct device *__cil_tmp15 ;
26181  struct device  const  *__cil_tmp16 ;
26182  u32 __cil_tmp17 ;
26183  struct device *__cil_tmp18 ;
26184  struct device  const  *__cil_tmp19 ;
26185  unsigned char *__cil_tmp20 ;
26186  unsigned char *__cil_tmp21 ;
26187  unsigned char __cil_tmp22 ;
26188  unsigned int __cil_tmp23 ;
26189  struct timer_list *__cil_tmp24 ;
26190  unsigned long __cil_tmp25 ;
26191  unsigned long __cil_tmp26 ;
26192  unsigned long __cil_tmp27 ;
26193  unsigned long __cil_tmp28 ;
26194  unsigned long __cil_tmp29 ;
26195  unsigned long __cil_tmp30 ;
26196  struct timer_list *__cil_tmp31 ;
26197  unsigned long __cil_tmp32 ;
26198
26199  {
26200  {
26201#line 730
26202  __cil_tmp7 = urb->dev;
26203#line 730
26204  __cil_tmp8 = __cil_tmp7->maxchild;
26205#line 730
26206  __cil_tmp9 = __cil_tmp8 / 8;
26207#line 730
26208  __cil_tmp10 = __cil_tmp9 + 1;
26209#line 730
26210  len = (unsigned int )__cil_tmp10;
26211#line 732
26212  tmp = spinlock_check(& hcd_root_hub_lock);
26213#line 732
26214  flags = _raw_spin_lock_irqsave(tmp);
26215  }
26216  {
26217#line 733
26218  __cil_tmp11 = (struct urb *)0;
26219#line 733
26220  __cil_tmp12 = (unsigned long )__cil_tmp11;
26221#line 733
26222  __cil_tmp13 = hcd->status_urb;
26223#line 733
26224  __cil_tmp14 = (unsigned long )__cil_tmp13;
26225#line 733
26226  if (__cil_tmp14 != __cil_tmp12) {
26227    {
26228#line 734
26229    __cil_tmp15 = hcd->self.controller;
26230#line 734
26231    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
26232#line 734
26233    dev_printk("<7>", __cil_tmp16, "not queuing rh status urb\n");
26234#line 735
26235    retval = -22;
26236    }
26237#line 736
26238    goto done;
26239  } else {
26240    {
26241#line 733
26242    __cil_tmp17 = urb->transfer_buffer_length;
26243#line 733
26244    if (__cil_tmp17 < len) {
26245      {
26246#line 734
26247      __cil_tmp18 = hcd->self.controller;
26248#line 734
26249      __cil_tmp19 = (struct device  const  *)__cil_tmp18;
26250#line 734
26251      dev_printk("<7>", __cil_tmp19, "not queuing rh status urb\n");
26252#line 735
26253      retval = -22;
26254      }
26255#line 736
26256      goto done;
26257    } else {
26258
26259    }
26260    }
26261  }
26262  }
26263  {
26264#line 739
26265  retval = usb_hcd_link_urb_to_ep(hcd, urb);
26266  }
26267#line 740
26268  if (retval != 0) {
26269#line 741
26270    goto done;
26271  } else {
26272
26273  }
26274#line 743
26275  hcd->status_urb = urb;
26276#line 744
26277  urb->hcpriv = (void *)hcd;
26278  {
26279#line 745
26280  __cil_tmp20 = (unsigned char *)hcd;
26281#line 745
26282  __cil_tmp21 = __cil_tmp20 + 408UL;
26283#line 745
26284  __cil_tmp22 = *__cil_tmp21;
26285#line 745
26286  __cil_tmp23 = (unsigned int )__cil_tmp22;
26287#line 745
26288  if (__cil_tmp23 == 0U) {
26289    {
26290#line 746
26291    __cil_tmp24 = & hcd->rh_timer;
26292#line 746
26293    __cil_tmp25 = (unsigned long )jiffies;
26294#line 746
26295    __cil_tmp26 = __cil_tmp25 / 62UL;
26296#line 746
26297    __cil_tmp27 = __cil_tmp26 + 1UL;
26298#line 746
26299    __cil_tmp28 = __cil_tmp27 * 62UL;
26300#line 746
26301    mod_timer(__cil_tmp24, __cil_tmp28);
26302    }
26303  } else {
26304    {
26305#line 749
26306    __cil_tmp29 = hcd->flags;
26307#line 749
26308    __cil_tmp30 = __cil_tmp29 & 8UL;
26309#line 749
26310    if (__cil_tmp30 != 0UL) {
26311      {
26312#line 750
26313      __cil_tmp31 = & hcd->rh_timer;
26314#line 750
26315      __cil_tmp32 = (unsigned long )jiffies;
26316#line 750
26317      mod_timer(__cil_tmp31, __cil_tmp32);
26318      }
26319    } else {
26320
26321    }
26322    }
26323  }
26324  }
26325#line 751
26326  retval = 0;
26327  done: 
26328  {
26329#line 753
26330  spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
26331  }
26332#line 754
26333  return (retval);
26334}
26335}
26336#line 757 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26337static int rh_urb_enqueue(struct usb_hcd *hcd , struct urb *urb ) 
26338{ int tmp ;
26339  int tmp___0 ;
26340  int tmp___1 ;
26341  int tmp___2 ;
26342  struct usb_host_endpoint *__cil_tmp7 ;
26343  struct usb_endpoint_descriptor *__cil_tmp8 ;
26344  struct usb_endpoint_descriptor  const  *__cil_tmp9 ;
26345  struct usb_host_endpoint *__cil_tmp10 ;
26346  struct usb_endpoint_descriptor *__cil_tmp11 ;
26347  struct usb_endpoint_descriptor  const  *__cil_tmp12 ;
26348
26349  {
26350  {
26351#line 759
26352  __cil_tmp7 = urb->ep;
26353#line 759
26354  __cil_tmp8 = & __cil_tmp7->desc;
26355#line 759
26356  __cil_tmp9 = (struct usb_endpoint_descriptor  const  *)__cil_tmp8;
26357#line 759
26358  tmp___0 = usb_endpoint_xfer_int(__cil_tmp9);
26359  }
26360#line 759
26361  if (tmp___0 != 0) {
26362    {
26363#line 760
26364    tmp = rh_queue_status(hcd, urb);
26365    }
26366#line 760
26367    return (tmp);
26368  } else {
26369
26370  }
26371  {
26372#line 761
26373  __cil_tmp10 = urb->ep;
26374#line 761
26375  __cil_tmp11 = & __cil_tmp10->desc;
26376#line 761
26377  __cil_tmp12 = (struct usb_endpoint_descriptor  const  *)__cil_tmp11;
26378#line 761
26379  tmp___2 = usb_endpoint_xfer_control(__cil_tmp12);
26380  }
26381#line 761
26382  if (tmp___2 != 0) {
26383    {
26384#line 762
26385    tmp___1 = rh_call_control(hcd, urb);
26386    }
26387#line 762
26388    return (tmp___1);
26389  } else {
26390
26391  }
26392#line 763
26393  return (-22);
26394}
26395}
26396#line 771 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26397static int usb_rh_urb_dequeue(struct usb_hcd *hcd , struct urb *urb , int status ) 
26398{ unsigned long flags ;
26399  int rc ;
26400  raw_spinlock_t *tmp ;
26401  int tmp___0 ;
26402  struct usb_host_endpoint *__cil_tmp8 ;
26403  struct usb_endpoint_descriptor *__cil_tmp9 ;
26404  struct usb_endpoint_descriptor  const  *__cil_tmp10 ;
26405  unsigned char *__cil_tmp11 ;
26406  unsigned char *__cil_tmp12 ;
26407  unsigned char __cil_tmp13 ;
26408  unsigned int __cil_tmp14 ;
26409  struct timer_list *__cil_tmp15 ;
26410  unsigned long __cil_tmp16 ;
26411  struct urb *__cil_tmp17 ;
26412  unsigned long __cil_tmp18 ;
26413
26414  {
26415  {
26416#line 776
26417  tmp = spinlock_check(& hcd_root_hub_lock);
26418#line 776
26419  flags = _raw_spin_lock_irqsave(tmp);
26420#line 777
26421  rc = usb_hcd_check_unlink_urb(hcd, urb, status);
26422  }
26423#line 778
26424  if (rc != 0) {
26425#line 779
26426    goto done;
26427  } else {
26428
26429  }
26430  {
26431#line 781
26432  __cil_tmp8 = urb->ep;
26433#line 781
26434  __cil_tmp9 = & __cil_tmp8->desc;
26435#line 781
26436  __cil_tmp10 = (struct usb_endpoint_descriptor  const  *)__cil_tmp9;
26437#line 781
26438  tmp___0 = usb_endpoint_num(__cil_tmp10);
26439  }
26440#line 781
26441  if (tmp___0 == 0) {
26442
26443  } else {
26444    {
26445#line 785
26446    __cil_tmp11 = (unsigned char *)hcd;
26447#line 785
26448    __cil_tmp12 = __cil_tmp11 + 408UL;
26449#line 785
26450    __cil_tmp13 = *__cil_tmp12;
26451#line 785
26452    __cil_tmp14 = (unsigned int )__cil_tmp13;
26453#line 785
26454    if (__cil_tmp14 == 0U) {
26455      {
26456#line 786
26457      __cil_tmp15 = & hcd->rh_timer;
26458#line 786
26459      del_timer(__cil_tmp15);
26460      }
26461    } else {
26462
26463    }
26464    }
26465    {
26466#line 787
26467    __cil_tmp16 = (unsigned long )urb;
26468#line 787
26469    __cil_tmp17 = hcd->status_urb;
26470#line 787
26471    __cil_tmp18 = (unsigned long )__cil_tmp17;
26472#line 787
26473    if (__cil_tmp18 == __cil_tmp16) {
26474      {
26475#line 788
26476      hcd->status_urb = (struct urb *)0;
26477#line 789
26478      usb_hcd_unlink_urb_from_ep(hcd, urb);
26479#line 791
26480      spin_unlock(& hcd_root_hub_lock);
26481#line 792
26482      usb_hcd_giveback_urb(hcd, urb, status);
26483#line 793
26484      spin_lock(& hcd_root_hub_lock);
26485      }
26486    } else {
26487
26488    }
26489    }
26490  }
26491  done: 
26492  {
26493#line 797
26494  spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
26495  }
26496#line 798
26497  return (rc);
26498}
26499}
26500#line 806 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26501static ssize_t usb_host_authorized_default_show(struct device *dev , struct device_attribute *attr ,
26502                                                char *buf ) 
26503{ struct usb_device *rh_usb_dev ;
26504  struct device  const  *__mptr ;
26505  struct usb_bus *usb_bus ;
26506  struct usb_hcd *usb_hcd ;
26507  int tmp ;
26508  struct usb_device *__cil_tmp9 ;
26509  struct usb_bus *__cil_tmp10 ;
26510  unsigned long __cil_tmp11 ;
26511  unsigned long __cil_tmp12 ;
26512  unsigned char __cil_tmp13 ;
26513  int __cil_tmp14 ;
26514
26515  {
26516#line 810
26517  __mptr = (struct device  const  *)dev;
26518#line 810
26519  __cil_tmp9 = (struct usb_device *)__mptr;
26520#line 810
26521  rh_usb_dev = __cil_tmp9 + 1152921504606846840UL;
26522#line 811
26523  usb_bus = rh_usb_dev->bus;
26524  {
26525#line 814
26526  __cil_tmp10 = (struct usb_bus *)0;
26527#line 814
26528  __cil_tmp11 = (unsigned long )__cil_tmp10;
26529#line 814
26530  __cil_tmp12 = (unsigned long )usb_bus;
26531#line 814
26532  if (__cil_tmp12 == __cil_tmp11) {
26533#line 815
26534    return (-19L);
26535  } else {
26536
26537  }
26538  }
26539  {
26540#line 816
26541  usb_hcd = bus_to_hcd(usb_bus);
26542#line 817
26543  __cil_tmp13 = usb_hcd->authorized_default;
26544#line 817
26545  __cil_tmp14 = (int )__cil_tmp13;
26546#line 817
26547  tmp = snprintf(buf, 4096UL, "%u\n", __cil_tmp14);
26548  }
26549#line 817
26550  return ((ssize_t )tmp);
26551}
26552}
26553#line 820 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26554static ssize_t usb_host_authorized_default_store(struct device *dev , struct device_attribute *attr ,
26555                                                 char const   *buf , size_t size ) 
26556{ ssize_t result ;
26557  unsigned int val ;
26558  struct usb_device *rh_usb_dev ;
26559  struct device  const  *__mptr ;
26560  struct usb_bus *usb_bus ;
26561  struct usb_hcd *usb_hcd ;
26562  int tmp ;
26563  struct usb_device *__cil_tmp12 ;
26564  struct usb_bus *__cil_tmp13 ;
26565  unsigned long __cil_tmp14 ;
26566  unsigned long __cil_tmp15 ;
26567  int __cil_tmp16 ;
26568
26569  {
26570#line 826
26571  __mptr = (struct device  const  *)dev;
26572#line 826
26573  __cil_tmp12 = (struct usb_device *)__mptr;
26574#line 826
26575  rh_usb_dev = __cil_tmp12 + 1152921504606846840UL;
26576#line 827
26577  usb_bus = rh_usb_dev->bus;
26578  {
26579#line 830
26580  __cil_tmp13 = (struct usb_bus *)0;
26581#line 830
26582  __cil_tmp14 = (unsigned long )__cil_tmp13;
26583#line 830
26584  __cil_tmp15 = (unsigned long )usb_bus;
26585#line 830
26586  if (__cil_tmp15 == __cil_tmp14) {
26587#line 831
26588    return (-19L);
26589  } else {
26590
26591  }
26592  }
26593  {
26594#line 832
26595  usb_hcd = bus_to_hcd(usb_bus);
26596#line 833
26597  tmp = sscanf(buf, "%u\n", & val);
26598#line 833
26599  result = (ssize_t )tmp;
26600  }
26601#line 834
26602  if (result == 1L) {
26603#line 835
26604    __cil_tmp16 = val != 0U;
26605#line 835
26606    usb_hcd->authorized_default = (unsigned char )__cil_tmp16;
26607#line 836
26608    result = (ssize_t )size;
26609  } else {
26610#line 839
26611    result = -22L;
26612  }
26613#line 840
26614  return (result);
26615}
26616}
26617#line 845 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26618static struct device_attribute dev_attr_authorized_default  =    {{"authorized_default", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
26619                                                               {(char)0}, {(char)0},
26620                                                               {(char)0}, {(char)0},
26621                                                               {(char)0}, {(char)0}}}},
26622    & usb_host_authorized_default_show, & usb_host_authorized_default_store};
26623#line 849 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26624static struct attribute *usb_bus_attrs[2U]  = {      & dev_attr_authorized_default.attr,      (struct attribute *)0};
26625#line 854 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26626static struct attribute_group usb_bus_attr_group  =    {(char const   *)0, (mode_t (*)(struct kobject * , struct attribute * , int  ))0,
26627    (struct attribute **)(& usb_bus_attrs)};
26628#line 870 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26629static void usb_bus_init(struct usb_bus *bus ) 
26630{ struct usb_devmap *__cil_tmp2 ;
26631  void *__cil_tmp3 ;
26632  struct list_head *__cil_tmp4 ;
26633
26634  {
26635  {
26636#line 872
26637  __cil_tmp2 = & bus->devmap;
26638#line 872
26639  __cil_tmp3 = (void *)__cil_tmp2;
26640#line 872
26641  memset(__cil_tmp3, 0, 16UL);
26642#line 874
26643  bus->devnum_next = 1;
26644#line 876
26645  bus->root_hub = (struct usb_device *)0;
26646#line 877
26647  bus->busnum = -1;
26648#line 878
26649  bus->bandwidth_allocated = 0;
26650#line 879
26651  bus->bandwidth_int_reqs = 0;
26652#line 880
26653  bus->bandwidth_isoc_reqs = 0;
26654#line 882
26655  __cil_tmp4 = & bus->bus_list;
26656#line 882
26657  INIT_LIST_HEAD(__cil_tmp4);
26658  }
26659#line 883
26660  return;
26661}
26662}
26663#line 895 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26664static int usb_register_bus(struct usb_bus *bus ) 
26665{ int result ;
26666  int busnum ;
26667  unsigned long tmp ;
26668  unsigned long (*__cil_tmp5)[1U] ;
26669  unsigned long const   *__cil_tmp6 ;
26670  unsigned int __cil_tmp7 ;
26671  unsigned long (*__cil_tmp8)[1U] ;
26672  unsigned long volatile   *__cil_tmp9 ;
26673  struct list_head *__cil_tmp10 ;
26674  struct device *__cil_tmp11 ;
26675  struct device  const  *__cil_tmp12 ;
26676  int __cil_tmp13 ;
26677
26678  {
26679  {
26680#line 897
26681  result = -7;
26682#line 900
26683  mutex_lock_nested(& usb_bus_list_lock, 0U);
26684#line 901
26685  __cil_tmp5 = & busmap.busmap;
26686#line 901
26687  __cil_tmp6 = (unsigned long const   *)__cil_tmp5;
26688#line 901
26689  tmp = find_next_zero_bit(__cil_tmp6, 64UL, 1UL);
26690#line 901
26691  busnum = (int )tmp;
26692  }
26693#line 902
26694  if (busnum > 63) {
26695    {
26696#line 903
26697    printk("<3>%s: too many buses\n", usbcore_name);
26698    }
26699#line 904
26700    goto error_find_busnum;
26701  } else {
26702
26703  }
26704  {
26705#line 906
26706  __cil_tmp7 = (unsigned int )busnum;
26707#line 906
26708  __cil_tmp8 = & busmap.busmap;
26709#line 906
26710  __cil_tmp9 = (unsigned long volatile   *)__cil_tmp8;
26711#line 906
26712  set_bit(__cil_tmp7, __cil_tmp9);
26713#line 907
26714  bus->busnum = busnum;
26715#line 910
26716  __cil_tmp10 = & bus->bus_list;
26717#line 910
26718  list_add(__cil_tmp10, & usb_bus_list);
26719#line 911
26720  mutex_unlock(& usb_bus_list_lock);
26721#line 913
26722  usb_notify_add_bus(bus);
26723#line 915
26724  __cil_tmp11 = bus->controller;
26725#line 915
26726  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
26727#line 915
26728  __cil_tmp13 = bus->busnum;
26729#line 915
26730  _dev_info(__cil_tmp12, "new USB bus registered, assigned bus number %d\n", __cil_tmp13);
26731  }
26732#line 917
26733  return (0);
26734  error_find_busnum: 
26735  {
26736#line 920
26737  mutex_unlock(& usb_bus_list_lock);
26738  }
26739#line 921
26740  return (result);
26741}
26742}
26743#line 932 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26744static void usb_deregister_bus(struct usb_bus *bus ) 
26745{ struct device *__cil_tmp2 ;
26746  struct device  const  *__cil_tmp3 ;
26747  int __cil_tmp4 ;
26748  struct list_head *__cil_tmp5 ;
26749  int __cil_tmp6 ;
26750  unsigned long (*__cil_tmp7)[1U] ;
26751  unsigned long volatile   *__cil_tmp8 ;
26752
26753  {
26754  {
26755#line 934
26756  __cil_tmp2 = bus->controller;
26757#line 934
26758  __cil_tmp3 = (struct device  const  *)__cil_tmp2;
26759#line 934
26760  __cil_tmp4 = bus->busnum;
26761#line 934
26762  _dev_info(__cil_tmp3, "USB bus %d deregistered\n", __cil_tmp4);
26763#line 941
26764  mutex_lock_nested(& usb_bus_list_lock, 0U);
26765#line 942
26766  __cil_tmp5 = & bus->bus_list;
26767#line 942
26768  list_del(__cil_tmp5);
26769#line 943
26770  mutex_unlock(& usb_bus_list_lock);
26771#line 945
26772  usb_notify_remove_bus(bus);
26773#line 947
26774  __cil_tmp6 = bus->busnum;
26775#line 947
26776  __cil_tmp7 = & busmap.busmap;
26777#line 947
26778  __cil_tmp8 = (unsigned long volatile   *)__cil_tmp7;
26779#line 947
26780  clear_bit(__cil_tmp6, __cil_tmp8);
26781  }
26782#line 948
26783  return;
26784}
26785}
26786#line 959 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26787static int register_root_hub(struct usb_hcd *hcd ) 
26788{ struct device *parent_dev ;
26789  struct usb_device *usb_dev ;
26790  int devnum ;
26791  int retval ;
26792  char const   *tmp ;
26793  int tmp___0 ;
26794  char const   *tmp___1 ;
26795  struct usb_bus *__cil_tmp9 ;
26796  struct usb_bus *__cil_tmp10 ;
26797  unsigned long (*__cil_tmp11)[2U] ;
26798  void *__cil_tmp12 ;
26799  unsigned int __cil_tmp13 ;
26800  struct usb_bus *__cil_tmp14 ;
26801  unsigned long (*__cil_tmp15)[2U] ;
26802  unsigned long volatile   *__cil_tmp16 ;
26803  enum usb_device_state __cil_tmp17 ;
26804  struct device *__cil_tmp18 ;
26805  struct device  const  *__cil_tmp19 ;
26806  struct device  const  *__cil_tmp20 ;
26807  struct device *__cil_tmp21 ;
26808  struct device  const  *__cil_tmp22 ;
26809  struct device  const  *__cil_tmp23 ;
26810  unsigned long __cil_tmp24 ;
26811  unsigned long __cil_tmp25 ;
26812
26813  {
26814  {
26815#line 961
26816  parent_dev = hcd->self.controller;
26817#line 962
26818  usb_dev = hcd->self.root_hub;
26819#line 963
26820  devnum = 1;
26821#line 966
26822  usb_dev->devnum = devnum;
26823#line 967
26824  __cil_tmp9 = usb_dev->bus;
26825#line 967
26826  __cil_tmp9->devnum_next = devnum + 1;
26827#line 968
26828  __cil_tmp10 = usb_dev->bus;
26829#line 968
26830  __cil_tmp11 = & __cil_tmp10->devmap.devicemap;
26831#line 968
26832  __cil_tmp12 = (void *)__cil_tmp11;
26833#line 968
26834  memset(__cil_tmp12, 0, 16UL);
26835#line 970
26836  __cil_tmp13 = (unsigned int )devnum;
26837#line 970
26838  __cil_tmp14 = usb_dev->bus;
26839#line 970
26840  __cil_tmp15 = & __cil_tmp14->devmap.devicemap;
26841#line 970
26842  __cil_tmp16 = (unsigned long volatile   *)__cil_tmp15;
26843#line 970
26844  set_bit(__cil_tmp13, __cil_tmp16);
26845#line 971
26846  __cil_tmp17 = (enum usb_device_state )6;
26847#line 971
26848  usb_set_device_state(usb_dev, __cil_tmp17);
26849#line 973
26850  mutex_lock_nested(& usb_bus_list_lock, 0U);
26851#line 975
26852  usb_dev->ep0.desc.wMaxPacketSize = (__le16 )64U;
26853#line 976
26854  retval = usb_get_device_descriptor(usb_dev, 18U);
26855  }
26856#line 977
26857  if (retval != 18) {
26858    {
26859#line 978
26860    mutex_unlock(& usb_bus_list_lock);
26861#line 979
26862    __cil_tmp18 = & usb_dev->dev;
26863#line 979
26864    __cil_tmp19 = (struct device  const  *)__cil_tmp18;
26865#line 979
26866    tmp = dev_name(__cil_tmp19);
26867#line 979
26868    __cil_tmp20 = (struct device  const  *)parent_dev;
26869#line 979
26870    dev_printk("<7>", __cil_tmp20, "can\'t read %s device descriptor %d\n", tmp, retval);
26871    }
26872#line 981
26873    if (retval < 0) {
26874#line 981
26875      tmp___0 = retval;
26876    } else {
26877#line 981
26878      tmp___0 = -90;
26879    }
26880#line 981
26881    return (tmp___0);
26882  } else {
26883
26884  }
26885  {
26886#line 984
26887  retval = usb_new_device(usb_dev);
26888  }
26889#line 985
26890  if (retval != 0) {
26891    {
26892#line 986
26893    __cil_tmp21 = & usb_dev->dev;
26894#line 986
26895    __cil_tmp22 = (struct device  const  *)__cil_tmp21;
26896#line 986
26897    tmp___1 = dev_name(__cil_tmp22);
26898#line 986
26899    __cil_tmp23 = (struct device  const  *)parent_dev;
26900#line 986
26901    dev_err(__cil_tmp23, "can\'t register root hub for %s, %d\n", tmp___1, retval);
26902    }
26903  } else {
26904
26905  }
26906  {
26907#line 989
26908  mutex_unlock(& usb_bus_list_lock);
26909  }
26910#line 991
26911  if (retval == 0) {
26912    {
26913#line 992
26914    spin_lock_irq(& hcd_root_hub_lock);
26915#line 993
26916    hcd->rh_registered = (unsigned char)1;
26917#line 994
26918    spin_unlock_irq(& hcd_root_hub_lock);
26919    }
26920    {
26921#line 997
26922    __cil_tmp24 = hcd->flags;
26923#line 997
26924    __cil_tmp25 = __cil_tmp24 & 64UL;
26925#line 997
26926    if (__cil_tmp25 != 0UL) {
26927      {
26928#line 998
26929      usb_hc_died(hcd);
26930      }
26931    } else {
26932
26933    }
26934    }
26935  } else {
26936
26937  }
26938#line 1001
26939  return (retval);
26940}
26941}
26942#line 1018 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
26943long usb_calc_bus_time(int speed , int is_input , int isoc , int bytecount ) 
26944{ unsigned long tmp ;
26945  unsigned long tmp___0 ;
26946  int __cil_tmp7 ;
26947  int __cil_tmp8 ;
26948  long __cil_tmp9 ;
26949  long __cil_tmp10 ;
26950  long __cil_tmp11 ;
26951  long __cil_tmp12 ;
26952  unsigned long __cil_tmp13 ;
26953  int __cil_tmp14 ;
26954  int __cil_tmp15 ;
26955  long __cil_tmp16 ;
26956  long __cil_tmp17 ;
26957  long __cil_tmp18 ;
26958  long __cil_tmp19 ;
26959  unsigned long __cil_tmp20 ;
26960  int __cil_tmp21 ;
26961  int __cil_tmp22 ;
26962  long __cil_tmp23 ;
26963  long __cil_tmp24 ;
26964  long __cil_tmp25 ;
26965  long __cil_tmp26 ;
26966  unsigned long __cil_tmp27 ;
26967  int __cil_tmp28 ;
26968  int __cil_tmp29 ;
26969  long __cil_tmp30 ;
26970  long __cil_tmp31 ;
26971  long __cil_tmp32 ;
26972  long __cil_tmp33 ;
26973  unsigned long __cil_tmp34 ;
26974  int __cil_tmp35 ;
26975  int __cil_tmp36 ;
26976  int __cil_tmp37 ;
26977  unsigned long __cil_tmp38 ;
26978  unsigned long __cil_tmp39 ;
26979  unsigned long __cil_tmp40 ;
26980  unsigned long __cil_tmp41 ;
26981  int __cil_tmp42 ;
26982  int __cil_tmp43 ;
26983  int __cil_tmp44 ;
26984  unsigned long __cil_tmp45 ;
26985  unsigned long __cil_tmp46 ;
26986  unsigned long __cil_tmp47 ;
26987  unsigned long __cil_tmp48 ;
26988
26989  {
26990#line 1023
26991  if (speed == 1) {
26992#line 1023
26993    goto case_1;
26994  } else
26995#line 1031
26996  if (speed == 2) {
26997#line 1031
26998    goto case_2;
26999  } else
27000#line 1039
27001  if (speed == 3) {
27002#line 1039
27003    goto case_3;
27004  } else {
27005#line 1046
27006    goto switch_default;
27007#line 1022
27008    if (0) {
27009      case_1: ;
27010#line 1024
27011      if (is_input != 0) {
27012#line 1025
27013        __cil_tmp7 = bytecount * 56;
27014#line 1025
27015        __cil_tmp8 = __cil_tmp7 / 6;
27016#line 1025
27017        __cil_tmp9 = (long )__cil_tmp8;
27018#line 1025
27019        __cil_tmp10 = __cil_tmp9 * 676670L;
27020#line 1025
27021        __cil_tmp11 = __cil_tmp10 + 2097677L;
27022#line 1025
27023        __cil_tmp12 = __cil_tmp11 / 1000L;
27024#line 1025
27025        tmp = (unsigned long )__cil_tmp12;
27026        {
27027#line 1026
27028        __cil_tmp13 = tmp + 65726UL;
27029#line 1026
27030        return ((long )__cil_tmp13);
27031        }
27032      } else {
27033#line 1028
27034        __cil_tmp14 = bytecount * 56;
27035#line 1028
27036        __cil_tmp15 = __cil_tmp14 / 6;
27037#line 1028
27038        __cil_tmp16 = (long )__cil_tmp15;
27039#line 1028
27040        __cil_tmp17 = __cil_tmp16 * 667000L;
27041#line 1028
27042        __cil_tmp18 = __cil_tmp17 + 2067700L;
27043#line 1028
27044        __cil_tmp19 = __cil_tmp18 / 1000L;
27045#line 1028
27046        tmp = (unsigned long )__cil_tmp19;
27047        {
27048#line 1029
27049        __cil_tmp20 = tmp + 65773UL;
27050#line 1029
27051        return ((long )__cil_tmp20);
27052        }
27053      }
27054      case_2: ;
27055#line 1032
27056      if (isoc != 0) {
27057#line 1033
27058        __cil_tmp21 = bytecount * 56;
27059#line 1033
27060        __cil_tmp22 = __cil_tmp21 / 6;
27061#line 1033
27062        __cil_tmp23 = (long )__cil_tmp22;
27063#line 1033
27064        __cil_tmp24 = __cil_tmp23 * 83540L;
27065#line 1033
27066        __cil_tmp25 = __cil_tmp24 + 258974L;
27067#line 1033
27068        __cil_tmp26 = __cil_tmp25 / 1000L;
27069#line 1033
27070        tmp = (unsigned long )__cil_tmp26;
27071#line 1034
27072        if (is_input != 0) {
27073#line 1034
27074          tmp___0 = 8268UL;
27075        } else {
27076#line 1034
27077          tmp___0 = 7265UL;
27078        }
27079        {
27080#line 1034
27081        __cil_tmp27 = tmp___0 + tmp;
27082#line 1034
27083        return ((long )__cil_tmp27);
27084        }
27085      } else {
27086#line 1036
27087        __cil_tmp28 = bytecount * 56;
27088#line 1036
27089        __cil_tmp29 = __cil_tmp28 / 6;
27090#line 1036
27091        __cil_tmp30 = (long )__cil_tmp29;
27092#line 1036
27093        __cil_tmp31 = __cil_tmp30 * 83540L;
27094#line 1036
27095        __cil_tmp32 = __cil_tmp31 + 258974L;
27096#line 1036
27097        __cil_tmp33 = __cil_tmp32 / 1000L;
27098#line 1036
27099        tmp = (unsigned long )__cil_tmp33;
27100        {
27101#line 1037
27102        __cil_tmp34 = tmp + 10107UL;
27103#line 1037
27104        return ((long )__cil_tmp34);
27105        }
27106      }
27107      case_3: ;
27108#line 1041
27109      if (isoc != 0) {
27110#line 1042
27111        __cil_tmp35 = bytecount * 56;
27112#line 1042
27113        __cil_tmp36 = __cil_tmp35 / 6;
27114#line 1042
27115        __cil_tmp37 = __cil_tmp36 + 3;
27116#line 1042
27117        __cil_tmp38 = (unsigned long )__cil_tmp37;
27118#line 1042
27119        __cil_tmp39 = __cil_tmp38 * 2083UL;
27120#line 1042
27121        __cil_tmp40 = __cil_tmp39 + 633232UL;
27122#line 1042
27123        __cil_tmp41 = __cil_tmp40 / 1000UL;
27124#line 1042
27125        tmp = __cil_tmp41 + 5UL;
27126      } else {
27127#line 1044
27128        __cil_tmp42 = bytecount * 56;
27129#line 1044
27130        __cil_tmp43 = __cil_tmp42 / 6;
27131#line 1044
27132        __cil_tmp44 = __cil_tmp43 + 3;
27133#line 1044
27134        __cil_tmp45 = (unsigned long )__cil_tmp44;
27135#line 1044
27136        __cil_tmp46 = __cil_tmp45 * 2083UL;
27137#line 1044
27138        __cil_tmp47 = __cil_tmp46 + 916520UL;
27139#line 1044
27140        __cil_tmp48 = __cil_tmp47 / 1000UL;
27141#line 1044
27142        tmp = __cil_tmp48 + 5UL;
27143      }
27144#line 1045
27145      return ((long )tmp);
27146      switch_default: 
27147      {
27148#line 1047
27149      printk("<7>%s: bogus device speed!\n", usbcore_name);
27150      }
27151#line 1048
27152      return (-1L);
27153    } else {
27154
27155    }
27156  }
27157}
27158}
27159#line 1077 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
27160int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd , struct urb *urb ) 
27161{ int rc ;
27162  int tmp ;
27163  long tmp___0 ;
27164  long tmp___1 ;
27165  long tmp___2 ;
27166  atomic_t *__cil_tmp8 ;
27167  atomic_t const   *__cil_tmp9 ;
27168  int __cil_tmp10 ;
27169  long __cil_tmp11 ;
27170  struct usb_host_endpoint *__cil_tmp12 ;
27171  int __cil_tmp13 ;
27172  int __cil_tmp14 ;
27173  long __cil_tmp15 ;
27174  struct usb_device *__cil_tmp16 ;
27175  unsigned char *__cil_tmp17 ;
27176  unsigned char *__cil_tmp18 ;
27177  unsigned char __cil_tmp19 ;
27178  unsigned int __cil_tmp20 ;
27179  int __cil_tmp21 ;
27180  long __cil_tmp22 ;
27181  unsigned long __cil_tmp23 ;
27182  unsigned long __cil_tmp24 ;
27183  struct list_head *__cil_tmp25 ;
27184  struct usb_host_endpoint *__cil_tmp26 ;
27185  struct list_head *__cil_tmp27 ;
27186
27187  {
27188  {
27189#line 1079
27190  rc = 0;
27191#line 1081
27192  spin_lock(& hcd_urb_list_lock);
27193#line 1084
27194  __cil_tmp8 = & urb->reject;
27195#line 1084
27196  __cil_tmp9 = (atomic_t const   *)__cil_tmp8;
27197#line 1084
27198  tmp = atomic_read(__cil_tmp9);
27199#line 1084
27200  __cil_tmp10 = tmp != 0;
27201#line 1084
27202  __cil_tmp11 = (long )__cil_tmp10;
27203#line 1084
27204  tmp___0 = __builtin_expect(__cil_tmp11, 0L);
27205  }
27206#line 1084
27207  if (tmp___0 != 0L) {
27208#line 1085
27209    rc = -1;
27210#line 1086
27211    goto done;
27212  } else {
27213
27214  }
27215  {
27216#line 1089
27217  __cil_tmp12 = urb->ep;
27218#line 1089
27219  __cil_tmp13 = __cil_tmp12->enabled;
27220#line 1089
27221  __cil_tmp14 = __cil_tmp13 == 0;
27222#line 1089
27223  __cil_tmp15 = (long )__cil_tmp14;
27224#line 1089
27225  tmp___1 = __builtin_expect(__cil_tmp15, 0L);
27226  }
27227#line 1089
27228  if (tmp___1 != 0L) {
27229#line 1090
27230    rc = -2;
27231#line 1091
27232    goto done;
27233  } else {
27234
27235  }
27236  {
27237#line 1094
27238  __cil_tmp16 = urb->dev;
27239#line 1094
27240  __cil_tmp17 = (unsigned char *)__cil_tmp16;
27241#line 1094
27242  __cil_tmp18 = __cil_tmp17 + 1556UL;
27243#line 1094
27244  __cil_tmp19 = *__cil_tmp18;
27245#line 1094
27246  __cil_tmp20 = (unsigned int )__cil_tmp19;
27247#line 1094
27248  __cil_tmp21 = __cil_tmp20 == 0U;
27249#line 1094
27250  __cil_tmp22 = (long )__cil_tmp21;
27251#line 1094
27252  tmp___2 = __builtin_expect(__cil_tmp22, 0L);
27253  }
27254#line 1094
27255  if (tmp___2 != 0L) {
27256#line 1095
27257    rc = -113;
27258#line 1096
27259    goto done;
27260  } else {
27261
27262  }
27263  {
27264#line 1103
27265  __cil_tmp23 = hcd->flags;
27266#line 1103
27267  __cil_tmp24 = __cil_tmp23 & 32UL;
27268#line 1103
27269  if (__cil_tmp24 != 0UL) {
27270    {
27271#line 1104
27272    urb->unlinked = 0;
27273#line 1105
27274    __cil_tmp25 = & urb->urb_list;
27275#line 1105
27276    __cil_tmp26 = urb->ep;
27277#line 1105
27278    __cil_tmp27 = & __cil_tmp26->urb_list;
27279#line 1105
27280    list_add_tail(__cil_tmp25, __cil_tmp27);
27281    }
27282  } else {
27283#line 1107
27284    rc = -108;
27285#line 1108
27286    goto done;
27287  }
27288  }
27289  done: 
27290  {
27291#line 1111
27292  spin_unlock(& hcd_urb_list_lock);
27293  }
27294#line 1112
27295  return (rc);
27296}
27297}
27298#line 1135 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
27299int usb_hcd_check_unlink_urb(struct usb_hcd *hcd , struct urb *urb , int status ) 
27300{ struct list_head *tmp ;
27301  int tmp___0 ;
27302  struct usb_host_endpoint *__cil_tmp6 ;
27303  unsigned long __cil_tmp7 ;
27304  struct list_head *__cil_tmp8 ;
27305  unsigned long __cil_tmp9 ;
27306  unsigned long __cil_tmp10 ;
27307  struct usb_host_endpoint *__cil_tmp11 ;
27308  struct list_head *__cil_tmp12 ;
27309  unsigned long __cil_tmp13 ;
27310  unsigned long __cil_tmp14 ;
27311  struct list_head *__cil_tmp15 ;
27312  unsigned long __cil_tmp16 ;
27313  int __cil_tmp17 ;
27314  unsigned long __cil_tmp18 ;
27315  unsigned long __cil_tmp19 ;
27316  struct usb_device *__cil_tmp20 ;
27317  struct device *__cil_tmp21 ;
27318  struct device  const  *__cil_tmp22 ;
27319  unsigned long *__cil_tmp23 ;
27320  unsigned long volatile   *__cil_tmp24 ;
27321  struct usb_hcd *__cil_tmp25 ;
27322  unsigned long __cil_tmp26 ;
27323  struct usb_hcd *__cil_tmp27 ;
27324  unsigned long __cil_tmp28 ;
27325  struct usb_hcd *__cil_tmp29 ;
27326  unsigned long *__cil_tmp30 ;
27327  unsigned long volatile   *__cil_tmp31 ;
27328
27329  {
27330#line 1141
27331  __cil_tmp6 = urb->ep;
27332#line 1141
27333  tmp = __cil_tmp6->urb_list.next;
27334#line 1141
27335  goto ldv_27869;
27336  ldv_27868: ;
27337  {
27338#line 1142
27339  __cil_tmp7 = (unsigned long )tmp;
27340#line 1142
27341  __cil_tmp8 = & urb->urb_list;
27342#line 1142
27343  __cil_tmp9 = (unsigned long )__cil_tmp8;
27344#line 1142
27345  if (__cil_tmp9 == __cil_tmp7) {
27346#line 1143
27347    goto ldv_27867;
27348  } else {
27349
27350  }
27351  }
27352#line 1141
27353  tmp = tmp->next;
27354  ldv_27869: ;
27355  {
27356#line 1141
27357  __cil_tmp10 = (unsigned long )tmp;
27358#line 1141
27359  __cil_tmp11 = urb->ep;
27360#line 1141
27361  __cil_tmp12 = & __cil_tmp11->urb_list;
27362#line 1141
27363  __cil_tmp13 = (unsigned long )__cil_tmp12;
27364#line 1141
27365  if (__cil_tmp13 != __cil_tmp10) {
27366#line 1142
27367    goto ldv_27868;
27368  } else {
27369#line 1144
27370    goto ldv_27867;
27371  }
27372  }
27373  ldv_27867: ;
27374  {
27375#line 1145
27376  __cil_tmp14 = (unsigned long )tmp;
27377#line 1145
27378  __cil_tmp15 = & urb->urb_list;
27379#line 1145
27380  __cil_tmp16 = (unsigned long )__cil_tmp15;
27381#line 1145
27382  if (__cil_tmp16 != __cil_tmp14) {
27383#line 1146
27384    return (-43);
27385  } else {
27386
27387  }
27388  }
27389  {
27390#line 1151
27391  __cil_tmp17 = urb->unlinked;
27392#line 1151
27393  if (__cil_tmp17 != 0) {
27394#line 1152
27395    return (-16);
27396  } else {
27397
27398  }
27399  }
27400#line 1153
27401  urb->unlinked = status;
27402  {
27403#line 1160
27404  __cil_tmp18 = hcd->flags;
27405#line 1160
27406  __cil_tmp19 = __cil_tmp18 & 2UL;
27407#line 1160
27408  if (__cil_tmp19 == 0UL) {
27409    {
27410#line 1160
27411    __cil_tmp20 = urb->dev;
27412#line 1160
27413    tmp___0 = is_root_hub(__cil_tmp20);
27414    }
27415#line 1160
27416    if (tmp___0 == 0) {
27417      {
27418#line 1161
27419      __cil_tmp21 = hcd->self.controller;
27420#line 1161
27421      __cil_tmp22 = (struct device  const  *)__cil_tmp21;
27422#line 1161
27423      dev_warn(__cil_tmp22, "Unlink after no-IRQ?  Controller is probably using the wrong IRQ.\n");
27424#line 1163
27425      __cil_tmp23 = & hcd->flags;
27426#line 1163
27427      __cil_tmp24 = (unsigned long volatile   *)__cil_tmp23;
27428#line 1163
27429      set_bit(1U, __cil_tmp24);
27430      }
27431      {
27432#line 1164
27433      __cil_tmp25 = (struct usb_hcd *)0;
27434#line 1164
27435      __cil_tmp26 = (unsigned long )__cil_tmp25;
27436#line 1164
27437      __cil_tmp27 = hcd->shared_hcd;
27438#line 1164
27439      __cil_tmp28 = (unsigned long )__cil_tmp27;
27440#line 1164
27441      if (__cil_tmp28 != __cil_tmp26) {
27442        {
27443#line 1165
27444        __cil_tmp29 = hcd->shared_hcd;
27445#line 1165
27446        __cil_tmp30 = & __cil_tmp29->flags;
27447#line 1165
27448        __cil_tmp31 = (unsigned long volatile   *)__cil_tmp30;
27449#line 1165
27450        set_bit(1U, __cil_tmp31);
27451        }
27452      } else {
27453
27454      }
27455      }
27456    } else {
27457
27458    }
27459  } else {
27460
27461  }
27462  }
27463#line 1168
27464  return (0);
27465}
27466}
27467#line 1182 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
27468void usb_hcd_unlink_urb_from_ep(struct usb_hcd *hcd , struct urb *urb ) 
27469{ struct list_head *__cil_tmp3 ;
27470
27471  {
27472  {
27473#line 1185
27474  spin_lock(& hcd_urb_list_lock);
27475#line 1186
27476  __cil_tmp3 = & urb->urb_list;
27477#line 1186
27478  list_del_init(__cil_tmp3);
27479#line 1187
27480  spin_unlock(& hcd_urb_list_lock);
27481  }
27482#line 1188
27483  return;
27484}
27485}
27486#line 1223 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
27487static int hcd_alloc_coherent(struct usb_bus *bus , gfp_t mem_flags , dma_addr_t *dma_handle ,
27488                              void **vaddr_handle , size_t size , enum dma_data_direction dir ) 
27489{ unsigned char *vaddr ;
27490  bool __warned ;
27491  int __ret_warn_once ;
27492  int __ret_warn_on ;
27493  long tmp ;
27494  long tmp___0 ;
27495  long tmp___1 ;
27496  void *tmp___2 ;
27497  void *__gu_p ;
27498  size_t __len ;
27499  void *__ret ;
27500  void *__cil_tmp18 ;
27501  unsigned long __cil_tmp19 ;
27502  void *__cil_tmp20 ;
27503  unsigned long __cil_tmp21 ;
27504  int __cil_tmp22 ;
27505  long __cil_tmp23 ;
27506  int __cil_tmp24 ;
27507  long __cil_tmp25 ;
27508  int __cil_tmp26 ;
27509  int __cil_tmp27 ;
27510  int __cil_tmp28 ;
27511  long __cil_tmp29 ;
27512  int __cil_tmp30 ;
27513  long __cil_tmp31 ;
27514  size_t __cil_tmp32 ;
27515  unsigned char *__cil_tmp33 ;
27516  unsigned long __cil_tmp34 ;
27517  unsigned long __cil_tmp35 ;
27518  unsigned char *__cil_tmp36 ;
27519  u8 *__cil_tmp37 ;
27520  void *__cil_tmp38 ;
27521  long __cil_tmp39 ;
27522  void *__cil_tmp40 ;
27523  long __cil_tmp41 ;
27524  unsigned short __cil_tmp42 ;
27525  int __cil_tmp43 ;
27526  u16 __cil_tmp44 ;
27527  void *__cil_tmp45 ;
27528  long __cil_tmp46 ;
27529  unsigned int __cil_tmp47 ;
27530  void *__cil_tmp48 ;
27531  unsigned long long __cil_tmp49 ;
27532  unsigned int __cil_tmp50 ;
27533  void *__cil_tmp51 ;
27534  void *__cil_tmp52 ;
27535  void const   *__cil_tmp53 ;
27536
27537  {
27538  {
27539#line 1230
27540  __cil_tmp18 = (void *)0;
27541#line 1230
27542  __cil_tmp19 = (unsigned long )__cil_tmp18;
27543#line 1230
27544  __cil_tmp20 = *vaddr_handle;
27545#line 1230
27546  __cil_tmp21 = (unsigned long )__cil_tmp20;
27547#line 1230
27548  if (__cil_tmp21 == __cil_tmp19) {
27549    {
27550#line 1231
27551    __ret_warn_once = 1;
27552#line 1231
27553    __cil_tmp22 = __ret_warn_once != 0;
27554#line 1231
27555    __cil_tmp23 = (long )__cil_tmp22;
27556#line 1231
27557    tmp___1 = __builtin_expect(__cil_tmp23, 0L);
27558    }
27559#line 1231
27560    if (tmp___1 != 0L) {
27561      {
27562#line 1231
27563      __ret_warn_on = ! __warned;
27564#line 1231
27565      __cil_tmp24 = __ret_warn_on != 0;
27566#line 1231
27567      __cil_tmp25 = (long )__cil_tmp24;
27568#line 1231
27569      tmp = __builtin_expect(__cil_tmp25, 0L);
27570      }
27571#line 1231
27572      if (tmp != 0L) {
27573        {
27574#line 1231
27575        __cil_tmp26 = (int const   )1231;
27576#line 1231
27577        __cil_tmp27 = (int )__cil_tmp26;
27578#line 1231
27579        warn_slowpath_null("/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p",
27580                           __cil_tmp27);
27581        }
27582      } else {
27583
27584      }
27585      {
27586#line 1231
27587      __cil_tmp28 = __ret_warn_on != 0;
27588#line 1231
27589      __cil_tmp29 = (long )__cil_tmp28;
27590#line 1231
27591      tmp___0 = __builtin_expect(__cil_tmp29, 0L);
27592      }
27593#line 1231
27594      if (tmp___0 != 0L) {
27595#line 1231
27596        __warned = (bool )1;
27597      } else {
27598
27599      }
27600    } else {
27601
27602    }
27603    {
27604#line 1231
27605    __cil_tmp30 = __ret_warn_once != 0;
27606#line 1231
27607    __cil_tmp31 = (long )__cil_tmp30;
27608#line 1231
27609    __builtin_expect(__cil_tmp31, 0L);
27610    }
27611#line 1232
27612    return (-14);
27613  } else {
27614
27615  }
27616  }
27617  {
27618#line 1235
27619  __cil_tmp32 = size + 8UL;
27620#line 1235
27621  tmp___2 = hcd_buffer_alloc(bus, __cil_tmp32, mem_flags, dma_handle);
27622#line 1235
27623  vaddr = (unsigned char *)tmp___2;
27624  }
27625  {
27626#line 1237
27627  __cil_tmp33 = (unsigned char *)0;
27628#line 1237
27629  __cil_tmp34 = (unsigned long )__cil_tmp33;
27630#line 1237
27631  __cil_tmp35 = (unsigned long )vaddr;
27632#line 1237
27633  if (__cil_tmp35 == __cil_tmp34) {
27634#line 1238
27635    return (-12);
27636  } else {
27637
27638  }
27639  }
27640#line 1248
27641  __cil_tmp36 = vaddr + size;
27642#line 1248
27643  __gu_p = (void *)__cil_tmp36;
27644#line 1248
27645  if (1) {
27646#line 1248
27647    goto case_8;
27648  } else {
27649#line 1248
27650    goto switch_default;
27651#line 1248
27652    if (0) {
27653#line 1248
27654      __cil_tmp37 = (u8 *)__gu_p;
27655#line 1248
27656      __cil_tmp38 = *vaddr_handle;
27657#line 1248
27658      __cil_tmp39 = (long )__cil_tmp38;
27659#line 1248
27660      *__cil_tmp37 = (unsigned char )__cil_tmp39;
27661#line 1248
27662      goto ldv_27905;
27663      {
27664#line 1248
27665      __cil_tmp40 = *vaddr_handle;
27666#line 1248
27667      __cil_tmp41 = (long )__cil_tmp40;
27668#line 1248
27669      __cil_tmp42 = (unsigned short )__cil_tmp41;
27670#line 1248
27671      __cil_tmp43 = (int )__cil_tmp42;
27672#line 1248
27673      __cil_tmp44 = (u16 )__cil_tmp43;
27674#line 1248
27675      put_unaligned_le16(__cil_tmp44, __gu_p);
27676      }
27677#line 1248
27678      goto ldv_27905;
27679      {
27680#line 1248
27681      __cil_tmp45 = *vaddr_handle;
27682#line 1248
27683      __cil_tmp46 = (long )__cil_tmp45;
27684#line 1248
27685      __cil_tmp47 = (unsigned int )__cil_tmp46;
27686#line 1248
27687      put_unaligned_le32(__cil_tmp47, __gu_p);
27688      }
27689#line 1248
27690      goto ldv_27905;
27691      case_8: 
27692      {
27693#line 1248
27694      __cil_tmp48 = *vaddr_handle;
27695#line 1248
27696      __cil_tmp49 = (unsigned long long )__cil_tmp48;
27697#line 1248
27698      put_unaligned_le64(__cil_tmp49, __gu_p);
27699      }
27700#line 1248
27701      goto ldv_27905;
27702      switch_default: 
27703      {
27704#line 1248
27705      __bad_unaligned_access_size();
27706      }
27707#line 1248
27708      goto ldv_27905;
27709    } else {
27710
27711    }
27712  }
27713  ldv_27905: ;
27714  {
27715#line 1251
27716  __cil_tmp50 = (unsigned int )dir;
27717#line 1251
27718  if (__cil_tmp50 == 1U) {
27719    {
27720#line 1252
27721    __len = size;
27722#line 1252
27723    __cil_tmp51 = (void *)vaddr;
27724#line 1252
27725    __cil_tmp52 = *vaddr_handle;
27726#line 1252
27727    __cil_tmp53 = (void const   *)__cil_tmp52;
27728#line 1252
27729    __ret = __builtin_memcpy(__cil_tmp51, __cil_tmp53, __len);
27730    }
27731  } else {
27732
27733  }
27734  }
27735#line 1254
27736  *vaddr_handle = (void *)vaddr;
27737#line 1255
27738  return (0);
27739}
27740}
27741#line 1258 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
27742static void hcd_free_coherent(struct usb_bus *bus , dma_addr_t *dma_handle , void **vaddr_handle ,
27743                              size_t size , enum dma_data_direction dir ) 
27744{ unsigned char *vaddr ;
27745  u64 tmp ;
27746  size_t __len ;
27747  void *__ret ;
27748  void *__cil_tmp10 ;
27749  unsigned char *__cil_tmp11 ;
27750  void const   *__cil_tmp12 ;
27751  unsigned int __cil_tmp13 ;
27752  void *__cil_tmp14 ;
27753  void *__cil_tmp15 ;
27754  void const   *__cil_tmp16 ;
27755  size_t __cil_tmp17 ;
27756  void *__cil_tmp18 ;
27757  dma_addr_t __cil_tmp19 ;
27758
27759  {
27760  {
27761#line 1262
27762  __cil_tmp10 = *vaddr_handle;
27763#line 1262
27764  vaddr = (unsigned char *)__cil_tmp10;
27765#line 1264
27766  __cil_tmp11 = vaddr + size;
27767#line 1264
27768  __cil_tmp12 = (void const   *)__cil_tmp11;
27769#line 1264
27770  tmp = get_unaligned_le64(__cil_tmp12);
27771#line 1264
27772  vaddr = (unsigned char *)tmp;
27773  }
27774  {
27775#line 1266
27776  __cil_tmp13 = (unsigned int )dir;
27777#line 1266
27778  if (__cil_tmp13 == 2U) {
27779    {
27780#line 1267
27781    __len = size;
27782#line 1267
27783    __cil_tmp14 = (void *)vaddr;
27784#line 1267
27785    __cil_tmp15 = *vaddr_handle;
27786#line 1267
27787    __cil_tmp16 = (void const   *)__cil_tmp15;
27788#line 1267
27789    __ret = __builtin_memcpy(__cil_tmp14, __cil_tmp16, __len);
27790    }
27791  } else {
27792
27793  }
27794  }
27795  {
27796#line 1269
27797  __cil_tmp17 = size + 8UL;
27798#line 1269
27799  __cil_tmp18 = *vaddr_handle;
27800#line 1269
27801  __cil_tmp19 = *dma_handle;
27802#line 1269
27803  hcd_buffer_free(bus, __cil_tmp17, __cil_tmp18, __cil_tmp19);
27804#line 1271
27805  *vaddr_handle = (void *)vaddr;
27806#line 1272
27807  *dma_handle = 0ULL;
27808  }
27809#line 1273
27810  return;
27811}
27812}
27813#line 1275 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
27814void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *hcd , struct urb *urb ) 
27815{ unsigned int __cil_tmp3 ;
27816  unsigned int __cil_tmp4 ;
27817  struct device *__cil_tmp5 ;
27818  dma_addr_t __cil_tmp6 ;
27819  enum dma_data_direction __cil_tmp7 ;
27820  struct dma_attrs *__cil_tmp8 ;
27821  unsigned int __cil_tmp9 ;
27822  unsigned int __cil_tmp10 ;
27823  struct usb_device *__cil_tmp11 ;
27824  struct usb_bus *__cil_tmp12 ;
27825  dma_addr_t *__cil_tmp13 ;
27826  unsigned char **__cil_tmp14 ;
27827  void **__cil_tmp15 ;
27828  enum dma_data_direction __cil_tmp16 ;
27829  unsigned int __cil_tmp17 ;
27830
27831  {
27832  {
27833#line 1277
27834  __cil_tmp3 = urb->transfer_flags;
27835#line 1277
27836  __cil_tmp4 = __cil_tmp3 & 1048576U;
27837#line 1277
27838  if (__cil_tmp4 != 0U) {
27839    {
27840#line 1278
27841    __cil_tmp5 = hcd->self.controller;
27842#line 1278
27843    __cil_tmp6 = urb->setup_dma;
27844#line 1278
27845    __cil_tmp7 = (enum dma_data_direction )1;
27846#line 1278
27847    __cil_tmp8 = (struct dma_attrs *)0;
27848#line 1278
27849    dma_unmap_single_attrs(__cil_tmp5, __cil_tmp6, 8UL, __cil_tmp7, __cil_tmp8);
27850    }
27851  } else {
27852    {
27853#line 1282
27854    __cil_tmp9 = urb->transfer_flags;
27855#line 1282
27856    __cil_tmp10 = __cil_tmp9 & 2097152U;
27857#line 1282
27858    if (__cil_tmp10 != 0U) {
27859      {
27860#line 1283
27861      __cil_tmp11 = urb->dev;
27862#line 1283
27863      __cil_tmp12 = __cil_tmp11->bus;
27864#line 1283
27865      __cil_tmp13 = & urb->setup_dma;
27866#line 1283
27867      __cil_tmp14 = & urb->setup_packet;
27868#line 1283
27869      __cil_tmp15 = (void **)__cil_tmp14;
27870#line 1283
27871      __cil_tmp16 = (enum dma_data_direction )1;
27872#line 1283
27873      hcd_free_coherent(__cil_tmp12, __cil_tmp13, __cil_tmp15, 8UL, __cil_tmp16);
27874      }
27875    } else {
27876
27877    }
27878    }
27879  }
27880  }
27881#line 1290
27882  __cil_tmp17 = urb->transfer_flags;
27883#line 1290
27884  urb->transfer_flags = __cil_tmp17 & 4291821567U;
27885#line 1291
27886  return;
27887}
27888}
27889#line 1294 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
27890static void unmap_urb_for_dma(struct usb_hcd *hcd , struct urb *urb ) 
27891{ void (*__cil_tmp3)(struct usb_hcd * , struct urb * ) ;
27892  unsigned long __cil_tmp4 ;
27893  struct hc_driver  const  *__cil_tmp5 ;
27894  void (*__cil_tmp6)(struct usb_hcd * , struct urb * ) ;
27895  unsigned long __cil_tmp7 ;
27896  struct hc_driver  const  *__cil_tmp8 ;
27897  void (*__cil_tmp9)(struct usb_hcd * , struct urb * ) ;
27898
27899  {
27900  {
27901#line 1296
27902  __cil_tmp3 = (void (* const  )(struct usb_hcd * , struct urb * ))0;
27903#line 1296
27904  __cil_tmp4 = (unsigned long )__cil_tmp3;
27905#line 1296
27906  __cil_tmp5 = hcd->driver;
27907#line 1296
27908  __cil_tmp6 = __cil_tmp5->unmap_urb_for_dma;
27909#line 1296
27910  __cil_tmp7 = (unsigned long )__cil_tmp6;
27911#line 1296
27912  if (__cil_tmp7 != __cil_tmp4) {
27913    {
27914#line 1297
27915    __cil_tmp8 = hcd->driver;
27916#line 1297
27917    __cil_tmp9 = __cil_tmp8->unmap_urb_for_dma;
27918#line 1297
27919    (*__cil_tmp9)(hcd, urb);
27920    }
27921  } else {
27922    {
27923#line 1299
27924    usb_hcd_unmap_urb_for_dma(hcd, urb);
27925    }
27926  }
27927  }
27928#line 1300
27929  return;
27930}
27931}
27932#line 1302 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
27933void usb_hcd_unmap_urb_for_dma(struct usb_hcd *hcd , struct urb *urb ) 
27934{ enum dma_data_direction dir ;
27935  int tmp___0 ;
27936  unsigned int __cil_tmp5 ;
27937  unsigned int __cil_tmp6 ;
27938  struct device *__cil_tmp7 ;
27939  struct scatterlist *__cil_tmp8 ;
27940  int __cil_tmp9 ;
27941  struct dma_attrs *__cil_tmp10 ;
27942  unsigned int __cil_tmp11 ;
27943  unsigned int __cil_tmp12 ;
27944  struct device *__cil_tmp13 ;
27945  dma_addr_t __cil_tmp14 ;
27946  u32 __cil_tmp15 ;
27947  size_t __cil_tmp16 ;
27948  unsigned int __cil_tmp17 ;
27949  unsigned int __cil_tmp18 ;
27950  struct device *__cil_tmp19 ;
27951  dma_addr_t __cil_tmp20 ;
27952  u32 __cil_tmp21 ;
27953  size_t __cil_tmp22 ;
27954  struct dma_attrs *__cil_tmp23 ;
27955  unsigned int __cil_tmp24 ;
27956  unsigned int __cil_tmp25 ;
27957  struct usb_device *__cil_tmp26 ;
27958  struct usb_bus *__cil_tmp27 ;
27959  dma_addr_t *__cil_tmp28 ;
27960  void **__cil_tmp29 ;
27961  u32 __cil_tmp30 ;
27962  size_t __cil_tmp31 ;
27963  unsigned int __cil_tmp32 ;
27964
27965  {
27966  {
27967#line 1306
27968  usb_hcd_unmap_urb_setup_for_dma(hcd, urb);
27969#line 1308
27970  tmp___0 = usb_urb_dir_in(urb);
27971  }
27972#line 1308
27973  if (tmp___0 != 0) {
27974#line 1308
27975    dir = (enum dma_data_direction )2;
27976  } else {
27977#line 1308
27978    dir = (enum dma_data_direction )1;
27979  }
27980  {
27981#line 1309
27982  __cil_tmp5 = urb->transfer_flags;
27983#line 1309
27984  __cil_tmp6 = __cil_tmp5 & 262144U;
27985#line 1309
27986  if (__cil_tmp6 != 0U) {
27987    {
27988#line 1310
27989    __cil_tmp7 = hcd->self.controller;
27990#line 1310
27991    __cil_tmp8 = urb->sg;
27992#line 1310
27993    __cil_tmp9 = urb->num_sgs;
27994#line 1310
27995    __cil_tmp10 = (struct dma_attrs *)0;
27996#line 1310
27997    dma_unmap_sg_attrs(__cil_tmp7, __cil_tmp8, __cil_tmp9, dir, __cil_tmp10);
27998    }
27999  } else {
28000    {
28001#line 1314
28002    __cil_tmp11 = urb->transfer_flags;
28003#line 1314
28004    __cil_tmp12 = __cil_tmp11 & 131072U;
28005#line 1314
28006    if (__cil_tmp12 != 0U) {
28007      {
28008#line 1315
28009      __cil_tmp13 = hcd->self.controller;
28010#line 1315
28011      __cil_tmp14 = urb->transfer_dma;
28012#line 1315
28013      __cil_tmp15 = urb->transfer_buffer_length;
28014#line 1315
28015      __cil_tmp16 = (size_t )__cil_tmp15;
28016#line 1315
28017      dma_unmap_page(__cil_tmp13, __cil_tmp14, __cil_tmp16, dir);
28018      }
28019    } else {
28020      {
28021#line 1319
28022      __cil_tmp17 = urb->transfer_flags;
28023#line 1319
28024      __cil_tmp18 = __cil_tmp17 & 65536U;
28025#line 1319
28026      if (__cil_tmp18 != 0U) {
28027        {
28028#line 1320
28029        __cil_tmp19 = hcd->self.controller;
28030#line 1320
28031        __cil_tmp20 = urb->transfer_dma;
28032#line 1320
28033        __cil_tmp21 = urb->transfer_buffer_length;
28034#line 1320
28035        __cil_tmp22 = (size_t )__cil_tmp21;
28036#line 1320
28037        __cil_tmp23 = (struct dma_attrs *)0;
28038#line 1320
28039        dma_unmap_single_attrs(__cil_tmp19, __cil_tmp20, __cil_tmp22, dir, __cil_tmp23);
28040        }
28041      } else {
28042        {
28043#line 1324
28044        __cil_tmp24 = urb->transfer_flags;
28045#line 1324
28046        __cil_tmp25 = __cil_tmp24 & 524288U;
28047#line 1324
28048        if (__cil_tmp25 != 0U) {
28049          {
28050#line 1325
28051          __cil_tmp26 = urb->dev;
28052#line 1325
28053          __cil_tmp27 = __cil_tmp26->bus;
28054#line 1325
28055          __cil_tmp28 = & urb->transfer_dma;
28056#line 1325
28057          __cil_tmp29 = & urb->transfer_buffer;
28058#line 1325
28059          __cil_tmp30 = urb->transfer_buffer_length;
28060#line 1325
28061          __cil_tmp31 = (size_t )__cil_tmp30;
28062#line 1325
28063          hcd_free_coherent(__cil_tmp27, __cil_tmp28, __cil_tmp29, __cil_tmp31, dir);
28064          }
28065        } else {
28066
28067        }
28068        }
28069      }
28070      }
28071    }
28072    }
28073  }
28074  }
28075#line 1332
28076  __cil_tmp32 = urb->transfer_flags;
28077#line 1332
28078  urb->transfer_flags = __cil_tmp32 & 4293984255U;
28079#line 1333
28080  return;
28081}
28082}
28083#line 1337 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
28084static int map_urb_for_dma(struct usb_hcd *hcd , struct urb *urb , gfp_t mem_flags ) 
28085{ int tmp ;
28086  int tmp___0 ;
28087  int (*__cil_tmp6)(struct usb_hcd * , struct urb * , gfp_t  ) ;
28088  unsigned long __cil_tmp7 ;
28089  struct hc_driver  const  *__cil_tmp8 ;
28090  int (*__cil_tmp9)(struct usb_hcd * , struct urb * , gfp_t  ) ;
28091  unsigned long __cil_tmp10 ;
28092  struct hc_driver  const  *__cil_tmp11 ;
28093  int (*__cil_tmp12)(struct usb_hcd * , struct urb * , gfp_t  ) ;
28094
28095  {
28096  {
28097#line 1340
28098  __cil_tmp6 = (int (* const  )(struct usb_hcd * , struct urb * , gfp_t  ))0;
28099#line 1340
28100  __cil_tmp7 = (unsigned long )__cil_tmp6;
28101#line 1340
28102  __cil_tmp8 = hcd->driver;
28103#line 1340
28104  __cil_tmp9 = __cil_tmp8->map_urb_for_dma;
28105#line 1340
28106  __cil_tmp10 = (unsigned long )__cil_tmp9;
28107#line 1340
28108  if (__cil_tmp10 != __cil_tmp7) {
28109    {
28110#line 1341
28111    __cil_tmp11 = hcd->driver;
28112#line 1341
28113    __cil_tmp12 = __cil_tmp11->map_urb_for_dma;
28114#line 1341
28115    tmp = (*__cil_tmp12)(hcd, urb, mem_flags);
28116    }
28117#line 1341
28118    return (tmp);
28119  } else {
28120    {
28121#line 1343
28122    tmp___0 = usb_hcd_map_urb_for_dma(hcd, urb, mem_flags);
28123    }
28124#line 1343
28125    return (tmp___0);
28126  }
28127  }
28128}
28129}
28130#line 1346 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
28131int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd , struct urb *urb , gfp_t mem_flags ) 
28132{ enum dma_data_direction dir ;
28133  int ret ;
28134  int tmp ;
28135  int tmp___0 ;
28136  int tmp___2 ;
28137  int n ;
28138  int tmp___3 ;
28139  struct scatterlist *sg ;
28140  struct page *tmp___4 ;
28141  int tmp___5 ;
28142  int tmp___6 ;
28143  struct usb_host_endpoint *__cil_tmp15 ;
28144  struct usb_endpoint_descriptor *__cil_tmp16 ;
28145  struct usb_endpoint_descriptor  const  *__cil_tmp17 ;
28146  u8 __cil_tmp18 ;
28147  unsigned int __cil_tmp19 ;
28148  u8 __cil_tmp20 ;
28149  unsigned int __cil_tmp21 ;
28150  struct device *__cil_tmp22 ;
28151  unsigned char *__cil_tmp23 ;
28152  void *__cil_tmp24 ;
28153  enum dma_data_direction __cil_tmp25 ;
28154  struct dma_attrs *__cil_tmp26 ;
28155  struct device *__cil_tmp27 ;
28156  dma_addr_t __cil_tmp28 ;
28157  unsigned int __cil_tmp29 ;
28158  struct hc_driver  const  *__cil_tmp30 ;
28159  int __cil_tmp31 ;
28160  int __cil_tmp32 ;
28161  int __cil_tmp33 ;
28162  struct usb_device *__cil_tmp34 ;
28163  struct usb_bus *__cil_tmp35 ;
28164  dma_addr_t *__cil_tmp36 ;
28165  unsigned char **__cil_tmp37 ;
28166  void **__cil_tmp38 ;
28167  enum dma_data_direction __cil_tmp39 ;
28168  unsigned int __cil_tmp40 ;
28169  u32 __cil_tmp41 ;
28170  unsigned int __cil_tmp42 ;
28171  unsigned int __cil_tmp43 ;
28172  u8 __cil_tmp44 ;
28173  unsigned int __cil_tmp45 ;
28174  int __cil_tmp46 ;
28175  struct device *__cil_tmp47 ;
28176  struct scatterlist *__cil_tmp48 ;
28177  int __cil_tmp49 ;
28178  struct dma_attrs *__cil_tmp50 ;
28179  unsigned int __cil_tmp51 ;
28180  int __cil_tmp52 ;
28181  unsigned int __cil_tmp53 ;
28182  struct scatterlist *__cil_tmp54 ;
28183  unsigned long __cil_tmp55 ;
28184  struct scatterlist *__cil_tmp56 ;
28185  unsigned long __cil_tmp57 ;
28186  struct device *__cil_tmp58 ;
28187  unsigned int __cil_tmp59 ;
28188  size_t __cil_tmp60 ;
28189  u32 __cil_tmp61 ;
28190  size_t __cil_tmp62 ;
28191  struct device *__cil_tmp63 ;
28192  dma_addr_t __cil_tmp64 ;
28193  unsigned int __cil_tmp65 ;
28194  struct device *__cil_tmp66 ;
28195  void *__cil_tmp67 ;
28196  u32 __cil_tmp68 ;
28197  size_t __cil_tmp69 ;
28198  struct dma_attrs *__cil_tmp70 ;
28199  struct device *__cil_tmp71 ;
28200  dma_addr_t __cil_tmp72 ;
28201  unsigned int __cil_tmp73 ;
28202  struct hc_driver  const  *__cil_tmp74 ;
28203  int __cil_tmp75 ;
28204  int __cil_tmp76 ;
28205  int __cil_tmp77 ;
28206  struct usb_device *__cil_tmp78 ;
28207  struct usb_bus *__cil_tmp79 ;
28208  dma_addr_t *__cil_tmp80 ;
28209  void **__cil_tmp81 ;
28210  u32 __cil_tmp82 ;
28211  size_t __cil_tmp83 ;
28212  unsigned int __cil_tmp84 ;
28213  unsigned int __cil_tmp85 ;
28214  unsigned int __cil_tmp86 ;
28215
28216  {
28217  {
28218#line 1350
28219  ret = 0;
28220#line 1358
28221  __cil_tmp15 = urb->ep;
28222#line 1358
28223  __cil_tmp16 = & __cil_tmp15->desc;
28224#line 1358
28225  __cil_tmp17 = (struct usb_endpoint_descriptor  const  *)__cil_tmp16;
28226#line 1358
28227  tmp___0 = usb_endpoint_xfer_control(__cil_tmp17);
28228  }
28229#line 1358
28230  if (tmp___0 != 0) {
28231    {
28232#line 1359
28233    __cil_tmp18 = hcd->self.uses_pio_for_control;
28234#line 1359
28235    __cil_tmp19 = (unsigned int )__cil_tmp18;
28236#line 1359
28237    if (__cil_tmp19 != 0U) {
28238#line 1360
28239      return (ret);
28240    } else {
28241
28242    }
28243    }
28244    {
28245#line 1361
28246    __cil_tmp20 = hcd->self.uses_dma;
28247#line 1361
28248    __cil_tmp21 = (unsigned int )__cil_tmp20;
28249#line 1361
28250    if (__cil_tmp21 != 0U) {
28251      {
28252#line 1362
28253      __cil_tmp22 = hcd->self.controller;
28254#line 1362
28255      __cil_tmp23 = urb->setup_packet;
28256#line 1362
28257      __cil_tmp24 = (void *)__cil_tmp23;
28258#line 1362
28259      __cil_tmp25 = (enum dma_data_direction )1;
28260#line 1362
28261      __cil_tmp26 = (struct dma_attrs *)0;
28262#line 1362
28263      urb->setup_dma = dma_map_single_attrs(__cil_tmp22, __cil_tmp24, 8UL, __cil_tmp25,
28264                                            __cil_tmp26);
28265#line 1367
28266      __cil_tmp27 = hcd->self.controller;
28267#line 1367
28268      __cil_tmp28 = urb->setup_dma;
28269#line 1367
28270      tmp = dma_mapping_error(__cil_tmp27, __cil_tmp28);
28271      }
28272#line 1367
28273      if (tmp != 0) {
28274#line 1369
28275        return (-11);
28276      } else {
28277
28278      }
28279#line 1370
28280      __cil_tmp29 = urb->transfer_flags;
28281#line 1370
28282      urb->transfer_flags = __cil_tmp29 | 1048576U;
28283    } else {
28284      {
28285#line 1371
28286      __cil_tmp30 = hcd->driver;
28287#line 1371
28288      __cil_tmp31 = __cil_tmp30->flags;
28289#line 1371
28290      __cil_tmp32 = (int )__cil_tmp31;
28291#line 1371
28292      __cil_tmp33 = __cil_tmp32 & 2;
28293#line 1371
28294      if (__cil_tmp33 != 0) {
28295        {
28296#line 1372
28297        __cil_tmp34 = urb->dev;
28298#line 1372
28299        __cil_tmp35 = __cil_tmp34->bus;
28300#line 1372
28301        __cil_tmp36 = & urb->setup_dma;
28302#line 1372
28303        __cil_tmp37 = & urb->setup_packet;
28304#line 1372
28305        __cil_tmp38 = (void **)__cil_tmp37;
28306#line 1372
28307        __cil_tmp39 = (enum dma_data_direction )1;
28308#line 1372
28309        ret = hcd_alloc_coherent(__cil_tmp35, mem_flags, __cil_tmp36, __cil_tmp38,
28310                                 8UL, __cil_tmp39);
28311        }
28312#line 1378
28313        if (ret != 0) {
28314#line 1379
28315          return (ret);
28316        } else {
28317
28318        }
28319#line 1380
28320        __cil_tmp40 = urb->transfer_flags;
28321#line 1380
28322        urb->transfer_flags = __cil_tmp40 | 2097152U;
28323      } else {
28324
28325      }
28326      }
28327    }
28328    }
28329  } else {
28330
28331  }
28332  {
28333#line 1384
28334  tmp___2 = usb_urb_dir_in(urb);
28335  }
28336#line 1384
28337  if (tmp___2 != 0) {
28338#line 1384
28339    dir = (enum dma_data_direction )2;
28340  } else {
28341#line 1384
28342    dir = (enum dma_data_direction )1;
28343  }
28344  {
28345#line 1385
28346  __cil_tmp41 = urb->transfer_buffer_length;
28347#line 1385
28348  if (__cil_tmp41 != 0U) {
28349    {
28350#line 1385
28351    __cil_tmp42 = urb->transfer_flags;
28352#line 1385
28353    __cil_tmp43 = __cil_tmp42 & 4U;
28354#line 1385
28355    if (__cil_tmp43 == 0U) {
28356      {
28357#line 1387
28358      __cil_tmp44 = hcd->self.uses_dma;
28359#line 1387
28360      __cil_tmp45 = (unsigned int )__cil_tmp44;
28361#line 1387
28362      if (__cil_tmp45 != 0U) {
28363        {
28364#line 1388
28365        __cil_tmp46 = urb->num_sgs;
28366#line 1388
28367        if (__cil_tmp46 != 0) {
28368          {
28369#line 1389
28370          __cil_tmp47 = hcd->self.controller;
28371#line 1389
28372          __cil_tmp48 = urb->sg;
28373#line 1389
28374          __cil_tmp49 = urb->num_sgs;
28375#line 1389
28376          __cil_tmp50 = (struct dma_attrs *)0;
28377#line 1389
28378          tmp___3 = dma_map_sg_attrs(__cil_tmp47, __cil_tmp48, __cil_tmp49, dir, __cil_tmp50);
28379#line 1389
28380          n = tmp___3;
28381          }
28382#line 1394
28383          if (n <= 0) {
28384#line 1395
28385            ret = -11;
28386          } else {
28387#line 1397
28388            __cil_tmp51 = urb->transfer_flags;
28389#line 1397
28390            urb->transfer_flags = __cil_tmp51 | 262144U;
28391          }
28392          {
28393#line 1398
28394          __cil_tmp52 = urb->num_sgs;
28395#line 1398
28396          if (__cil_tmp52 != n) {
28397#line 1399
28398            urb->num_sgs = n;
28399#line 1400
28400            __cil_tmp53 = urb->transfer_flags;
28401#line 1400
28402            urb->transfer_flags = __cil_tmp53 | 4194304U;
28403          } else {
28404
28405          }
28406          }
28407        } else {
28408          {
28409#line 1403
28410          __cil_tmp54 = (struct scatterlist *)0;
28411#line 1403
28412          __cil_tmp55 = (unsigned long )__cil_tmp54;
28413#line 1403
28414          __cil_tmp56 = urb->sg;
28415#line 1403
28416          __cil_tmp57 = (unsigned long )__cil_tmp56;
28417#line 1403
28418          if (__cil_tmp57 != __cil_tmp55) {
28419            {
28420#line 1404
28421            sg = urb->sg;
28422#line 1405
28423            tmp___4 = sg_page(sg);
28424#line 1405
28425            __cil_tmp58 = hcd->self.controller;
28426#line 1405
28427            __cil_tmp59 = sg->offset;
28428#line 1405
28429            __cil_tmp60 = (size_t )__cil_tmp59;
28430#line 1405
28431            __cil_tmp61 = urb->transfer_buffer_length;
28432#line 1405
28433            __cil_tmp62 = (size_t )__cil_tmp61;
28434#line 1405
28435            urb->transfer_dma = dma_map_page(__cil_tmp58, tmp___4, __cil_tmp60, __cil_tmp62,
28436                                             dir);
28437#line 1411
28438            __cil_tmp63 = hcd->self.controller;
28439#line 1411
28440            __cil_tmp64 = urb->transfer_dma;
28441#line 1411
28442            tmp___5 = dma_mapping_error(__cil_tmp63, __cil_tmp64);
28443            }
28444#line 1411
28445            if (tmp___5 != 0) {
28446#line 1413
28447              ret = -11;
28448            } else {
28449#line 1415
28450              __cil_tmp65 = urb->transfer_flags;
28451#line 1415
28452              urb->transfer_flags = __cil_tmp65 | 131072U;
28453            }
28454          } else {
28455            {
28456#line 1417
28457            __cil_tmp66 = hcd->self.controller;
28458#line 1417
28459            __cil_tmp67 = urb->transfer_buffer;
28460#line 1417
28461            __cil_tmp68 = urb->transfer_buffer_length;
28462#line 1417
28463            __cil_tmp69 = (size_t )__cil_tmp68;
28464#line 1417
28465            __cil_tmp70 = (struct dma_attrs *)0;
28466#line 1417
28467            urb->transfer_dma = dma_map_single_attrs(__cil_tmp66, __cil_tmp67, __cil_tmp69,
28468                                                     dir, __cil_tmp70);
28469#line 1422
28470            __cil_tmp71 = hcd->self.controller;
28471#line 1422
28472            __cil_tmp72 = urb->transfer_dma;
28473#line 1422
28474            tmp___6 = dma_mapping_error(__cil_tmp71, __cil_tmp72);
28475            }
28476#line 1422
28477            if (tmp___6 != 0) {
28478#line 1424
28479              ret = -11;
28480            } else {
28481#line 1426
28482              __cil_tmp73 = urb->transfer_flags;
28483#line 1426
28484              urb->transfer_flags = __cil_tmp73 | 65536U;
28485            }
28486          }
28487          }
28488        }
28489        }
28490      } else {
28491        {
28492#line 1428
28493        __cil_tmp74 = hcd->driver;
28494#line 1428
28495        __cil_tmp75 = __cil_tmp74->flags;
28496#line 1428
28497        __cil_tmp76 = (int )__cil_tmp75;
28498#line 1428
28499        __cil_tmp77 = __cil_tmp76 & 2;
28500#line 1428
28501        if (__cil_tmp77 != 0) {
28502          {
28503#line 1429
28504          __cil_tmp78 = urb->dev;
28505#line 1429
28506          __cil_tmp79 = __cil_tmp78->bus;
28507#line 1429
28508          __cil_tmp80 = & urb->transfer_dma;
28509#line 1429
28510          __cil_tmp81 = & urb->transfer_buffer;
28511#line 1429
28512          __cil_tmp82 = urb->transfer_buffer_length;
28513#line 1429
28514          __cil_tmp83 = (size_t )__cil_tmp82;
28515#line 1429
28516          ret = hcd_alloc_coherent(__cil_tmp79, mem_flags, __cil_tmp80, __cil_tmp81,
28517                                   __cil_tmp83, dir);
28518          }
28519#line 1435
28520          if (ret == 0) {
28521#line 1436
28522            __cil_tmp84 = urb->transfer_flags;
28523#line 1436
28524            urb->transfer_flags = __cil_tmp84 | 524288U;
28525          } else {
28526
28527          }
28528        } else {
28529
28530        }
28531        }
28532      }
28533      }
28534#line 1438
28535      if (ret != 0) {
28536        {
28537#line 1438
28538        __cil_tmp85 = urb->transfer_flags;
28539#line 1438
28540        __cil_tmp86 = __cil_tmp85 & 3145728U;
28541#line 1438
28542        if (__cil_tmp86 != 0U) {
28543          {
28544#line 1440
28545          usb_hcd_unmap_urb_for_dma(hcd, urb);
28546          }
28547        } else {
28548
28549        }
28550        }
28551      } else {
28552
28553      }
28554    } else {
28555
28556    }
28557    }
28558  } else {
28559
28560  }
28561  }
28562#line 1442
28563  return (ret);
28564}
28565}
28566#line 1453 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
28567int usb_hcd_submit_urb(struct urb *urb , gfp_t mem_flags ) 
28568{ int status ;
28569  struct usb_hcd *hcd ;
28570  struct usb_hcd *tmp ;
28571  long tmp___0 ;
28572  long tmp___1 ;
28573  int tmp___2 ;
28574  int tmp___3 ;
28575  long tmp___4 ;
28576  struct usb_device *__cil_tmp11 ;
28577  struct usb_bus *__cil_tmp12 ;
28578  atomic_t *__cil_tmp13 ;
28579  struct usb_device *__cil_tmp14 ;
28580  atomic_t *__cil_tmp15 ;
28581  struct usb_bus *__cil_tmp16 ;
28582  struct usb_device *__cil_tmp17 ;
28583  int __cil_tmp18 ;
28584  long __cil_tmp19 ;
28585  struct hc_driver  const  *__cil_tmp20 ;
28586  int (*__cil_tmp21)(struct usb_hcd * , struct urb * , gfp_t  ) ;
28587  int __cil_tmp22 ;
28588  long __cil_tmp23 ;
28589  int __cil_tmp24 ;
28590  long __cil_tmp25 ;
28591  struct usb_bus *__cil_tmp26 ;
28592  struct list_head *__cil_tmp27 ;
28593  atomic_t *__cil_tmp28 ;
28594  struct usb_device *__cil_tmp29 ;
28595  atomic_t *__cil_tmp30 ;
28596  atomic_t *__cil_tmp31 ;
28597  atomic_t const   *__cil_tmp32 ;
28598  void *__cil_tmp33 ;
28599
28600  {
28601  {
28602#line 1456
28603  __cil_tmp11 = urb->dev;
28604#line 1456
28605  __cil_tmp12 = __cil_tmp11->bus;
28606#line 1456
28607  tmp = bus_to_hcd(__cil_tmp12);
28608#line 1456
28609  hcd = tmp;
28610#line 1462
28611  usb_get_urb(urb);
28612#line 1463
28613  __cil_tmp13 = & urb->use_count;
28614#line 1463
28615  atomic_inc(__cil_tmp13);
28616#line 1464
28617  __cil_tmp14 = urb->dev;
28618#line 1464
28619  __cil_tmp15 = & __cil_tmp14->urbnum;
28620#line 1464
28621  atomic_inc(__cil_tmp15);
28622#line 1465
28623  __cil_tmp16 = & hcd->self;
28624#line 1465
28625  usbmon_urb_submit(__cil_tmp16, urb);
28626#line 1475
28627  __cil_tmp17 = urb->dev;
28628#line 1475
28629  tmp___2 = is_root_hub(__cil_tmp17);
28630  }
28631#line 1475
28632  if (tmp___2 != 0) {
28633    {
28634#line 1476
28635    status = rh_urb_enqueue(hcd, urb);
28636    }
28637  } else {
28638    {
28639#line 1478
28640    status = map_urb_for_dma(hcd, urb, mem_flags);
28641#line 1479
28642    __cil_tmp18 = status == 0;
28643#line 1479
28644    __cil_tmp19 = (long )__cil_tmp18;
28645#line 1479
28646    tmp___1 = __builtin_expect(__cil_tmp19, 1L);
28647    }
28648#line 1479
28649    if (tmp___1 != 0L) {
28650      {
28651#line 1480
28652      __cil_tmp20 = hcd->driver;
28653#line 1480
28654      __cil_tmp21 = __cil_tmp20->urb_enqueue;
28655#line 1480
28656      status = (*__cil_tmp21)(hcd, urb, mem_flags);
28657#line 1481
28658      __cil_tmp22 = status != 0;
28659#line 1481
28660      __cil_tmp23 = (long )__cil_tmp22;
28661#line 1481
28662      tmp___0 = __builtin_expect(__cil_tmp23, 0L);
28663      }
28664#line 1481
28665      if (tmp___0 != 0L) {
28666        {
28667#line 1482
28668        unmap_urb_for_dma(hcd, urb);
28669        }
28670      } else {
28671
28672      }
28673    } else {
28674
28675    }
28676  }
28677  {
28678#line 1486
28679  __cil_tmp24 = status != 0;
28680#line 1486
28681  __cil_tmp25 = (long )__cil_tmp24;
28682#line 1486
28683  tmp___4 = __builtin_expect(__cil_tmp25, 0L);
28684  }
28685#line 1486
28686  if (tmp___4 != 0L) {
28687    {
28688#line 1487
28689    __cil_tmp26 = & hcd->self;
28690#line 1487
28691    usbmon_urb_submit_error(__cil_tmp26, urb, status);
28692#line 1488
28693    urb->hcpriv = (void *)0;
28694#line 1489
28695    __cil_tmp27 = & urb->urb_list;
28696#line 1489
28697    INIT_LIST_HEAD(__cil_tmp27);
28698#line 1490
28699    __cil_tmp28 = & urb->use_count;
28700#line 1490
28701    atomic_dec(__cil_tmp28);
28702#line 1491
28703    __cil_tmp29 = urb->dev;
28704#line 1491
28705    __cil_tmp30 = & __cil_tmp29->urbnum;
28706#line 1491
28707    atomic_dec(__cil_tmp30);
28708#line 1492
28709    __cil_tmp31 = & urb->reject;
28710#line 1492
28711    __cil_tmp32 = (atomic_t const   *)__cil_tmp31;
28712#line 1492
28713    tmp___3 = atomic_read(__cil_tmp32);
28714    }
28715#line 1492
28716    if (tmp___3 != 0) {
28717      {
28718#line 1493
28719      __cil_tmp33 = (void *)0;
28720#line 1493
28721      __wake_up(& usb_kill_urb_queue, 3U, 1, __cil_tmp33);
28722      }
28723    } else {
28724
28725    }
28726    {
28727#line 1494
28728    usb_free_urb(urb);
28729    }
28730  } else {
28731
28732  }
28733#line 1496
28734  return (status);
28735}
28736}
28737#line 1506 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
28738static int unlink1(struct usb_hcd *hcd , struct urb *urb , int status ) 
28739{ int value ;
28740  int tmp ;
28741  struct usb_device *__cil_tmp6 ;
28742  struct hc_driver  const  *__cil_tmp7 ;
28743  int (*__cil_tmp8)(struct usb_hcd * , struct urb * , int  ) ;
28744
28745  {
28746  {
28747#line 1510
28748  __cil_tmp6 = urb->dev;
28749#line 1510
28750  tmp = is_root_hub(__cil_tmp6);
28751  }
28752#line 1510
28753  if (tmp != 0) {
28754    {
28755#line 1511
28756    value = usb_rh_urb_dequeue(hcd, urb, status);
28757    }
28758  } else {
28759    {
28760#line 1517
28761    __cil_tmp7 = hcd->driver;
28762#line 1517
28763    __cil_tmp8 = __cil_tmp7->urb_dequeue;
28764#line 1517
28765    value = (*__cil_tmp8)(hcd, urb, status);
28766    }
28767  }
28768#line 1519
28769  return (value);
28770}
28771}
28772#line 1528 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
28773int usb_hcd_unlink_urb(struct urb *urb , int status ) 
28774{ struct usb_hcd *hcd ;
28775  int retval ;
28776  unsigned long flags ;
28777  raw_spinlock_t *tmp ;
28778  int tmp___0 ;
28779  atomic_t *__cil_tmp8 ;
28780  atomic_t const   *__cil_tmp9 ;
28781  struct usb_device *__cil_tmp10 ;
28782  struct usb_device *__cil_tmp11 ;
28783  struct usb_bus *__cil_tmp12 ;
28784  struct usb_device *__cil_tmp13 ;
28785  struct usb_device *__cil_tmp14 ;
28786  struct device *__cil_tmp15 ;
28787  struct device  const  *__cil_tmp16 ;
28788
28789  {
28790  {
28791#line 1531
28792  retval = -43;
28793#line 1539
28794  tmp = spinlock_check(& hcd_urb_unlink_lock);
28795#line 1539
28796  flags = _raw_spin_lock_irqsave(tmp);
28797#line 1540
28798  __cil_tmp8 = & urb->use_count;
28799#line 1540
28800  __cil_tmp9 = (atomic_t const   *)__cil_tmp8;
28801#line 1540
28802  tmp___0 = atomic_read(__cil_tmp9);
28803  }
28804#line 1540
28805  if (tmp___0 > 0) {
28806    {
28807#line 1541
28808    retval = 0;
28809#line 1542
28810    __cil_tmp10 = urb->dev;
28811#line 1542
28812    usb_get_dev(__cil_tmp10);
28813    }
28814  } else {
28815
28816  }
28817  {
28818#line 1544
28819  spin_unlock_irqrestore(& hcd_urb_unlink_lock, flags);
28820  }
28821#line 1545
28822  if (retval == 0) {
28823    {
28824#line 1546
28825    __cil_tmp11 = urb->dev;
28826#line 1546
28827    __cil_tmp12 = __cil_tmp11->bus;
28828#line 1546
28829    hcd = bus_to_hcd(__cil_tmp12);
28830#line 1547
28831    retval = unlink1(hcd, urb, status);
28832#line 1548
28833    __cil_tmp13 = urb->dev;
28834#line 1548
28835    usb_put_dev(__cil_tmp13);
28836    }
28837  } else {
28838
28839  }
28840#line 1551
28841  if (retval == 0) {
28842#line 1552
28843    retval = -115;
28844  } else
28845#line 1553
28846  if (retval != -43) {
28847#line 1553
28848    if (retval != -16) {
28849      {
28850#line 1554
28851      __cil_tmp14 = urb->dev;
28852#line 1554
28853      __cil_tmp15 = & __cil_tmp14->dev;
28854#line 1554
28855      __cil_tmp16 = (struct device  const  *)__cil_tmp15;
28856#line 1554
28857      dev_printk("<7>", __cil_tmp16, "hcd_unlink_urb %p fail %d\n", urb, retval);
28858      }
28859    } else {
28860
28861    }
28862  } else {
28863
28864  }
28865#line 1556
28866  return (retval);
28867}
28868}
28869#line 1578 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
28870void usb_hcd_giveback_urb(struct usb_hcd *hcd , struct urb *urb , int status ) 
28871{ long tmp ;
28872  long tmp___0 ;
28873  int tmp___1 ;
28874  long tmp___2 ;
28875  long tmp___3 ;
28876  int tmp___4 ;
28877  long tmp___5 ;
28878  int __cil_tmp11 ;
28879  int __cil_tmp12 ;
28880  long __cil_tmp13 ;
28881  unsigned int __cil_tmp14 ;
28882  int __cil_tmp15 ;
28883  long __cil_tmp16 ;
28884  long __cil_tmp17 ;
28885  u32 __cil_tmp18 ;
28886  u32 __cil_tmp19 ;
28887  int __cil_tmp20 ;
28888  long __cil_tmp21 ;
28889  int __cil_tmp22 ;
28890  long __cil_tmp23 ;
28891  struct usb_bus *__cil_tmp24 ;
28892  void (*__cil_tmp25)(struct urb * ) ;
28893  atomic_t *__cil_tmp26 ;
28894  atomic_t *__cil_tmp27 ;
28895  atomic_t const   *__cil_tmp28 ;
28896  int __cil_tmp29 ;
28897  long __cil_tmp30 ;
28898  void *__cil_tmp31 ;
28899
28900  {
28901  {
28902#line 1580
28903  urb->hcpriv = (void *)0;
28904#line 1581
28905  __cil_tmp11 = urb->unlinked;
28906#line 1581
28907  __cil_tmp12 = __cil_tmp11 != 0;
28908#line 1581
28909  __cil_tmp13 = (long )__cil_tmp12;
28910#line 1581
28911  tmp___3 = __builtin_expect(__cil_tmp13, 0L);
28912  }
28913#line 1581
28914  if (tmp___3 != 0L) {
28915#line 1582
28916    status = urb->unlinked;
28917  } else {
28918    {
28919#line 1583
28920    __cil_tmp14 = urb->transfer_flags;
28921#line 1583
28922    __cil_tmp15 = (int )__cil_tmp14;
28923#line 1583
28924    __cil_tmp16 = (long )__cil_tmp15;
28925#line 1583
28926    __cil_tmp17 = __cil_tmp16 & 1L;
28927#line 1583
28928    tmp = __builtin_expect(__cil_tmp17, 0L);
28929    }
28930#line 1583
28931    if (tmp != 0L) {
28932      {
28933#line 1583
28934      __cil_tmp18 = urb->transfer_buffer_length;
28935#line 1583
28936      __cil_tmp19 = urb->actual_length;
28937#line 1583
28938      __cil_tmp20 = __cil_tmp19 < __cil_tmp18;
28939#line 1583
28940      __cil_tmp21 = (long )__cil_tmp20;
28941#line 1583
28942      tmp___0 = __builtin_expect(__cil_tmp21, 0L);
28943      }
28944#line 1583
28945      if (tmp___0 != 0L) {
28946#line 1583
28947        tmp___1 = 1;
28948      } else {
28949#line 1583
28950        tmp___1 = 0;
28951      }
28952    } else {
28953#line 1583
28954      tmp___1 = 0;
28955    }
28956#line 1583
28957    if (tmp___1 != 0) {
28958      {
28959#line 1583
28960      __cil_tmp22 = status == 0;
28961#line 1583
28962      __cil_tmp23 = (long )__cil_tmp22;
28963#line 1583
28964      tmp___2 = __builtin_expect(__cil_tmp23, 0L);
28965      }
28966#line 1583
28967      if (tmp___2 != 0L) {
28968#line 1586
28969        status = -121;
28970      } else {
28971
28972      }
28973    } else {
28974
28975    }
28976  }
28977  {
28978#line 1588
28979  unmap_urb_for_dma(hcd, urb);
28980#line 1589
28981  __cil_tmp24 = & hcd->self;
28982#line 1589
28983  usbmon_urb_complete(__cil_tmp24, urb, status);
28984#line 1590
28985  usb_unanchor_urb(urb);
28986#line 1593
28987  urb->status = status;
28988#line 1594
28989  __cil_tmp25 = urb->complete;
28990#line 1594
28991  (*__cil_tmp25)(urb);
28992#line 1595
28993  __cil_tmp26 = & urb->use_count;
28994#line 1595
28995  atomic_dec(__cil_tmp26);
28996#line 1596
28997  __cil_tmp27 = & urb->reject;
28998#line 1596
28999  __cil_tmp28 = (atomic_t const   *)__cil_tmp27;
29000#line 1596
29001  tmp___4 = atomic_read(__cil_tmp28);
29002#line 1596
29003  __cil_tmp29 = tmp___4 != 0;
29004#line 1596
29005  __cil_tmp30 = (long )__cil_tmp29;
29006#line 1596
29007  tmp___5 = __builtin_expect(__cil_tmp30, 0L);
29008  }
29009#line 1596
29010  if (tmp___5 != 0L) {
29011    {
29012#line 1597
29013    __cil_tmp31 = (void *)0;
29014#line 1597
29015    __wake_up(& usb_kill_urb_queue, 3U, 1, __cil_tmp31);
29016    }
29017  } else {
29018
29019  }
29020  {
29021#line 1598
29022  usb_free_urb(urb);
29023  }
29024#line 1599
29025  return;
29026}
29027}
29028#line 1608 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
29029void usb_hcd_flush_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) 
29030{ struct usb_hcd *hcd ;
29031  struct urb *urb ;
29032  struct list_head  const  *__mptr ;
29033  int is_in ;
29034  char *s ;
29035  int tmp ;
29036  char *tmp___0 ;
29037  int tmp___1 ;
29038  struct list_head  const  *__mptr___0 ;
29039  struct list_head  const  *__mptr___1 ;
29040  int tmp___2 ;
29041  int tmp___3 ;
29042  struct usb_host_endpoint *__cil_tmp15 ;
29043  unsigned long __cil_tmp16 ;
29044  unsigned long __cil_tmp17 ;
29045  struct usb_bus *__cil_tmp18 ;
29046  struct list_head *__cil_tmp19 ;
29047  struct urb *__cil_tmp20 ;
29048  int __cil_tmp21 ;
29049  struct usb_endpoint_descriptor *__cil_tmp22 ;
29050  struct usb_endpoint_descriptor  const  *__cil_tmp23 ;
29051  struct usb_endpoint_descriptor *__cil_tmp24 ;
29052  struct usb_endpoint_descriptor  const  *__cil_tmp25 ;
29053  struct device *__cil_tmp26 ;
29054  struct device  const  *__cil_tmp27 ;
29055  struct list_head *__cil_tmp28 ;
29056  struct urb *__cil_tmp29 ;
29057  struct list_head *__cil_tmp30 ;
29058  unsigned long __cil_tmp31 ;
29059  struct list_head *__cil_tmp32 ;
29060  unsigned long __cil_tmp33 ;
29061  struct list_head *__cil_tmp34 ;
29062  struct list_head  const  *__cil_tmp35 ;
29063  struct list_head *__cil_tmp36 ;
29064  struct urb *__cil_tmp37 ;
29065  struct urb *__cil_tmp38 ;
29066  unsigned long __cil_tmp39 ;
29067  unsigned long __cil_tmp40 ;
29068  struct list_head *__cil_tmp41 ;
29069  struct list_head  const  *__cil_tmp42 ;
29070
29071  {
29072  {
29073#line 1614
29074  __cil_tmp15 = (struct usb_host_endpoint *)0;
29075#line 1614
29076  __cil_tmp16 = (unsigned long )__cil_tmp15;
29077#line 1614
29078  __cil_tmp17 = (unsigned long )ep;
29079#line 1614
29080  if (__cil_tmp17 == __cil_tmp16) {
29081#line 1615
29082    return;
29083  } else {
29084
29085  }
29086  }
29087  {
29088#line 1616
29089  __might_sleep("/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p",
29090                1616, 0);
29091#line 1617
29092  __cil_tmp18 = udev->bus;
29093#line 1617
29094  hcd = bus_to_hcd(__cil_tmp18);
29095#line 1620
29096  spin_lock_irq(& hcd_urb_list_lock);
29097  }
29098  rescan: 
29099#line 1622
29100  __cil_tmp19 = ep->urb_list.next;
29101#line 1622
29102  __mptr = (struct list_head  const  *)__cil_tmp19;
29103#line 1622
29104  __cil_tmp20 = (struct urb *)__mptr;
29105#line 1622
29106  urb = __cil_tmp20 + 1152921504606846944UL;
29107#line 1622
29108  goto ldv_28029;
29109  ldv_28028: ;
29110  {
29111#line 1625
29112  __cil_tmp21 = urb->unlinked;
29113#line 1625
29114  if (__cil_tmp21 != 0) {
29115#line 1626
29116    goto ldv_28020;
29117  } else {
29118
29119  }
29120  }
29121  {
29122#line 1627
29123  usb_get_urb(urb);
29124#line 1628
29125  is_in = usb_urb_dir_in(urb);
29126#line 1629
29127  spin_unlock(& hcd_urb_list_lock);
29128#line 1632
29129  unlink1(hcd, urb, -108);
29130#line 1633
29131  __cil_tmp22 = & ep->desc;
29132#line 1633
29133  __cil_tmp23 = (struct usb_endpoint_descriptor  const  *)__cil_tmp22;
29134#line 1633
29135  tmp = usb_endpoint_type(__cil_tmp23);
29136  }
29137#line 1633
29138  if (tmp == 0) {
29139#line 1633
29140    goto case_0;
29141  } else
29142#line 1633
29143  if (tmp == 2) {
29144#line 1633
29145    goto case_2;
29146  } else
29147#line 1633
29148  if (tmp == 3) {
29149#line 1633
29150    goto case_3;
29151  } else {
29152#line 1633
29153    goto switch_default;
29154#line 1633
29155    if (0) {
29156      case_0: 
29157#line 1633
29158      s = (char *)"";
29159#line 1633
29160      goto ldv_28023;
29161      case_2: 
29162#line 1633
29163      s = (char *)"-bulk";
29164#line 1633
29165      goto ldv_28023;
29166      case_3: 
29167#line 1633
29168      s = (char *)"-intr";
29169#line 1633
29170      goto ldv_28023;
29171      switch_default: 
29172#line 1633
29173      s = (char *)"-iso";
29174#line 1633
29175      goto ldv_28023;
29176    } else {
29177
29178    }
29179  }
29180  ldv_28023: ;
29181#line 1633
29182  if (is_in != 0) {
29183#line 1633
29184    tmp___0 = (char *)"in";
29185  } else {
29186#line 1633
29187    tmp___0 = (char *)"out";
29188  }
29189  {
29190#line 1633
29191  __cil_tmp24 = & ep->desc;
29192#line 1633
29193  __cil_tmp25 = (struct usb_endpoint_descriptor  const  *)__cil_tmp24;
29194#line 1633
29195  tmp___1 = usb_endpoint_num(__cil_tmp25);
29196#line 1633
29197  __cil_tmp26 = hcd->self.controller;
29198#line 1633
29199  __cil_tmp27 = (struct device  const  *)__cil_tmp26;
29200#line 1633
29201  dev_printk("<7>", __cil_tmp27, "shutdown urb %p ep%d%s%s\n", urb, tmp___1, tmp___0,
29202             s);
29203#line 1651
29204  usb_free_urb(urb);
29205#line 1654
29206  spin_lock(& hcd_urb_list_lock);
29207  }
29208#line 1655
29209  goto rescan;
29210  ldv_28020: 
29211#line 1622
29212  __cil_tmp28 = urb->urb_list.next;
29213#line 1622
29214  __mptr___0 = (struct list_head  const  *)__cil_tmp28;
29215#line 1622
29216  __cil_tmp29 = (struct urb *)__mptr___0;
29217#line 1622
29218  urb = __cil_tmp29 + 1152921504606846944UL;
29219  ldv_28029: ;
29220  {
29221#line 1622
29222  __cil_tmp30 = & ep->urb_list;
29223#line 1622
29224  __cil_tmp31 = (unsigned long )__cil_tmp30;
29225#line 1622
29226  __cil_tmp32 = & urb->urb_list;
29227#line 1622
29228  __cil_tmp33 = (unsigned long )__cil_tmp32;
29229#line 1622
29230  if (__cil_tmp33 != __cil_tmp31) {
29231#line 1623
29232    goto ldv_28028;
29233  } else {
29234#line 1625
29235    goto ldv_28030;
29236  }
29237  }
29238  ldv_28030: 
29239  {
29240#line 1657
29241  spin_unlock_irq(& hcd_urb_list_lock);
29242  }
29243#line 1660
29244  goto ldv_28034;
29245  ldv_28033: 
29246  {
29247#line 1661
29248  spin_lock_irq(& hcd_urb_list_lock);
29249#line 1664
29250  urb = (struct urb *)0;
29251#line 1665
29252  __cil_tmp34 = & ep->urb_list;
29253#line 1665
29254  __cil_tmp35 = (struct list_head  const  *)__cil_tmp34;
29255#line 1665
29256  tmp___2 = list_empty(__cil_tmp35);
29257  }
29258#line 1665
29259  if (tmp___2 == 0) {
29260    {
29261#line 1666
29262    __cil_tmp36 = ep->urb_list.prev;
29263#line 1666
29264    __mptr___1 = (struct list_head  const  *)__cil_tmp36;
29265#line 1666
29266    __cil_tmp37 = (struct urb *)__mptr___1;
29267#line 1666
29268    urb = __cil_tmp37 + 1152921504606846944UL;
29269#line 1668
29270    usb_get_urb(urb);
29271    }
29272  } else {
29273
29274  }
29275  {
29276#line 1670
29277  spin_unlock_irq(& hcd_urb_list_lock);
29278  }
29279  {
29280#line 1672
29281  __cil_tmp38 = (struct urb *)0;
29282#line 1672
29283  __cil_tmp39 = (unsigned long )__cil_tmp38;
29284#line 1672
29285  __cil_tmp40 = (unsigned long )urb;
29286#line 1672
29287  if (__cil_tmp40 != __cil_tmp39) {
29288    {
29289#line 1673
29290    usb_kill_urb(urb);
29291#line 1674
29292    usb_free_urb(urb);
29293    }
29294  } else {
29295
29296  }
29297  }
29298  ldv_28034: 
29299  {
29300#line 1660
29301  __cil_tmp41 = & ep->urb_list;
29302#line 1660
29303  __cil_tmp42 = (struct list_head  const  *)__cil_tmp41;
29304#line 1660
29305  tmp___3 = list_empty(__cil_tmp42);
29306  }
29307#line 1660
29308  if (tmp___3 == 0) {
29309#line 1661
29310    goto ldv_28033;
29311  } else {
29312#line 1663
29313    goto ldv_28035;
29314  }
29315  ldv_28035: ;
29316#line 1665
29317  return;
29318}
29319}
29320#line 1700 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
29321int usb_hcd_alloc_bandwidth(struct usb_device *udev , struct usb_host_config *new_config ,
29322                            struct usb_host_interface *cur_alt , struct usb_host_interface *new_alt ) 
29323{ int num_intfs ;
29324  int i ;
29325  int j ;
29326  struct usb_host_interface *alt ;
29327  int ret ;
29328  struct usb_hcd *hcd ;
29329  struct usb_host_endpoint *ep ;
29330  struct usb_host_interface *first_alt ;
29331  int iface_num ;
29332  struct usb_interface *iface ;
29333  struct usb_interface *tmp ;
29334  struct usb_bus *__cil_tmp16 ;
29335  int (*__cil_tmp17)(struct usb_hcd * , struct usb_device * ) ;
29336  unsigned long __cil_tmp18 ;
29337  struct hc_driver  const  *__cil_tmp19 ;
29338  int (*__cil_tmp20)(struct usb_hcd * , struct usb_device * ) ;
29339  unsigned long __cil_tmp21 ;
29340  struct usb_host_config *__cil_tmp22 ;
29341  unsigned long __cil_tmp23 ;
29342  unsigned long __cil_tmp24 ;
29343  struct usb_host_interface *__cil_tmp25 ;
29344  unsigned long __cil_tmp26 ;
29345  unsigned long __cil_tmp27 ;
29346  struct usb_host_endpoint *__cil_tmp28 ;
29347  unsigned long __cil_tmp29 ;
29348  unsigned long __cil_tmp30 ;
29349  struct hc_driver  const  *__cil_tmp31 ;
29350  int (*__cil_tmp32)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29351  struct usb_host_endpoint *__cil_tmp33 ;
29352  unsigned long __cil_tmp34 ;
29353  unsigned long __cil_tmp35 ;
29354  struct hc_driver  const  *__cil_tmp36 ;
29355  int (*__cil_tmp37)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29356  struct hc_driver  const  *__cil_tmp38 ;
29357  int (*__cil_tmp39)(struct usb_hcd * , struct usb_device * ) ;
29358  struct usb_host_config *__cil_tmp40 ;
29359  unsigned long __cil_tmp41 ;
29360  unsigned long __cil_tmp42 ;
29361  __u8 __cil_tmp43 ;
29362  struct usb_host_endpoint *__cil_tmp44 ;
29363  unsigned long __cil_tmp45 ;
29364  unsigned long __cil_tmp46 ;
29365  struct hc_driver  const  *__cil_tmp47 ;
29366  int (*__cil_tmp48)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29367  struct usb_host_endpoint *__cil_tmp49 ;
29368  unsigned long __cil_tmp50 ;
29369  unsigned long __cil_tmp51 ;
29370  struct hc_driver  const  *__cil_tmp52 ;
29371  int (*__cil_tmp53)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29372  struct usb_interface_cache *__cil_tmp54 ;
29373  struct usb_host_interface (*__cil_tmp55)[0U] ;
29374  __u8 __cil_tmp56 ;
29375  unsigned int __cil_tmp57 ;
29376  struct usb_host_interface *__cil_tmp58 ;
29377  unsigned long __cil_tmp59 ;
29378  unsigned long __cil_tmp60 ;
29379  struct hc_driver  const  *__cil_tmp61 ;
29380  int (*__cil_tmp62)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29381  unsigned long __cil_tmp63 ;
29382  struct usb_host_endpoint *__cil_tmp64 ;
29383  struct usb_host_endpoint *__cil_tmp65 ;
29384  __u8 __cil_tmp66 ;
29385  int __cil_tmp67 ;
29386  struct usb_host_interface *__cil_tmp68 ;
29387  unsigned long __cil_tmp69 ;
29388  unsigned long __cil_tmp70 ;
29389  struct usb_host_interface *__cil_tmp71 ;
29390  unsigned long __cil_tmp72 ;
29391  unsigned long __cil_tmp73 ;
29392  struct usb_device  const  *__cil_tmp74 ;
29393  __u8 __cil_tmp75 ;
29394  unsigned int __cil_tmp76 ;
29395  unsigned char *__cil_tmp77 ;
29396  unsigned char *__cil_tmp78 ;
29397  unsigned char __cil_tmp79 ;
29398  unsigned int __cil_tmp80 ;
29399  struct usb_interface  const  *__cil_tmp81 ;
29400  struct usb_host_interface *__cil_tmp82 ;
29401  unsigned long __cil_tmp83 ;
29402  unsigned long __cil_tmp84 ;
29403  struct hc_driver  const  *__cil_tmp85 ;
29404  int (*__cil_tmp86)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29405  unsigned long __cil_tmp87 ;
29406  struct usb_host_endpoint *__cil_tmp88 ;
29407  struct usb_host_endpoint *__cil_tmp89 ;
29408  __u8 __cil_tmp90 ;
29409  int __cil_tmp91 ;
29410  struct hc_driver  const  *__cil_tmp92 ;
29411  int (*__cil_tmp93)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29412  unsigned long __cil_tmp94 ;
29413  struct usb_host_endpoint *__cil_tmp95 ;
29414  struct usb_host_endpoint *__cil_tmp96 ;
29415  __u8 __cil_tmp97 ;
29416  int __cil_tmp98 ;
29417  struct hc_driver  const  *__cil_tmp99 ;
29418  int (*__cil_tmp100)(struct usb_hcd * , struct usb_device * ) ;
29419  struct hc_driver  const  *__cil_tmp101 ;
29420  void (*__cil_tmp102)(struct usb_hcd * , struct usb_device * ) ;
29421
29422  {
29423  {
29424#line 1706
29425  alt = (struct usb_host_interface *)0;
29426#line 1707
29427  ret = 0;
29428#line 1711
29429  __cil_tmp16 = udev->bus;
29430#line 1711
29431  hcd = bus_to_hcd(__cil_tmp16);
29432  }
29433  {
29434#line 1712
29435  __cil_tmp17 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
29436#line 1712
29437  __cil_tmp18 = (unsigned long )__cil_tmp17;
29438#line 1712
29439  __cil_tmp19 = hcd->driver;
29440#line 1712
29441  __cil_tmp20 = __cil_tmp19->check_bandwidth;
29442#line 1712
29443  __cil_tmp21 = (unsigned long )__cil_tmp20;
29444#line 1712
29445  if (__cil_tmp21 == __cil_tmp18) {
29446#line 1713
29447    return (0);
29448  } else {
29449
29450  }
29451  }
29452  {
29453#line 1716
29454  __cil_tmp22 = (struct usb_host_config *)0;
29455#line 1716
29456  __cil_tmp23 = (unsigned long )__cil_tmp22;
29457#line 1716
29458  __cil_tmp24 = (unsigned long )new_config;
29459#line 1716
29460  if (__cil_tmp24 == __cil_tmp23) {
29461    {
29462#line 1716
29463    __cil_tmp25 = (struct usb_host_interface *)0;
29464#line 1716
29465    __cil_tmp26 = (unsigned long )__cil_tmp25;
29466#line 1716
29467    __cil_tmp27 = (unsigned long )cur_alt;
29468#line 1716
29469    if (__cil_tmp27 == __cil_tmp26) {
29470#line 1717
29471      i = 1;
29472#line 1717
29473      goto ldv_28050;
29474      ldv_28049: 
29475#line 1718
29476      ep = udev->ep_out[i];
29477      {
29478#line 1719
29479      __cil_tmp28 = (struct usb_host_endpoint *)0;
29480#line 1719
29481      __cil_tmp29 = (unsigned long )__cil_tmp28;
29482#line 1719
29483      __cil_tmp30 = (unsigned long )ep;
29484#line 1719
29485      if (__cil_tmp30 != __cil_tmp29) {
29486        {
29487#line 1720
29488        __cil_tmp31 = hcd->driver;
29489#line 1720
29490        __cil_tmp32 = __cil_tmp31->drop_endpoint;
29491#line 1720
29492        (*__cil_tmp32)(hcd, udev, ep);
29493        }
29494      } else {
29495
29496      }
29497      }
29498#line 1721
29499      ep = udev->ep_in[i];
29500      {
29501#line 1722
29502      __cil_tmp33 = (struct usb_host_endpoint *)0;
29503#line 1722
29504      __cil_tmp34 = (unsigned long )__cil_tmp33;
29505#line 1722
29506      __cil_tmp35 = (unsigned long )ep;
29507#line 1722
29508      if (__cil_tmp35 != __cil_tmp34) {
29509        {
29510#line 1723
29511        __cil_tmp36 = hcd->driver;
29512#line 1723
29513        __cil_tmp37 = __cil_tmp36->drop_endpoint;
29514#line 1723
29515        (*__cil_tmp37)(hcd, udev, ep);
29516        }
29517      } else {
29518
29519      }
29520      }
29521#line 1717
29522      i = i + 1;
29523      ldv_28050: ;
29524#line 1717
29525      if (i <= 15) {
29526#line 1718
29527        goto ldv_28049;
29528      } else {
29529#line 1720
29530        goto ldv_28051;
29531      }
29532      ldv_28051: 
29533      {
29534#line 1725
29535      __cil_tmp38 = hcd->driver;
29536#line 1725
29537      __cil_tmp39 = __cil_tmp38->check_bandwidth;
29538#line 1725
29539      (*__cil_tmp39)(hcd, udev);
29540      }
29541#line 1726
29542      return (0);
29543    } else {
29544
29545    }
29546    }
29547  } else {
29548
29549  }
29550  }
29551  {
29552#line 1733
29553  __cil_tmp40 = (struct usb_host_config *)0;
29554#line 1733
29555  __cil_tmp41 = (unsigned long )__cil_tmp40;
29556#line 1733
29557  __cil_tmp42 = (unsigned long )new_config;
29558#line 1733
29559  if (__cil_tmp42 != __cil_tmp41) {
29560#line 1734
29561    __cil_tmp43 = new_config->desc.bNumInterfaces;
29562#line 1734
29563    num_intfs = (int )__cil_tmp43;
29564#line 1738
29565    i = 1;
29566#line 1738
29567    goto ldv_28054;
29568    ldv_28053: 
29569#line 1739
29570    ep = udev->ep_out[i];
29571    {
29572#line 1740
29573    __cil_tmp44 = (struct usb_host_endpoint *)0;
29574#line 1740
29575    __cil_tmp45 = (unsigned long )__cil_tmp44;
29576#line 1740
29577    __cil_tmp46 = (unsigned long )ep;
29578#line 1740
29579    if (__cil_tmp46 != __cil_tmp45) {
29580      {
29581#line 1741
29582      __cil_tmp47 = hcd->driver;
29583#line 1741
29584      __cil_tmp48 = __cil_tmp47->drop_endpoint;
29585#line 1741
29586      ret = (*__cil_tmp48)(hcd, udev, ep);
29587      }
29588#line 1742
29589      if (ret < 0) {
29590#line 1743
29591        goto reset;
29592      } else {
29593
29594      }
29595    } else {
29596
29597    }
29598    }
29599#line 1745
29600    ep = udev->ep_in[i];
29601    {
29602#line 1746
29603    __cil_tmp49 = (struct usb_host_endpoint *)0;
29604#line 1746
29605    __cil_tmp50 = (unsigned long )__cil_tmp49;
29606#line 1746
29607    __cil_tmp51 = (unsigned long )ep;
29608#line 1746
29609    if (__cil_tmp51 != __cil_tmp50) {
29610      {
29611#line 1747
29612      __cil_tmp52 = hcd->driver;
29613#line 1747
29614      __cil_tmp53 = __cil_tmp52->drop_endpoint;
29615#line 1747
29616      ret = (*__cil_tmp53)(hcd, udev, ep);
29617      }
29618#line 1748
29619      if (ret < 0) {
29620#line 1749
29621        goto reset;
29622      } else {
29623
29624      }
29625    } else {
29626
29627    }
29628    }
29629#line 1738
29630    i = i + 1;
29631    ldv_28054: ;
29632#line 1738
29633    if (i <= 15) {
29634#line 1739
29635      goto ldv_28053;
29636    } else {
29637#line 1741
29638      goto ldv_28055;
29639    }
29640    ldv_28055: 
29641#line 1752
29642    i = 0;
29643#line 1752
29644    goto ldv_28062;
29645    ldv_28061: 
29646    {
29647#line 1756
29648    __cil_tmp54 = new_config->intf_cache[i];
29649#line 1756
29650    __cil_tmp55 = & __cil_tmp54->altsetting;
29651#line 1756
29652    first_alt = (struct usb_host_interface *)__cil_tmp55;
29653#line 1757
29654    __cil_tmp56 = first_alt->desc.bInterfaceNumber;
29655#line 1757
29656    iface_num = (int )__cil_tmp56;
29657#line 1759
29658    __cil_tmp57 = (unsigned int )iface_num;
29659#line 1759
29660    alt = usb_find_alt_setting(new_config, __cil_tmp57, 0U);
29661    }
29662    {
29663#line 1760
29664    __cil_tmp58 = (struct usb_host_interface *)0;
29665#line 1760
29666    __cil_tmp59 = (unsigned long )__cil_tmp58;
29667#line 1760
29668    __cil_tmp60 = (unsigned long )alt;
29669#line 1760
29670    if (__cil_tmp60 == __cil_tmp59) {
29671#line 1762
29672      alt = first_alt;
29673    } else {
29674
29675    }
29676    }
29677#line 1764
29678    j = 0;
29679#line 1764
29680    goto ldv_28059;
29681    ldv_28058: 
29682    {
29683#line 1765
29684    __cil_tmp61 = hcd->driver;
29685#line 1765
29686    __cil_tmp62 = __cil_tmp61->add_endpoint;
29687#line 1765
29688    __cil_tmp63 = (unsigned long )j;
29689#line 1765
29690    __cil_tmp64 = alt->endpoint;
29691#line 1765
29692    __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
29693#line 1765
29694    ret = (*__cil_tmp62)(hcd, udev, __cil_tmp65);
29695    }
29696#line 1766
29697    if (ret < 0) {
29698#line 1767
29699      goto reset;
29700    } else {
29701
29702    }
29703#line 1764
29704    j = j + 1;
29705    ldv_28059: ;
29706    {
29707#line 1764
29708    __cil_tmp66 = alt->desc.bNumEndpoints;
29709#line 1764
29710    __cil_tmp67 = (int )__cil_tmp66;
29711#line 1764
29712    if (__cil_tmp67 > j) {
29713#line 1765
29714      goto ldv_28058;
29715    } else {
29716#line 1767
29717      goto ldv_28060;
29718    }
29719    }
29720    ldv_28060: 
29721#line 1752
29722    i = i + 1;
29723    ldv_28062: ;
29724#line 1752
29725    if (i < num_intfs) {
29726#line 1753
29727      goto ldv_28061;
29728    } else {
29729#line 1755
29730      goto ldv_28063;
29731    }
29732    ldv_28063: ;
29733  } else {
29734
29735  }
29736  }
29737  {
29738#line 1771
29739  __cil_tmp68 = (struct usb_host_interface *)0;
29740#line 1771
29741  __cil_tmp69 = (unsigned long )__cil_tmp68;
29742#line 1771
29743  __cil_tmp70 = (unsigned long )cur_alt;
29744#line 1771
29745  if (__cil_tmp70 != __cil_tmp69) {
29746    {
29747#line 1771
29748    __cil_tmp71 = (struct usb_host_interface *)0;
29749#line 1771
29750    __cil_tmp72 = (unsigned long )__cil_tmp71;
29751#line 1771
29752    __cil_tmp73 = (unsigned long )new_alt;
29753#line 1771
29754    if (__cil_tmp73 != __cil_tmp72) {
29755      {
29756#line 1772
29757      __cil_tmp74 = (struct usb_device  const  *)udev;
29758#line 1772
29759      __cil_tmp75 = cur_alt->desc.bInterfaceNumber;
29760#line 1772
29761      __cil_tmp76 = (unsigned int )__cil_tmp75;
29762#line 1772
29763      tmp = usb_ifnum_to_if(__cil_tmp74, __cil_tmp76);
29764#line 1772
29765      iface = tmp;
29766      }
29767      {
29768#line 1775
29769      __cil_tmp77 = (unsigned char *)iface;
29770#line 1775
29771      __cil_tmp78 = __cil_tmp77 + 40UL;
29772#line 1775
29773      __cil_tmp79 = *__cil_tmp78;
29774#line 1775
29775      __cil_tmp80 = (unsigned int )__cil_tmp79;
29776#line 1775
29777      if (__cil_tmp80 != 0U) {
29778        {
29779#line 1785
29780        __cil_tmp81 = (struct usb_interface  const  *)iface;
29781#line 1785
29782        cur_alt = usb_altnum_to_altsetting(__cil_tmp81, 0U);
29783        }
29784        {
29785#line 1786
29786        __cil_tmp82 = (struct usb_host_interface *)0;
29787#line 1786
29788        __cil_tmp83 = (unsigned long )__cil_tmp82;
29789#line 1786
29790        __cil_tmp84 = (unsigned long )cur_alt;
29791#line 1786
29792        if (__cil_tmp84 == __cil_tmp83) {
29793#line 1787
29794          cur_alt = iface->altsetting;
29795        } else {
29796
29797        }
29798        }
29799      } else {
29800
29801      }
29802      }
29803#line 1791
29804      i = 0;
29805#line 1791
29806      goto ldv_28066;
29807      ldv_28065: 
29808      {
29809#line 1792
29810      __cil_tmp85 = hcd->driver;
29811#line 1792
29812      __cil_tmp86 = __cil_tmp85->drop_endpoint;
29813#line 1792
29814      __cil_tmp87 = (unsigned long )i;
29815#line 1792
29816      __cil_tmp88 = cur_alt->endpoint;
29817#line 1792
29818      __cil_tmp89 = __cil_tmp88 + __cil_tmp87;
29819#line 1792
29820      ret = (*__cil_tmp86)(hcd, udev, __cil_tmp89);
29821      }
29822#line 1794
29823      if (ret < 0) {
29824#line 1795
29825        goto reset;
29826      } else {
29827
29828      }
29829#line 1791
29830      i = i + 1;
29831      ldv_28066: ;
29832      {
29833#line 1791
29834      __cil_tmp90 = cur_alt->desc.bNumEndpoints;
29835#line 1791
29836      __cil_tmp91 = (int )__cil_tmp90;
29837#line 1791
29838      if (__cil_tmp91 > i) {
29839#line 1792
29840        goto ldv_28065;
29841      } else {
29842#line 1794
29843        goto ldv_28067;
29844      }
29845      }
29846      ldv_28067: 
29847#line 1798
29848      i = 0;
29849#line 1798
29850      goto ldv_28069;
29851      ldv_28068: 
29852      {
29853#line 1799
29854      __cil_tmp92 = hcd->driver;
29855#line 1799
29856      __cil_tmp93 = __cil_tmp92->add_endpoint;
29857#line 1799
29858      __cil_tmp94 = (unsigned long )i;
29859#line 1799
29860      __cil_tmp95 = new_alt->endpoint;
29861#line 1799
29862      __cil_tmp96 = __cil_tmp95 + __cil_tmp94;
29863#line 1799
29864      ret = (*__cil_tmp93)(hcd, udev, __cil_tmp96);
29865      }
29866#line 1801
29867      if (ret < 0) {
29868#line 1802
29869        goto reset;
29870      } else {
29871
29872      }
29873#line 1798
29874      i = i + 1;
29875      ldv_28069: ;
29876      {
29877#line 1798
29878      __cil_tmp97 = new_alt->desc.bNumEndpoints;
29879#line 1798
29880      __cil_tmp98 = (int )__cil_tmp97;
29881#line 1798
29882      if (__cil_tmp98 > i) {
29883#line 1799
29884        goto ldv_28068;
29885      } else {
29886#line 1801
29887        goto ldv_28070;
29888      }
29889      }
29890      ldv_28070: ;
29891    } else {
29892
29893    }
29894    }
29895  } else {
29896
29897  }
29898  }
29899  {
29900#line 1805
29901  __cil_tmp99 = hcd->driver;
29902#line 1805
29903  __cil_tmp100 = __cil_tmp99->check_bandwidth;
29904#line 1805
29905  ret = (*__cil_tmp100)(hcd, udev);
29906  }
29907  reset: ;
29908#line 1807
29909  if (ret < 0) {
29910    {
29911#line 1808
29912    __cil_tmp101 = hcd->driver;
29913#line 1808
29914    __cil_tmp102 = __cil_tmp101->reset_bandwidth;
29915#line 1808
29916    (*__cil_tmp102)(hcd, udev);
29917    }
29918  } else {
29919
29920  }
29921#line 1809
29922  return (ret);
29923}
29924}
29925#line 1820 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
29926void usb_hcd_disable_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) 
29927{ struct usb_hcd *hcd ;
29928  struct usb_bus *__cil_tmp4 ;
29929  void (*__cil_tmp5)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29930  unsigned long __cil_tmp6 ;
29931  struct hc_driver  const  *__cil_tmp7 ;
29932  void (*__cil_tmp8)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29933  unsigned long __cil_tmp9 ;
29934  struct hc_driver  const  *__cil_tmp10 ;
29935  void (*__cil_tmp11)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29936
29937  {
29938  {
29939#line 1825
29940  __might_sleep("/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p",
29941                1825, 0);
29942#line 1826
29943  __cil_tmp4 = udev->bus;
29944#line 1826
29945  hcd = bus_to_hcd(__cil_tmp4);
29946  }
29947  {
29948#line 1827
29949  __cil_tmp5 = (void (* const  )(struct usb_hcd * , struct usb_host_endpoint * ))0;
29950#line 1827
29951  __cil_tmp6 = (unsigned long )__cil_tmp5;
29952#line 1827
29953  __cil_tmp7 = hcd->driver;
29954#line 1827
29955  __cil_tmp8 = __cil_tmp7->endpoint_disable;
29956#line 1827
29957  __cil_tmp9 = (unsigned long )__cil_tmp8;
29958#line 1827
29959  if (__cil_tmp9 != __cil_tmp6) {
29960    {
29961#line 1828
29962    __cil_tmp10 = hcd->driver;
29963#line 1828
29964    __cil_tmp11 = __cil_tmp10->endpoint_disable;
29965#line 1828
29966    (*__cil_tmp11)(hcd, ep);
29967    }
29968  } else {
29969
29970  }
29971  }
29972#line 1829
29973  return;
29974}
29975}
29976#line 1839 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
29977void usb_hcd_reset_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) 
29978{ struct usb_hcd *hcd ;
29979  struct usb_hcd *tmp ;
29980  int epnum ;
29981  int tmp___0 ;
29982  int is_out ;
29983  int tmp___1 ;
29984  int is_control ;
29985  int tmp___2 ;
29986  struct usb_bus *__cil_tmp11 ;
29987  void (*__cil_tmp12)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29988  unsigned long __cil_tmp13 ;
29989  struct hc_driver  const  *__cil_tmp14 ;
29990  void (*__cil_tmp15)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29991  unsigned long __cil_tmp16 ;
29992  struct hc_driver  const  *__cil_tmp17 ;
29993  void (*__cil_tmp18)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29994  struct usb_endpoint_descriptor *__cil_tmp19 ;
29995  struct usb_endpoint_descriptor  const  *__cil_tmp20 ;
29996  struct usb_endpoint_descriptor *__cil_tmp21 ;
29997  struct usb_endpoint_descriptor  const  *__cil_tmp22 ;
29998  struct usb_endpoint_descriptor *__cil_tmp23 ;
29999  struct usb_endpoint_descriptor  const  *__cil_tmp24 ;
30000  int __cil_tmp25 ;
30001  int __cil_tmp26 ;
30002  unsigned int __cil_tmp27 ;
30003  unsigned int __cil_tmp28 ;
30004  int __cil_tmp29 ;
30005  int __cil_tmp30 ;
30006  unsigned int __cil_tmp31 ;
30007  unsigned int __cil_tmp32 ;
30008
30009  {
30010  {
30011#line 1842
30012  __cil_tmp11 = udev->bus;
30013#line 1842
30014  tmp = bus_to_hcd(__cil_tmp11);
30015#line 1842
30016  hcd = tmp;
30017  }
30018  {
30019#line 1844
30020  __cil_tmp12 = (void (* const  )(struct usb_hcd * , struct usb_host_endpoint * ))0;
30021#line 1844
30022  __cil_tmp13 = (unsigned long )__cil_tmp12;
30023#line 1844
30024  __cil_tmp14 = hcd->driver;
30025#line 1844
30026  __cil_tmp15 = __cil_tmp14->endpoint_reset;
30027#line 1844
30028  __cil_tmp16 = (unsigned long )__cil_tmp15;
30029#line 1844
30030  if (__cil_tmp16 != __cil_tmp13) {
30031    {
30032#line 1845
30033    __cil_tmp17 = hcd->driver;
30034#line 1845
30035    __cil_tmp18 = __cil_tmp17->endpoint_reset;
30036#line 1845
30037    (*__cil_tmp18)(hcd, ep);
30038    }
30039  } else {
30040    {
30041#line 1847
30042    __cil_tmp19 = & ep->desc;
30043#line 1847
30044    __cil_tmp20 = (struct usb_endpoint_descriptor  const  *)__cil_tmp19;
30045#line 1847
30046    tmp___0 = usb_endpoint_num(__cil_tmp20);
30047#line 1847
30048    epnum = tmp___0;
30049#line 1848
30050    __cil_tmp21 = & ep->desc;
30051#line 1848
30052    __cil_tmp22 = (struct usb_endpoint_descriptor  const  *)__cil_tmp21;
30053#line 1848
30054    tmp___1 = usb_endpoint_dir_out(__cil_tmp22);
30055#line 1848
30056    is_out = tmp___1;
30057#line 1849
30058    __cil_tmp23 = & ep->desc;
30059#line 1849
30060    __cil_tmp24 = (struct usb_endpoint_descriptor  const  *)__cil_tmp23;
30061#line 1849
30062    tmp___2 = usb_endpoint_xfer_control(__cil_tmp24);
30063#line 1849
30064    is_control = tmp___2;
30065#line 1851
30066    __cil_tmp25 = 1 << epnum;
30067#line 1851
30068    __cil_tmp26 = ~ __cil_tmp25;
30069#line 1851
30070    __cil_tmp27 = (unsigned int )__cil_tmp26;
30071#line 1851
30072    __cil_tmp28 = udev->toggle[is_out];
30073#line 1851
30074    udev->toggle[is_out] = __cil_tmp28 & __cil_tmp27;
30075    }
30076#line 1852
30077    if (is_control != 0) {
30078#line 1853
30079      __cil_tmp29 = 1 << epnum;
30080#line 1853
30081      __cil_tmp30 = ~ __cil_tmp29;
30082#line 1853
30083      __cil_tmp31 = (unsigned int )__cil_tmp30;
30084#line 1853
30085      __cil_tmp32 = udev->toggle[is_out == 0];
30086#line 1853
30087      udev->toggle[is_out == 0] = __cil_tmp32 & __cil_tmp31;
30088    } else {
30089
30090    }
30091  }
30092  }
30093#line 1855
30094  return;
30095}
30096}
30097#line 1869 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
30098int usb_alloc_streams(struct usb_interface *interface , struct usb_host_endpoint **eps ,
30099                      unsigned int num_eps , unsigned int num_streams , gfp_t mem_flags ) 
30100{ struct usb_hcd *hcd ;
30101  struct usb_device *dev ;
30102  int i ;
30103  int tmp ;
30104  int tmp___0 ;
30105  struct usb_bus *__cil_tmp11 ;
30106  int (*__cil_tmp12)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30107                     unsigned int  , unsigned int  , gfp_t  ) ;
30108  unsigned long __cil_tmp13 ;
30109  struct hc_driver  const  *__cil_tmp14 ;
30110  int (*__cil_tmp15)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30111                     unsigned int  , unsigned int  , gfp_t  ) ;
30112  unsigned long __cil_tmp16 ;
30113  int (*__cil_tmp17)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30114                     unsigned int  , gfp_t  ) ;
30115  unsigned long __cil_tmp18 ;
30116  struct hc_driver  const  *__cil_tmp19 ;
30117  int (*__cil_tmp20)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30118                     unsigned int  , gfp_t  ) ;
30119  unsigned long __cil_tmp21 ;
30120  enum usb_device_speed __cil_tmp22 ;
30121  unsigned int __cil_tmp23 ;
30122  unsigned long __cil_tmp24 ;
30123  struct usb_host_endpoint **__cil_tmp25 ;
30124  struct usb_host_endpoint *__cil_tmp26 ;
30125  struct usb_endpoint_descriptor *__cil_tmp27 ;
30126  struct usb_endpoint_descriptor  const  *__cil_tmp28 ;
30127  unsigned int __cil_tmp29 ;
30128  struct hc_driver  const  *__cil_tmp30 ;
30129  int (*__cil_tmp31)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30130                     unsigned int  , unsigned int  , gfp_t  ) ;
30131
30132  {
30133  {
30134#line 1877
30135  dev = interface_to_usbdev(interface);
30136#line 1878
30137  __cil_tmp11 = dev->bus;
30138#line 1878
30139  hcd = bus_to_hcd(__cil_tmp11);
30140  }
30141  {
30142#line 1879
30143  __cil_tmp12 = (int (* const  )(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30144                                 unsigned int  , unsigned int  , gfp_t  ))0;
30145#line 1879
30146  __cil_tmp13 = (unsigned long )__cil_tmp12;
30147#line 1879
30148  __cil_tmp14 = hcd->driver;
30149#line 1879
30150  __cil_tmp15 = __cil_tmp14->alloc_streams;
30151#line 1879
30152  __cil_tmp16 = (unsigned long )__cil_tmp15;
30153#line 1879
30154  if (__cil_tmp16 == __cil_tmp13) {
30155#line 1880
30156    return (-22);
30157  } else {
30158    {
30159#line 1879
30160    __cil_tmp17 = (int (* const  )(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30161                                   unsigned int  , gfp_t  ))0;
30162#line 1879
30163    __cil_tmp18 = (unsigned long )__cil_tmp17;
30164#line 1879
30165    __cil_tmp19 = hcd->driver;
30166#line 1879
30167    __cil_tmp20 = __cil_tmp19->free_streams;
30168#line 1879
30169    __cil_tmp21 = (unsigned long )__cil_tmp20;
30170#line 1879
30171    if (__cil_tmp21 == __cil_tmp18) {
30172#line 1880
30173      return (-22);
30174    } else {
30175
30176    }
30177    }
30178  }
30179  }
30180  {
30181#line 1881
30182  __cil_tmp22 = dev->speed;
30183#line 1881
30184  __cil_tmp23 = (unsigned int )__cil_tmp22;
30185#line 1881
30186  if (__cil_tmp23 != 5U) {
30187#line 1882
30188    return (-22);
30189  } else {
30190
30191  }
30192  }
30193#line 1885
30194  i = 0;
30195#line 1885
30196  goto ldv_28095;
30197  ldv_28094: 
30198  {
30199#line 1886
30200  __cil_tmp24 = (unsigned long )i;
30201#line 1886
30202  __cil_tmp25 = eps + __cil_tmp24;
30203#line 1886
30204  __cil_tmp26 = *__cil_tmp25;
30205#line 1886
30206  __cil_tmp27 = & __cil_tmp26->desc;
30207#line 1886
30208  __cil_tmp28 = (struct usb_endpoint_descriptor  const  *)__cil_tmp27;
30209#line 1886
30210  tmp = usb_endpoint_xfer_bulk(__cil_tmp28);
30211  }
30212#line 1886
30213  if (tmp == 0) {
30214#line 1887
30215    return (-22);
30216  } else {
30217
30218  }
30219#line 1885
30220  i = i + 1;
30221  ldv_28095: ;
30222  {
30223#line 1885
30224  __cil_tmp29 = (unsigned int )i;
30225#line 1885
30226  if (__cil_tmp29 < num_eps) {
30227#line 1886
30228    goto ldv_28094;
30229  } else {
30230#line 1888
30231    goto ldv_28096;
30232  }
30233  }
30234  ldv_28096: 
30235  {
30236#line 1889
30237  __cil_tmp30 = hcd->driver;
30238#line 1889
30239  __cil_tmp31 = __cil_tmp30->alloc_streams;
30240#line 1889
30241  tmp___0 = (*__cil_tmp31)(hcd, dev, eps, num_eps, num_streams, mem_flags);
30242  }
30243#line 1889
30244  return (tmp___0);
30245}
30246}
30247#line 1904 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
30248void usb_free_streams(struct usb_interface *interface , struct usb_host_endpoint **eps ,
30249                      unsigned int num_eps , gfp_t mem_flags ) 
30250{ struct usb_hcd *hcd ;
30251  struct usb_device *dev ;
30252  int i ;
30253  int tmp ;
30254  struct usb_bus *__cil_tmp9 ;
30255  enum usb_device_speed __cil_tmp10 ;
30256  unsigned int __cil_tmp11 ;
30257  struct usb_host_endpoint *__cil_tmp12 ;
30258  unsigned long __cil_tmp13 ;
30259  unsigned long __cil_tmp14 ;
30260  struct usb_host_endpoint **__cil_tmp15 ;
30261  struct usb_host_endpoint *__cil_tmp16 ;
30262  unsigned long __cil_tmp17 ;
30263  unsigned long __cil_tmp18 ;
30264  struct usb_host_endpoint **__cil_tmp19 ;
30265  struct usb_host_endpoint *__cil_tmp20 ;
30266  struct usb_endpoint_descriptor *__cil_tmp21 ;
30267  struct usb_endpoint_descriptor  const  *__cil_tmp22 ;
30268  unsigned int __cil_tmp23 ;
30269  struct hc_driver  const  *__cil_tmp24 ;
30270  int (*__cil_tmp25)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30271                     unsigned int  , gfp_t  ) ;
30272
30273  {
30274  {
30275#line 1912
30276  dev = interface_to_usbdev(interface);
30277#line 1913
30278  __cil_tmp9 = dev->bus;
30279#line 1913
30280  hcd = bus_to_hcd(__cil_tmp9);
30281  }
30282  {
30283#line 1914
30284  __cil_tmp10 = dev->speed;
30285#line 1914
30286  __cil_tmp11 = (unsigned int )__cil_tmp10;
30287#line 1914
30288  if (__cil_tmp11 != 5U) {
30289#line 1915
30290    return;
30291  } else {
30292
30293  }
30294  }
30295#line 1918
30296  i = 0;
30297#line 1918
30298  goto ldv_28117;
30299  ldv_28116: ;
30300  {
30301#line 1919
30302  __cil_tmp12 = (struct usb_host_endpoint *)0;
30303#line 1919
30304  __cil_tmp13 = (unsigned long )__cil_tmp12;
30305#line 1919
30306  __cil_tmp14 = (unsigned long )i;
30307#line 1919
30308  __cil_tmp15 = eps + __cil_tmp14;
30309#line 1919
30310  __cil_tmp16 = *__cil_tmp15;
30311#line 1919
30312  __cil_tmp17 = (unsigned long )__cil_tmp16;
30313#line 1919
30314  if (__cil_tmp17 == __cil_tmp13) {
30315#line 1920
30316    return;
30317  } else {
30318    {
30319#line 1919
30320    __cil_tmp18 = (unsigned long )i;
30321#line 1919
30322    __cil_tmp19 = eps + __cil_tmp18;
30323#line 1919
30324    __cil_tmp20 = *__cil_tmp19;
30325#line 1919
30326    __cil_tmp21 = & __cil_tmp20->desc;
30327#line 1919
30328    __cil_tmp22 = (struct usb_endpoint_descriptor  const  *)__cil_tmp21;
30329#line 1919
30330    tmp = usb_endpoint_xfer_bulk(__cil_tmp22);
30331    }
30332#line 1919
30333    if (tmp == 0) {
30334#line 1920
30335      return;
30336    } else {
30337
30338    }
30339  }
30340  }
30341#line 1918
30342  i = i + 1;
30343  ldv_28117: ;
30344  {
30345#line 1918
30346  __cil_tmp23 = (unsigned int )i;
30347#line 1918
30348  if (__cil_tmp23 < num_eps) {
30349#line 1919
30350    goto ldv_28116;
30351  } else {
30352#line 1921
30353    goto ldv_28118;
30354  }
30355  }
30356  ldv_28118: 
30357  {
30358#line 1922
30359  __cil_tmp24 = hcd->driver;
30360#line 1922
30361  __cil_tmp25 = __cil_tmp24->free_streams;
30362#line 1922
30363  (*__cil_tmp25)(hcd, dev, eps, num_eps, mem_flags);
30364  }
30365#line 1923
30366  return;
30367}
30368}
30369#line 1931 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
30370void usb_hcd_synchronize_unlinks(struct usb_device *udev ) 
30371{ 
30372
30373  {
30374  {
30375#line 1933
30376  spin_lock_irq(& hcd_urb_unlink_lock);
30377#line 1934
30378  spin_unlock_irq(& hcd_urb_unlink_lock);
30379  }
30380#line 1935
30381  return;
30382}
30383}
30384#line 1940 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
30385int usb_hcd_get_frame_number(struct usb_device *udev ) 
30386{ struct usb_hcd *hcd ;
30387  struct usb_hcd *tmp ;
30388  int tmp___0 ;
30389  struct usb_bus *__cil_tmp5 ;
30390  unsigned long __cil_tmp6 ;
30391  unsigned long __cil_tmp7 ;
30392  struct hc_driver  const  *__cil_tmp8 ;
30393  int (*__cil_tmp9)(struct usb_hcd * ) ;
30394
30395  {
30396  {
30397#line 1942
30398  __cil_tmp5 = udev->bus;
30399#line 1942
30400  tmp = bus_to_hcd(__cil_tmp5);
30401#line 1942
30402  hcd = tmp;
30403  }
30404  {
30405#line 1944
30406  __cil_tmp6 = hcd->flags;
30407#line 1944
30408  __cil_tmp7 = __cil_tmp6 & 32UL;
30409#line 1944
30410  if (__cil_tmp7 == 0UL) {
30411#line 1945
30412    return (-108);
30413  } else {
30414
30415  }
30416  }
30417  {
30418#line 1946
30419  __cil_tmp8 = hcd->driver;
30420#line 1946
30421  __cil_tmp9 = __cil_tmp8->get_frame_number;
30422#line 1946
30423  tmp___0 = (*__cil_tmp9)(hcd);
30424  }
30425#line 1946
30426  return (tmp___0);
30427}
30428}
30429#line 1953 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
30430int hcd_bus_suspend(struct usb_device *rhdev , pm_message_t msg ) 
30431{ struct usb_hcd *hcd ;
30432  struct usb_bus  const  *__mptr ;
30433  int status ;
30434  int old_state ;
30435  char *tmp ;
30436  struct usb_bus *__cil_tmp8 ;
30437  int __cil_tmp9 ;
30438  struct device *__cil_tmp10 ;
30439  struct device  const  *__cil_tmp11 ;
30440  char *__cil_tmp12 ;
30441  unsigned long __cil_tmp13 ;
30442  unsigned long __cil_tmp14 ;
30443  struct device *__cil_tmp15 ;
30444  struct device  const  *__cil_tmp16 ;
30445  char *__cil_tmp17 ;
30446  int (*__cil_tmp18)(struct usb_hcd * ) ;
30447  unsigned long __cil_tmp19 ;
30448  struct hc_driver  const  *__cil_tmp20 ;
30449  int (*__cil_tmp21)(struct usb_hcd * ) ;
30450  unsigned long __cil_tmp22 ;
30451  unsigned long *__cil_tmp23 ;
30452  unsigned long volatile   *__cil_tmp24 ;
30453  struct hc_driver  const  *__cil_tmp25 ;
30454  int (*__cil_tmp26)(struct usb_hcd * ) ;
30455  enum usb_device_state __cil_tmp27 ;
30456  unsigned long __cil_tmp28 ;
30457  unsigned long __cil_tmp29 ;
30458  unsigned long *__cil_tmp30 ;
30459  unsigned long volatile   *__cil_tmp31 ;
30460  struct device *__cil_tmp32 ;
30461  struct device  const  *__cil_tmp33 ;
30462  char *__cil_tmp34 ;
30463
30464  {
30465#line 1955
30466  __cil_tmp8 = rhdev->bus;
30467#line 1955
30468  __mptr = (struct usb_bus  const  *)__cil_tmp8;
30469#line 1955
30470  hcd = (struct usb_hcd *)__mptr;
30471#line 1957
30472  old_state = hcd->state;
30473  {
30474#line 1959
30475  __cil_tmp9 = msg.event & 1024;
30476#line 1959
30477  if (__cil_tmp9 != 0) {
30478#line 1959
30479    tmp = (char *)"auto-";
30480  } else {
30481#line 1959
30482    tmp = (char *)"";
30483  }
30484  }
30485  {
30486#line 1959
30487  __cil_tmp10 = & rhdev->dev;
30488#line 1959
30489  __cil_tmp11 = (struct device  const  *)__cil_tmp10;
30490#line 1959
30491  __cil_tmp12 = (char *)"suspend";
30492#line 1959
30493  dev_printk("<7>", __cil_tmp11, "bus %s%s\n", tmp, __cil_tmp12);
30494  }
30495  {
30496#line 1961
30497  __cil_tmp13 = hcd->flags;
30498#line 1961
30499  __cil_tmp14 = __cil_tmp13 & 64UL;
30500#line 1961
30501  if (__cil_tmp14 != 0UL) {
30502    {
30503#line 1962
30504    __cil_tmp15 = & rhdev->dev;
30505#line 1962
30506    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
30507#line 1962
30508    __cil_tmp17 = (char *)"suspend";
30509#line 1962
30510    dev_printk("<7>", __cil_tmp16, "skipped %s of dead bus\n", __cil_tmp17);
30511    }
30512#line 1963
30513    return (0);
30514  } else {
30515
30516  }
30517  }
30518  {
30519#line 1966
30520  __cil_tmp18 = (int (* const  )(struct usb_hcd * ))0;
30521#line 1966
30522  __cil_tmp19 = (unsigned long )__cil_tmp18;
30523#line 1966
30524  __cil_tmp20 = hcd->driver;
30525#line 1966
30526  __cil_tmp21 = __cil_tmp20->bus_suspend;
30527#line 1966
30528  __cil_tmp22 = (unsigned long )__cil_tmp21;
30529#line 1966
30530  if (__cil_tmp22 == __cil_tmp19) {
30531#line 1967
30532    status = -2;
30533  } else {
30534    {
30535#line 1969
30536    __cil_tmp23 = & hcd->flags;
30537#line 1969
30538    __cil_tmp24 = (unsigned long volatile   *)__cil_tmp23;
30539#line 1969
30540    clear_bit(5, __cil_tmp24);
30541#line 1970
30542    hcd->state = 133;
30543#line 1971
30544    __cil_tmp25 = hcd->driver;
30545#line 1971
30546    __cil_tmp26 = __cil_tmp25->bus_suspend;
30547#line 1971
30548    status = (*__cil_tmp26)(hcd);
30549    }
30550  }
30551  }
30552#line 1973
30553  if (status == 0) {
30554    {
30555#line 1974
30556    __cil_tmp27 = (enum usb_device_state )8;
30557#line 1974
30558    usb_set_device_state(rhdev, __cil_tmp27);
30559#line 1975
30560    hcd->state = 4;
30561    }
30562  } else {
30563    {
30564#line 1977
30565    spin_lock_irq(& hcd_root_hub_lock);
30566    }
30567    {
30568#line 1978
30569    __cil_tmp28 = hcd->flags;
30570#line 1978
30571    __cil_tmp29 = __cil_tmp28 & 64UL;
30572#line 1978
30573    if (__cil_tmp29 == 0UL) {
30574      {
30575#line 1979
30576      __cil_tmp30 = & hcd->flags;
30577#line 1979
30578      __cil_tmp31 = (unsigned long volatile   *)__cil_tmp30;
30579#line 1979
30580      set_bit(5U, __cil_tmp31);
30581#line 1980
30582      hcd->state = old_state;
30583      }
30584    } else {
30585
30586    }
30587    }
30588    {
30589#line 1982
30590    spin_unlock_irq(& hcd_root_hub_lock);
30591#line 1983
30592    __cil_tmp32 = & rhdev->dev;
30593#line 1983
30594    __cil_tmp33 = (struct device  const  *)__cil_tmp32;
30595#line 1983
30596    __cil_tmp34 = (char *)"suspend";
30597#line 1983
30598    dev_printk("<7>", __cil_tmp33, "bus %s fail, err %d\n", __cil_tmp34, status);
30599    }
30600  }
30601#line 1986
30602  return (status);
30603}
30604}
30605#line 1989 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
30606int hcd_bus_resume(struct usb_device *rhdev , pm_message_t msg ) 
30607{ struct usb_hcd *hcd ;
30608  struct usb_bus  const  *__mptr ;
30609  int status ;
30610  int old_state ;
30611  char *tmp ;
30612  int tmp___0 ;
30613  struct usb_bus *__cil_tmp9 ;
30614  int __cil_tmp10 ;
30615  struct device *__cil_tmp11 ;
30616  struct device  const  *__cil_tmp12 ;
30617  char *__cil_tmp13 ;
30618  unsigned long __cil_tmp14 ;
30619  unsigned long __cil_tmp15 ;
30620  struct device *__cil_tmp16 ;
30621  struct device  const  *__cil_tmp17 ;
30622  char *__cil_tmp18 ;
30623  int (*__cil_tmp19)(struct usb_hcd * ) ;
30624  unsigned long __cil_tmp20 ;
30625  struct hc_driver  const  *__cil_tmp21 ;
30626  int (*__cil_tmp22)(struct usb_hcd * ) ;
30627  unsigned long __cil_tmp23 ;
30628  unsigned long __cil_tmp24 ;
30629  unsigned long __cil_tmp25 ;
30630  struct hc_driver  const  *__cil_tmp26 ;
30631  int (*__cil_tmp27)(struct usb_hcd * ) ;
30632  unsigned long *__cil_tmp28 ;
30633  unsigned long volatile   *__cil_tmp29 ;
30634  unsigned long __cil_tmp30 ;
30635  unsigned long __cil_tmp31 ;
30636  struct usb_host_config *__cil_tmp32 ;
30637  unsigned long __cil_tmp33 ;
30638  struct usb_host_config *__cil_tmp34 ;
30639  unsigned long __cil_tmp35 ;
30640  enum usb_device_state __cil_tmp36 ;
30641  unsigned long *__cil_tmp37 ;
30642  unsigned long volatile   *__cil_tmp38 ;
30643  struct device *__cil_tmp39 ;
30644  struct device  const  *__cil_tmp40 ;
30645  char *__cil_tmp41 ;
30646
30647  {
30648#line 1991
30649  __cil_tmp9 = rhdev->bus;
30650#line 1991
30651  __mptr = (struct usb_bus  const  *)__cil_tmp9;
30652#line 1991
30653  hcd = (struct usb_hcd *)__mptr;
30654#line 1993
30655  old_state = hcd->state;
30656  {
30657#line 1995
30658  __cil_tmp10 = msg.event & 1024;
30659#line 1995
30660  if (__cil_tmp10 != 0) {
30661#line 1995
30662    tmp = (char *)"auto-";
30663  } else {
30664#line 1995
30665    tmp = (char *)"";
30666  }
30667  }
30668  {
30669#line 1995
30670  __cil_tmp11 = & rhdev->dev;
30671#line 1995
30672  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
30673#line 1995
30674  __cil_tmp13 = (char *)"resume";
30675#line 1995
30676  dev_printk("<7>", __cil_tmp12, "usb %s%s\n", tmp, __cil_tmp13);
30677  }
30678  {
30679#line 1997
30680  __cil_tmp14 = hcd->flags;
30681#line 1997
30682  __cil_tmp15 = __cil_tmp14 & 64UL;
30683#line 1997
30684  if (__cil_tmp15 != 0UL) {
30685    {
30686#line 1998
30687    __cil_tmp16 = & rhdev->dev;
30688#line 1998
30689    __cil_tmp17 = (struct device  const  *)__cil_tmp16;
30690#line 1998
30691    __cil_tmp18 = (char *)"resume";
30692#line 1998
30693    dev_printk("<7>", __cil_tmp17, "skipped %s of dead bus\n", __cil_tmp18);
30694    }
30695#line 1999
30696    return (0);
30697  } else {
30698
30699  }
30700  }
30701  {
30702#line 2001
30703  __cil_tmp19 = (int (* const  )(struct usb_hcd * ))0;
30704#line 2001
30705  __cil_tmp20 = (unsigned long )__cil_tmp19;
30706#line 2001
30707  __cil_tmp21 = hcd->driver;
30708#line 2001
30709  __cil_tmp22 = __cil_tmp21->bus_resume;
30710#line 2001
30711  __cil_tmp23 = (unsigned long )__cil_tmp22;
30712#line 2001
30713  if (__cil_tmp23 == __cil_tmp20) {
30714#line 2002
30715    return (-2);
30716  } else {
30717
30718  }
30719  }
30720  {
30721#line 2003
30722  __cil_tmp24 = hcd->flags;
30723#line 2003
30724  __cil_tmp25 = __cil_tmp24 & 32UL;
30725#line 2003
30726  if (__cil_tmp25 != 0UL) {
30727#line 2004
30728    return (0);
30729  } else {
30730
30731  }
30732  }
30733  {
30734#line 2006
30735  hcd->state = 132;
30736#line 2007
30737  __cil_tmp26 = hcd->driver;
30738#line 2007
30739  __cil_tmp27 = __cil_tmp26->bus_resume;
30740#line 2007
30741  status = (*__cil_tmp27)(hcd);
30742#line 2008
30743  __cil_tmp28 = & hcd->flags;
30744#line 2008
30745  __cil_tmp29 = (unsigned long volatile   *)__cil_tmp28;
30746#line 2008
30747  clear_bit(4, __cil_tmp29);
30748  }
30749#line 2009
30750  if (status == 0) {
30751    {
30752#line 2011
30753    msleep(10U);
30754#line 2012
30755    spin_lock_irq(& hcd_root_hub_lock);
30756    }
30757    {
30758#line 2013
30759    __cil_tmp30 = hcd->flags;
30760#line 2013
30761    __cil_tmp31 = __cil_tmp30 & 64UL;
30762#line 2013
30763    if (__cil_tmp31 == 0UL) {
30764      {
30765#line 2014
30766      __cil_tmp32 = (struct usb_host_config *)0;
30767#line 2014
30768      __cil_tmp33 = (unsigned long )__cil_tmp32;
30769#line 2014
30770      __cil_tmp34 = rhdev->actconfig;
30771#line 2014
30772      __cil_tmp35 = (unsigned long )__cil_tmp34;
30773#line 2014
30774      if (__cil_tmp35 != __cil_tmp33) {
30775#line 2014
30776        tmp___0 = 7;
30777      } else {
30778#line 2014
30779        tmp___0 = 6;
30780      }
30781      }
30782      {
30783#line 2014
30784      __cil_tmp36 = (enum usb_device_state )tmp___0;
30785#line 2014
30786      usb_set_device_state(rhdev, __cil_tmp36);
30787#line 2017
30788      __cil_tmp37 = & hcd->flags;
30789#line 2017
30790      __cil_tmp38 = (unsigned long volatile   *)__cil_tmp37;
30791#line 2017
30792      set_bit(5U, __cil_tmp38);
30793#line 2018
30794      hcd->state = 1;
30795      }
30796    } else {
30797
30798    }
30799    }
30800    {
30801#line 2020
30802    spin_unlock_irq(& hcd_root_hub_lock);
30803    }
30804  } else {
30805    {
30806#line 2022
30807    hcd->state = old_state;
30808#line 2023
30809    __cil_tmp39 = & rhdev->dev;
30810#line 2023
30811    __cil_tmp40 = (struct device  const  *)__cil_tmp39;
30812#line 2023
30813    __cil_tmp41 = (char *)"resume";
30814#line 2023
30815    dev_printk("<7>", __cil_tmp40, "bus %s fail, err %d\n", __cil_tmp41, status);
30816    }
30817#line 2025
30818    if (status != -108) {
30819      {
30820#line 2026
30821      usb_hc_died(hcd);
30822      }
30823    } else {
30824
30825    }
30826  }
30827#line 2028
30828  return (status);
30829}
30830}
30831#line 2036 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
30832static void hcd_resume_work(struct work_struct *work ) 
30833{ struct usb_hcd *hcd ;
30834  struct work_struct  const  *__mptr ;
30835  struct usb_device *udev ;
30836  struct usb_hcd *__cil_tmp5 ;
30837  struct device *__cil_tmp6 ;
30838  struct device *__cil_tmp7 ;
30839
30840  {
30841  {
30842#line 2038
30843  __mptr = (struct work_struct  const  *)work;
30844#line 2038
30845  __cil_tmp5 = (struct usb_hcd *)__mptr;
30846#line 2038
30847  hcd = __cil_tmp5 + 1152921504606846664UL;
30848#line 2039
30849  udev = hcd->self.root_hub;
30850#line 2041
30851  __cil_tmp6 = & udev->dev;
30852#line 2041
30853  device_lock(__cil_tmp6);
30854#line 2042
30855  usb_remote_wakeup(udev);
30856#line 2043
30857  __cil_tmp7 = & udev->dev;
30858#line 2043
30859  device_unlock(__cil_tmp7);
30860  }
30861#line 2044
30862  return;
30863}
30864}
30865#line 2055 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
30866void usb_hcd_resume_root_hub(struct usb_hcd *hcd ) 
30867{ unsigned long flags ;
30868  raw_spinlock_t *tmp ;
30869  unsigned char *__cil_tmp4 ;
30870  unsigned char *__cil_tmp5 ;
30871  unsigned char __cil_tmp6 ;
30872  unsigned int __cil_tmp7 ;
30873  unsigned long *__cil_tmp8 ;
30874  unsigned long volatile   *__cil_tmp9 ;
30875  struct work_struct *__cil_tmp10 ;
30876
30877  {
30878  {
30879#line 2059
30880  tmp = spinlock_check(& hcd_root_hub_lock);
30881#line 2059
30882  flags = _raw_spin_lock_irqsave(tmp);
30883  }
30884  {
30885#line 2060
30886  __cil_tmp4 = (unsigned char *)hcd;
30887#line 2060
30888  __cil_tmp5 = __cil_tmp4 + 408UL;
30889#line 2060
30890  __cil_tmp6 = *__cil_tmp5;
30891#line 2060
30892  __cil_tmp7 = (unsigned int )__cil_tmp6;
30893#line 2060
30894  if (__cil_tmp7 != 0U) {
30895    {
30896#line 2061
30897    __cil_tmp8 = & hcd->flags;
30898#line 2061
30899    __cil_tmp9 = (unsigned long volatile   *)__cil_tmp8;
30900#line 2061
30901    set_bit(4U, __cil_tmp9);
30902#line 2062
30903    __cil_tmp10 = & hcd->wakeup_work;
30904#line 2062
30905    queue_work(pm_wq, __cil_tmp10);
30906    }
30907  } else {
30908
30909  }
30910  }
30911  {
30912#line 2064
30913  spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
30914  }
30915#line 2065
30916  return;
30917}
30918}
30919#line 2085 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
30920int usb_bus_start_enum(struct usb_bus *bus , unsigned int port_num ) 
30921{ struct usb_hcd *hcd ;
30922  int status ;
30923  struct usb_bus  const  *__mptr ;
30924  unsigned long tmp ;
30925  int (*__cil_tmp7)(struct usb_hcd * , unsigned int  ) ;
30926  unsigned long __cil_tmp8 ;
30927  struct hc_driver  const  *__cil_tmp9 ;
30928  int (*__cil_tmp10)(struct usb_hcd * , unsigned int  ) ;
30929  unsigned long __cil_tmp11 ;
30930  struct hc_driver  const  *__cil_tmp12 ;
30931  int (*__cil_tmp13)(struct usb_hcd * , unsigned int  ) ;
30932  unsigned int __cil_tmp14 ;
30933  unsigned int __cil_tmp15 ;
30934  struct timer_list *__cil_tmp16 ;
30935  unsigned long __cil_tmp17 ;
30936  unsigned long __cil_tmp18 ;
30937
30938  {
30939#line 2088
30940  status = -95;
30941#line 2094
30942  __mptr = (struct usb_bus  const  *)bus;
30943#line 2094
30944  hcd = (struct usb_hcd *)__mptr;
30945#line 2095
30946  if (port_num != 0U) {
30947    {
30948#line 2095
30949    __cil_tmp7 = (int (* const  )(struct usb_hcd * , unsigned int  ))0;
30950#line 2095
30951    __cil_tmp8 = (unsigned long )__cil_tmp7;
30952#line 2095
30953    __cil_tmp9 = hcd->driver;
30954#line 2095
30955    __cil_tmp10 = __cil_tmp9->start_port_reset;
30956#line 2095
30957    __cil_tmp11 = (unsigned long )__cil_tmp10;
30958#line 2095
30959    if (__cil_tmp11 != __cil_tmp8) {
30960      {
30961#line 2096
30962      __cil_tmp12 = hcd->driver;
30963#line 2096
30964      __cil_tmp13 = __cil_tmp12->start_port_reset;
30965#line 2096
30966      status = (*__cil_tmp13)(hcd, port_num);
30967      }
30968    } else {
30969
30970    }
30971    }
30972  } else {
30973
30974  }
30975#line 2101
30976  if (status == 0) {
30977    {
30978#line 2102
30979    __cil_tmp14 = (unsigned int const   )10U;
30980#line 2102
30981    __cil_tmp15 = (unsigned int )__cil_tmp14;
30982#line 2102
30983    tmp = msecs_to_jiffies(__cil_tmp15);
30984#line 2102
30985    __cil_tmp16 = & hcd->rh_timer;
30986#line 2102
30987    __cil_tmp17 = (unsigned long )jiffies;
30988#line 2102
30989    __cil_tmp18 = tmp + __cil_tmp17;
30990#line 2102
30991    mod_timer(__cil_tmp16, __cil_tmp18);
30992    }
30993  } else {
30994
30995  }
30996#line 2103
30997  return (status);
30998}
30999}
31000#line 2119 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31001irqreturn_t usb_hcd_irq(int irq , void *__hcd ) 
31002{ struct usb_hcd *hcd ;
31003  unsigned long flags ;
31004  irqreturn_t rc ;
31005  irqreturn_t tmp ;
31006  long tmp___0 ;
31007  long tmp___1 ;
31008  int tmp___2 ;
31009  unsigned long __cil_tmp10 ;
31010  unsigned long __cil_tmp11 ;
31011  int __cil_tmp12 ;
31012  long __cil_tmp13 ;
31013  unsigned long __cil_tmp14 ;
31014  unsigned long __cil_tmp15 ;
31015  int __cil_tmp16 ;
31016  long __cil_tmp17 ;
31017  struct hc_driver  const  *__cil_tmp18 ;
31018  irqreturn_t (*__cil_tmp19)(struct usb_hcd * ) ;
31019  unsigned int __cil_tmp20 ;
31020  unsigned long *__cil_tmp21 ;
31021  unsigned long volatile   *__cil_tmp22 ;
31022  struct usb_hcd *__cil_tmp23 ;
31023  unsigned long __cil_tmp24 ;
31024  struct usb_hcd *__cil_tmp25 ;
31025  unsigned long __cil_tmp26 ;
31026  struct usb_hcd *__cil_tmp27 ;
31027  unsigned long *__cil_tmp28 ;
31028  unsigned long volatile   *__cil_tmp29 ;
31029
31030  {
31031  {
31032#line 2121
31033  hcd = (struct usb_hcd *)__hcd;
31034#line 2129
31035  flags = arch_local_irq_save();
31036#line 2129
31037  trace_hardirqs_off();
31038#line 2131
31039  __cil_tmp10 = hcd->flags;
31040#line 2131
31041  __cil_tmp11 = __cil_tmp10 & 64UL;
31042#line 2131
31043  __cil_tmp12 = __cil_tmp11 != 0UL;
31044#line 2131
31045  __cil_tmp13 = (long )__cil_tmp12;
31046#line 2131
31047  tmp___0 = __builtin_expect(__cil_tmp13, 0L);
31048  }
31049#line 2131
31050  if (tmp___0 != 0L) {
31051#line 2132
31052    rc = (irqreturn_t )0;
31053  } else {
31054    {
31055#line 2131
31056    __cil_tmp14 = hcd->flags;
31057#line 2131
31058    __cil_tmp15 = __cil_tmp14 & 1UL;
31059#line 2131
31060    __cil_tmp16 = __cil_tmp15 == 0UL;
31061#line 2131
31062    __cil_tmp17 = (long )__cil_tmp16;
31063#line 2131
31064    tmp___1 = __builtin_expect(__cil_tmp17, 0L);
31065    }
31066#line 2131
31067    if (tmp___1 != 0L) {
31068#line 2132
31069      rc = (irqreturn_t )0;
31070    } else {
31071      {
31072#line 2133
31073      __cil_tmp18 = hcd->driver;
31074#line 2133
31075      __cil_tmp19 = __cil_tmp18->irq;
31076#line 2133
31077      tmp = (*__cil_tmp19)(hcd);
31078      }
31079      {
31080#line 2133
31081      __cil_tmp20 = (unsigned int )tmp;
31082#line 2133
31083      if (__cil_tmp20 == 0U) {
31084#line 2134
31085        rc = (irqreturn_t )0;
31086      } else {
31087        {
31088#line 2136
31089        __cil_tmp21 = & hcd->flags;
31090#line 2136
31091        __cil_tmp22 = (unsigned long volatile   *)__cil_tmp21;
31092#line 2136
31093        set_bit(1U, __cil_tmp22);
31094        }
31095        {
31096#line 2137
31097        __cil_tmp23 = (struct usb_hcd *)0;
31098#line 2137
31099        __cil_tmp24 = (unsigned long )__cil_tmp23;
31100#line 2137
31101        __cil_tmp25 = hcd->shared_hcd;
31102#line 2137
31103        __cil_tmp26 = (unsigned long )__cil_tmp25;
31104#line 2137
31105        if (__cil_tmp26 != __cil_tmp24) {
31106          {
31107#line 2138
31108          __cil_tmp27 = hcd->shared_hcd;
31109#line 2138
31110          __cil_tmp28 = & __cil_tmp27->flags;
31111#line 2138
31112          __cil_tmp29 = (unsigned long volatile   *)__cil_tmp28;
31113#line 2138
31114          set_bit(1U, __cil_tmp29);
31115          }
31116        } else {
31117
31118        }
31119        }
31120#line 2139
31121        rc = (irqreturn_t )1;
31122      }
31123      }
31124    }
31125  }
31126  {
31127#line 2142
31128  tmp___2 = arch_irqs_disabled_flags(flags);
31129  }
31130#line 2142
31131  if (tmp___2 != 0) {
31132    {
31133#line 2142
31134    arch_local_irq_restore(flags);
31135#line 2142
31136    trace_hardirqs_off();
31137    }
31138  } else {
31139    {
31140#line 2142
31141    trace_hardirqs_on();
31142#line 2142
31143    arch_local_irq_restore(flags);
31144    }
31145  }
31146#line 2143
31147  return (rc);
31148}
31149}
31150#line 2159 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31151void usb_hc_died(struct usb_hcd *hcd ) 
31152{ unsigned long flags ;
31153  raw_spinlock_t *tmp ;
31154  int tmp___0 ;
31155  struct device *__cil_tmp5 ;
31156  struct device  const  *__cil_tmp6 ;
31157  unsigned long *__cil_tmp7 ;
31158  unsigned long volatile   *__cil_tmp8 ;
31159  unsigned long *__cil_tmp9 ;
31160  unsigned long volatile   *__cil_tmp10 ;
31161  unsigned char *__cil_tmp11 ;
31162  unsigned char *__cil_tmp12 ;
31163  unsigned char __cil_tmp13 ;
31164  unsigned int __cil_tmp14 ;
31165  unsigned long *__cil_tmp15 ;
31166  unsigned long volatile   *__cil_tmp16 ;
31167  struct usb_device *__cil_tmp17 ;
31168  enum usb_device_state __cil_tmp18 ;
31169  struct usb_device *__cil_tmp19 ;
31170  struct usb_hcd *__cil_tmp20 ;
31171  unsigned long __cil_tmp21 ;
31172  struct usb_hcd *__cil_tmp22 ;
31173  unsigned long __cil_tmp23 ;
31174  unsigned char *__cil_tmp24 ;
31175  unsigned char *__cil_tmp25 ;
31176  unsigned char __cil_tmp26 ;
31177  unsigned int __cil_tmp27 ;
31178  unsigned long *__cil_tmp28 ;
31179  unsigned long volatile   *__cil_tmp29 ;
31180  struct usb_device *__cil_tmp30 ;
31181  enum usb_device_state __cil_tmp31 ;
31182  struct usb_device *__cil_tmp32 ;
31183
31184  {
31185  {
31186#line 2163
31187  __cil_tmp5 = hcd->self.controller;
31188#line 2163
31189  __cil_tmp6 = (struct device  const  *)__cil_tmp5;
31190#line 2163
31191  dev_err(__cil_tmp6, "HC died; cleaning up\n");
31192#line 2165
31193  tmp = spinlock_check(& hcd_root_hub_lock);
31194#line 2165
31195  flags = _raw_spin_lock_irqsave(tmp);
31196#line 2166
31197  __cil_tmp7 = & hcd->flags;
31198#line 2166
31199  __cil_tmp8 = (unsigned long volatile   *)__cil_tmp7;
31200#line 2166
31201  clear_bit(5, __cil_tmp8);
31202#line 2167
31203  __cil_tmp9 = & hcd->flags;
31204#line 2167
31205  __cil_tmp10 = (unsigned long volatile   *)__cil_tmp9;
31206#line 2167
31207  set_bit(6U, __cil_tmp10);
31208  }
31209  {
31210#line 2168
31211  __cil_tmp11 = (unsigned char *)hcd;
31212#line 2168
31213  __cil_tmp12 = __cil_tmp11 + 408UL;
31214#line 2168
31215  __cil_tmp13 = *__cil_tmp12;
31216#line 2168
31217  __cil_tmp14 = (unsigned int )__cil_tmp13;
31218#line 2168
31219  if (__cil_tmp14 != 0U) {
31220    {
31221#line 2169
31222    __cil_tmp15 = & hcd->flags;
31223#line 2169
31224    __cil_tmp16 = (unsigned long volatile   *)__cil_tmp15;
31225#line 2169
31226    clear_bit(2, __cil_tmp16);
31227#line 2172
31228    __cil_tmp17 = hcd->self.root_hub;
31229#line 2172
31230    __cil_tmp18 = (enum usb_device_state )0;
31231#line 2172
31232    usb_set_device_state(__cil_tmp17, __cil_tmp18);
31233#line 2174
31234    __cil_tmp19 = hcd->self.root_hub;
31235#line 2174
31236    usb_kick_khubd(__cil_tmp19);
31237    }
31238  } else {
31239
31240  }
31241  }
31242  {
31243#line 2176
31244  tmp___0 = usb_hcd_is_primary_hcd(hcd);
31245  }
31246#line 2176
31247  if (tmp___0 != 0) {
31248    {
31249#line 2176
31250    __cil_tmp20 = (struct usb_hcd *)0;
31251#line 2176
31252    __cil_tmp21 = (unsigned long )__cil_tmp20;
31253#line 2176
31254    __cil_tmp22 = hcd->shared_hcd;
31255#line 2176
31256    __cil_tmp23 = (unsigned long )__cil_tmp22;
31257#line 2176
31258    if (__cil_tmp23 != __cil_tmp21) {
31259#line 2177
31260      hcd = hcd->shared_hcd;
31261      {
31262#line 2178
31263      __cil_tmp24 = (unsigned char *)hcd;
31264#line 2178
31265      __cil_tmp25 = __cil_tmp24 + 408UL;
31266#line 2178
31267      __cil_tmp26 = *__cil_tmp25;
31268#line 2178
31269      __cil_tmp27 = (unsigned int )__cil_tmp26;
31270#line 2178
31271      if (__cil_tmp27 != 0U) {
31272        {
31273#line 2179
31274        __cil_tmp28 = & hcd->flags;
31275#line 2179
31276        __cil_tmp29 = (unsigned long volatile   *)__cil_tmp28;
31277#line 2179
31278        clear_bit(2, __cil_tmp29);
31279#line 2182
31280        __cil_tmp30 = hcd->self.root_hub;
31281#line 2182
31282        __cil_tmp31 = (enum usb_device_state )0;
31283#line 2182
31284        usb_set_device_state(__cil_tmp30, __cil_tmp31);
31285#line 2184
31286        __cil_tmp32 = hcd->self.root_hub;
31287#line 2184
31288        usb_kick_khubd(__cil_tmp32);
31289        }
31290      } else {
31291
31292      }
31293      }
31294    } else {
31295
31296    }
31297    }
31298  } else {
31299
31300  }
31301  {
31302#line 2187
31303  spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
31304  }
31305#line 2188
31306  return;
31307}
31308}
31309#line 2209 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31310struct usb_hcd *usb_create_shared_hcd(struct hc_driver  const  *driver , struct device *dev ,
31311                                      char const   *bus_name , struct usb_hcd *primary_hcd ) 
31312{ struct usb_hcd *hcd ;
31313  void *tmp ;
31314  void *tmp___0 ;
31315  struct lock_class_key __key ;
31316  struct lock_class_key __key___0 ;
31317  struct lock_class_key __key___1 ;
31318  atomic_long_t __constr_expr_0 ;
31319  size_t __cil_tmp12 ;
31320  unsigned long __cil_tmp13 ;
31321  unsigned long __cil_tmp14 ;
31322  struct usb_hcd *__cil_tmp15 ;
31323  unsigned long __cil_tmp16 ;
31324  unsigned long __cil_tmp17 ;
31325  struct device  const  *__cil_tmp18 ;
31326  struct usb_hcd *__cil_tmp19 ;
31327  unsigned long __cil_tmp20 ;
31328  unsigned long __cil_tmp21 ;
31329  struct mutex *__cil_tmp22 ;
31330  unsigned long __cil_tmp23 ;
31331  struct mutex *__cil_tmp24 ;
31332  unsigned long __cil_tmp25 ;
31333  void const   *__cil_tmp26 ;
31334  struct device  const  *__cil_tmp27 ;
31335  struct mutex *__cil_tmp28 ;
31336  void *__cil_tmp29 ;
31337  struct kref *__cil_tmp30 ;
31338  struct usb_bus *__cil_tmp31 ;
31339  u64 *__cil_tmp32 ;
31340  unsigned long __cil_tmp33 ;
31341  u64 *__cil_tmp34 ;
31342  unsigned long __cil_tmp35 ;
31343  int __cil_tmp36 ;
31344  struct timer_list *__cil_tmp37 ;
31345  struct work_struct *__cil_tmp38 ;
31346  struct lockdep_map *__cil_tmp39 ;
31347  struct list_head *__cil_tmp40 ;
31348  int __cil_tmp41 ;
31349  int __cil_tmp42 ;
31350  char const   *__cil_tmp43 ;
31351  unsigned long __cil_tmp44 ;
31352  char const   *__cil_tmp45 ;
31353  unsigned long __cil_tmp46 ;
31354  char const   *__cil_tmp47 ;
31355  char const   *__cil_tmp48 ;
31356
31357  {
31358  {
31359#line 2215
31360  __cil_tmp12 = driver->hcd_priv_size;
31361#line 2215
31362  __cil_tmp13 = (unsigned long )__cil_tmp12;
31363#line 2215
31364  __cil_tmp14 = __cil_tmp13 + 512UL;
31365#line 2215
31366  tmp = kzalloc(__cil_tmp14, 208U);
31367#line 2215
31368  hcd = (struct usb_hcd *)tmp;
31369  }
31370  {
31371#line 2216
31372  __cil_tmp15 = (struct usb_hcd *)0;
31373#line 2216
31374  __cil_tmp16 = (unsigned long )__cil_tmp15;
31375#line 2216
31376  __cil_tmp17 = (unsigned long )hcd;
31377#line 2216
31378  if (__cil_tmp17 == __cil_tmp16) {
31379    {
31380#line 2217
31381    __cil_tmp18 = (struct device  const  *)dev;
31382#line 2217
31383    dev_printk("<7>", __cil_tmp18, "hcd alloc failed\n");
31384    }
31385#line 2218
31386    return ((struct usb_hcd *)0);
31387  } else {
31388
31389  }
31390  }
31391  {
31392#line 2220
31393  __cil_tmp19 = (struct usb_hcd *)0;
31394#line 2220
31395  __cil_tmp20 = (unsigned long )__cil_tmp19;
31396#line 2220
31397  __cil_tmp21 = (unsigned long )primary_hcd;
31398#line 2220
31399  if (__cil_tmp21 == __cil_tmp20) {
31400    {
31401#line 2221
31402    tmp___0 = kmalloc(168UL, 208U);
31403#line 2221
31404    hcd->bandwidth_mutex = (struct mutex *)tmp___0;
31405    }
31406    {
31407#line 2223
31408    __cil_tmp22 = (struct mutex *)0;
31409#line 2223
31410    __cil_tmp23 = (unsigned long )__cil_tmp22;
31411#line 2223
31412    __cil_tmp24 = hcd->bandwidth_mutex;
31413#line 2223
31414    __cil_tmp25 = (unsigned long )__cil_tmp24;
31415#line 2223
31416    if (__cil_tmp25 == __cil_tmp23) {
31417      {
31418#line 2224
31419      __cil_tmp26 = (void const   *)hcd;
31420#line 2224
31421      kfree(__cil_tmp26);
31422#line 2225
31423      __cil_tmp27 = (struct device  const  *)dev;
31424#line 2225
31425      dev_printk("<7>", __cil_tmp27, "hcd bandwidth mutex alloc failed\n");
31426      }
31427#line 2226
31428      return ((struct usb_hcd *)0);
31429    } else {
31430
31431    }
31432    }
31433    {
31434#line 2228
31435    __cil_tmp28 = hcd->bandwidth_mutex;
31436#line 2228
31437    __mutex_init(__cil_tmp28, "hcd->bandwidth_mutex", & __key);
31438#line 2229
31439    __cil_tmp29 = (void *)hcd;
31440#line 2229
31441    dev_set_drvdata(dev, __cil_tmp29);
31442    }
31443  } else {
31444#line 2231
31445    hcd->bandwidth_mutex = primary_hcd->bandwidth_mutex;
31446#line 2232
31447    hcd->primary_hcd = primary_hcd;
31448#line 2233
31449    primary_hcd->primary_hcd = primary_hcd;
31450#line 2234
31451    hcd->shared_hcd = primary_hcd;
31452#line 2235
31453    primary_hcd->shared_hcd = hcd;
31454  }
31455  }
31456  {
31457#line 2238
31458  __cil_tmp30 = & hcd->kref;
31459#line 2238
31460  kref_init(__cil_tmp30);
31461#line 2240
31462  __cil_tmp31 = & hcd->self;
31463#line 2240
31464  usb_bus_init(__cil_tmp31);
31465#line 2241
31466  hcd->self.controller = dev;
31467#line 2242
31468  hcd->self.bus_name = bus_name;
31469#line 2243
31470  __cil_tmp32 = (u64 *)0;
31471#line 2243
31472  __cil_tmp33 = (unsigned long )__cil_tmp32;
31473#line 2243
31474  __cil_tmp34 = dev->dma_mask;
31475#line 2243
31476  __cil_tmp35 = (unsigned long )__cil_tmp34;
31477#line 2243
31478  __cil_tmp36 = __cil_tmp35 != __cil_tmp33;
31479#line 2243
31480  hcd->self.uses_dma = (u8 )__cil_tmp36;
31481#line 2245
31482  __cil_tmp37 = & hcd->rh_timer;
31483#line 2245
31484  init_timer_key(__cil_tmp37, "&hcd->rh_timer", & __key___0);
31485#line 2246
31486  hcd->rh_timer.function = & rh_timer_func;
31487#line 2247
31488  hcd->rh_timer.data = (unsigned long )hcd;
31489#line 2249
31490  __cil_tmp38 = & hcd->wakeup_work;
31491#line 2249
31492  __init_work(__cil_tmp38, 0);
31493#line 2249
31494  __constr_expr_0.counter = 2097664L;
31495#line 2249
31496  hcd->wakeup_work.data = __constr_expr_0;
31497#line 2249
31498  __cil_tmp39 = & hcd->wakeup_work.lockdep_map;
31499#line 2249
31500  lockdep_init_map(__cil_tmp39, "(&hcd->wakeup_work)", & __key___1, 0);
31501#line 2249
31502  __cil_tmp40 = & hcd->wakeup_work.entry;
31503#line 2249
31504  INIT_LIST_HEAD(__cil_tmp40);
31505#line 2249
31506  hcd->wakeup_work.func = & hcd_resume_work;
31507#line 2252
31508  hcd->driver = driver;
31509#line 2253
31510  __cil_tmp41 = driver->flags;
31511#line 2253
31512  __cil_tmp42 = (int )__cil_tmp41;
31513#line 2253
31514  hcd->speed = __cil_tmp42 & 112;
31515  }
31516  {
31517#line 2254
31518  __cil_tmp43 = (char const   * const  )0;
31519#line 2254
31520  __cil_tmp44 = (unsigned long )__cil_tmp43;
31521#line 2254
31522  __cil_tmp45 = driver->product_desc;
31523#line 2254
31524  __cil_tmp46 = (unsigned long )__cil_tmp45;
31525#line 2254
31526  if (__cil_tmp46 != __cil_tmp44) {
31527#line 2254
31528    __cil_tmp47 = driver->product_desc;
31529#line 2254
31530    hcd->product_desc = (char const   *)__cil_tmp47;
31531  } else {
31532#line 2254
31533    __cil_tmp48 = (char const   * const  )"USB Host Controller";
31534#line 2254
31535    hcd->product_desc = (char const   *)__cil_tmp48;
31536  }
31537  }
31538#line 2256
31539  return (hcd);
31540}
31541}
31542#line 2273 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31543struct usb_hcd *usb_create_hcd(struct hc_driver  const  *driver , struct device *dev ,
31544                               char const   *bus_name ) 
31545{ struct usb_hcd *tmp ;
31546  struct usb_hcd *__cil_tmp5 ;
31547
31548  {
31549  {
31550#line 2276
31551  __cil_tmp5 = (struct usb_hcd *)0;
31552#line 2276
31553  tmp = usb_create_shared_hcd(driver, dev, bus_name, __cil_tmp5);
31554  }
31555#line 2276
31556  return (tmp);
31557}
31558}
31559#line 2290 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31560static void hcd_release(struct kref *kref ) 
31561{ struct usb_hcd *hcd ;
31562  struct kref  const  *__mptr ;
31563  int tmp ;
31564  struct usb_hcd *__cil_tmp5 ;
31565  struct mutex *__cil_tmp6 ;
31566  void const   *__cil_tmp7 ;
31567  struct usb_hcd *__cil_tmp8 ;
31568  void const   *__cil_tmp9 ;
31569
31570  {
31571  {
31572#line 2292
31573  __mptr = (struct kref  const  *)kref;
31574#line 2292
31575  __cil_tmp5 = (struct usb_hcd *)__mptr;
31576#line 2292
31577  hcd = __cil_tmp5 + 1152921504606846848UL;
31578#line 2294
31579  tmp = usb_hcd_is_primary_hcd(hcd);
31580  }
31581#line 2294
31582  if (tmp != 0) {
31583    {
31584#line 2295
31585    __cil_tmp6 = hcd->bandwidth_mutex;
31586#line 2295
31587    __cil_tmp7 = (void const   *)__cil_tmp6;
31588#line 2295
31589    kfree(__cil_tmp7);
31590    }
31591  } else {
31592#line 2297
31593    __cil_tmp8 = hcd->shared_hcd;
31594#line 2297
31595    __cil_tmp8->shared_hcd = (struct usb_hcd *)0;
31596  }
31597  {
31598#line 2298
31599  __cil_tmp9 = (void const   *)hcd;
31600#line 2298
31601  kfree(__cil_tmp9);
31602  }
31603#line 2299
31604  return;
31605}
31606}
31607#line 2301 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31608struct usb_hcd *usb_get_hcd(struct usb_hcd *hcd ) 
31609{ struct usb_hcd *__cil_tmp2 ;
31610  unsigned long __cil_tmp3 ;
31611  unsigned long __cil_tmp4 ;
31612  struct kref *__cil_tmp5 ;
31613
31614  {
31615  {
31616#line 2303
31617  __cil_tmp2 = (struct usb_hcd *)0;
31618#line 2303
31619  __cil_tmp3 = (unsigned long )__cil_tmp2;
31620#line 2303
31621  __cil_tmp4 = (unsigned long )hcd;
31622#line 2303
31623  if (__cil_tmp4 != __cil_tmp3) {
31624    {
31625#line 2304
31626    __cil_tmp5 = & hcd->kref;
31627#line 2304
31628    kref_get(__cil_tmp5);
31629    }
31630  } else {
31631
31632  }
31633  }
31634#line 2305
31635  return (hcd);
31636}
31637}
31638#line 2309 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31639void usb_put_hcd(struct usb_hcd *hcd ) 
31640{ struct usb_hcd *__cil_tmp2 ;
31641  unsigned long __cil_tmp3 ;
31642  unsigned long __cil_tmp4 ;
31643  struct kref *__cil_tmp5 ;
31644
31645  {
31646  {
31647#line 2311
31648  __cil_tmp2 = (struct usb_hcd *)0;
31649#line 2311
31650  __cil_tmp3 = (unsigned long )__cil_tmp2;
31651#line 2311
31652  __cil_tmp4 = (unsigned long )hcd;
31653#line 2311
31654  if (__cil_tmp4 != __cil_tmp3) {
31655    {
31656#line 2312
31657    __cil_tmp5 = & hcd->kref;
31658#line 2312
31659    kref_put(__cil_tmp5, & hcd_release);
31660    }
31661  } else {
31662
31663  }
31664  }
31665#line 2313
31666  return;
31667}
31668}
31669#line 2316 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31670int usb_hcd_is_primary_hcd(struct usb_hcd *hcd ) 
31671{ struct usb_hcd *__cil_tmp2 ;
31672  unsigned long __cil_tmp3 ;
31673  struct usb_hcd *__cil_tmp4 ;
31674  unsigned long __cil_tmp5 ;
31675  unsigned long __cil_tmp6 ;
31676  struct usb_hcd *__cil_tmp7 ;
31677  unsigned long __cil_tmp8 ;
31678
31679  {
31680  {
31681#line 2318
31682  __cil_tmp2 = (struct usb_hcd *)0;
31683#line 2318
31684  __cil_tmp3 = (unsigned long )__cil_tmp2;
31685#line 2318
31686  __cil_tmp4 = hcd->primary_hcd;
31687#line 2318
31688  __cil_tmp5 = (unsigned long )__cil_tmp4;
31689#line 2318
31690  if (__cil_tmp5 == __cil_tmp3) {
31691#line 2319
31692    return (1);
31693  } else {
31694
31695  }
31696  }
31697  {
31698#line 2320
31699  __cil_tmp6 = (unsigned long )hcd;
31700#line 2320
31701  __cil_tmp7 = hcd->primary_hcd;
31702#line 2320
31703  __cil_tmp8 = (unsigned long )__cil_tmp7;
31704#line 2320
31705  return (__cil_tmp8 == __cil_tmp6);
31706  }
31707}
31708}
31709#line 2324 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31710static int usb_hcd_request_irqs(struct usb_hcd *hcd , unsigned int irqnum , unsigned long irqflags ) 
31711{ int retval ;
31712  char *tmp ;
31713  char *tmp___0 ;
31714  irqreturn_t (*__cil_tmp7)(struct usb_hcd * ) ;
31715  unsigned long __cil_tmp8 ;
31716  struct hc_driver  const  *__cil_tmp9 ;
31717  irqreturn_t (*__cil_tmp10)(struct usb_hcd * ) ;
31718  unsigned long __cil_tmp11 ;
31719  unsigned long __cil_tmp12 ;
31720  char (*__cil_tmp13)[24U] ;
31721  char *__cil_tmp14 ;
31722  struct hc_driver  const  *__cil_tmp15 ;
31723  char const   *__cil_tmp16 ;
31724  int __cil_tmp17 ;
31725  char (*__cil_tmp18)[24U] ;
31726  char const   *__cil_tmp19 ;
31727  void *__cil_tmp20 ;
31728  struct device *__cil_tmp21 ;
31729  struct device  const  *__cil_tmp22 ;
31730  struct hc_driver  const  *__cil_tmp23 ;
31731  int __cil_tmp24 ;
31732  int __cil_tmp25 ;
31733  struct device *__cil_tmp26 ;
31734  struct device  const  *__cil_tmp27 ;
31735  u64 __cil_tmp28 ;
31736  u64 __cil_tmp29 ;
31737  struct hc_driver  const  *__cil_tmp30 ;
31738  int __cil_tmp31 ;
31739  int __cil_tmp32 ;
31740  struct device *__cil_tmp33 ;
31741  struct device  const  *__cil_tmp34 ;
31742  u64 __cil_tmp35 ;
31743
31744  {
31745  {
31746#line 2329
31747  __cil_tmp7 = (irqreturn_t (* const  )(struct usb_hcd * ))0;
31748#line 2329
31749  __cil_tmp8 = (unsigned long )__cil_tmp7;
31750#line 2329
31751  __cil_tmp9 = hcd->driver;
31752#line 2329
31753  __cil_tmp10 = __cil_tmp9->irq;
31754#line 2329
31755  __cil_tmp11 = (unsigned long )__cil_tmp10;
31756#line 2329
31757  if (__cil_tmp11 != __cil_tmp8) {
31758    {
31759#line 2335
31760    __cil_tmp12 = irqflags & 128UL;
31761#line 2335
31762    if (__cil_tmp12 != 0UL) {
31763#line 2336
31764      irqflags = irqflags & 1152921504606846943UL;
31765    } else {
31766
31767    }
31768    }
31769    {
31770#line 2338
31771    __cil_tmp13 = & hcd->irq_descr;
31772#line 2338
31773    __cil_tmp14 = (char *)__cil_tmp13;
31774#line 2338
31775    __cil_tmp15 = hcd->driver;
31776#line 2338
31777    __cil_tmp16 = __cil_tmp15->description;
31778#line 2338
31779    __cil_tmp17 = hcd->self.busnum;
31780#line 2338
31781    snprintf(__cil_tmp14, 24UL, "%s:usb%d", __cil_tmp16, __cil_tmp17);
31782#line 2340
31783    __cil_tmp18 = & hcd->irq_descr;
31784#line 2340
31785    __cil_tmp19 = (char const   *)__cil_tmp18;
31786#line 2340
31787    __cil_tmp20 = (void *)hcd;
31788#line 2340
31789    retval = request_irq(irqnum, & usb_hcd_irq, irqflags, __cil_tmp19, __cil_tmp20);
31790    }
31791#line 2342
31792    if (retval != 0) {
31793      {
31794#line 2343
31795      __cil_tmp21 = hcd->self.controller;
31796#line 2343
31797      __cil_tmp22 = (struct device  const  *)__cil_tmp21;
31798#line 2343
31799      dev_err(__cil_tmp22, "request interrupt %d failed\n", irqnum);
31800      }
31801#line 2346
31802      return (retval);
31803    } else {
31804
31805    }
31806#line 2348
31807    hcd->irq = (int )irqnum;
31808    {
31809#line 2349
31810    __cil_tmp23 = hcd->driver;
31811#line 2349
31812    __cil_tmp24 = __cil_tmp23->flags;
31813#line 2349
31814    __cil_tmp25 = (int )__cil_tmp24;
31815#line 2349
31816    if (__cil_tmp25 & 1) {
31817#line 2349
31818      tmp = (char *)"io mem";
31819    } else {
31820#line 2349
31821      tmp = (char *)"io base";
31822    }
31823    }
31824    {
31825#line 2349
31826    __cil_tmp26 = hcd->self.controller;
31827#line 2349
31828    __cil_tmp27 = (struct device  const  *)__cil_tmp26;
31829#line 2349
31830    __cil_tmp28 = hcd->rsrc_start;
31831#line 2349
31832    _dev_info(__cil_tmp27, "irq %d, %s 0x%08llx\n", irqnum, tmp, __cil_tmp28);
31833    }
31834  } else {
31835#line 2354
31836    hcd->irq = -1;
31837    {
31838#line 2355
31839    __cil_tmp29 = hcd->rsrc_start;
31840#line 2355
31841    if (__cil_tmp29 != 0ULL) {
31842      {
31843#line 2356
31844      __cil_tmp30 = hcd->driver;
31845#line 2356
31846      __cil_tmp31 = __cil_tmp30->flags;
31847#line 2356
31848      __cil_tmp32 = (int )__cil_tmp31;
31849#line 2356
31850      if (__cil_tmp32 & 1) {
31851#line 2356
31852        tmp___0 = (char *)"io mem";
31853      } else {
31854#line 2356
31855        tmp___0 = (char *)"io base";
31856      }
31857      }
31858      {
31859#line 2356
31860      __cil_tmp33 = hcd->self.controller;
31861#line 2356
31862      __cil_tmp34 = (struct device  const  *)__cil_tmp33;
31863#line 2356
31864      __cil_tmp35 = hcd->rsrc_start;
31865#line 2356
31866      _dev_info(__cil_tmp34, "%s 0x%08llx\n", tmp___0, __cil_tmp35);
31867      }
31868    } else {
31869
31870    }
31871    }
31872  }
31873  }
31874#line 2361
31875  return (0);
31876}
31877}
31878#line 2374 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
31879int usb_add_hcd(struct usb_hcd *hcd , unsigned int irqnum , unsigned long irqflags ) 
31880{ int retval ;
31881  struct usb_device *rhdev ;
31882  bool tmp ;
31883  bool tmp___0 ;
31884  int tmp___1 ;
31885  unsigned int _min1 ;
31886  unsigned int _min2 ;
31887  unsigned int tmp___2 ;
31888  int tmp___3 ;
31889  struct device *__cil_tmp13 ;
31890  struct device  const  *__cil_tmp14 ;
31891  char const   *__cil_tmp15 ;
31892  unsigned char *__cil_tmp16 ;
31893  unsigned char *__cil_tmp17 ;
31894  unsigned char __cil_tmp18 ;
31895  unsigned int __cil_tmp19 ;
31896  int __cil_tmp20 ;
31897  unsigned long *__cil_tmp21 ;
31898  unsigned long volatile   *__cil_tmp22 ;
31899  struct device *__cil_tmp23 ;
31900  struct device  const  *__cil_tmp24 ;
31901  struct usb_bus *__cil_tmp25 ;
31902  struct usb_device *__cil_tmp26 ;
31903  struct usb_bus *__cil_tmp27 ;
31904  struct usb_device *__cil_tmp28 ;
31905  unsigned long __cil_tmp29 ;
31906  unsigned long __cil_tmp30 ;
31907  struct device *__cil_tmp31 ;
31908  struct device  const  *__cil_tmp32 ;
31909  int __cil_tmp33 ;
31910  int __cil_tmp34 ;
31911  int __cil_tmp35 ;
31912  struct device *__cil_tmp36 ;
31913  bool __cil_tmp37 ;
31914  unsigned long *__cil_tmp38 ;
31915  unsigned long volatile   *__cil_tmp39 ;
31916  int (*__cil_tmp40)(struct usb_hcd * ) ;
31917  unsigned long __cil_tmp41 ;
31918  struct hc_driver  const  *__cil_tmp42 ;
31919  int (*__cil_tmp43)(struct usb_hcd * ) ;
31920  unsigned long __cil_tmp44 ;
31921  struct hc_driver  const  *__cil_tmp45 ;
31922  int (*__cil_tmp46)(struct usb_hcd * ) ;
31923  struct device *__cil_tmp47 ;
31924  struct device  const  *__cil_tmp48 ;
31925  struct device *__cil_tmp49 ;
31926  struct usb_device *__cil_tmp50 ;
31927  struct device *__cil_tmp51 ;
31928  struct device *__cil_tmp52 ;
31929  struct device  const  *__cil_tmp53 ;
31930  struct hc_driver  const  *__cil_tmp54 ;
31931  int (*__cil_tmp55)(struct usb_hcd * ) ;
31932  struct device *__cil_tmp56 ;
31933  struct device  const  *__cil_tmp57 ;
31934  struct kobject *__cil_tmp58 ;
31935  struct attribute_group  const  *__cil_tmp59 ;
31936  unsigned char *__cil_tmp60 ;
31937  unsigned char *__cil_tmp61 ;
31938  unsigned char __cil_tmp62 ;
31939  unsigned int __cil_tmp63 ;
31940  unsigned long __cil_tmp64 ;
31941  unsigned long __cil_tmp65 ;
31942  unsigned long *__cil_tmp66 ;
31943  unsigned long volatile   *__cil_tmp67 ;
31944  int __cil_tmp68 ;
31945  struct work_struct *__cil_tmp69 ;
31946  unsigned long *__cil_tmp70 ;
31947  unsigned long volatile   *__cil_tmp71 ;
31948  struct timer_list *__cil_tmp72 ;
31949  struct hc_driver  const  *__cil_tmp73 ;
31950  void (*__cil_tmp74)(struct usb_hcd * ) ;
31951  unsigned long *__cil_tmp75 ;
31952  unsigned long volatile   *__cil_tmp76 ;
31953  struct timer_list *__cil_tmp77 ;
31954  int __cil_tmp78 ;
31955  void *__cil_tmp79 ;
31956  struct usb_device *__cil_tmp80 ;
31957  struct usb_bus *__cil_tmp81 ;
31958
31959  {
31960  {
31961#line 2380
31962  __cil_tmp13 = hcd->self.controller;
31963#line 2380
31964  __cil_tmp14 = (struct device  const  *)__cil_tmp13;
31965#line 2380
31966  __cil_tmp15 = hcd->product_desc;
31967#line 2380
31968  _dev_info(__cil_tmp14, "%s\n", __cil_tmp15);
31969#line 2382
31970  __cil_tmp16 = (unsigned char *)hcd;
31971#line 2382
31972  __cil_tmp17 = __cil_tmp16 + 408UL;
31973#line 2382
31974  __cil_tmp18 = *__cil_tmp17;
31975#line 2382
31976  __cil_tmp19 = (unsigned int )__cil_tmp18;
31977#line 2382
31978  __cil_tmp20 = __cil_tmp19 == 0U;
31979#line 2382
31980  hcd->authorized_default = (unsigned char )__cil_tmp20;
31981#line 2383
31982  __cil_tmp21 = & hcd->flags;
31983#line 2383
31984  __cil_tmp22 = (unsigned long volatile   *)__cil_tmp21;
31985#line 2383
31986  set_bit(0U, __cil_tmp22);
31987#line 2389
31988  retval = hcd_buffer_create(hcd);
31989  }
31990#line 2389
31991  if (retval != 0) {
31992    {
31993#line 2390
31994    __cil_tmp23 = hcd->self.controller;
31995#line 2390
31996    __cil_tmp24 = (struct device  const  *)__cil_tmp23;
31997#line 2390
31998    dev_printk("<7>", __cil_tmp24, "pool alloc failed\n");
31999    }
32000#line 2391
32001    return (retval);
32002  } else {
32003
32004  }
32005  {
32006#line 2394
32007  __cil_tmp25 = & hcd->self;
32008#line 2394
32009  retval = usb_register_bus(__cil_tmp25);
32010  }
32011#line 2394
32012  if (retval < 0) {
32013#line 2395
32014    goto err_register_bus;
32015  } else {
32016
32017  }
32018  {
32019#line 2397
32020  __cil_tmp26 = (struct usb_device *)0;
32021#line 2397
32022  __cil_tmp27 = & hcd->self;
32023#line 2397
32024  rhdev = usb_alloc_dev(__cil_tmp26, __cil_tmp27, 0U);
32025  }
32026  {
32027#line 2397
32028  __cil_tmp28 = (struct usb_device *)0;
32029#line 2397
32030  __cil_tmp29 = (unsigned long )__cil_tmp28;
32031#line 2397
32032  __cil_tmp30 = (unsigned long )rhdev;
32033#line 2397
32034  if (__cil_tmp30 == __cil_tmp29) {
32035    {
32036#line 2398
32037    __cil_tmp31 = hcd->self.controller;
32038#line 2398
32039    __cil_tmp32 = (struct device  const  *)__cil_tmp31;
32040#line 2398
32041    dev_err(__cil_tmp32, "unable to allocate root hub\n");
32042#line 2399
32043    retval = -12;
32044    }
32045#line 2400
32046    goto err_allocate_root_hub;
32047  } else {
32048
32049  }
32050  }
32051#line 2402
32052  hcd->self.root_hub = rhdev;
32053  {
32054#line 2405
32055  __cil_tmp33 = hcd->speed;
32056#line 2405
32057  if (__cil_tmp33 == 16) {
32058#line 2405
32059    goto case_16;
32060  } else {
32061    {
32062#line 2408
32063    __cil_tmp34 = hcd->speed;
32064#line 2408
32065    if (__cil_tmp34 == 32) {
32066#line 2408
32067      goto case_32;
32068    } else {
32069      {
32070#line 2411
32071      __cil_tmp35 = hcd->speed;
32072#line 2411
32073      if (__cil_tmp35 == 64) {
32074#line 2411
32075        goto case_64;
32076      } else {
32077#line 2414
32078        goto switch_default;
32079#line 2404
32080        if (0) {
32081          case_16: 
32082#line 2406
32083          rhdev->speed = (enum usb_device_speed )2;
32084#line 2407
32085          goto ldv_28310;
32086          case_32: 
32087#line 2409
32088          rhdev->speed = (enum usb_device_speed )3;
32089#line 2410
32090          goto ldv_28310;
32091          case_64: 
32092#line 2412
32093          rhdev->speed = (enum usb_device_speed )5;
32094#line 2413
32095          goto ldv_28310;
32096          switch_default: 
32097#line 2415
32098          retval = -22;
32099#line 2416
32100          goto err_set_rh_speed;
32101        } else {
32102
32103        }
32104      }
32105      }
32106    }
32107    }
32108  }
32109  }
32110  ldv_28310: 
32111  {
32112#line 2423
32113  __cil_tmp36 = & rhdev->dev;
32114#line 2423
32115  __cil_tmp37 = (bool )1;
32116#line 2423
32117  device_init_wakeup(__cil_tmp36, __cil_tmp37);
32118#line 2429
32119  __cil_tmp38 = & hcd->flags;
32120#line 2429
32121  __cil_tmp39 = (unsigned long volatile   *)__cil_tmp38;
32122#line 2429
32123  set_bit(5U, __cil_tmp39);
32124  }
32125  {
32126#line 2434
32127  __cil_tmp40 = (int (* const  )(struct usb_hcd * ))0;
32128#line 2434
32129  __cil_tmp41 = (unsigned long )__cil_tmp40;
32130#line 2434
32131  __cil_tmp42 = hcd->driver;
32132#line 2434
32133  __cil_tmp43 = __cil_tmp42->reset;
32134#line 2434
32135  __cil_tmp44 = (unsigned long )__cil_tmp43;
32136#line 2434
32137  if (__cil_tmp44 != __cil_tmp41) {
32138    {
32139#line 2434
32140    __cil_tmp45 = hcd->driver;
32141#line 2434
32142    __cil_tmp46 = __cil_tmp45->reset;
32143#line 2434
32144    retval = (*__cil_tmp46)(hcd);
32145    }
32146#line 2434
32147    if (retval < 0) {
32148      {
32149#line 2435
32150      __cil_tmp47 = hcd->self.controller;
32151#line 2435
32152      __cil_tmp48 = (struct device  const  *)__cil_tmp47;
32153#line 2435
32154      dev_err(__cil_tmp48, "can\'t setup\n");
32155      }
32156#line 2436
32157      goto err_hcd_driver_setup;
32158    } else {
32159
32160    }
32161  } else {
32162
32163  }
32164  }
32165  {
32166#line 2438
32167  hcd->rh_pollable = (unsigned char)1;
32168#line 2441
32169  __cil_tmp49 = hcd->self.controller;
32170#line 2441
32171  tmp = device_can_wakeup(__cil_tmp49);
32172  }
32173#line 2441
32174  if ((int )tmp) {
32175    {
32176#line 2441
32177    __cil_tmp50 = hcd->self.root_hub;
32178#line 2441
32179    __cil_tmp51 = & __cil_tmp50->dev;
32180#line 2441
32181    tmp___0 = device_can_wakeup(__cil_tmp51);
32182    }
32183#line 2441
32184    if ((int )tmp___0) {
32185      {
32186#line 2443
32187      __cil_tmp52 = hcd->self.controller;
32188#line 2443
32189      __cil_tmp53 = (struct device  const  *)__cil_tmp52;
32190#line 2443
32191      dev_printk("<7>", __cil_tmp53, "supports USB remote wakeup\n");
32192      }
32193    } else {
32194
32195    }
32196  } else {
32197
32198  }
32199  {
32200#line 2446
32201  tmp___1 = usb_hcd_is_primary_hcd(hcd);
32202  }
32203#line 2446
32204  if (tmp___1 != 0) {
32205    {
32206#line 2447
32207    retval = usb_hcd_request_irqs(hcd, irqnum, irqflags);
32208    }
32209#line 2448
32210    if (retval != 0) {
32211#line 2449
32212      goto err_request_irq;
32213    } else {
32214
32215    }
32216  } else {
32217
32218  }
32219  {
32220#line 2452
32221  hcd->state = 1;
32222#line 2453
32223  __cil_tmp54 = hcd->driver;
32224#line 2453
32225  __cil_tmp55 = __cil_tmp54->start;
32226#line 2453
32227  retval = (*__cil_tmp55)(hcd);
32228  }
32229#line 2454
32230  if (retval < 0) {
32231    {
32232#line 2455
32233    __cil_tmp56 = hcd->self.controller;
32234#line 2455
32235    __cil_tmp57 = (struct device  const  *)__cil_tmp56;
32236#line 2455
32237    dev_err(__cil_tmp57, "startup error %d\n", retval);
32238    }
32239#line 2456
32240    goto err_hcd_driver_start;
32241  } else {
32242
32243  }
32244#line 2460
32245  _min1 = 500U;
32246#line 2460
32247  _min2 = hcd->power_budget;
32248#line 2460
32249  if (_min1 < _min2) {
32250#line 2460
32251    tmp___2 = _min1;
32252  } else {
32253#line 2460
32254    tmp___2 = _min2;
32255  }
32256  {
32257#line 2460
32258  rhdev->bus_mA = (unsigned short )tmp___2;
32259#line 2461
32260  retval = register_root_hub(hcd);
32261  }
32262#line 2461
32263  if (retval != 0) {
32264#line 2462
32265    goto err_register_root_hub;
32266  } else {
32267
32268  }
32269  {
32270#line 2464
32271  __cil_tmp58 = & rhdev->dev.kobj;
32272#line 2464
32273  __cil_tmp59 = (struct attribute_group  const  *)(& usb_bus_attr_group);
32274#line 2464
32275  retval = sysfs_create_group(__cil_tmp58, __cil_tmp59);
32276  }
32277#line 2465
32278  if (retval < 0) {
32279    {
32280#line 2466
32281    printk("<3>Cannot register USB bus sysfs attributes: %d\n", retval);
32282    }
32283#line 2468
32284    goto error_create_attr_group;
32285  } else {
32286
32287  }
32288  {
32289#line 2470
32290  __cil_tmp60 = (unsigned char *)hcd;
32291#line 2470
32292  __cil_tmp61 = __cil_tmp60 + 408UL;
32293#line 2470
32294  __cil_tmp62 = *__cil_tmp61;
32295#line 2470
32296  __cil_tmp63 = (unsigned int )__cil_tmp62;
32297#line 2470
32298  if (__cil_tmp63 != 0U) {
32299    {
32300#line 2470
32301    __cil_tmp64 = hcd->flags;
32302#line 2470
32303    __cil_tmp65 = __cil_tmp64 & 4UL;
32304#line 2470
32305    if (__cil_tmp65 != 0UL) {
32306      {
32307#line 2471
32308      usb_hcd_poll_rh_status(hcd);
32309      }
32310    } else {
32311
32312    }
32313    }
32314  } else {
32315
32316  }
32317  }
32318#line 2472
32319  return (retval);
32320  error_create_attr_group: 
32321  {
32322#line 2475
32323  __cil_tmp66 = & hcd->flags;
32324#line 2475
32325  __cil_tmp67 = (unsigned long volatile   *)__cil_tmp66;
32326#line 2475
32327  clear_bit(5, __cil_tmp67);
32328  }
32329  {
32330#line 2476
32331  __cil_tmp68 = hcd->state;
32332#line 2476
32333  if (__cil_tmp68 & 1) {
32334#line 2477
32335    hcd->state = 133;
32336  } else {
32337
32338  }
32339  }
32340  {
32341#line 2478
32342  spin_lock_irq(& hcd_root_hub_lock);
32343#line 2479
32344  hcd->rh_registered = (unsigned char)0;
32345#line 2480
32346  spin_unlock_irq(& hcd_root_hub_lock);
32347#line 2483
32348  __cil_tmp69 = & hcd->wakeup_work;
32349#line 2483
32350  cancel_work_sync(__cil_tmp69);
32351#line 2485
32352  mutex_lock_nested(& usb_bus_list_lock, 0U);
32353#line 2486
32354  usb_disconnect(& rhdev);
32355#line 2487
32356  mutex_unlock(& usb_bus_list_lock);
32357  }
32358  err_register_root_hub: 
32359  {
32360#line 2489
32361  hcd->rh_pollable = (unsigned char)0;
32362#line 2490
32363  __cil_tmp70 = & hcd->flags;
32364#line 2490
32365  __cil_tmp71 = (unsigned long volatile   *)__cil_tmp70;
32366#line 2490
32367  clear_bit(2, __cil_tmp71);
32368#line 2491
32369  __cil_tmp72 = & hcd->rh_timer;
32370#line 2491
32371  del_timer_sync(__cil_tmp72);
32372#line 2492
32373  __cil_tmp73 = hcd->driver;
32374#line 2492
32375  __cil_tmp74 = __cil_tmp73->stop;
32376#line 2492
32377  (*__cil_tmp74)(hcd);
32378#line 2493
32379  hcd->state = 0;
32380#line 2494
32381  __cil_tmp75 = & hcd->flags;
32382#line 2494
32383  __cil_tmp76 = (unsigned long volatile   *)__cil_tmp75;
32384#line 2494
32385  clear_bit(2, __cil_tmp76);
32386#line 2495
32387  __cil_tmp77 = & hcd->rh_timer;
32388#line 2495
32389  del_timer_sync(__cil_tmp77);
32390  }
32391  err_hcd_driver_start: 
32392  {
32393#line 2497
32394  tmp___3 = usb_hcd_is_primary_hcd(hcd);
32395  }
32396#line 2497
32397  if (tmp___3 != 0) {
32398    {
32399#line 2497
32400    __cil_tmp78 = hcd->irq;
32401#line 2497
32402    if (__cil_tmp78 >= 0) {
32403      {
32404#line 2498
32405      __cil_tmp79 = (void *)hcd;
32406#line 2498
32407      free_irq(irqnum, __cil_tmp79);
32408      }
32409    } else {
32410
32411    }
32412    }
32413  } else {
32414
32415  }
32416  err_request_irq: ;
32417  err_hcd_driver_setup: ;
32418  err_set_rh_speed: 
32419  {
32420#line 2502
32421  __cil_tmp80 = hcd->self.root_hub;
32422#line 2502
32423  usb_put_dev(__cil_tmp80);
32424  }
32425  err_allocate_root_hub: 
32426  {
32427#line 2504
32428  __cil_tmp81 = & hcd->self;
32429#line 2504
32430  usb_deregister_bus(__cil_tmp81);
32431  }
32432  err_register_bus: 
32433  {
32434#line 2506
32435  hcd_buffer_destroy(hcd);
32436  }
32437#line 2507
32438  return (retval);
32439}
32440}
32441#line 2519 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
32442void usb_remove_hcd(struct usb_hcd *hcd ) 
32443{ struct usb_device *rhdev ;
32444  int tmp ;
32445  struct device *__cil_tmp4 ;
32446  struct device  const  *__cil_tmp5 ;
32447  int __cil_tmp6 ;
32448  struct kobject *__cil_tmp7 ;
32449  struct attribute_group  const  *__cil_tmp8 ;
32450  unsigned long *__cil_tmp9 ;
32451  unsigned long volatile   *__cil_tmp10 ;
32452  int __cil_tmp11 ;
32453  struct device *__cil_tmp12 ;
32454  struct device  const  *__cil_tmp13 ;
32455  struct work_struct *__cil_tmp14 ;
32456  unsigned long *__cil_tmp15 ;
32457  unsigned long volatile   *__cil_tmp16 ;
32458  struct timer_list *__cil_tmp17 ;
32459  struct hc_driver  const  *__cil_tmp18 ;
32460  void (*__cil_tmp19)(struct usb_hcd * ) ;
32461  unsigned long *__cil_tmp20 ;
32462  unsigned long volatile   *__cil_tmp21 ;
32463  struct timer_list *__cil_tmp22 ;
32464  int __cil_tmp23 ;
32465  int __cil_tmp24 ;
32466  unsigned int __cil_tmp25 ;
32467  void *__cil_tmp26 ;
32468  struct usb_device *__cil_tmp27 ;
32469  struct usb_bus *__cil_tmp28 ;
32470
32471  {
32472  {
32473#line 2521
32474  rhdev = hcd->self.root_hub;
32475#line 2523
32476  __cil_tmp4 = hcd->self.controller;
32477#line 2523
32478  __cil_tmp5 = (struct device  const  *)__cil_tmp4;
32479#line 2523
32480  __cil_tmp6 = hcd->state;
32481#line 2523
32482  _dev_info(__cil_tmp5, "remove, state %x\n", __cil_tmp6);
32483#line 2525
32484  usb_get_dev(rhdev);
32485#line 2526
32486  __cil_tmp7 = & rhdev->dev.kobj;
32487#line 2526
32488  __cil_tmp8 = (struct attribute_group  const  *)(& usb_bus_attr_group);
32489#line 2526
32490  sysfs_remove_group(__cil_tmp7, __cil_tmp8);
32491#line 2528
32492  __cil_tmp9 = & hcd->flags;
32493#line 2528
32494  __cil_tmp10 = (unsigned long volatile   *)__cil_tmp9;
32495#line 2528
32496  clear_bit(5, __cil_tmp10);
32497  }
32498  {
32499#line 2529
32500  __cil_tmp11 = hcd->state;
32501#line 2529
32502  if (__cil_tmp11 & 1) {
32503#line 2530
32504    hcd->state = 133;
32505  } else {
32506
32507  }
32508  }
32509  {
32510#line 2532
32511  __cil_tmp12 = hcd->self.controller;
32512#line 2532
32513  __cil_tmp13 = (struct device  const  *)__cil_tmp12;
32514#line 2532
32515  dev_printk("<7>", __cil_tmp13, "roothub graceful disconnect\n");
32516#line 2533
32517  spin_lock_irq(& hcd_root_hub_lock);
32518#line 2534
32519  hcd->rh_registered = (unsigned char)0;
32520#line 2535
32521  spin_unlock_irq(& hcd_root_hub_lock);
32522#line 2538
32523  __cil_tmp14 = & hcd->wakeup_work;
32524#line 2538
32525  cancel_work_sync(__cil_tmp14);
32526#line 2541
32527  mutex_lock_nested(& usb_bus_list_lock, 0U);
32528#line 2542
32529  usb_disconnect(& rhdev);
32530#line 2543
32531  mutex_unlock(& usb_bus_list_lock);
32532#line 2550
32533  hcd->rh_pollable = (unsigned char)0;
32534#line 2551
32535  __cil_tmp15 = & hcd->flags;
32536#line 2551
32537  __cil_tmp16 = (unsigned long volatile   *)__cil_tmp15;
32538#line 2551
32539  clear_bit(2, __cil_tmp16);
32540#line 2552
32541  __cil_tmp17 = & hcd->rh_timer;
32542#line 2552
32543  del_timer_sync(__cil_tmp17);
32544#line 2554
32545  __cil_tmp18 = hcd->driver;
32546#line 2554
32547  __cil_tmp19 = __cil_tmp18->stop;
32548#line 2554
32549  (*__cil_tmp19)(hcd);
32550#line 2555
32551  hcd->state = 0;
32552#line 2558
32553  __cil_tmp20 = & hcd->flags;
32554#line 2558
32555  __cil_tmp21 = (unsigned long volatile   *)__cil_tmp20;
32556#line 2558
32557  clear_bit(2, __cil_tmp21);
32558#line 2559
32559  __cil_tmp22 = & hcd->rh_timer;
32560#line 2559
32561  del_timer_sync(__cil_tmp22);
32562#line 2561
32563  tmp = usb_hcd_is_primary_hcd(hcd);
32564  }
32565#line 2561
32566  if (tmp != 0) {
32567    {
32568#line 2562
32569    __cil_tmp23 = hcd->irq;
32570#line 2562
32571    if (__cil_tmp23 >= 0) {
32572      {
32573#line 2563
32574      __cil_tmp24 = hcd->irq;
32575#line 2563
32576      __cil_tmp25 = (unsigned int )__cil_tmp24;
32577#line 2563
32578      __cil_tmp26 = (void *)hcd;
32579#line 2563
32580      free_irq(__cil_tmp25, __cil_tmp26);
32581      }
32582    } else {
32583
32584    }
32585    }
32586  } else {
32587
32588  }
32589  {
32590#line 2566
32591  __cil_tmp27 = hcd->self.root_hub;
32592#line 2566
32593  usb_put_dev(__cil_tmp27);
32594#line 2567
32595  __cil_tmp28 = & hcd->self;
32596#line 2567
32597  usb_deregister_bus(__cil_tmp28);
32598#line 2568
32599  hcd_buffer_destroy(hcd);
32600  }
32601#line 2569
32602  return;
32603}
32604}
32605#line 2573 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
32606void usb_hcd_platform_shutdown(struct platform_device *dev ) 
32607{ struct usb_hcd *hcd ;
32608  void *tmp ;
32609  struct platform_device  const  *__cil_tmp4 ;
32610  void (*__cil_tmp5)(struct usb_hcd * ) ;
32611  unsigned long __cil_tmp6 ;
32612  struct hc_driver  const  *__cil_tmp7 ;
32613  void (*__cil_tmp8)(struct usb_hcd * ) ;
32614  unsigned long __cil_tmp9 ;
32615  struct hc_driver  const  *__cil_tmp10 ;
32616  void (*__cil_tmp11)(struct usb_hcd * ) ;
32617
32618  {
32619  {
32620#line 2575
32621  __cil_tmp4 = (struct platform_device  const  *)dev;
32622#line 2575
32623  tmp = platform_get_drvdata(__cil_tmp4);
32624#line 2575
32625  hcd = (struct usb_hcd *)tmp;
32626  }
32627  {
32628#line 2577
32629  __cil_tmp5 = (void (* const  )(struct usb_hcd * ))0;
32630#line 2577
32631  __cil_tmp6 = (unsigned long )__cil_tmp5;
32632#line 2577
32633  __cil_tmp7 = hcd->driver;
32634#line 2577
32635  __cil_tmp8 = __cil_tmp7->shutdown;
32636#line 2577
32637  __cil_tmp9 = (unsigned long )__cil_tmp8;
32638#line 2577
32639  if (__cil_tmp9 != __cil_tmp6) {
32640    {
32641#line 2578
32642    __cil_tmp10 = hcd->driver;
32643#line 2578
32644    __cil_tmp11 = __cil_tmp10->shutdown;
32645#line 2578
32646    (*__cil_tmp11)(hcd);
32647    }
32648  } else {
32649
32650  }
32651  }
32652#line 2579
32653  return;
32654}
32655}
32656#line 2596 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
32657int usb_mon_register(struct usb_mon_operations *ops ) 
32658{ struct usb_mon_operations *__cil_tmp2 ;
32659  unsigned long __cil_tmp3 ;
32660  unsigned long __cil_tmp4 ;
32661
32662  {
32663  {
32664#line 2599
32665  __cil_tmp2 = (struct usb_mon_operations *)0;
32666#line 2599
32667  __cil_tmp3 = (unsigned long )__cil_tmp2;
32668#line 2599
32669  __cil_tmp4 = (unsigned long )mon_ops;
32670#line 2599
32671  if (__cil_tmp4 != __cil_tmp3) {
32672#line 2600
32673    return (-16);
32674  } else {
32675
32676  }
32677  }
32678#line 2602
32679  mon_ops = ops;
32680#line 2603
32681  __asm__  volatile   ("mfence": : : "memory");
32682#line 2604
32683  return (0);
32684}
32685}
32686#line 2608 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd.c.p"
32687void usb_mon_deregister(void) 
32688{ struct usb_mon_operations *__cil_tmp1 ;
32689  unsigned long __cil_tmp2 ;
32690  unsigned long __cil_tmp3 ;
32691
32692  {
32693  {
32694#line 2611
32695  __cil_tmp1 = (struct usb_mon_operations *)0;
32696#line 2611
32697  __cil_tmp2 = (unsigned long )__cil_tmp1;
32698#line 2611
32699  __cil_tmp3 = (unsigned long )mon_ops;
32700#line 2611
32701  if (__cil_tmp3 == __cil_tmp2) {
32702    {
32703#line 2612
32704    printk("<3>USB: monitor was not registered\n");
32705    }
32706#line 2613
32707    return;
32708  } else {
32709
32710  }
32711  }
32712#line 2615
32713  mon_ops = (struct usb_mon_operations *)0;
32714#line 2616
32715  __asm__  volatile   ("mfence": : : "memory");
32716#line 2617
32717  return;
32718}
32719}
32720#line 422 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
32721__inline static int fls(int x ) 
32722{ int r ;
32723
32724  {
32725#line 426
32726  __asm__  ("bsrl %1,%0\n\tcmovzl %2,%0": "=&r" (r): "rm" (x), "rm" (-1));
32727#line 435
32728  return (r + 1);
32729}
32730}
32731#line 32 "include/linux/log2.h"
32732__inline static int __ilog2_u32(u32 n ) 
32733{ int tmp ;
32734  int __cil_tmp3 ;
32735
32736  {
32737  {
32738#line 34
32739  __cil_tmp3 = (int )n;
32740#line 34
32741  tmp = fls(__cil_tmp3);
32742  }
32743#line 34
32744  return (tmp + -1);
32745}
32746}
32747#line 357 "include/linux/sched.h"
32748extern long schedule_timeout(long  ) ;
32749#line 1331 "include/linux/usb.h"
32750void usb_init_urb(struct urb *urb ) ;
32751#line 1337
32752int usb_unlink_urb(struct urb *urb ) ;
32753#line 1339
32754void usb_poison_urb(struct urb *urb ) ;
32755#line 1340
32756void usb_unpoison_urb(struct urb *urb ) ;
32757#line 1341
32758void usb_kill_anchored_urbs(struct usb_anchor *anchor ) ;
32759#line 1342
32760void usb_poison_anchored_urbs(struct usb_anchor *anchor ) ;
32761#line 1343
32762void usb_unpoison_anchored_urbs(struct usb_anchor *anchor ) ;
32763#line 1344
32764void usb_unlink_anchored_urbs(struct usb_anchor *anchor ) ;
32765#line 1345
32766void usb_anchor_urb(struct urb *urb , struct usb_anchor *anchor ) ;
32767#line 1347
32768int usb_wait_anchor_empty_timeout(struct usb_anchor *anchor , unsigned int timeout ) ;
32769#line 1349
32770struct urb *usb_get_from_anchor(struct usb_anchor *anchor ) ;
32771#line 1350
32772void usb_scuttle_anchored_urbs(struct usb_anchor *anchor ) ;
32773#line 1351
32774int usb_anchor_empty(struct usb_anchor *anchor ) ;
32775#line 1551 "include/linux/usb.h"
32776__inline static struct usb_host_endpoint *usb_pipe_endpoint(struct usb_device *dev ,
32777                                                            unsigned int pipe ) 
32778{ struct usb_host_endpoint **eps ;
32779  unsigned int __cil_tmp4 ;
32780  struct usb_host_endpoint *(*__cil_tmp5)[16U] ;
32781  struct usb_host_endpoint *(*__cil_tmp6)[16U] ;
32782  unsigned int __cil_tmp7 ;
32783  unsigned long __cil_tmp8 ;
32784  unsigned long __cil_tmp9 ;
32785  struct usb_host_endpoint **__cil_tmp10 ;
32786
32787  {
32788  {
32789#line 1554
32790  __cil_tmp4 = pipe & 128U;
32791#line 1554
32792  if (__cil_tmp4 != 0U) {
32793#line 1554
32794    __cil_tmp5 = & dev->ep_in;
32795#line 1554
32796    eps = (struct usb_host_endpoint **)__cil_tmp5;
32797  } else {
32798#line 1554
32799    __cil_tmp6 = & dev->ep_out;
32800#line 1554
32801    eps = (struct usb_host_endpoint **)__cil_tmp6;
32802  }
32803  }
32804  {
32805#line 1555
32806  __cil_tmp7 = pipe >> 15;
32807#line 1555
32808  __cil_tmp8 = (unsigned long )__cil_tmp7;
32809#line 1555
32810  __cil_tmp9 = __cil_tmp8 & 15UL;
32811#line 1555
32812  __cil_tmp10 = eps + __cil_tmp9;
32813#line 1555
32814  return (*__cil_tmp10);
32815  }
32816}
32817}
32818#line 21 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
32819static void urb_destroy(struct kref *kref ) 
32820{ struct urb *urb ;
32821  struct kref  const  *__mptr ;
32822  unsigned int __cil_tmp4 ;
32823  unsigned int __cil_tmp5 ;
32824  void *__cil_tmp6 ;
32825  void const   *__cil_tmp7 ;
32826  void const   *__cil_tmp8 ;
32827
32828  {
32829#line 23
32830  __mptr = (struct kref  const  *)kref;
32831#line 23
32832  urb = (struct urb *)__mptr;
32833  {
32834#line 25
32835  __cil_tmp4 = urb->transfer_flags;
32836#line 25
32837  __cil_tmp5 = __cil_tmp4 & 256U;
32838#line 25
32839  if (__cil_tmp5 != 0U) {
32840    {
32841#line 26
32842    __cil_tmp6 = urb->transfer_buffer;
32843#line 26
32844    __cil_tmp7 = (void const   *)__cil_tmp6;
32845#line 26
32846    kfree(__cil_tmp7);
32847    }
32848  } else {
32849
32850  }
32851  }
32852  {
32853#line 28
32854  __cil_tmp8 = (void const   *)urb;
32855#line 28
32856  kfree(__cil_tmp8);
32857  }
32858#line 29
32859  return;
32860}
32861}
32862#line 45 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
32863void usb_init_urb(struct urb *urb ) 
32864{ struct urb *__cil_tmp2 ;
32865  unsigned long __cil_tmp3 ;
32866  unsigned long __cil_tmp4 ;
32867  void *__cil_tmp5 ;
32868  struct kref *__cil_tmp6 ;
32869  struct list_head *__cil_tmp7 ;
32870
32871  {
32872  {
32873#line 47
32874  __cil_tmp2 = (struct urb *)0;
32875#line 47
32876  __cil_tmp3 = (unsigned long )__cil_tmp2;
32877#line 47
32878  __cil_tmp4 = (unsigned long )urb;
32879#line 47
32880  if (__cil_tmp4 != __cil_tmp3) {
32881    {
32882#line 48
32883    __cil_tmp5 = (void *)urb;
32884#line 48
32885    memset(__cil_tmp5, 0, 192UL);
32886#line 49
32887    __cil_tmp6 = & urb->kref;
32888#line 49
32889    kref_init(__cil_tmp6);
32890#line 50
32891    __cil_tmp7 = & urb->anchor_list;
32892#line 50
32893    INIT_LIST_HEAD(__cil_tmp7);
32894    }
32895  } else {
32896
32897  }
32898  }
32899#line 52
32900  return;
32901}
32902}
32903#line 71 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
32904struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) 
32905{ struct urb *urb ;
32906  void *tmp ;
32907  unsigned long __cil_tmp5 ;
32908  unsigned long __cil_tmp6 ;
32909  unsigned long __cil_tmp7 ;
32910  struct urb *__cil_tmp8 ;
32911  unsigned long __cil_tmp9 ;
32912  unsigned long __cil_tmp10 ;
32913
32914  {
32915  {
32916#line 75
32917  __cil_tmp5 = (unsigned long )iso_packets;
32918#line 75
32919  __cil_tmp6 = __cil_tmp5 + 12UL;
32920#line 75
32921  __cil_tmp7 = __cil_tmp6 * 16UL;
32922#line 75
32923  tmp = kmalloc(__cil_tmp7, mem_flags);
32924#line 75
32925  urb = (struct urb *)tmp;
32926  }
32927  {
32928#line 78
32929  __cil_tmp8 = (struct urb *)0;
32930#line 78
32931  __cil_tmp9 = (unsigned long )__cil_tmp8;
32932#line 78
32933  __cil_tmp10 = (unsigned long )urb;
32934#line 78
32935  if (__cil_tmp10 == __cil_tmp9) {
32936    {
32937#line 79
32938    printk("<3>alloc_urb: kmalloc failed\n");
32939    }
32940#line 80
32941    return ((struct urb *)0);
32942  } else {
32943
32944  }
32945  }
32946  {
32947#line 82
32948  usb_init_urb(urb);
32949  }
32950#line 83
32951  return (urb);
32952}
32953}
32954#line 97 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
32955void usb_free_urb(struct urb *urb ) 
32956{ struct urb *__cil_tmp2 ;
32957  unsigned long __cil_tmp3 ;
32958  unsigned long __cil_tmp4 ;
32959  struct kref *__cil_tmp5 ;
32960
32961  {
32962  {
32963#line 99
32964  __cil_tmp2 = (struct urb *)0;
32965#line 99
32966  __cil_tmp3 = (unsigned long )__cil_tmp2;
32967#line 99
32968  __cil_tmp4 = (unsigned long )urb;
32969#line 99
32970  if (__cil_tmp4 != __cil_tmp3) {
32971    {
32972#line 100
32973    __cil_tmp5 = & urb->kref;
32974#line 100
32975    kref_put(__cil_tmp5, & urb_destroy);
32976    }
32977  } else {
32978
32979  }
32980  }
32981#line 101
32982  return;
32983}
32984}
32985#line 114 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
32986struct urb *usb_get_urb(struct urb *urb ) 
32987{ struct urb *__cil_tmp2 ;
32988  unsigned long __cil_tmp3 ;
32989  unsigned long __cil_tmp4 ;
32990  struct kref *__cil_tmp5 ;
32991
32992  {
32993  {
32994#line 116
32995  __cil_tmp2 = (struct urb *)0;
32996#line 116
32997  __cil_tmp3 = (unsigned long )__cil_tmp2;
32998#line 116
32999  __cil_tmp4 = (unsigned long )urb;
33000#line 116
33001  if (__cil_tmp4 != __cil_tmp3) {
33002    {
33003#line 117
33004    __cil_tmp5 = & urb->kref;
33005#line 117
33006    kref_get(__cil_tmp5);
33007    }
33008  } else {
33009
33010  }
33011  }
33012#line 118
33013  return (urb);
33014}
33015}
33016#line 130 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
33017void usb_anchor_urb(struct urb *urb , struct usb_anchor *anchor ) 
33018{ unsigned long flags ;
33019  raw_spinlock_t *tmp ;
33020  long tmp___0 ;
33021  spinlock_t *__cil_tmp6 ;
33022  struct list_head *__cil_tmp7 ;
33023  struct list_head *__cil_tmp8 ;
33024  unsigned char *__cil_tmp9 ;
33025  unsigned char *__cil_tmp10 ;
33026  unsigned char __cil_tmp11 ;
33027  long __cil_tmp12 ;
33028  long __cil_tmp13 ;
33029  atomic_t *__cil_tmp14 ;
33030  spinlock_t *__cil_tmp15 ;
33031
33032  {
33033  {
33034#line 134
33035  __cil_tmp6 = & anchor->lock;
33036#line 134
33037  tmp = spinlock_check(__cil_tmp6);
33038#line 134
33039  flags = _raw_spin_lock_irqsave(tmp);
33040#line 135
33041  usb_get_urb(urb);
33042#line 136
33043  __cil_tmp7 = & urb->anchor_list;
33044#line 136
33045  __cil_tmp8 = & anchor->urb_list;
33046#line 136
33047  list_add_tail(__cil_tmp7, __cil_tmp8);
33048#line 137
33049  urb->anchor = anchor;
33050#line 139
33051  __cil_tmp9 = (unsigned char *)anchor;
33052#line 139
33053  __cil_tmp10 = __cil_tmp9 + 176UL;
33054#line 139
33055  __cil_tmp11 = *__cil_tmp10;
33056#line 139
33057  __cil_tmp12 = (long )__cil_tmp11;
33058#line 139
33059  __cil_tmp13 = __cil_tmp12 & 1L;
33060#line 139
33061  tmp___0 = __builtin_expect(__cil_tmp13, 0L);
33062  }
33063#line 139
33064  if (tmp___0 != 0L) {
33065    {
33066#line 140
33067    __cil_tmp14 = & urb->reject;
33068#line 140
33069    atomic_inc(__cil_tmp14);
33070    }
33071  } else {
33072
33073  }
33074  {
33075#line 143
33076  __cil_tmp15 = & anchor->lock;
33077#line 143
33078  spin_unlock_irqrestore(__cil_tmp15, flags);
33079  }
33080#line 144
33081  return;
33082}
33083}
33084#line 148 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
33085static void __usb_unanchor_urb(struct urb *urb , struct usb_anchor *anchor ) 
33086{ int tmp ;
33087  struct list_head *__cil_tmp4 ;
33088  struct list_head *__cil_tmp5 ;
33089  struct list_head  const  *__cil_tmp6 ;
33090  wait_queue_head_t *__cil_tmp7 ;
33091  void *__cil_tmp8 ;
33092
33093  {
33094  {
33095#line 150
33096  urb->anchor = (struct usb_anchor *)0;
33097#line 151
33098  __cil_tmp4 = & urb->anchor_list;
33099#line 151
33100  list_del(__cil_tmp4);
33101#line 152
33102  usb_free_urb(urb);
33103#line 153
33104  __cil_tmp5 = & anchor->urb_list;
33105#line 153
33106  __cil_tmp6 = (struct list_head  const  *)__cil_tmp5;
33107#line 153
33108  tmp = list_empty(__cil_tmp6);
33109  }
33110#line 153
33111  if (tmp != 0) {
33112    {
33113#line 154
33114    __cil_tmp7 = & anchor->wait;
33115#line 154
33116    __cil_tmp8 = (void *)0;
33117#line 154
33118    __wake_up(__cil_tmp7, 3U, 1, __cil_tmp8);
33119    }
33120  } else {
33121
33122  }
33123#line 155
33124  return;
33125}
33126}
33127#line 163 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
33128void usb_unanchor_urb(struct urb *urb ) 
33129{ unsigned long flags ;
33130  struct usb_anchor *anchor ;
33131  raw_spinlock_t *tmp ;
33132  long tmp___0 ;
33133  struct urb *__cil_tmp6 ;
33134  unsigned long __cil_tmp7 ;
33135  unsigned long __cil_tmp8 ;
33136  struct usb_anchor *__cil_tmp9 ;
33137  unsigned long __cil_tmp10 ;
33138  unsigned long __cil_tmp11 ;
33139  spinlock_t *__cil_tmp12 ;
33140  unsigned long __cil_tmp13 ;
33141  struct usb_anchor *__cil_tmp14 ;
33142  unsigned long __cil_tmp15 ;
33143  int __cil_tmp16 ;
33144  long __cil_tmp17 ;
33145  spinlock_t *__cil_tmp18 ;
33146
33147  {
33148  {
33149#line 168
33150  __cil_tmp6 = (struct urb *)0;
33151#line 168
33152  __cil_tmp7 = (unsigned long )__cil_tmp6;
33153#line 168
33154  __cil_tmp8 = (unsigned long )urb;
33155#line 168
33156  if (__cil_tmp8 == __cil_tmp7) {
33157#line 169
33158    return;
33159  } else {
33160
33161  }
33162  }
33163#line 171
33164  anchor = urb->anchor;
33165  {
33166#line 172
33167  __cil_tmp9 = (struct usb_anchor *)0;
33168#line 172
33169  __cil_tmp10 = (unsigned long )__cil_tmp9;
33170#line 172
33171  __cil_tmp11 = (unsigned long )anchor;
33172#line 172
33173  if (__cil_tmp11 == __cil_tmp10) {
33174#line 173
33175    return;
33176  } else {
33177
33178  }
33179  }
33180  {
33181#line 175
33182  __cil_tmp12 = & anchor->lock;
33183#line 175
33184  tmp = spinlock_check(__cil_tmp12);
33185#line 175
33186  flags = _raw_spin_lock_irqsave(tmp);
33187#line 181
33188  __cil_tmp13 = (unsigned long )anchor;
33189#line 181
33190  __cil_tmp14 = urb->anchor;
33191#line 181
33192  __cil_tmp15 = (unsigned long )__cil_tmp14;
33193#line 181
33194  __cil_tmp16 = __cil_tmp15 == __cil_tmp13;
33195#line 181
33196  __cil_tmp17 = (long )__cil_tmp16;
33197#line 181
33198  tmp___0 = __builtin_expect(__cil_tmp17, 1L);
33199  }
33200#line 181
33201  if (tmp___0 != 0L) {
33202    {
33203#line 182
33204    __usb_unanchor_urb(urb, anchor);
33205    }
33206  } else {
33207
33208  }
33209  {
33210#line 183
33211  __cil_tmp18 = & anchor->lock;
33212#line 183
33213  spin_unlock_irqrestore(__cil_tmp18, flags);
33214  }
33215#line 184
33216  return;
33217}
33218}
33219#line 308 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
33220int usb_submit_urb(struct urb *urb , gfp_t mem_flags ) 
33221{ int xfertype ;
33222  int max ;
33223  struct usb_device *dev ;
33224  struct usb_host_endpoint *ep ;
33225  int is_out ;
33226  struct usb_ctrlrequest *setup ;
33227  int tmp ;
33228  unsigned int tmp___0 ;
33229  char *tmp___1 ;
33230  int tmp___2 ;
33231  int n ;
33232  int len ;
33233  int burst ;
33234  int mult ;
33235  int mult___0 ;
33236  unsigned int orig_flags ;
33237  unsigned int allowed ;
33238  int pipetypes[4U] ;
33239  int _min1 ;
33240  int _min2 ;
33241  int tmp___3 ;
33242  int tmp___4 ;
33243  int tmp___5 ;
33244  struct urb *__cil_tmp26 ;
33245  unsigned long __cil_tmp27 ;
33246  unsigned long __cil_tmp28 ;
33247  void *__cil_tmp29 ;
33248  unsigned long __cil_tmp30 ;
33249  void *__cil_tmp31 ;
33250  unsigned long __cil_tmp32 ;
33251  void (*__cil_tmp33)(struct urb * ) ;
33252  unsigned long __cil_tmp34 ;
33253  void (*__cil_tmp35)(struct urb * ) ;
33254  unsigned long __cil_tmp36 ;
33255  struct usb_device *__cil_tmp37 ;
33256  unsigned long __cil_tmp38 ;
33257  unsigned long __cil_tmp39 ;
33258  enum usb_device_state __cil_tmp40 ;
33259  unsigned int __cil_tmp41 ;
33260  unsigned int __cil_tmp42 ;
33261  struct usb_host_endpoint *__cil_tmp43 ;
33262  unsigned long __cil_tmp44 ;
33263  unsigned long __cil_tmp45 ;
33264  struct usb_endpoint_descriptor *__cil_tmp46 ;
33265  struct usb_endpoint_descriptor  const  *__cil_tmp47 ;
33266  unsigned char *__cil_tmp48 ;
33267  struct usb_ctrlrequest *__cil_tmp49 ;
33268  unsigned long __cil_tmp50 ;
33269  unsigned long __cil_tmp51 ;
33270  __u8 __cil_tmp52 ;
33271  signed char __cil_tmp53 ;
33272  int __cil_tmp54 ;
33273  __le16 __cil_tmp55 ;
33274  unsigned int __cil_tmp56 ;
33275  struct usb_endpoint_descriptor *__cil_tmp57 ;
33276  struct usb_endpoint_descriptor  const  *__cil_tmp58 ;
33277  unsigned int __cil_tmp59 ;
33278  unsigned int __cil_tmp60 ;
33279  enum usb_device_state __cil_tmp61 ;
33280  unsigned int __cil_tmp62 ;
33281  __le16 __cil_tmp63 ;
33282  struct usb_endpoint_descriptor *__cil_tmp64 ;
33283  struct usb_endpoint_descriptor  const  *__cil_tmp65 ;
33284  struct device *__cil_tmp66 ;
33285  struct device  const  *__cil_tmp67 ;
33286  enum usb_device_speed __cil_tmp68 ;
33287  unsigned int __cil_tmp69 ;
33288  __u8 __cil_tmp70 ;
33289  int __cil_tmp71 ;
33290  __u8 __cil_tmp72 ;
33291  int __cil_tmp73 ;
33292  int __cil_tmp74 ;
33293  enum usb_device_speed __cil_tmp75 ;
33294  unsigned int __cil_tmp76 ;
33295  int __cil_tmp77 ;
33296  int __cil_tmp78 ;
33297  int __cil_tmp79 ;
33298  unsigned int __cil_tmp80 ;
33299  int __cil_tmp81 ;
33300  u32 __cil_tmp82 ;
33301  int __cil_tmp83 ;
33302  unsigned int __cil_tmp84 ;
33303  unsigned int __cil_tmp85 ;
33304  unsigned int __cil_tmp86 ;
33305  struct device *__cil_tmp87 ;
33306  struct device  const  *__cil_tmp88 ;
33307  unsigned int __cil_tmp89 ;
33308  unsigned int __cil_tmp90 ;
33309  unsigned int __cil_tmp91 ;
33310  unsigned int __cil_tmp92 ;
33311  struct device *__cil_tmp93 ;
33312  struct device  const  *__cil_tmp94 ;
33313  unsigned int __cil_tmp95 ;
33314  enum usb_device_speed __cil_tmp96 ;
33315  unsigned int __cil_tmp97 ;
33316  int __cil_tmp98 ;
33317  int __cil_tmp99 ;
33318  int __cil_tmp100 ;
33319  enum usb_device_speed __cil_tmp101 ;
33320  unsigned int __cil_tmp102 ;
33321  int __cil_tmp103 ;
33322  enum usb_device_speed __cil_tmp104 ;
33323  unsigned int __cil_tmp105 ;
33324  int __cil_tmp106 ;
33325  enum usb_device_speed __cil_tmp107 ;
33326  unsigned int __cil_tmp108 ;
33327  int __cil_tmp109 ;
33328  enum usb_device_speed __cil_tmp110 ;
33329  unsigned int __cil_tmp111 ;
33330  int __cil_tmp112 ;
33331  enum usb_device_speed __cil_tmp113 ;
33332  unsigned int __cil_tmp114 ;
33333  int __cil_tmp115 ;
33334  int __cil_tmp116 ;
33335  int __cil_tmp117 ;
33336  int __cil_tmp118 ;
33337  int __cil_tmp119 ;
33338  int __cil_tmp120 ;
33339  enum usb_device_speed __cil_tmp121 ;
33340  unsigned int __cil_tmp122 ;
33341  int __cil_tmp123 ;
33342  u32 __cil_tmp124 ;
33343
33344  {
33345  {
33346#line 315
33347  __cil_tmp26 = (struct urb *)0;
33348#line 315
33349  __cil_tmp27 = (unsigned long )__cil_tmp26;
33350#line 315
33351  __cil_tmp28 = (unsigned long )urb;
33352#line 315
33353  if (__cil_tmp28 == __cil_tmp27) {
33354#line 316
33355    return (-22);
33356  } else {
33357    {
33358#line 315
33359    __cil_tmp29 = (void *)0;
33360#line 315
33361    __cil_tmp30 = (unsigned long )__cil_tmp29;
33362#line 315
33363    __cil_tmp31 = urb->hcpriv;
33364#line 315
33365    __cil_tmp32 = (unsigned long )__cil_tmp31;
33366#line 315
33367    if (__cil_tmp32 != __cil_tmp30) {
33368#line 316
33369      return (-22);
33370    } else {
33371      {
33372#line 315
33373      __cil_tmp33 = (void (*)(struct urb * ))0;
33374#line 315
33375      __cil_tmp34 = (unsigned long )__cil_tmp33;
33376#line 315
33377      __cil_tmp35 = urb->complete;
33378#line 315
33379      __cil_tmp36 = (unsigned long )__cil_tmp35;
33380#line 315
33381      if (__cil_tmp36 == __cil_tmp34) {
33382#line 316
33383        return (-22);
33384      } else {
33385
33386      }
33387      }
33388    }
33389    }
33390  }
33391  }
33392#line 317
33393  dev = urb->dev;
33394  {
33395#line 318
33396  __cil_tmp37 = (struct usb_device *)0;
33397#line 318
33398  __cil_tmp38 = (unsigned long )__cil_tmp37;
33399#line 318
33400  __cil_tmp39 = (unsigned long )dev;
33401#line 318
33402  if (__cil_tmp39 == __cil_tmp38) {
33403#line 319
33404    return (-19);
33405  } else {
33406    {
33407#line 318
33408    __cil_tmp40 = dev->state;
33409#line 318
33410    __cil_tmp41 = (unsigned int )__cil_tmp40;
33411#line 318
33412    if (__cil_tmp41 <= 3U) {
33413#line 319
33414      return (-19);
33415    } else {
33416
33417    }
33418    }
33419  }
33420  }
33421  {
33422#line 325
33423  __cil_tmp42 = urb->pipe;
33424#line 325
33425  ep = usb_pipe_endpoint(dev, __cil_tmp42);
33426  }
33427  {
33428#line 326
33429  __cil_tmp43 = (struct usb_host_endpoint *)0;
33430#line 326
33431  __cil_tmp44 = (unsigned long )__cil_tmp43;
33432#line 326
33433  __cil_tmp45 = (unsigned long )ep;
33434#line 326
33435  if (__cil_tmp45 == __cil_tmp44) {
33436#line 327
33437    return (-2);
33438  } else {
33439
33440  }
33441  }
33442  {
33443#line 329
33444  urb->ep = ep;
33445#line 330
33446  urb->status = -115;
33447#line 331
33448  urb->actual_length = 0U;
33449#line 336
33450  __cil_tmp46 = & ep->desc;
33451#line 336
33452  __cil_tmp47 = (struct usb_endpoint_descriptor  const  *)__cil_tmp46;
33453#line 336
33454  xfertype = usb_endpoint_type(__cil_tmp47);
33455  }
33456#line 337
33457  if (xfertype == 0) {
33458#line 338
33459    __cil_tmp48 = urb->setup_packet;
33460#line 338
33461    setup = (struct usb_ctrlrequest *)__cil_tmp48;
33462    {
33463#line 341
33464    __cil_tmp49 = (struct usb_ctrlrequest *)0;
33465#line 341
33466    __cil_tmp50 = (unsigned long )__cil_tmp49;
33467#line 341
33468    __cil_tmp51 = (unsigned long )setup;
33469#line 341
33470    if (__cil_tmp51 == __cil_tmp50) {
33471#line 342
33472      return (-8);
33473    } else {
33474
33475    }
33476    }
33477    {
33478#line 343
33479    __cil_tmp52 = setup->bRequestType;
33480#line 343
33481    __cil_tmp53 = (signed char )__cil_tmp52;
33482#line 343
33483    __cil_tmp54 = (int )__cil_tmp53;
33484#line 343
33485    if (__cil_tmp54 >= 0) {
33486#line 343
33487      tmp = 1;
33488    } else {
33489      {
33490#line 343
33491      __cil_tmp55 = setup->wLength;
33492#line 343
33493      __cil_tmp56 = (unsigned int )__cil_tmp55;
33494#line 343
33495      if (__cil_tmp56 == 0U) {
33496#line 343
33497        tmp = 1;
33498      } else {
33499#line 343
33500        tmp = 0;
33501      }
33502      }
33503    }
33504    }
33505#line 343
33506    is_out = tmp;
33507  } else {
33508    {
33509#line 346
33510    __cil_tmp57 = & ep->desc;
33511#line 346
33512    __cil_tmp58 = (struct usb_endpoint_descriptor  const  *)__cil_tmp57;
33513#line 346
33514    is_out = usb_endpoint_dir_out(__cil_tmp58);
33515    }
33516  }
33517#line 350
33518  __cil_tmp59 = urb->transfer_flags;
33519#line 350
33520  urb->transfer_flags = __cil_tmp59 & 4286643711U;
33521#line 354
33522  if (is_out != 0) {
33523#line 354
33524    tmp___0 = 0U;
33525  } else {
33526#line 354
33527    tmp___0 = 512U;
33528  }
33529#line 354
33530  __cil_tmp60 = urb->transfer_flags;
33531#line 354
33532  urb->transfer_flags = __cil_tmp60 | tmp___0;
33533#line 356
33534  if (xfertype != 0) {
33535    {
33536#line 356
33537    __cil_tmp61 = dev->state;
33538#line 356
33539    __cil_tmp62 = (unsigned int )__cil_tmp61;
33540#line 356
33541    if (__cil_tmp62 <= 6U) {
33542#line 358
33543      return (-19);
33544    } else {
33545
33546    }
33547    }
33548  } else {
33549
33550  }
33551#line 360
33552  __cil_tmp63 = ep->desc.wMaxPacketSize;
33553#line 360
33554  max = (int )__cil_tmp63;
33555#line 361
33556  if (max <= 0) {
33557#line 362
33558    if (is_out != 0) {
33559#line 362
33560      tmp___1 = (char *)"out";
33561    } else {
33562#line 362
33563      tmp___1 = (char *)"in";
33564    }
33565    {
33566#line 362
33567    __cil_tmp64 = & ep->desc;
33568#line 362
33569    __cil_tmp65 = (struct usb_endpoint_descriptor  const  *)__cil_tmp64;
33570#line 362
33571    tmp___2 = usb_endpoint_num(__cil_tmp65);
33572#line 362
33573    __cil_tmp66 = & dev->dev;
33574#line 362
33575    __cil_tmp67 = (struct device  const  *)__cil_tmp66;
33576#line 362
33577    dev_printk("<7>", __cil_tmp67, "bogus endpoint ep%d%s in %s (bad maxpacket %d)\n",
33578               tmp___2, tmp___1, "usb_submit_urb", max);
33579    }
33580#line 366
33581    return (-90);
33582  } else {
33583
33584  }
33585#line 373
33586  if (xfertype == 1) {
33587    {
33588#line 379
33589    __cil_tmp68 = dev->speed;
33590#line 379
33591    __cil_tmp69 = (unsigned int )__cil_tmp68;
33592#line 379
33593    if (__cil_tmp69 == 5U) {
33594#line 380
33595      __cil_tmp70 = ep->ss_ep_comp.bMaxBurst;
33596#line 380
33597      __cil_tmp71 = (int )__cil_tmp70;
33598#line 380
33599      burst = __cil_tmp71 + 1;
33600#line 381
33601      __cil_tmp72 = ep->ss_ep_comp.bmAttributes;
33602#line 381
33603      __cil_tmp73 = (int )__cil_tmp72;
33604#line 381
33605      __cil_tmp74 = __cil_tmp73 & 3;
33606#line 381
33607      mult = __cil_tmp74 + 1;
33608#line 382
33609      max = max * burst;
33610#line 383
33611      max = max * mult;
33612    } else {
33613
33614    }
33615    }
33616    {
33617#line 387
33618    __cil_tmp75 = dev->speed;
33619#line 387
33620    __cil_tmp76 = (unsigned int )__cil_tmp75;
33621#line 387
33622    if (__cil_tmp76 == 3U) {
33623#line 388
33624      __cil_tmp77 = max >> 11;
33625#line 388
33626      __cil_tmp78 = __cil_tmp77 & 3;
33627#line 388
33628      mult___0 = __cil_tmp78 + 1;
33629#line 389
33630      max = max & 2047;
33631#line 390
33632      max = max * mult___0;
33633    } else {
33634
33635    }
33636    }
33637    {
33638#line 393
33639    __cil_tmp79 = urb->number_of_packets;
33640#line 393
33641    if (__cil_tmp79 <= 0) {
33642#line 394
33643      return (-22);
33644    } else {
33645
33646    }
33647    }
33648#line 395
33649    n = 0;
33650#line 395
33651    goto ldv_24166;
33652    ldv_24165: 
33653#line 396
33654    __cil_tmp80 = urb->iso_frame_desc[n].length;
33655#line 396
33656    len = (int )__cil_tmp80;
33657#line 397
33658    if (len < 0) {
33659#line 398
33660      return (-90);
33661    } else
33662#line 397
33663    if (len > max) {
33664#line 398
33665      return (-90);
33666    } else {
33667
33668    }
33669#line 399
33670    urb->iso_frame_desc[n].status = -18;
33671#line 400
33672    urb->iso_frame_desc[n].actual_length = 0U;
33673#line 395
33674    n = n + 1;
33675    ldv_24166: ;
33676    {
33677#line 395
33678    __cil_tmp81 = urb->number_of_packets;
33679#line 395
33680    if (__cil_tmp81 > n) {
33681#line 396
33682      goto ldv_24165;
33683    } else {
33684#line 398
33685      goto ldv_24167;
33686    }
33687    }
33688    ldv_24167: ;
33689  } else {
33690
33691  }
33692  {
33693#line 405
33694  __cil_tmp82 = urb->transfer_buffer_length;
33695#line 405
33696  __cil_tmp83 = (int )__cil_tmp82;
33697#line 405
33698  if (__cil_tmp83 < 0) {
33699#line 406
33700    return (-90);
33701  } else {
33702
33703  }
33704  }
33705#line 413
33706  orig_flags = urb->transfer_flags;
33707#line 415
33708  pipetypes[0] = 2;
33709#line 415
33710  pipetypes[1] = 0;
33711#line 415
33712  pipetypes[2] = 3;
33713#line 415
33714  pipetypes[3] = 1;
33715  {
33716#line 420
33717  __cil_tmp84 = (unsigned int )pipetypes[xfertype];
33718#line 420
33719  __cil_tmp85 = urb->pipe;
33720#line 420
33721  __cil_tmp86 = __cil_tmp85 >> 30;
33722#line 420
33723  if (__cil_tmp86 != __cil_tmp84) {
33724    {
33725#line 421
33726    __cil_tmp87 = & dev->dev;
33727#line 421
33728    __cil_tmp88 = (struct device  const  *)__cil_tmp87;
33729#line 421
33730    __cil_tmp89 = urb->pipe;
33731#line 421
33732    __cil_tmp90 = __cil_tmp89 >> 30;
33733#line 421
33734    dev_err(__cil_tmp88, "BOGUS urb xfer, pipe %x != type %x\n", __cil_tmp90, pipetypes[xfertype]);
33735    }
33736#line 423
33737    return (-32);
33738  } else {
33739
33740  }
33741  }
33742#line 427
33743  allowed = 900U;
33744#line 430
33745  if (xfertype == 2) {
33746#line 430
33747    goto case_2;
33748  } else
33749#line 434
33750  if (xfertype == 0) {
33751#line 434
33752    goto case_0;
33753  } else
33754#line 441
33755  if (xfertype == 1) {
33756#line 441
33757    goto case_1;
33758  } else {
33759#line 437
33760    goto switch_default;
33761#line 429
33762    if (0) {
33763      case_2: ;
33764#line 431
33765      if (is_out != 0) {
33766#line 432
33767        allowed = allowed | 64U;
33768      } else {
33769
33770      }
33771      case_0: 
33772#line 435
33773      allowed = allowed | 32U;
33774      switch_default: ;
33775#line 438
33776      if (is_out == 0) {
33777#line 439
33778        allowed = allowed | 1U;
33779      } else {
33780
33781      }
33782#line 440
33783      goto ldv_24174;
33784      case_1: 
33785#line 442
33786      allowed = allowed | 2U;
33787#line 443
33788      goto ldv_24174;
33789    } else {
33790
33791    }
33792  }
33793  ldv_24174: 
33794#line 445
33795  __cil_tmp91 = urb->transfer_flags;
33796#line 445
33797  urb->transfer_flags = __cil_tmp91 & allowed;
33798  {
33799#line 448
33800  __cil_tmp92 = urb->transfer_flags;
33801#line 448
33802  if (__cil_tmp92 != orig_flags) {
33803    {
33804#line 449
33805    __cil_tmp93 = & dev->dev;
33806#line 449
33807    __cil_tmp94 = (struct device  const  *)__cil_tmp93;
33808#line 449
33809    __cil_tmp95 = urb->transfer_flags;
33810#line 449
33811    dev_err(__cil_tmp94, "BOGUS urb flags, %x --> %x\n", orig_flags, __cil_tmp95);
33812    }
33813#line 451
33814    return (-22);
33815  } else {
33816
33817  }
33818  }
33819#line 464
33820  if (xfertype == 1) {
33821#line 464
33822    goto case_1___0;
33823  } else
33824#line 465
33825  if (xfertype == 3) {
33826#line 465
33827    goto case_3;
33828  } else
33829#line 463
33830  if (0) {
33831    case_1___0: ;
33832    case_3: ;
33833    {
33834#line 468
33835    __cil_tmp96 = dev->speed;
33836#line 468
33837    __cil_tmp97 = (unsigned int )__cil_tmp96;
33838#line 468
33839    __cil_tmp98 = (int )__cil_tmp97;
33840#line 468
33841    if (__cil_tmp98 == 4) {
33842#line 468
33843      goto case_4;
33844    } else {
33845#line 472
33846      goto switch_default___0;
33847#line 467
33848      if (0) {
33849        case_4: ;
33850        {
33851#line 469
33852        __cil_tmp99 = urb->interval;
33853#line 469
33854        if (__cil_tmp99 <= 5) {
33855#line 470
33856          return (-22);
33857        } else {
33858
33859        }
33860        }
33861#line 471
33862        goto ldv_24179;
33863        switch_default___0: ;
33864        {
33865#line 473
33866        __cil_tmp100 = urb->interval;
33867#line 473
33868        if (__cil_tmp100 <= 0) {
33869#line 474
33870          return (-22);
33871        } else {
33872
33873        }
33874        }
33875#line 475
33876        goto ldv_24179;
33877      } else {
33878
33879      }
33880    }
33881    }
33882    ldv_24179: ;
33883    {
33884#line 479
33885    __cil_tmp101 = dev->speed;
33886#line 479
33887    __cil_tmp102 = (unsigned int )__cil_tmp101;
33888#line 479
33889    __cil_tmp103 = (int )__cil_tmp102;
33890#line 479
33891    if (__cil_tmp103 == 5) {
33892#line 479
33893      goto case_5;
33894    } else {
33895      {
33896#line 485
33897      __cil_tmp104 = dev->speed;
33898#line 485
33899      __cil_tmp105 = (unsigned int )__cil_tmp104;
33900#line 485
33901      __cil_tmp106 = (int )__cil_tmp105;
33902#line 485
33903      if (__cil_tmp106 == 4) {
33904#line 485
33905        goto case_4___0;
33906      } else {
33907        {
33908#line 489
33909        __cil_tmp107 = dev->speed;
33910#line 489
33911        __cil_tmp108 = (unsigned int )__cil_tmp107;
33912#line 489
33913        __cil_tmp109 = (int )__cil_tmp108;
33914#line 489
33915        if (__cil_tmp109 == 3) {
33916#line 489
33917          goto case_3___0;
33918        } else {
33919          {
33920#line 495
33921          __cil_tmp110 = dev->speed;
33922#line 495
33923          __cil_tmp111 = (unsigned int )__cil_tmp110;
33924#line 495
33925          __cil_tmp112 = (int )__cil_tmp111;
33926#line 495
33927          if (__cil_tmp112 == 2) {
33928#line 495
33929            goto case_2___0;
33930          } else {
33931            {
33932#line 496
33933            __cil_tmp113 = dev->speed;
33934#line 496
33935            __cil_tmp114 = (unsigned int )__cil_tmp113;
33936#line 496
33937            __cil_tmp115 = (int )__cil_tmp114;
33938#line 496
33939            if (__cil_tmp115 == 1) {
33940#line 496
33941              goto case_1___1;
33942            } else {
33943#line 509
33944              goto switch_default___1;
33945#line 478
33946              if (0) {
33947                case_5: ;
33948                {
33949#line 481
33950                __cil_tmp116 = urb->interval;
33951#line 481
33952                if (__cil_tmp116 > 32768) {
33953#line 482
33954                  return (-22);
33955                } else {
33956
33957                }
33958                }
33959#line 483
33960                max = 32768;
33961#line 484
33962                goto ldv_24182;
33963                case_4___0: ;
33964                {
33965#line 486
33966                __cil_tmp117 = urb->interval;
33967#line 486
33968                if (__cil_tmp117 > 16) {
33969#line 487
33970                  return (-22);
33971                } else {
33972
33973                }
33974                }
33975#line 488
33976                goto ldv_24182;
33977                case_3___0: ;
33978                {
33979#line 491
33980                __cil_tmp118 = urb->interval;
33981#line 491
33982                if (__cil_tmp118 > 8192) {
33983#line 492
33984                  urb->interval = 8192;
33985                } else {
33986
33987                }
33988                }
33989#line 493
33990                max = 8192;
33991#line 494
33992                goto ldv_24182;
33993                case_2___0: ;
33994                case_1___1: ;
33995#line 497
33996                if (xfertype == 3) {
33997                  {
33998#line 498
33999                  __cil_tmp119 = urb->interval;
34000#line 498
34001                  if (__cil_tmp119 > 255) {
34002#line 499
34003                    return (-22);
34004                  } else {
34005
34006                  }
34007                  }
34008#line 501
34009                  max = 128;
34010                } else {
34011                  {
34012#line 503
34013                  __cil_tmp120 = urb->interval;
34014#line 503
34015                  if (__cil_tmp120 > 1024) {
34016#line 504
34017                    urb->interval = 1024;
34018                  } else {
34019
34020                  }
34021                  }
34022#line 506
34023                  max = 1024;
34024                }
34025#line 508
34026                goto ldv_24182;
34027                switch_default___1: ;
34028#line 510
34029                return (-22);
34030              } else {
34031
34032              }
34033            }
34034            }
34035          }
34036          }
34037        }
34038        }
34039      }
34040      }
34041    }
34042    }
34043    ldv_24182: ;
34044    {
34045#line 512
34046    __cil_tmp121 = dev->speed;
34047#line 512
34048    __cil_tmp122 = (unsigned int )__cil_tmp121;
34049#line 512
34050    if (__cil_tmp122 != 4U) {
34051      {
34052#line 514
34053      _min1 = max;
34054#line 514
34055      __cil_tmp123 = urb->interval;
34056#line 514
34057      __cil_tmp124 = (u32 )__cil_tmp123;
34058#line 514
34059      tmp___3 = __ilog2_u32(__cil_tmp124);
34060#line 514
34061      _min2 = 1 << tmp___3;
34062      }
34063#line 514
34064      if (_min1 < _min2) {
34065#line 514
34066        tmp___4 = _min1;
34067      } else {
34068#line 514
34069        tmp___4 = _min2;
34070      }
34071#line 514
34072      urb->interval = tmp___4;
34073    } else {
34074
34075    }
34076    }
34077  } else {
34078
34079  }
34080  {
34081#line 518
34082  tmp___5 = usb_hcd_submit_urb(urb, mem_flags);
34083  }
34084#line 518
34085  return (tmp___5);
34086}
34087}
34088#line 587 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34089int usb_unlink_urb(struct urb *urb ) 
34090{ int tmp ;
34091  struct urb *__cil_tmp3 ;
34092  unsigned long __cil_tmp4 ;
34093  unsigned long __cil_tmp5 ;
34094  struct usb_device *__cil_tmp6 ;
34095  unsigned long __cil_tmp7 ;
34096  struct usb_device *__cil_tmp8 ;
34097  unsigned long __cil_tmp9 ;
34098  struct usb_host_endpoint *__cil_tmp10 ;
34099  unsigned long __cil_tmp11 ;
34100  struct usb_host_endpoint *__cil_tmp12 ;
34101  unsigned long __cil_tmp13 ;
34102
34103  {
34104  {
34105#line 589
34106  __cil_tmp3 = (struct urb *)0;
34107#line 589
34108  __cil_tmp4 = (unsigned long )__cil_tmp3;
34109#line 589
34110  __cil_tmp5 = (unsigned long )urb;
34111#line 589
34112  if (__cil_tmp5 == __cil_tmp4) {
34113#line 590
34114    return (-22);
34115  } else {
34116
34117  }
34118  }
34119  {
34120#line 591
34121  __cil_tmp6 = (struct usb_device *)0;
34122#line 591
34123  __cil_tmp7 = (unsigned long )__cil_tmp6;
34124#line 591
34125  __cil_tmp8 = urb->dev;
34126#line 591
34127  __cil_tmp9 = (unsigned long )__cil_tmp8;
34128#line 591
34129  if (__cil_tmp9 == __cil_tmp7) {
34130#line 592
34131    return (-19);
34132  } else {
34133
34134  }
34135  }
34136  {
34137#line 593
34138  __cil_tmp10 = (struct usb_host_endpoint *)0;
34139#line 593
34140  __cil_tmp11 = (unsigned long )__cil_tmp10;
34141#line 593
34142  __cil_tmp12 = urb->ep;
34143#line 593
34144  __cil_tmp13 = (unsigned long )__cil_tmp12;
34145#line 593
34146  if (__cil_tmp13 == __cil_tmp11) {
34147#line 594
34148    return (-43);
34149  } else {
34150
34151  }
34152  }
34153  {
34154#line 595
34155  tmp = usb_hcd_unlink_urb(urb, -104);
34156  }
34157#line 595
34158  return (tmp);
34159}
34160}
34161#line 622 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34162void usb_kill_urb(struct urb *urb ) 
34163{ int tmp ;
34164  wait_queue_t __wait ;
34165  struct task_struct *tmp___0 ;
34166  int tmp___1 ;
34167  struct urb *__cil_tmp6 ;
34168  unsigned long __cil_tmp7 ;
34169  unsigned long __cil_tmp8 ;
34170  struct usb_device *__cil_tmp9 ;
34171  unsigned long __cil_tmp10 ;
34172  struct usb_device *__cil_tmp11 ;
34173  unsigned long __cil_tmp12 ;
34174  struct usb_host_endpoint *__cil_tmp13 ;
34175  unsigned long __cil_tmp14 ;
34176  struct usb_host_endpoint *__cil_tmp15 ;
34177  unsigned long __cil_tmp16 ;
34178  atomic_t *__cil_tmp17 ;
34179  atomic_t *__cil_tmp18 ;
34180  atomic_t const   *__cil_tmp19 ;
34181  atomic_t *__cil_tmp20 ;
34182  atomic_t const   *__cil_tmp21 ;
34183  atomic_t *__cil_tmp22 ;
34184
34185  {
34186  {
34187#line 624
34188  __might_sleep("/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p",
34189                624, 0);
34190  }
34191  {
34192#line 625
34193  __cil_tmp6 = (struct urb *)0;
34194#line 625
34195  __cil_tmp7 = (unsigned long )__cil_tmp6;
34196#line 625
34197  __cil_tmp8 = (unsigned long )urb;
34198#line 625
34199  if (__cil_tmp8 == __cil_tmp7) {
34200#line 626
34201    return;
34202  } else {
34203    {
34204#line 625
34205    __cil_tmp9 = (struct usb_device *)0;
34206#line 625
34207    __cil_tmp10 = (unsigned long )__cil_tmp9;
34208#line 625
34209    __cil_tmp11 = urb->dev;
34210#line 625
34211    __cil_tmp12 = (unsigned long )__cil_tmp11;
34212#line 625
34213    if (__cil_tmp12 == __cil_tmp10) {
34214#line 626
34215      return;
34216    } else {
34217      {
34218#line 625
34219      __cil_tmp13 = (struct usb_host_endpoint *)0;
34220#line 625
34221      __cil_tmp14 = (unsigned long )__cil_tmp13;
34222#line 625
34223      __cil_tmp15 = urb->ep;
34224#line 625
34225      __cil_tmp16 = (unsigned long )__cil_tmp15;
34226#line 625
34227      if (__cil_tmp16 == __cil_tmp14) {
34228#line 626
34229        return;
34230      } else {
34231
34232      }
34233      }
34234    }
34235    }
34236  }
34237  }
34238  {
34239#line 627
34240  __cil_tmp17 = & urb->reject;
34241#line 627
34242  atomic_inc(__cil_tmp17);
34243#line 629
34244  usb_hcd_unlink_urb(urb, -2);
34245#line 630
34246  __cil_tmp18 = & urb->use_count;
34247#line 630
34248  __cil_tmp19 = (atomic_t const   *)__cil_tmp18;
34249#line 630
34250  tmp = atomic_read(__cil_tmp19);
34251  }
34252#line 630
34253  if (tmp == 0) {
34254#line 630
34255    goto ldv_24210;
34256  } else {
34257
34258  }
34259  {
34260#line 630
34261  tmp___0 = get_current();
34262#line 630
34263  __wait.flags = 0U;
34264#line 630
34265  __wait.private = (void *)tmp___0;
34266#line 630
34267  __wait.func = & autoremove_wake_function;
34268#line 630
34269  __wait.task_list.next = & __wait.task_list;
34270#line 630
34271  __wait.task_list.prev = & __wait.task_list;
34272  }
34273  ldv_24213: 
34274  {
34275#line 630
34276  prepare_to_wait(& usb_kill_urb_queue, & __wait, 2);
34277#line 630
34278  __cil_tmp20 = & urb->use_count;
34279#line 630
34280  __cil_tmp21 = (atomic_t const   *)__cil_tmp20;
34281#line 630
34282  tmp___1 = atomic_read(__cil_tmp21);
34283  }
34284#line 630
34285  if (tmp___1 == 0) {
34286#line 630
34287    goto ldv_24212;
34288  } else {
34289
34290  }
34291  {
34292#line 630
34293  schedule();
34294  }
34295#line 630
34296  goto ldv_24213;
34297  ldv_24212: 
34298  {
34299#line 630
34300  finish_wait(& usb_kill_urb_queue, & __wait);
34301  }
34302  ldv_24210: 
34303  {
34304#line 632
34305  __cil_tmp22 = & urb->reject;
34306#line 632
34307  atomic_dec(__cil_tmp22);
34308  }
34309#line 633
34310  return;
34311}
34312}
34313#line 659 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34314void usb_poison_urb(struct urb *urb ) 
34315{ int tmp ;
34316  wait_queue_t __wait ;
34317  struct task_struct *tmp___0 ;
34318  int tmp___1 ;
34319  struct urb *__cil_tmp6 ;
34320  unsigned long __cil_tmp7 ;
34321  unsigned long __cil_tmp8 ;
34322  struct usb_device *__cil_tmp9 ;
34323  unsigned long __cil_tmp10 ;
34324  struct usb_device *__cil_tmp11 ;
34325  unsigned long __cil_tmp12 ;
34326  struct usb_host_endpoint *__cil_tmp13 ;
34327  unsigned long __cil_tmp14 ;
34328  struct usb_host_endpoint *__cil_tmp15 ;
34329  unsigned long __cil_tmp16 ;
34330  atomic_t *__cil_tmp17 ;
34331  atomic_t *__cil_tmp18 ;
34332  atomic_t const   *__cil_tmp19 ;
34333  atomic_t *__cil_tmp20 ;
34334  atomic_t const   *__cil_tmp21 ;
34335
34336  {
34337  {
34338#line 661
34339  __might_sleep("/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p",
34340                661, 0);
34341  }
34342  {
34343#line 662
34344  __cil_tmp6 = (struct urb *)0;
34345#line 662
34346  __cil_tmp7 = (unsigned long )__cil_tmp6;
34347#line 662
34348  __cil_tmp8 = (unsigned long )urb;
34349#line 662
34350  if (__cil_tmp8 == __cil_tmp7) {
34351#line 663
34352    return;
34353  } else {
34354    {
34355#line 662
34356    __cil_tmp9 = (struct usb_device *)0;
34357#line 662
34358    __cil_tmp10 = (unsigned long )__cil_tmp9;
34359#line 662
34360    __cil_tmp11 = urb->dev;
34361#line 662
34362    __cil_tmp12 = (unsigned long )__cil_tmp11;
34363#line 662
34364    if (__cil_tmp12 == __cil_tmp10) {
34365#line 663
34366      return;
34367    } else {
34368      {
34369#line 662
34370      __cil_tmp13 = (struct usb_host_endpoint *)0;
34371#line 662
34372      __cil_tmp14 = (unsigned long )__cil_tmp13;
34373#line 662
34374      __cil_tmp15 = urb->ep;
34375#line 662
34376      __cil_tmp16 = (unsigned long )__cil_tmp15;
34377#line 662
34378      if (__cil_tmp16 == __cil_tmp14) {
34379#line 663
34380        return;
34381      } else {
34382
34383      }
34384      }
34385    }
34386    }
34387  }
34388  }
34389  {
34390#line 664
34391  __cil_tmp17 = & urb->reject;
34392#line 664
34393  atomic_inc(__cil_tmp17);
34394#line 666
34395  usb_hcd_unlink_urb(urb, -2);
34396#line 667
34397  __cil_tmp18 = & urb->use_count;
34398#line 667
34399  __cil_tmp19 = (atomic_t const   *)__cil_tmp18;
34400#line 667
34401  tmp = atomic_read(__cil_tmp19);
34402  }
34403#line 667
34404  if (tmp == 0) {
34405#line 667
34406    goto ldv_24223;
34407  } else {
34408
34409  }
34410  {
34411#line 667
34412  tmp___0 = get_current();
34413#line 667
34414  __wait.flags = 0U;
34415#line 667
34416  __wait.private = (void *)tmp___0;
34417#line 667
34418  __wait.func = & autoremove_wake_function;
34419#line 667
34420  __wait.task_list.next = & __wait.task_list;
34421#line 667
34422  __wait.task_list.prev = & __wait.task_list;
34423  }
34424  ldv_24226: 
34425  {
34426#line 667
34427  prepare_to_wait(& usb_kill_urb_queue, & __wait, 2);
34428#line 667
34429  __cil_tmp20 = & urb->use_count;
34430#line 667
34431  __cil_tmp21 = (atomic_t const   *)__cil_tmp20;
34432#line 667
34433  tmp___1 = atomic_read(__cil_tmp21);
34434  }
34435#line 667
34436  if (tmp___1 == 0) {
34437#line 667
34438    goto ldv_24225;
34439  } else {
34440
34441  }
34442  {
34443#line 667
34444  schedule();
34445  }
34446#line 667
34447  goto ldv_24226;
34448  ldv_24225: 
34449  {
34450#line 667
34451  finish_wait(& usb_kill_urb_queue, & __wait);
34452  }
34453  ldv_24223: ;
34454#line 670
34455  return;
34456}
34457}
34458#line 671 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34459void usb_unpoison_urb(struct urb *urb ) 
34460{ struct urb *__cil_tmp2 ;
34461  unsigned long __cil_tmp3 ;
34462  unsigned long __cil_tmp4 ;
34463  atomic_t *__cil_tmp5 ;
34464
34465  {
34466  {
34467#line 673
34468  __cil_tmp2 = (struct urb *)0;
34469#line 673
34470  __cil_tmp3 = (unsigned long )__cil_tmp2;
34471#line 673
34472  __cil_tmp4 = (unsigned long )urb;
34473#line 673
34474  if (__cil_tmp4 == __cil_tmp3) {
34475#line 674
34476    return;
34477  } else {
34478
34479  }
34480  }
34481  {
34482#line 676
34483  __cil_tmp5 = & urb->reject;
34484#line 676
34485  atomic_dec(__cil_tmp5);
34486  }
34487#line 677
34488  return;
34489}
34490}
34491#line 690 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34492void usb_kill_anchored_urbs(struct usb_anchor *anchor ) 
34493{ struct urb *victim ;
34494  struct list_head  const  *__mptr ;
34495  int tmp ;
34496  spinlock_t *__cil_tmp5 ;
34497  struct list_head *__cil_tmp6 ;
34498  struct urb *__cil_tmp7 ;
34499  spinlock_t *__cil_tmp8 ;
34500  spinlock_t *__cil_tmp9 ;
34501  struct list_head *__cil_tmp10 ;
34502  struct list_head  const  *__cil_tmp11 ;
34503  spinlock_t *__cil_tmp12 ;
34504
34505  {
34506  {
34507#line 694
34508  __cil_tmp5 = & anchor->lock;
34509#line 694
34510  spin_lock_irq(__cil_tmp5);
34511  }
34512#line 695
34513  goto ldv_24249;
34514  ldv_24248: 
34515  {
34516#line 696
34517  __cil_tmp6 = anchor->urb_list.prev;
34518#line 696
34519  __mptr = (struct list_head  const  *)__cil_tmp6;
34520#line 696
34521  __cil_tmp7 = (struct urb *)__mptr;
34522#line 696
34523  victim = __cil_tmp7 + 1152921504606846928UL;
34524#line 699
34525  usb_get_urb(victim);
34526#line 700
34527  __cil_tmp8 = & anchor->lock;
34528#line 700
34529  spin_unlock_irq(__cil_tmp8);
34530#line 702
34531  usb_kill_urb(victim);
34532#line 703
34533  usb_free_urb(victim);
34534#line 704
34535  __cil_tmp9 = & anchor->lock;
34536#line 704
34537  spin_lock_irq(__cil_tmp9);
34538  }
34539  ldv_24249: 
34540  {
34541#line 695
34542  __cil_tmp10 = & anchor->urb_list;
34543#line 695
34544  __cil_tmp11 = (struct list_head  const  *)__cil_tmp10;
34545#line 695
34546  tmp = list_empty(__cil_tmp11);
34547  }
34548#line 695
34549  if (tmp == 0) {
34550#line 696
34551    goto ldv_24248;
34552  } else {
34553#line 698
34554    goto ldv_24250;
34555  }
34556  ldv_24250: 
34557  {
34558#line 706
34559  __cil_tmp12 = & anchor->lock;
34560#line 706
34561  spin_unlock_irq(__cil_tmp12);
34562  }
34563#line 707
34564  return;
34565}
34566}
34567#line 722 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34568void usb_poison_anchored_urbs(struct usb_anchor *anchor ) 
34569{ struct urb *victim ;
34570  struct list_head  const  *__mptr ;
34571  int tmp ;
34572  spinlock_t *__cil_tmp5 ;
34573  struct list_head *__cil_tmp6 ;
34574  struct urb *__cil_tmp7 ;
34575  spinlock_t *__cil_tmp8 ;
34576  spinlock_t *__cil_tmp9 ;
34577  struct list_head *__cil_tmp10 ;
34578  struct list_head  const  *__cil_tmp11 ;
34579  spinlock_t *__cil_tmp12 ;
34580
34581  {
34582  {
34583#line 726
34584  __cil_tmp5 = & anchor->lock;
34585#line 726
34586  spin_lock_irq(__cil_tmp5);
34587#line 727
34588  anchor->poisoned = (unsigned char)1;
34589  }
34590#line 728
34591  goto ldv_24264;
34592  ldv_24263: 
34593  {
34594#line 729
34595  __cil_tmp6 = anchor->urb_list.prev;
34596#line 729
34597  __mptr = (struct list_head  const  *)__cil_tmp6;
34598#line 729
34599  __cil_tmp7 = (struct urb *)__mptr;
34600#line 729
34601  victim = __cil_tmp7 + 1152921504606846928UL;
34602#line 732
34603  usb_get_urb(victim);
34604#line 733
34605  __cil_tmp8 = & anchor->lock;
34606#line 733
34607  spin_unlock_irq(__cil_tmp8);
34608#line 735
34609  usb_poison_urb(victim);
34610#line 736
34611  usb_free_urb(victim);
34612#line 737
34613  __cil_tmp9 = & anchor->lock;
34614#line 737
34615  spin_lock_irq(__cil_tmp9);
34616  }
34617  ldv_24264: 
34618  {
34619#line 728
34620  __cil_tmp10 = & anchor->urb_list;
34621#line 728
34622  __cil_tmp11 = (struct list_head  const  *)__cil_tmp10;
34623#line 728
34624  tmp = list_empty(__cil_tmp11);
34625  }
34626#line 728
34627  if (tmp == 0) {
34628#line 729
34629    goto ldv_24263;
34630  } else {
34631#line 731
34632    goto ldv_24265;
34633  }
34634  ldv_24265: 
34635  {
34636#line 739
34637  __cil_tmp12 = & anchor->lock;
34638#line 739
34639  spin_unlock_irq(__cil_tmp12);
34640  }
34641#line 740
34642  return;
34643}
34644}
34645#line 750 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34646void usb_unpoison_anchored_urbs(struct usb_anchor *anchor ) 
34647{ unsigned long flags ;
34648  struct urb *lazarus ;
34649  raw_spinlock_t *tmp ;
34650  struct list_head  const  *__mptr ;
34651  struct list_head  const  *__mptr___0 ;
34652  spinlock_t *__cil_tmp7 ;
34653  struct list_head *__cil_tmp8 ;
34654  struct urb *__cil_tmp9 ;
34655  struct list_head *__cil_tmp10 ;
34656  struct urb *__cil_tmp11 ;
34657  struct list_head *__cil_tmp12 ;
34658  unsigned long __cil_tmp13 ;
34659  struct list_head *__cil_tmp14 ;
34660  unsigned long __cil_tmp15 ;
34661  spinlock_t *__cil_tmp16 ;
34662
34663  {
34664  {
34665#line 755
34666  __cil_tmp7 = & anchor->lock;
34667#line 755
34668  tmp = spinlock_check(__cil_tmp7);
34669#line 755
34670  flags = _raw_spin_lock_irqsave(tmp);
34671#line 756
34672  __cil_tmp8 = anchor->urb_list.next;
34673#line 756
34674  __mptr = (struct list_head  const  *)__cil_tmp8;
34675#line 756
34676  __cil_tmp9 = (struct urb *)__mptr;
34677#line 756
34678  lazarus = __cil_tmp9 + 1152921504606846928UL;
34679  }
34680#line 756
34681  goto ldv_24285;
34682  ldv_24284: 
34683  {
34684#line 757
34685  usb_unpoison_urb(lazarus);
34686#line 756
34687  __cil_tmp10 = lazarus->anchor_list.next;
34688#line 756
34689  __mptr___0 = (struct list_head  const  *)__cil_tmp10;
34690#line 756
34691  __cil_tmp11 = (struct urb *)__mptr___0;
34692#line 756
34693  lazarus = __cil_tmp11 + 1152921504606846928UL;
34694  }
34695  ldv_24285: ;
34696  {
34697#line 756
34698  __cil_tmp12 = & anchor->urb_list;
34699#line 756
34700  __cil_tmp13 = (unsigned long )__cil_tmp12;
34701#line 756
34702  __cil_tmp14 = & lazarus->anchor_list;
34703#line 756
34704  __cil_tmp15 = (unsigned long )__cil_tmp14;
34705#line 756
34706  if (__cil_tmp15 != __cil_tmp13) {
34707#line 757
34708    goto ldv_24284;
34709  } else {
34710#line 759
34711    goto ldv_24286;
34712  }
34713  }
34714  ldv_24286: 
34715  {
34716#line 759
34717  anchor->poisoned = (unsigned char)0;
34718#line 760
34719  __cil_tmp16 = & anchor->lock;
34720#line 760
34721  spin_unlock_irqrestore(__cil_tmp16, flags);
34722  }
34723#line 761
34724  return;
34725}
34726}
34727#line 775 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34728void usb_unlink_anchored_urbs(struct usb_anchor *anchor ) 
34729{ struct urb *victim ;
34730  struct urb *__cil_tmp3 ;
34731  unsigned long __cil_tmp4 ;
34732  unsigned long __cil_tmp5 ;
34733
34734  {
34735#line 779
34736  goto ldv_24298;
34737  ldv_24297: 
34738  {
34739#line 780
34740  usb_unlink_urb(victim);
34741#line 781
34742  usb_free_urb(victim);
34743  }
34744  ldv_24298: 
34745  {
34746#line 779
34747  victim = usb_get_from_anchor(anchor);
34748  }
34749  {
34750#line 779
34751  __cil_tmp3 = (struct urb *)0;
34752#line 779
34753  __cil_tmp4 = (unsigned long )__cil_tmp3;
34754#line 779
34755  __cil_tmp5 = (unsigned long )victim;
34756#line 779
34757  if (__cil_tmp5 != __cil_tmp4) {
34758#line 780
34759    goto ldv_24297;
34760  } else {
34761#line 782
34762    goto ldv_24299;
34763  }
34764  }
34765  ldv_24299: ;
34766#line 784
34767  return;
34768}
34769}
34770#line 794 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34771int usb_wait_anchor_empty_timeout(struct usb_anchor *anchor , unsigned int timeout ) 
34772{ long __ret ;
34773  unsigned long tmp ;
34774  wait_queue_t __wait ;
34775  struct task_struct *tmp___0 ;
34776  int tmp___1 ;
34777  int tmp___2 ;
34778  unsigned int __cil_tmp9 ;
34779  unsigned int __cil_tmp10 ;
34780  struct list_head *__cil_tmp11 ;
34781  struct list_head  const  *__cil_tmp12 ;
34782  wait_queue_head_t *__cil_tmp13 ;
34783  struct list_head *__cil_tmp14 ;
34784  struct list_head  const  *__cil_tmp15 ;
34785  wait_queue_head_t *__cil_tmp16 ;
34786
34787  {
34788  {
34789#line 797
34790  __cil_tmp9 = (unsigned int const   )timeout;
34791#line 797
34792  __cil_tmp10 = (unsigned int )__cil_tmp9;
34793#line 797
34794  tmp = msecs_to_jiffies(__cil_tmp10);
34795#line 797
34796  __ret = (long )tmp;
34797#line 797
34798  __cil_tmp11 = & anchor->urb_list;
34799#line 797
34800  __cil_tmp12 = (struct list_head  const  *)__cil_tmp11;
34801#line 797
34802  tmp___2 = list_empty(__cil_tmp12);
34803  }
34804#line 797
34805  if (tmp___2 == 0) {
34806    {
34807#line 797
34808    tmp___0 = get_current();
34809#line 797
34810    __wait.flags = 0U;
34811#line 797
34812    __wait.private = (void *)tmp___0;
34813#line 797
34814    __wait.func = & autoremove_wake_function;
34815#line 797
34816    __wait.task_list.next = & __wait.task_list;
34817#line 797
34818    __wait.task_list.prev = & __wait.task_list;
34819    }
34820    ldv_24313: 
34821    {
34822#line 797
34823    __cil_tmp13 = & anchor->wait;
34824#line 797
34825    prepare_to_wait(__cil_tmp13, & __wait, 2);
34826#line 797
34827    __cil_tmp14 = & anchor->urb_list;
34828#line 797
34829    __cil_tmp15 = (struct list_head  const  *)__cil_tmp14;
34830#line 797
34831    tmp___1 = list_empty(__cil_tmp15);
34832    }
34833#line 797
34834    if (tmp___1 != 0) {
34835#line 797
34836      goto ldv_24312;
34837    } else {
34838
34839    }
34840    {
34841#line 797
34842    __ret = schedule_timeout(__ret);
34843    }
34844#line 797
34845    if (__ret == 0L) {
34846#line 797
34847      goto ldv_24312;
34848    } else {
34849
34850    }
34851#line 797
34852    goto ldv_24313;
34853    ldv_24312: 
34854    {
34855#line 797
34856    __cil_tmp16 = & anchor->wait;
34857#line 797
34858    finish_wait(__cil_tmp16, & __wait);
34859    }
34860  } else {
34861
34862  }
34863#line 797
34864  return ((int )__ret);
34865}
34866}
34867#line 809 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34868struct urb *usb_get_from_anchor(struct usb_anchor *anchor ) 
34869{ struct urb *victim ;
34870  unsigned long flags ;
34871  raw_spinlock_t *tmp ;
34872  struct list_head  const  *__mptr ;
34873  int tmp___0 ;
34874  spinlock_t *__cil_tmp7 ;
34875  struct list_head *__cil_tmp8 ;
34876  struct list_head  const  *__cil_tmp9 ;
34877  struct list_head *__cil_tmp10 ;
34878  struct urb *__cil_tmp11 ;
34879  spinlock_t *__cil_tmp12 ;
34880
34881  {
34882  {
34883#line 814
34884  __cil_tmp7 = & anchor->lock;
34885#line 814
34886  tmp = spinlock_check(__cil_tmp7);
34887#line 814
34888  flags = _raw_spin_lock_irqsave(tmp);
34889#line 815
34890  __cil_tmp8 = & anchor->urb_list;
34891#line 815
34892  __cil_tmp9 = (struct list_head  const  *)__cil_tmp8;
34893#line 815
34894  tmp___0 = list_empty(__cil_tmp9);
34895  }
34896#line 815
34897  if (tmp___0 == 0) {
34898    {
34899#line 816
34900    __cil_tmp10 = anchor->urb_list.next;
34901#line 816
34902    __mptr = (struct list_head  const  *)__cil_tmp10;
34903#line 816
34904    __cil_tmp11 = (struct urb *)__mptr;
34905#line 816
34906    victim = __cil_tmp11 + 1152921504606846928UL;
34907#line 818
34908    usb_get_urb(victim);
34909#line 819
34910    __usb_unanchor_urb(victim, anchor);
34911    }
34912  } else {
34913#line 821
34914    victim = (struct urb *)0;
34915  }
34916  {
34917#line 823
34918  __cil_tmp12 = & anchor->lock;
34919#line 823
34920  spin_unlock_irqrestore(__cil_tmp12, flags);
34921  }
34922#line 825
34923  return (victim);
34924}
34925}
34926#line 836 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34927void usb_scuttle_anchored_urbs(struct usb_anchor *anchor ) 
34928{ struct urb *victim ;
34929  unsigned long flags ;
34930  raw_spinlock_t *tmp ;
34931  struct list_head  const  *__mptr ;
34932  int tmp___0 ;
34933  spinlock_t *__cil_tmp7 ;
34934  struct list_head *__cil_tmp8 ;
34935  struct urb *__cil_tmp9 ;
34936  struct list_head *__cil_tmp10 ;
34937  struct list_head  const  *__cil_tmp11 ;
34938  spinlock_t *__cil_tmp12 ;
34939
34940  {
34941  {
34942#line 841
34943  __cil_tmp7 = & anchor->lock;
34944#line 841
34945  tmp = spinlock_check(__cil_tmp7);
34946#line 841
34947  flags = _raw_spin_lock_irqsave(tmp);
34948  }
34949#line 842
34950  goto ldv_24349;
34951  ldv_24348: 
34952  {
34953#line 843
34954  __cil_tmp8 = anchor->urb_list.prev;
34955#line 843
34956  __mptr = (struct list_head  const  *)__cil_tmp8;
34957#line 843
34958  __cil_tmp9 = (struct urb *)__mptr;
34959#line 843
34960  victim = __cil_tmp9 + 1152921504606846928UL;
34961#line 845
34962  __usb_unanchor_urb(victim, anchor);
34963  }
34964  ldv_24349: 
34965  {
34966#line 842
34967  __cil_tmp10 = & anchor->urb_list;
34968#line 842
34969  __cil_tmp11 = (struct list_head  const  *)__cil_tmp10;
34970#line 842
34971  tmp___0 = list_empty(__cil_tmp11);
34972  }
34973#line 842
34974  if (tmp___0 == 0) {
34975#line 843
34976    goto ldv_24348;
34977  } else {
34978#line 845
34979    goto ldv_24350;
34980  }
34981  ldv_24350: 
34982  {
34983#line 847
34984  __cil_tmp12 = & anchor->lock;
34985#line 847
34986  spin_unlock_irqrestore(__cil_tmp12, flags);
34987  }
34988#line 848
34989  return;
34990}
34991}
34992#line 858 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/urb.c.p"
34993int usb_anchor_empty(struct usb_anchor *anchor ) 
34994{ int tmp ;
34995  struct list_head *__cil_tmp3 ;
34996  struct list_head  const  *__cil_tmp4 ;
34997
34998  {
34999  {
35000#line 860
35001  __cil_tmp3 = & anchor->urb_list;
35002#line 860
35003  __cil_tmp4 = (struct list_head  const  *)__cil_tmp3;
35004#line 860
35005  tmp = list_empty(__cil_tmp4);
35006  }
35007#line 860
35008  return (tmp);
35009}
35010}
35011#line 702 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
35012__inline static void rep_nop(void) 
35013{ 
35014
35015  {
35016#line 704
35017  __asm__  volatile   ("rep; nop": : : "memory");
35018#line 705
35019  return;
35020}
35021}
35022#line 707 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
35023__inline static void cpu_relax(void) 
35024{ 
35025
35026  {
35027  {
35028#line 709
35029  rep_nop();
35030  }
35031#line 710
35032  return;
35033}
35034}
35035#line 80 "include/linux/wait.h"
35036extern void __init_waitqueue_head(wait_queue_head_t * , struct lock_class_key * ) ;
35037#line 73 "include/linux/completion.h"
35038__inline static void init_completion(struct completion *x ) 
35039{ struct lock_class_key __key ;
35040  wait_queue_head_t *__cil_tmp3 ;
35041
35042  {
35043  {
35044#line 75
35045  x->done = 0U;
35046#line 76
35047  __cil_tmp3 = & x->wait;
35048#line 76
35049  __init_waitqueue_head(__cil_tmp3, & __key);
35050  }
35051#line 78
35052  return;
35053}
35054}
35055#line 79
35056extern void wait_for_completion(struct completion * ) ;
35057#line 82
35058extern unsigned long wait_for_completion_timeout(struct completion * , unsigned long  ) ;
35059#line 91
35060extern void complete(struct completion * ) ;
35061#line 649 "include/linux/device.h"
35062__inline static int device_is_registered(struct device *dev ) 
35063{ unsigned char __cil_tmp2 ;
35064
35065  {
35066  {
35067#line 651
35068  __cil_tmp2 = dev->kobj.state_in_sysfs;
35069#line 651
35070  return ((int )__cil_tmp2);
35071  }
35072}
35073}
35074#line 245 "include/linux/page-flags.h"
35075__inline static int PageHighMem(struct page *page ) 
35076{ 
35077
35078  {
35079#line 245
35080  return (0);
35081}
35082}
35083#line 93 "include/linux/scatterlist.h"
35084__inline static struct page *sg_page___0(struct scatterlist *sg ) 
35085{ long tmp ;
35086  long tmp___0 ;
35087  unsigned long __cil_tmp4 ;
35088  int __cil_tmp5 ;
35089  long __cil_tmp6 ;
35090  unsigned long __cil_tmp7 ;
35091  int __cil_tmp8 ;
35092  long __cil_tmp9 ;
35093  long __cil_tmp10 ;
35094  unsigned long __cil_tmp11 ;
35095  unsigned long __cil_tmp12 ;
35096
35097  {
35098  {
35099#line 96
35100  __cil_tmp4 = sg->sg_magic;
35101#line 96
35102  __cil_tmp5 = __cil_tmp4 != 2271560481UL;
35103#line 96
35104  __cil_tmp6 = (long )__cil_tmp5;
35105#line 96
35106  tmp = __builtin_expect(__cil_tmp6, 0L);
35107  }
35108#line 96
35109  if (tmp != 0L) {
35110#line 96
35111    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/linux/scatterlist.h"),
35112                         "i" (96), "i" (12UL));
35113    ldv_18514: ;
35114#line 96
35115    goto ldv_18514;
35116  } else {
35117
35118  }
35119  {
35120#line 97
35121  __cil_tmp7 = sg->page_link;
35122#line 97
35123  __cil_tmp8 = (int )__cil_tmp7;
35124#line 97
35125  __cil_tmp9 = (long )__cil_tmp8;
35126#line 97
35127  __cil_tmp10 = __cil_tmp9 & 1L;
35128#line 97
35129  tmp___0 = __builtin_expect(__cil_tmp10, 0L);
35130  }
35131#line 97
35132  if (tmp___0 != 0L) {
35133#line 97
35134    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"include/linux/scatterlist.h"),
35135                         "i" (97), "i" (12UL));
35136    ldv_18515: ;
35137#line 97
35138    goto ldv_18515;
35139  } else {
35140
35141  }
35142  {
35143#line 99
35144  __cil_tmp11 = sg->page_link;
35145#line 99
35146  __cil_tmp12 = __cil_tmp11 & 1152921504606846972UL;
35147#line 99
35148  return ((struct page *)__cil_tmp12);
35149  }
35150}
35151}
35152#line 197 "include/linux/scatterlist.h"
35153__inline static void *sg_virt___0(struct scatterlist *sg ) 
35154{ struct page *tmp ;
35155  void *tmp___0 ;
35156  unsigned int __cil_tmp4 ;
35157  unsigned long __cil_tmp5 ;
35158
35159  {
35160  {
35161#line 199
35162  tmp = sg_page___0(sg);
35163#line 199
35164  tmp___0 = lowmem_page_address(tmp);
35165  }
35166  {
35167#line 199
35168  __cil_tmp4 = sg->offset;
35169#line 199
35170  __cil_tmp5 = (unsigned long )__cil_tmp4;
35171#line 199
35172  return (tmp___0 + __cil_tmp5);
35173  }
35174}
35175}
35176#line 2051 "include/linux/sched.h"
35177extern void yield(void) ;
35178#line 42 "include/linux/pm_runtime.h"
35179extern void pm_runtime_no_callbacks(struct device * ) ;
35180#line 1237 "include/linux/usb.h"
35181__inline static void usb_fill_control_urb(struct urb *urb , struct usb_device *dev ,
35182                                          unsigned int pipe , unsigned char *setup_packet ,
35183                                          void *transfer_buffer , int buffer_length ,
35184                                          void (*complete_fn)(struct urb * ) , void *context ) 
35185{ 
35186
35187  {
35188#line 1246
35189  urb->dev = dev;
35190#line 1247
35191  urb->pipe = pipe;
35192#line 1248
35193  urb->setup_packet = setup_packet;
35194#line 1249
35195  urb->transfer_buffer = transfer_buffer;
35196#line 1250
35197  urb->transfer_buffer_length = (u32 )buffer_length;
35198#line 1251
35199  urb->complete = complete_fn;
35200#line 1252
35201  urb->context = context;
35202#line 1253
35203  return;
35204}
35205}
35206#line 1268 "include/linux/usb.h"
35207__inline static void usb_fill_bulk_urb(struct urb *urb , struct usb_device *dev ,
35208                                       unsigned int pipe , void *transfer_buffer ,
35209                                       int buffer_length , void (*complete_fn)(struct urb * ) ,
35210                                       void *context ) 
35211{ 
35212
35213  {
35214#line 1276
35215  urb->dev = dev;
35216#line 1277
35217  urb->pipe = pipe;
35218#line 1278
35219  urb->transfer_buffer = transfer_buffer;
35220#line 1279
35221  urb->transfer_buffer_length = (u32 )buffer_length;
35222#line 1280
35223  urb->complete = complete_fn;
35224#line 1281
35225  urb->context = context;
35226#line 1282
35227  return;
35228}
35229}
35230#line 1405
35231int usb_interrupt_msg(struct usb_device *usb_dev , unsigned int pipe , void *data ,
35232                      int len , int *actual_length , int timeout ) ;
35233#line 1407
35234int usb_bulk_msg(struct usb_device *usb_dev , unsigned int pipe , void *data , int len ,
35235                 int *actual_length , int timeout ) ;
35236#line 1420
35237int usb_clear_halt(struct usb_device *dev , int pipe ) ;
35238#line 1421
35239int usb_reset_configuration(struct usb_device *dev ) ;
35240#line 1423
35241void usb_reset_endpoint(struct usb_device *dev , unsigned int epaddr ) ;
35242#line 1426
35243int usb_driver_set_configuration(struct usb_device *udev , int config ) ;
35244#line 1474
35245int usb_sg_init(struct usb_sg_request *io , struct usb_device *dev , unsigned int pipe ,
35246                unsigned int period , struct scatterlist *sg , int nents , size_t length ,
35247                gfp_t mem_flags ) ;
35248#line 1484
35249void usb_sg_cancel(struct usb_sg_request *io ) ;
35250#line 1485
35251void usb_sg_wait(struct usb_sg_request *io ) ;
35252#line 18 "include/linux/ctype.h"
35253extern unsigned char const   _ctype[] ;
35254#line 56 "include/linux/nls.h"
35255extern int utf16s_to_utf8s(wchar_t const   * , int  , enum utf16_endian  , u8 * ,
35256                           int  ) ;
35257#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
35258void usb_release_interface_cache(struct kref *ref ) ;
35259#line 147
35260struct attribute_group  const  *usb_interface_groups[3U] ;
35261#line 30 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
35262static void cancel_async_set_config(struct usb_device *udev ) ;
35263#line 37 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
35264static void usb_api_blocking_completion(struct urb *urb ) 
35265{ struct api_context *ctx ;
35266  void *__cil_tmp3 ;
35267  struct completion *__cil_tmp4 ;
35268
35269  {
35270  {
35271#line 39
35272  __cil_tmp3 = urb->context;
35273#line 39
35274  ctx = (struct api_context *)__cil_tmp3;
35275#line 41
35276  ctx->status = urb->status;
35277#line 42
35278  __cil_tmp4 = & ctx->done;
35279#line 42
35280  complete(__cil_tmp4);
35281  }
35282#line 43
35283  return;
35284}
35285}
35286#line 52 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
35287static int usb_start_wait_urb(struct urb *urb , int timeout , int *actual_length ) 
35288{ struct api_context ctx ;
35289  unsigned long expire ;
35290  int retval ;
35291  long tmp ;
35292  unsigned long tmp___0 ;
35293  char *tmp___2 ;
35294  int tmp___3 ;
35295  int tmp___4 ;
35296  struct task_struct *tmp___5 ;
35297  unsigned long tmp___6 ;
35298  struct completion *__cil_tmp14 ;
35299  int __cil_tmp15 ;
35300  long __cil_tmp16 ;
35301  unsigned int __cil_tmp17 ;
35302  unsigned int __cil_tmp18 ;
35303  struct completion *__cil_tmp19 ;
35304  struct usb_host_endpoint *__cil_tmp20 ;
35305  struct usb_endpoint_descriptor *__cil_tmp21 ;
35306  struct usb_endpoint_descriptor  const  *__cil_tmp22 ;
35307  struct usb_device *__cil_tmp23 ;
35308  struct device *__cil_tmp24 ;
35309  struct device  const  *__cil_tmp25 ;
35310  char (*__cil_tmp26)[16U] ;
35311  char *__cil_tmp27 ;
35312  u32 __cil_tmp28 ;
35313  u32 __cil_tmp29 ;
35314  int *__cil_tmp30 ;
35315  unsigned long __cil_tmp31 ;
35316  unsigned long __cil_tmp32 ;
35317  u32 __cil_tmp33 ;
35318
35319  {
35320  {
35321#line 58
35322  __cil_tmp14 = & ctx.done;
35323#line 58
35324  init_completion(__cil_tmp14);
35325#line 59
35326  urb->context = (void *)(& ctx);
35327#line 60
35328  urb->actual_length = 0U;
35329#line 61
35330  retval = usb_submit_urb(urb, 16U);
35331#line 62
35332  __cil_tmp15 = retval != 0;
35333#line 62
35334  __cil_tmp16 = (long )__cil_tmp15;
35335#line 62
35336  tmp = __builtin_expect(__cil_tmp16, 0L);
35337  }
35338#line 62
35339  if (tmp != 0L) {
35340#line 63
35341    goto out;
35342  } else {
35343
35344  }
35345#line 65
35346  if (timeout != 0) {
35347    {
35348#line 65
35349    __cil_tmp17 = (unsigned int const   )timeout;
35350#line 65
35351    __cil_tmp18 = (unsigned int )__cil_tmp17;
35352#line 65
35353    tmp___0 = msecs_to_jiffies(__cil_tmp18);
35354#line 65
35355    expire = tmp___0;
35356    }
35357  } else {
35358#line 65
35359    expire = 9223372036854775807UL;
35360  }
35361  {
35362#line 66
35363  __cil_tmp19 = & ctx.done;
35364#line 66
35365  tmp___6 = wait_for_completion_timeout(__cil_tmp19, expire);
35366  }
35367#line 66
35368  if (tmp___6 == 0UL) {
35369    {
35370#line 67
35371    usb_kill_urb(urb);
35372    }
35373#line 68
35374    if (ctx.status != -2) {
35375#line 68
35376      retval = ctx.status;
35377    } else {
35378#line 68
35379      retval = -110;
35380    }
35381    {
35382#line 70
35383    tmp___3 = usb_urb_dir_in(urb);
35384    }
35385#line 70
35386    if (tmp___3 != 0) {
35387#line 70
35388      tmp___2 = (char *)"in";
35389    } else {
35390#line 70
35391      tmp___2 = (char *)"out";
35392    }
35393    {
35394#line 70
35395    __cil_tmp20 = urb->ep;
35396#line 70
35397    __cil_tmp21 = & __cil_tmp20->desc;
35398#line 70
35399    __cil_tmp22 = (struct usb_endpoint_descriptor  const  *)__cil_tmp21;
35400#line 70
35401    tmp___4 = usb_endpoint_num(__cil_tmp22);
35402#line 70
35403    tmp___5 = get_current();
35404#line 70
35405    __cil_tmp23 = urb->dev;
35406#line 70
35407    __cil_tmp24 = & __cil_tmp23->dev;
35408#line 70
35409    __cil_tmp25 = (struct device  const  *)__cil_tmp24;
35410#line 70
35411    __cil_tmp26 = & tmp___5->comm;
35412#line 70
35413    __cil_tmp27 = (char *)__cil_tmp26;
35414#line 70
35415    __cil_tmp28 = urb->actual_length;
35416#line 70
35417    __cil_tmp29 = urb->transfer_buffer_length;
35418#line 70
35419    dev_printk("<7>", __cil_tmp25, "%s timed out on ep%d%s len=%u/%u\n", __cil_tmp27,
35420               tmp___4, tmp___2, __cil_tmp28, __cil_tmp29);
35421    }
35422  } else {
35423#line 78
35424    retval = ctx.status;
35425  }
35426  out: ;
35427  {
35428#line 80
35429  __cil_tmp30 = (int *)0;
35430#line 80
35431  __cil_tmp31 = (unsigned long )__cil_tmp30;
35432#line 80
35433  __cil_tmp32 = (unsigned long )actual_length;
35434#line 80
35435  if (__cil_tmp32 != __cil_tmp31) {
35436#line 81
35437    __cil_tmp33 = urb->actual_length;
35438#line 81
35439    *actual_length = (int )__cil_tmp33;
35440  } else {
35441
35442  }
35443  }
35444  {
35445#line 83
35446  usb_free_urb(urb);
35447  }
35448#line 84
35449  return (retval);
35450}
35451}
35452#line 89 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
35453static int usb_internal_control_msg(struct usb_device *usb_dev , unsigned int pipe ,
35454                                    struct usb_ctrlrequest *cmd , void *data , int len ,
35455                                    int timeout ) 
35456{ struct urb *urb ;
35457  int retv ;
35458  int length ;
35459  struct urb *__cil_tmp10 ;
35460  unsigned long __cil_tmp11 ;
35461  unsigned long __cil_tmp12 ;
35462  unsigned char *__cil_tmp13 ;
35463  void *__cil_tmp14 ;
35464
35465  {
35466  {
35467#line 98
35468  urb = usb_alloc_urb(0, 16U);
35469  }
35470  {
35471#line 99
35472  __cil_tmp10 = (struct urb *)0;
35473#line 99
35474  __cil_tmp11 = (unsigned long )__cil_tmp10;
35475#line 99
35476  __cil_tmp12 = (unsigned long )urb;
35477#line 99
35478  if (__cil_tmp12 == __cil_tmp11) {
35479#line 100
35480    return (-12);
35481  } else {
35482
35483  }
35484  }
35485  {
35486#line 102
35487  __cil_tmp13 = (unsigned char *)cmd;
35488#line 102
35489  __cil_tmp14 = (void *)0;
35490#line 102
35491  usb_fill_control_urb(urb, usb_dev, pipe, __cil_tmp13, data, len, & usb_api_blocking_completion,
35492                       __cil_tmp14);
35493#line 105
35494  retv = usb_start_wait_urb(urb, timeout, & length);
35495  }
35496#line 106
35497  if (retv < 0) {
35498#line 107
35499    return (retv);
35500  } else {
35501#line 109
35502    return (length);
35503  }
35504}
35505}
35506#line 140 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
35507int usb_control_msg(struct usb_device *dev , unsigned int pipe , __u8 request , __u8 requesttype ,
35508                    __u16 value , __u16 index , void *data , __u16 size , int timeout ) 
35509{ struct usb_ctrlrequest *dr ;
35510  int ret ;
35511  void *tmp ;
35512  struct usb_ctrlrequest *__cil_tmp13 ;
35513  unsigned long __cil_tmp14 ;
35514  unsigned long __cil_tmp15 ;
35515  int __cil_tmp16 ;
35516  void const   *__cil_tmp17 ;
35517
35518  {
35519  {
35520#line 147
35521  tmp = kmalloc(8UL, 16U);
35522#line 147
35523  dr = (struct usb_ctrlrequest *)tmp;
35524  }
35525  {
35526#line 148
35527  __cil_tmp13 = (struct usb_ctrlrequest *)0;
35528#line 148
35529  __cil_tmp14 = (unsigned long )__cil_tmp13;
35530#line 148
35531  __cil_tmp15 = (unsigned long )dr;
35532#line 148
35533  if (__cil_tmp15 == __cil_tmp14) {
35534#line 149
35535    return (-12);
35536  } else {
35537
35538  }
35539  }
35540  {
35541#line 151
35542  dr->bRequestType = requesttype;
35543#line 152
35544  dr->bRequest = request;
35545#line 153
35546  dr->wValue = value;
35547#line 154
35548  dr->wIndex = index;
35549#line 155
35550  dr->wLength = size;
35551#line 159
35552  __cil_tmp16 = (int )size;
35553#line 159
35554  ret = usb_internal_control_msg(dev, pipe, dr, data, __cil_tmp16, timeout);
35555#line 161
35556  __cil_tmp17 = (void const   *)dr;
35557#line 161
35558  kfree(__cil_tmp17);
35559  }
35560#line 163
35561  return (ret);
35562}
35563}
35564#line 193 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
35565int usb_interrupt_msg(struct usb_device *usb_dev , unsigned int pipe , void *data ,
35566                      int len , int *actual_length , int timeout ) 
35567{ int tmp ;
35568
35569  {
35570  {
35571#line 196
35572  tmp = usb_bulk_msg(usb_dev, pipe, data, len, actual_length, timeout);
35573  }
35574#line 196
35575  return (tmp);
35576}
35577}
35578#line 231 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
35579int usb_bulk_msg(struct usb_device *usb_dev , unsigned int pipe , void *data , int len ,
35580                 int *actual_length , int timeout ) 
35581{ struct urb *urb ;
35582  struct usb_host_endpoint *ep ;
35583  int tmp ;
35584  struct usb_host_endpoint *__cil_tmp10 ;
35585  unsigned long __cil_tmp11 ;
35586  unsigned long __cil_tmp12 ;
35587  struct urb *__cil_tmp13 ;
35588  unsigned long __cil_tmp14 ;
35589  unsigned long __cil_tmp15 ;
35590  __u8 __cil_tmp16 ;
35591  int __cil_tmp17 ;
35592  int __cil_tmp18 ;
35593  unsigned int __cil_tmp19 ;
35594  void *__cil_tmp20 ;
35595  __u8 __cil_tmp21 ;
35596  int __cil_tmp22 ;
35597  void *__cil_tmp23 ;
35598
35599  {
35600  {
35601#line 237
35602  ep = usb_pipe_endpoint(usb_dev, pipe);
35603  }
35604  {
35605#line 238
35606  __cil_tmp10 = (struct usb_host_endpoint *)0;
35607#line 238
35608  __cil_tmp11 = (unsigned long )__cil_tmp10;
35609#line 238
35610  __cil_tmp12 = (unsigned long )ep;
35611#line 238
35612  if (__cil_tmp12 == __cil_tmp11) {
35613#line 239
35614    return (-22);
35615  } else
35616#line 238
35617  if (len < 0) {
35618#line 239
35619    return (-22);
35620  } else {
35621
35622  }
35623  }
35624  {
35625#line 241
35626  urb = usb_alloc_urb(0, 208U);
35627  }
35628  {
35629#line 242
35630  __cil_tmp13 = (struct urb *)0;
35631#line 242
35632  __cil_tmp14 = (unsigned long )__cil_tmp13;
35633#line 242
35634  __cil_tmp15 = (unsigned long )urb;
35635#line 242
35636  if (__cil_tmp15 == __cil_tmp14) {
35637#line 243
35638    return (-12);
35639  } else {
35640
35641  }
35642  }
35643  {
35644#line 245
35645  __cil_tmp16 = ep->desc.bmAttributes;
35646#line 245
35647  __cil_tmp17 = (int )__cil_tmp16;
35648#line 245
35649  __cil_tmp18 = __cil_tmp17 & 3;
35650#line 245
35651  if (__cil_tmp18 == 3) {
35652    {
35653#line 247
35654    __cil_tmp19 = pipe & 1073741823U;
35655#line 247
35656    pipe = __cil_tmp19 | 1073741824U;
35657#line 248
35658    __cil_tmp20 = (void *)0;
35659#line 248
35660    __cil_tmp21 = ep->desc.bInterval;
35661#line 248
35662    __cil_tmp22 = (int )__cil_tmp21;
35663#line 248
35664    usb_fill_int_urb(urb, usb_dev, pipe, data, len, & usb_api_blocking_completion,
35665                     __cil_tmp20, __cil_tmp22);
35666    }
35667  } else {
35668    {
35669#line 252
35670    __cil_tmp23 = (void *)0;
35671#line 252
35672    usb_fill_bulk_urb(urb, usb_dev, pipe, data, len, & usb_api_blocking_completion,
35673                      __cil_tmp23);
35674    }
35675  }
35676  }
35677  {
35678#line 255
35679  tmp = usb_start_wait_urb(urb, timeout, actual_length);
35680  }
35681#line 255
35682  return (tmp);
35683}
35684}
35685#line 261 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
35686static void sg_clean(struct usb_sg_request *io ) 
35687{ int tmp ;
35688  struct urb **__cil_tmp3 ;
35689  unsigned long __cil_tmp4 ;
35690  struct urb **__cil_tmp5 ;
35691  unsigned long __cil_tmp6 ;
35692  int __cil_tmp7 ;
35693  unsigned long __cil_tmp8 ;
35694  struct urb **__cil_tmp9 ;
35695  struct urb **__cil_tmp10 ;
35696  struct urb *__cil_tmp11 ;
35697  int __cil_tmp12 ;
35698  struct urb **__cil_tmp13 ;
35699  void const   *__cil_tmp14 ;
35700
35701  {
35702  {
35703#line 263
35704  __cil_tmp3 = (struct urb **)0;
35705#line 263
35706  __cil_tmp4 = (unsigned long )__cil_tmp3;
35707#line 263
35708  __cil_tmp5 = io->urbs;
35709#line 263
35710  __cil_tmp6 = (unsigned long )__cil_tmp5;
35711#line 263
35712  if (__cil_tmp6 != __cil_tmp4) {
35713#line 264
35714    goto ldv_28792;
35715    ldv_28791: 
35716    {
35717#line 265
35718    __cil_tmp7 = io->entries;
35719#line 265
35720    __cil_tmp8 = (unsigned long )__cil_tmp7;
35721#line 265
35722    __cil_tmp9 = io->urbs;
35723#line 265
35724    __cil_tmp10 = __cil_tmp9 + __cil_tmp8;
35725#line 265
35726    __cil_tmp11 = *__cil_tmp10;
35727#line 265
35728    usb_free_urb(__cil_tmp11);
35729    }
35730    ldv_28792: 
35731#line 264
35732    tmp = io->entries;
35733#line 264
35734    __cil_tmp12 = io->entries;
35735#line 264
35736    io->entries = __cil_tmp12 - 1;
35737#line 264
35738    if (tmp != 0) {
35739#line 265
35740      goto ldv_28791;
35741    } else {
35742#line 267
35743      goto ldv_28793;
35744    }
35745    ldv_28793: 
35746    {
35747#line 266
35748    __cil_tmp13 = io->urbs;
35749#line 266
35750    __cil_tmp14 = (void const   *)__cil_tmp13;
35751#line 266
35752    kfree(__cil_tmp14);
35753#line 267
35754    io->urbs = (struct urb **)0;
35755    }
35756  } else {
35757
35758  }
35759  }
35760#line 269
35761  io->dev = (struct usb_device *)0;
35762#line 270
35763  return;
35764}
35765}
35766#line 272 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
35767static void sg_complete(struct urb *urb ) 
35768{ struct usb_sg_request *io ;
35769  int status ;
35770  char *tmp___0 ;
35771  int tmp___1 ;
35772  int tmp___2 ;
35773  int i ;
35774  int found ;
35775  int retval ;
35776  void *__cil_tmp10 ;
35777  spinlock_t *__cil_tmp11 ;
35778  int __cil_tmp12 ;
35779  int __cil_tmp13 ;
35780  u32 __cil_tmp14 ;
35781  struct usb_host_endpoint *__cil_tmp15 ;
35782  struct usb_endpoint_descriptor *__cil_tmp16 ;
35783  struct usb_endpoint_descriptor  const  *__cil_tmp17 ;
35784  struct usb_device *__cil_tmp18 ;
35785  struct usb_bus *__cil_tmp19 ;
35786  struct device *__cil_tmp20 ;
35787  struct device  const  *__cil_tmp21 ;
35788  struct usb_device *__cil_tmp22 ;
35789  char (*__cil_tmp23)[16U] ;
35790  char *__cil_tmp24 ;
35791  int __cil_tmp25 ;
35792  int __cil_tmp26 ;
35793  spinlock_t *__cil_tmp27 ;
35794  struct urb *__cil_tmp28 ;
35795  unsigned long __cil_tmp29 ;
35796  unsigned long __cil_tmp30 ;
35797  struct urb **__cil_tmp31 ;
35798  struct urb **__cil_tmp32 ;
35799  struct urb *__cil_tmp33 ;
35800  unsigned long __cil_tmp34 ;
35801  struct usb_device *__cil_tmp35 ;
35802  unsigned long __cil_tmp36 ;
35803  unsigned long __cil_tmp37 ;
35804  struct urb **__cil_tmp38 ;
35805  struct urb **__cil_tmp39 ;
35806  struct urb *__cil_tmp40 ;
35807  struct usb_device *__cil_tmp41 ;
35808  unsigned long __cil_tmp42 ;
35809  unsigned long __cil_tmp43 ;
35810  struct urb **__cil_tmp44 ;
35811  struct urb **__cil_tmp45 ;
35812  struct urb *__cil_tmp46 ;
35813  struct usb_device *__cil_tmp47 ;
35814  struct device *__cil_tmp48 ;
35815  struct device  const  *__cil_tmp49 ;
35816  unsigned long __cil_tmp50 ;
35817  unsigned long __cil_tmp51 ;
35818  struct urb **__cil_tmp52 ;
35819  struct urb **__cil_tmp53 ;
35820  struct urb *__cil_tmp54 ;
35821  unsigned long __cil_tmp55 ;
35822  int __cil_tmp56 ;
35823  spinlock_t *__cil_tmp57 ;
35824  u32 __cil_tmp58 ;
35825  size_t __cil_tmp59 ;
35826  size_t __cil_tmp60 ;
35827  int __cil_tmp61 ;
35828  int __cil_tmp62 ;
35829  struct completion *__cil_tmp63 ;
35830  spinlock_t *__cil_tmp64 ;
35831
35832  {
35833  {
35834#line 274
35835  __cil_tmp10 = urb->context;
35836#line 274
35837  io = (struct usb_sg_request *)__cil_tmp10;
35838#line 275
35839  status = urb->status;
35840#line 277
35841  __cil_tmp11 = & io->lock;
35842#line 277
35843  spin_lock(__cil_tmp11);
35844  }
35845  {
35846#line 289
35847  __cil_tmp12 = io->status;
35848#line 289
35849  if (__cil_tmp12 != 0) {
35850    {
35851#line 289
35852    __cil_tmp13 = io->status;
35853#line 289
35854    if (__cil_tmp13 != -104) {
35855#line 289
35856      goto _L;
35857    } else
35858#line 289
35859    if (status != -104) {
35860      _L: 
35861      {
35862#line 289
35863      __cil_tmp14 = urb->actual_length;
35864#line 289
35865      if (__cil_tmp14 != 0U) {
35866        {
35867#line 293
35868        tmp___1 = usb_urb_dir_in(urb);
35869        }
35870#line 293
35871        if (tmp___1 != 0) {
35872#line 293
35873          tmp___0 = (char *)"in";
35874        } else {
35875#line 293
35876          tmp___0 = (char *)"out";
35877        }
35878        {
35879#line 293
35880        __cil_tmp15 = urb->ep;
35881#line 293
35882        __cil_tmp16 = & __cil_tmp15->desc;
35883#line 293
35884        __cil_tmp17 = (struct usb_endpoint_descriptor  const  *)__cil_tmp16;
35885#line 293
35886        tmp___2 = usb_endpoint_num(__cil_tmp17);
35887#line 293
35888        __cil_tmp18 = io->dev;
35889#line 293
35890        __cil_tmp19 = __cil_tmp18->bus;
35891#line 293
35892        __cil_tmp20 = __cil_tmp19->controller;
35893#line 293
35894        __cil_tmp21 = (struct device  const  *)__cil_tmp20;
35895#line 293
35896        __cil_tmp22 = io->dev;
35897#line 293
35898        __cil_tmp23 = & __cil_tmp22->devpath;
35899#line 293
35900        __cil_tmp24 = (char *)__cil_tmp23;
35901#line 293
35902        __cil_tmp25 = io->status;
35903#line 293
35904        dev_err(__cil_tmp21, "dev %s ep%d%s scatterlist error %d/%d\n", __cil_tmp24,
35905                tmp___2, tmp___0, status, __cil_tmp25);
35906        }
35907      } else {
35908
35909      }
35910      }
35911    } else {
35912
35913    }
35914    }
35915  } else {
35916
35917  }
35918  }
35919  {
35920#line 302
35921  __cil_tmp26 = io->status;
35922#line 302
35923  if (__cil_tmp26 == 0) {
35924#line 302
35925    if (status != 0) {
35926#line 302
35927      if (status != -104) {
35928        {
35929#line 305
35930        io->status = status;
35931#line 311
35932        __cil_tmp27 = & io->lock;
35933#line 311
35934        spin_unlock(__cil_tmp27);
35935#line 312
35936        i = 0;
35937#line 312
35938        found = 0;
35939        }
35940#line 312
35941        goto ldv_28805;
35942        ldv_28804: ;
35943        {
35944#line 313
35945        __cil_tmp28 = (struct urb *)0;
35946#line 313
35947        __cil_tmp29 = (unsigned long )__cil_tmp28;
35948#line 313
35949        __cil_tmp30 = (unsigned long )i;
35950#line 313
35951        __cil_tmp31 = io->urbs;
35952#line 313
35953        __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
35954#line 313
35955        __cil_tmp33 = *__cil_tmp32;
35956#line 313
35957        __cil_tmp34 = (unsigned long )__cil_tmp33;
35958#line 313
35959        if (__cil_tmp34 == __cil_tmp29) {
35960#line 314
35961          goto ldv_28802;
35962        } else {
35963          {
35964#line 313
35965          __cil_tmp35 = (struct usb_device *)0;
35966#line 313
35967          __cil_tmp36 = (unsigned long )__cil_tmp35;
35968#line 313
35969          __cil_tmp37 = (unsigned long )i;
35970#line 313
35971          __cil_tmp38 = io->urbs;
35972#line 313
35973          __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
35974#line 313
35975          __cil_tmp40 = *__cil_tmp39;
35976#line 313
35977          __cil_tmp41 = __cil_tmp40->dev;
35978#line 313
35979          __cil_tmp42 = (unsigned long )__cil_tmp41;
35980#line 313
35981          if (__cil_tmp42 == __cil_tmp36) {
35982#line 314
35983            goto ldv_28802;
35984          } else {
35985
35986          }
35987          }
35988        }
35989        }
35990#line 315
35991        if (found != 0) {
35992          {
35993#line 316
35994          __cil_tmp43 = (unsigned long )i;
35995#line 316
35996          __cil_tmp44 = io->urbs;
35997#line 316
35998          __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
35999#line 316
36000          __cil_tmp46 = *__cil_tmp45;
36001#line 316
36002          retval = usb_unlink_urb(__cil_tmp46);
36003          }
36004#line 317
36005          if (retval != -115) {
36006#line 317
36007            if (retval != -19) {
36008#line 317
36009              if (retval != -16) {
36010                {
36011#line 320
36012                __cil_tmp47 = io->dev;
36013#line 320
36014                __cil_tmp48 = & __cil_tmp47->dev;
36015#line 320
36016                __cil_tmp49 = (struct device  const  *)__cil_tmp48;
36017#line 320
36018                dev_err(__cil_tmp49, "%s, unlink --> %d\n", "sg_complete", retval);
36019                }
36020              } else {
36021
36022              }
36023            } else {
36024
36025            }
36026          } else {
36027
36028          }
36029        } else {
36030          {
36031#line 323
36032          __cil_tmp50 = (unsigned long )urb;
36033#line 323
36034          __cil_tmp51 = (unsigned long )i;
36035#line 323
36036          __cil_tmp52 = io->urbs;
36037#line 323
36038          __cil_tmp53 = __cil_tmp52 + __cil_tmp51;
36039#line 323
36040          __cil_tmp54 = *__cil_tmp53;
36041#line 323
36042          __cil_tmp55 = (unsigned long )__cil_tmp54;
36043#line 323
36044          if (__cil_tmp55 == __cil_tmp50) {
36045#line 324
36046            found = 1;
36047          } else {
36048
36049          }
36050          }
36051        }
36052        ldv_28802: 
36053#line 312
36054        i = i + 1;
36055        ldv_28805: ;
36056        {
36057#line 312
36058        __cil_tmp56 = io->entries;
36059#line 312
36060        if (__cil_tmp56 > i) {
36061#line 313
36062          goto ldv_28804;
36063        } else {
36064#line 315
36065          goto ldv_28806;
36066        }
36067        }
36068        ldv_28806: 
36069        {
36070#line 326
36071        __cil_tmp57 = & io->lock;
36072#line 326
36073        spin_lock(__cil_tmp57);
36074        }
36075      } else {
36076
36077      }
36078    } else {
36079
36080    }
36081  } else {
36082
36083  }
36084  }
36085#line 328
36086  urb->dev = (struct usb_device *)0;
36087#line 331
36088  __cil_tmp58 = urb->actual_length;
36089#line 331
36090  __cil_tmp59 = (size_t )__cil_tmp58;
36091#line 331
36092  __cil_tmp60 = io->bytes;
36093#line 331
36094  io->bytes = __cil_tmp60 + __cil_tmp59;
36095#line 332
36096  __cil_tmp61 = io->count;
36097#line 332
36098  io->count = __cil_tmp61 - 1;
36099  {
36100#line 333
36101  __cil_tmp62 = io->count;
36102#line 333
36103  if (__cil_tmp62 == 0) {
36104    {
36105#line 334
36106    __cil_tmp63 = & io->complete;
36107#line 334
36108    complete(__cil_tmp63);
36109    }
36110  } else {
36111
36112  }
36113  }
36114  {
36115#line 336
36116  __cil_tmp64 = & io->lock;
36117#line 336
36118  spin_unlock(__cil_tmp64);
36119  }
36120#line 337
36121  return;
36122}
36123}
36124#line 365 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
36125int usb_sg_init(struct usb_sg_request *io , struct usb_device *dev , unsigned int pipe ,
36126                unsigned int period , struct scatterlist *sg , int nents , size_t length ,
36127                gfp_t mem_flags ) 
36128{ int i ;
36129  int urb_flags ;
36130  int use_sg ;
36131  struct lock_class_key __key ;
36132  void *tmp ;
36133  struct urb *urb ;
36134  unsigned int len ;
36135  struct scatterlist *sg2 ;
36136  int j ;
36137  struct page *tmp___0 ;
36138  int tmp___1 ;
36139  unsigned int __min1 ;
36140  unsigned int __min2 ;
36141  unsigned int tmp___2 ;
36142  struct usb_sg_request *__cil_tmp23 ;
36143  unsigned long __cil_tmp24 ;
36144  unsigned long __cil_tmp25 ;
36145  struct usb_device *__cil_tmp26 ;
36146  unsigned long __cil_tmp27 ;
36147  unsigned long __cil_tmp28 ;
36148  struct scatterlist *__cil_tmp29 ;
36149  unsigned long __cil_tmp30 ;
36150  unsigned long __cil_tmp31 ;
36151  unsigned int __cil_tmp32 ;
36152  unsigned int __cil_tmp33 ;
36153  spinlock_t *__cil_tmp34 ;
36154  struct raw_spinlock *__cil_tmp35 ;
36155  struct usb_bus *__cil_tmp36 ;
36156  unsigned int __cil_tmp37 ;
36157  int __cil_tmp38 ;
36158  unsigned long __cil_tmp39 ;
36159  unsigned long __cil_tmp40 ;
36160  struct urb **__cil_tmp41 ;
36161  unsigned long __cil_tmp42 ;
36162  struct urb **__cil_tmp43 ;
36163  unsigned long __cil_tmp44 ;
36164  unsigned int __cil_tmp45 ;
36165  struct urb *__cil_tmp46 ;
36166  unsigned long __cil_tmp47 ;
36167  unsigned long __cil_tmp48 ;
36168  unsigned long __cil_tmp49 ;
36169  struct urb **__cil_tmp50 ;
36170  struct urb **__cil_tmp51 ;
36171  unsigned int __cil_tmp52 ;
36172  size_t __cil_tmp53 ;
36173  int __cil_tmp54 ;
36174  unsigned long __cil_tmp55 ;
36175  struct urb **__cil_tmp56 ;
36176  struct urb **__cil_tmp57 ;
36177  struct urb *__cil_tmp58 ;
36178  unsigned long __cil_tmp59 ;
36179  struct urb **__cil_tmp60 ;
36180  struct urb **__cil_tmp61 ;
36181  struct urb *__cil_tmp62 ;
36182  unsigned int __cil_tmp63 ;
36183  struct completion *__cil_tmp64 ;
36184
36185  {
36186  {
36187#line 373
36188  __cil_tmp23 = (struct usb_sg_request *)0;
36189#line 373
36190  __cil_tmp24 = (unsigned long )__cil_tmp23;
36191#line 373
36192  __cil_tmp25 = (unsigned long )io;
36193#line 373
36194  if (__cil_tmp25 == __cil_tmp24) {
36195#line 377
36196    return (-22);
36197  } else {
36198    {
36199#line 373
36200    __cil_tmp26 = (struct usb_device *)0;
36201#line 373
36202    __cil_tmp27 = (unsigned long )__cil_tmp26;
36203#line 373
36204    __cil_tmp28 = (unsigned long )dev;
36205#line 373
36206    if (__cil_tmp28 == __cil_tmp27) {
36207#line 377
36208      return (-22);
36209    } else {
36210      {
36211#line 373
36212      __cil_tmp29 = (struct scatterlist *)0;
36213#line 373
36214      __cil_tmp30 = (unsigned long )__cil_tmp29;
36215#line 373
36216      __cil_tmp31 = (unsigned long )sg;
36217#line 373
36218      if (__cil_tmp31 == __cil_tmp30) {
36219#line 377
36220        return (-22);
36221      } else {
36222        {
36223#line 373
36224        __cil_tmp32 = pipe >> 30;
36225#line 373
36226        if (__cil_tmp32 == 2U) {
36227#line 377
36228          return (-22);
36229        } else {
36230          {
36231#line 373
36232          __cil_tmp33 = pipe >> 30;
36233#line 373
36234          if (__cil_tmp33 == 0U) {
36235#line 377
36236            return (-22);
36237          } else
36238#line 373
36239          if (nents <= 0) {
36240#line 377
36241            return (-22);
36242          } else {
36243
36244          }
36245          }
36246        }
36247        }
36248      }
36249      }
36250    }
36251    }
36252  }
36253  }
36254  {
36255#line 379
36256  __cil_tmp34 = & io->lock;
36257#line 379
36258  spinlock_check(__cil_tmp34);
36259#line 379
36260  __cil_tmp35 = & io->lock.ldv_6060.rlock;
36261#line 379
36262  __raw_spin_lock_init(__cil_tmp35, "&(&io->lock)->rlock", & __key);
36263#line 380
36264  io->dev = dev;
36265#line 381
36266  io->pipe = (int )pipe;
36267  }
36268  {
36269#line 383
36270  __cil_tmp36 = dev->bus;
36271#line 383
36272  __cil_tmp37 = __cil_tmp36->sg_tablesize;
36273#line 383
36274  if (__cil_tmp37 != 0U) {
36275#line 384
36276    use_sg = 1;
36277#line 385
36278    io->entries = 1;
36279  } else {
36280#line 387
36281    use_sg = 0;
36282#line 388
36283    io->entries = nents;
36284  }
36285  }
36286  {
36287#line 392
36288  __cil_tmp38 = io->entries;
36289#line 392
36290  __cil_tmp39 = (unsigned long )__cil_tmp38;
36291#line 392
36292  __cil_tmp40 = __cil_tmp39 * 8UL;
36293#line 392
36294  tmp = kmalloc(__cil_tmp40, mem_flags);
36295#line 392
36296  io->urbs = (struct urb **)tmp;
36297  }
36298  {
36299#line 393
36300  __cil_tmp41 = (struct urb **)0;
36301#line 393
36302  __cil_tmp42 = (unsigned long )__cil_tmp41;
36303#line 393
36304  __cil_tmp43 = io->urbs;
36305#line 393
36306  __cil_tmp44 = (unsigned long )__cil_tmp43;
36307#line 393
36308  if (__cil_tmp44 == __cil_tmp42) {
36309#line 394
36310    goto nomem;
36311  } else {
36312
36313  }
36314  }
36315#line 396
36316  urb_flags = 128;
36317  {
36318#line 397
36319  __cil_tmp45 = pipe & 128U;
36320#line 397
36321  if (__cil_tmp45 != 0U) {
36322#line 398
36323    urb_flags = urb_flags | 1;
36324  } else {
36325
36326  }
36327  }
36328#line 400
36329  i = 0;
36330#line 400
36331  sg = sg;
36332#line 400
36333  goto ldv_28833;
36334  ldv_28832: 
36335  {
36336#line 404
36337  urb = usb_alloc_urb(0, mem_flags);
36338  }
36339  {
36340#line 405
36341  __cil_tmp46 = (struct urb *)0;
36342#line 405
36343  __cil_tmp47 = (unsigned long )__cil_tmp46;
36344#line 405
36345  __cil_tmp48 = (unsigned long )urb;
36346#line 405
36347  if (__cil_tmp48 == __cil_tmp47) {
36348#line 406
36349    io->entries = i;
36350#line 407
36351    goto nomem;
36352  } else {
36353
36354  }
36355  }
36356#line 409
36357  __cil_tmp49 = (unsigned long )i;
36358#line 409
36359  __cil_tmp50 = io->urbs;
36360#line 409
36361  __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
36362#line 409
36363  *__cil_tmp51 = urb;
36364#line 411
36365  urb->dev = (struct usb_device *)0;
36366#line 412
36367  urb->pipe = pipe;
36368#line 413
36369  urb->interval = (int )period;
36370#line 414
36371  urb->transfer_flags = (unsigned int )urb_flags;
36372#line 415
36373  urb->complete = & sg_complete;
36374#line 416
36375  urb->context = (void *)io;
36376#line 417
36377  urb->sg = sg;
36378#line 419
36379  if (use_sg != 0) {
36380#line 421
36381    urb->transfer_buffer = (void *)0;
36382#line 422
36383    urb->num_sgs = nents;
36384#line 425
36385    len = (unsigned int )length;
36386#line 426
36387    if (len == 0U) {
36388#line 430
36389      j = 0;
36390#line 430
36391      sg2 = sg;
36392#line 430
36393      goto ldv_28827;
36394      ldv_28826: 
36395      {
36396#line 431
36397      __cil_tmp52 = sg2->length;
36398#line 431
36399      len = __cil_tmp52 + len;
36400#line 430
36401      j = j + 1;
36402#line 430
36403      sg2 = sg_next(sg2);
36404      }
36405      ldv_28827: ;
36406#line 430
36407      if (j < nents) {
36408#line 431
36409        goto ldv_28826;
36410      } else {
36411#line 433
36412        goto ldv_28828;
36413      }
36414      ldv_28828: ;
36415    } else {
36416
36417    }
36418  } else {
36419    {
36420#line 439
36421    tmp___0 = sg_page___0(sg);
36422#line 439
36423    tmp___1 = PageHighMem(tmp___0);
36424    }
36425#line 439
36426    if (tmp___1 == 0) {
36427      {
36428#line 440
36429      urb->transfer_buffer = sg_virt___0(sg);
36430      }
36431    } else {
36432#line 442
36433      urb->transfer_buffer = (void *)0;
36434    }
36435#line 444
36436    len = sg->length;
36437#line 445
36438    if (length != 0UL) {
36439#line 446
36440      __min1 = len;
36441#line 446
36442      __min2 = (unsigned int )length;
36443#line 446
36444      if (__min1 < __min2) {
36445#line 446
36446        tmp___2 = __min1;
36447      } else {
36448#line 446
36449        tmp___2 = __min2;
36450      }
36451#line 446
36452      len = tmp___2;
36453#line 447
36454      __cil_tmp53 = (size_t )len;
36455#line 447
36456      length = length - __cil_tmp53;
36457#line 448
36458      if (length == 0UL) {
36459#line 449
36460        io->entries = i + 1;
36461      } else {
36462
36463      }
36464    } else {
36465
36466    }
36467  }
36468  {
36469#line 452
36470  urb->transfer_buffer_length = len;
36471#line 400
36472  i = i + 1;
36473#line 400
36474  sg = sg_next(sg);
36475  }
36476  ldv_28833: ;
36477  {
36478#line 400
36479  __cil_tmp54 = io->entries;
36480#line 400
36481  if (__cil_tmp54 > i) {
36482#line 401
36483    goto ldv_28832;
36484  } else {
36485#line 403
36486    goto ldv_28834;
36487  }
36488  }
36489  ldv_28834: 
36490  {
36491#line 454
36492  i = i - 1;
36493#line 454
36494  __cil_tmp55 = (unsigned long )i;
36495#line 454
36496  __cil_tmp56 = io->urbs;
36497#line 454
36498  __cil_tmp57 = __cil_tmp56 + __cil_tmp55;
36499#line 454
36500  __cil_tmp58 = *__cil_tmp57;
36501#line 454
36502  __cil_tmp59 = (unsigned long )i;
36503#line 454
36504  __cil_tmp60 = io->urbs;
36505#line 454
36506  __cil_tmp61 = __cil_tmp60 + __cil_tmp59;
36507#line 454
36508  __cil_tmp62 = *__cil_tmp61;
36509#line 454
36510  __cil_tmp63 = __cil_tmp62->transfer_flags;
36511#line 454
36512  __cil_tmp58->transfer_flags = __cil_tmp63 & 4294967167U;
36513#line 457
36514  io->count = io->entries;
36515#line 458
36516  io->status = 0;
36517#line 459
36518  io->bytes = 0UL;
36519#line 460
36520  __cil_tmp64 = & io->complete;
36521#line 460
36522  init_completion(__cil_tmp64);
36523  }
36524#line 461
36525  return (0);
36526  nomem: 
36527  {
36528#line 464
36529  sg_clean(io);
36530  }
36531#line 465
36532  return (-12);
36533}
36534}
36535#line 512 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
36536void usb_sg_wait(struct usb_sg_request *io ) 
36537{ int i ;
36538  int entries ;
36539  int retval ;
36540  spinlock_t *__cil_tmp5 ;
36541  unsigned long __cil_tmp6 ;
36542  struct urb **__cil_tmp7 ;
36543  struct urb **__cil_tmp8 ;
36544  struct urb *__cil_tmp9 ;
36545  unsigned long __cil_tmp10 ;
36546  struct urb **__cil_tmp11 ;
36547  struct urb **__cil_tmp12 ;
36548  struct urb *__cil_tmp13 ;
36549  spinlock_t *__cil_tmp14 ;
36550  unsigned long __cil_tmp15 ;
36551  struct urb **__cil_tmp16 ;
36552  struct urb **__cil_tmp17 ;
36553  struct urb *__cil_tmp18 ;
36554  unsigned long __cil_tmp19 ;
36555  struct urb **__cil_tmp20 ;
36556  struct urb **__cil_tmp21 ;
36557  struct urb *__cil_tmp22 ;
36558  unsigned long __cil_tmp23 ;
36559  struct urb **__cil_tmp24 ;
36560  struct urb **__cil_tmp25 ;
36561  struct urb *__cil_tmp26 ;
36562  struct usb_device *__cil_tmp27 ;
36563  struct device *__cil_tmp28 ;
36564  struct device  const  *__cil_tmp29 ;
36565  spinlock_t *__cil_tmp30 ;
36566  int __cil_tmp31 ;
36567  int __cil_tmp32 ;
36568  int __cil_tmp33 ;
36569  int __cil_tmp34 ;
36570  int __cil_tmp35 ;
36571  int __cil_tmp36 ;
36572  struct completion *__cil_tmp37 ;
36573  spinlock_t *__cil_tmp38 ;
36574  struct completion *__cil_tmp39 ;
36575
36576  {
36577  {
36578#line 515
36579  entries = io->entries;
36580#line 518
36581  __cil_tmp5 = & io->lock;
36582#line 518
36583  spin_lock_irq(__cil_tmp5);
36584#line 519
36585  i = 0;
36586  }
36587#line 520
36588  goto ldv_28862;
36589  ldv_28861: 
36590  {
36591#line 523
36592  __cil_tmp6 = (unsigned long )i;
36593#line 523
36594  __cil_tmp7 = io->urbs;
36595#line 523
36596  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
36597#line 523
36598  __cil_tmp9 = *__cil_tmp8;
36599#line 523
36600  __cil_tmp9->dev = io->dev;
36601#line 524
36602  __cil_tmp10 = (unsigned long )i;
36603#line 524
36604  __cil_tmp11 = io->urbs;
36605#line 524
36606  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
36607#line 524
36608  __cil_tmp13 = *__cil_tmp12;
36609#line 524
36610  retval = usb_submit_urb(__cil_tmp13, 32U);
36611#line 529
36612  __cil_tmp14 = & io->lock;
36613#line 529
36614  spin_unlock_irq(__cil_tmp14);
36615  }
36616#line 532
36617  if (retval == -6) {
36618#line 532
36619    goto case_neg_6;
36620  } else
36621#line 533
36622  if (retval == -11) {
36623#line 533
36624    goto case_neg_11;
36625  } else
36626#line 534
36627  if (retval == -12) {
36628#line 534
36629    goto case_neg_12;
36630  } else
36631#line 546
36632  if (retval == 0) {
36633#line 546
36634    goto case_0;
36635  } else {
36636#line 552
36637    goto switch_default;
36638#line 530
36639    if (0) {
36640      case_neg_6: ;
36641      case_neg_11: ;
36642      case_neg_12: 
36643      {
36644#line 535
36645      __cil_tmp15 = (unsigned long )i;
36646#line 535
36647      __cil_tmp16 = io->urbs;
36648#line 535
36649      __cil_tmp17 = __cil_tmp16 + __cil_tmp15;
36650#line 535
36651      __cil_tmp18 = *__cil_tmp17;
36652#line 535
36653      __cil_tmp18->dev = (struct usb_device *)0;
36654#line 536
36655      retval = 0;
36656#line 537
36657      yield();
36658      }
36659#line 538
36660      goto ldv_28857;
36661      case_0: 
36662      {
36663#line 547
36664      i = i + 1;
36665#line 548
36666      cpu_relax();
36667      }
36668#line 549
36669      goto ldv_28857;
36670      switch_default: 
36671      {
36672#line 553
36673      __cil_tmp19 = (unsigned long )i;
36674#line 553
36675      __cil_tmp20 = io->urbs;
36676#line 553
36677      __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
36678#line 553
36679      __cil_tmp22 = *__cil_tmp21;
36680#line 553
36681      __cil_tmp22->dev = (struct usb_device *)0;
36682#line 554
36683      __cil_tmp23 = (unsigned long )i;
36684#line 554
36685      __cil_tmp24 = io->urbs;
36686#line 554
36687      __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
36688#line 554
36689      __cil_tmp26 = *__cil_tmp25;
36690#line 554
36691      __cil_tmp26->status = retval;
36692#line 555
36693      __cil_tmp27 = io->dev;
36694#line 555
36695      __cil_tmp28 = & __cil_tmp27->dev;
36696#line 555
36697      __cil_tmp29 = (struct device  const  *)__cil_tmp28;
36698#line 555
36699      dev_printk("<7>", __cil_tmp29, "%s, submit --> %d\n", "usb_sg_wait", retval);
36700#line 557
36701      usb_sg_cancel(io);
36702      }
36703    } else {
36704
36705    }
36706  }
36707  ldv_28857: 
36708  {
36709#line 559
36710  __cil_tmp30 = & io->lock;
36711#line 559
36712  spin_lock_irq(__cil_tmp30);
36713  }
36714#line 560
36715  if (retval != 0) {
36716    {
36717#line 560
36718    __cil_tmp31 = io->status;
36719#line 560
36720    if (__cil_tmp31 == 0) {
36721#line 561
36722      io->status = retval;
36723    } else {
36724      {
36725#line 560
36726      __cil_tmp32 = io->status;
36727#line 560
36728      if (__cil_tmp32 == -104) {
36729#line 561
36730        io->status = retval;
36731      } else {
36732
36733      }
36734      }
36735    }
36736    }
36737  } else {
36738
36739  }
36740  ldv_28862: ;
36741#line 520
36742  if (i < entries) {
36743    {
36744#line 520
36745    __cil_tmp33 = io->status;
36746#line 520
36747    if (__cil_tmp33 == 0) {
36748#line 521
36749      goto ldv_28861;
36750    } else {
36751#line 523
36752      goto ldv_28863;
36753    }
36754    }
36755  } else {
36756#line 523
36757    goto ldv_28863;
36758  }
36759  ldv_28863: 
36760#line 563
36761  __cil_tmp34 = i - entries;
36762#line 563
36763  __cil_tmp35 = io->count;
36764#line 563
36765  io->count = __cil_tmp35 + __cil_tmp34;
36766  {
36767#line 564
36768  __cil_tmp36 = io->count;
36769#line 564
36770  if (__cil_tmp36 == 0) {
36771    {
36772#line 565
36773    __cil_tmp37 = & io->complete;
36774#line 565
36775    complete(__cil_tmp37);
36776    }
36777  } else {
36778
36779  }
36780  }
36781  {
36782#line 566
36783  __cil_tmp38 = & io->lock;
36784#line 566
36785  spin_unlock_irq(__cil_tmp38);
36786#line 572
36787  __cil_tmp39 = & io->complete;
36788#line 572
36789  wait_for_completion(__cil_tmp39);
36790#line 574
36791  sg_clean(io);
36792  }
36793#line 575
36794  return;
36795}
36796}
36797#line 586 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
36798void usb_sg_cancel(struct usb_sg_request *io ) 
36799{ unsigned long flags ;
36800  raw_spinlock_t *tmp ;
36801  int i ;
36802  int retval ;
36803  spinlock_t *__cil_tmp6 ;
36804  int __cil_tmp7 ;
36805  spinlock_t *__cil_tmp8 ;
36806  struct usb_device *__cil_tmp9 ;
36807  unsigned long __cil_tmp10 ;
36808  unsigned long __cil_tmp11 ;
36809  struct urb **__cil_tmp12 ;
36810  struct urb **__cil_tmp13 ;
36811  struct urb *__cil_tmp14 ;
36812  struct usb_device *__cil_tmp15 ;
36813  unsigned long __cil_tmp16 ;
36814  unsigned long __cil_tmp17 ;
36815  struct urb **__cil_tmp18 ;
36816  struct urb **__cil_tmp19 ;
36817  struct urb *__cil_tmp20 ;
36818  struct usb_device *__cil_tmp21 ;
36819  struct device *__cil_tmp22 ;
36820  struct device  const  *__cil_tmp23 ;
36821  int __cil_tmp24 ;
36822  spinlock_t *__cil_tmp25 ;
36823  spinlock_t *__cil_tmp26 ;
36824
36825  {
36826  {
36827#line 590
36828  __cil_tmp6 = & io->lock;
36829#line 590
36830  tmp = spinlock_check(__cil_tmp6);
36831#line 590
36832  flags = _raw_spin_lock_irqsave(tmp);
36833  }
36834  {
36835#line 593
36836  __cil_tmp7 = io->status;
36837#line 593
36838  if (__cil_tmp7 == 0) {
36839    {
36840#line 596
36841    io->status = -104;
36842#line 597
36843    __cil_tmp8 = & io->lock;
36844#line 597
36845    spin_unlock(__cil_tmp8);
36846#line 598
36847    i = 0;
36848    }
36849#line 598
36850    goto ldv_28882;
36851    ldv_28881: ;
36852    {
36853#line 601
36854    __cil_tmp9 = (struct usb_device *)0;
36855#line 601
36856    __cil_tmp10 = (unsigned long )__cil_tmp9;
36857#line 601
36858    __cil_tmp11 = (unsigned long )i;
36859#line 601
36860    __cil_tmp12 = io->urbs;
36861#line 601
36862    __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
36863#line 601
36864    __cil_tmp14 = *__cil_tmp13;
36865#line 601
36866    __cil_tmp15 = __cil_tmp14->dev;
36867#line 601
36868    __cil_tmp16 = (unsigned long )__cil_tmp15;
36869#line 601
36870    if (__cil_tmp16 == __cil_tmp10) {
36871#line 602
36872      goto ldv_28879;
36873    } else {
36874
36875    }
36876    }
36877    {
36878#line 603
36879    __cil_tmp17 = (unsigned long )i;
36880#line 603
36881    __cil_tmp18 = io->urbs;
36882#line 603
36883    __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
36884#line 603
36885    __cil_tmp20 = *__cil_tmp19;
36886#line 603
36887    retval = usb_unlink_urb(__cil_tmp20);
36888    }
36889#line 604
36890    if (retval != -115) {
36891#line 604
36892      if (retval != -16) {
36893        {
36894#line 605
36895        __cil_tmp21 = io->dev;
36896#line 605
36897        __cil_tmp22 = & __cil_tmp21->dev;
36898#line 605
36899        __cil_tmp23 = (struct device  const  *)__cil_tmp22;
36900#line 605
36901        dev_warn(__cil_tmp23, "%s, unlink --> %d\n", "usb_sg_cancel", retval);
36902        }
36903      } else {
36904
36905      }
36906    } else {
36907
36908    }
36909    ldv_28879: 
36910#line 598
36911    i = i + 1;
36912    ldv_28882: ;
36913    {
36914#line 598
36915    __cil_tmp24 = io->entries;
36916#line 598
36917    if (__cil_tmp24 > i) {
36918#line 599
36919      goto ldv_28881;
36920    } else {
36921#line 601
36922      goto ldv_28883;
36923    }
36924    }
36925    ldv_28883: 
36926    {
36927#line 608
36928    __cil_tmp25 = & io->lock;
36929#line 608
36930    spin_lock(__cil_tmp25);
36931    }
36932  } else {
36933
36934  }
36935  }
36936  {
36937#line 610
36938  __cil_tmp26 = & io->lock;
36939#line 610
36940  spin_unlock_irqrestore(__cil_tmp26, flags);
36941  }
36942#line 611
36943  return;
36944}
36945}
36946#line 638 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
36947int usb_get_descriptor(struct usb_device *dev , unsigned char type , unsigned char index ,
36948                       void *buf , int size ) 
36949{ int i ;
36950  int result ;
36951  unsigned int tmp ;
36952  size_t __cil_tmp9 ;
36953  unsigned int __cil_tmp10 ;
36954  __u8 __cil_tmp11 ;
36955  __u8 __cil_tmp12 ;
36956  __u16 __cil_tmp13 ;
36957  int __cil_tmp14 ;
36958  __u16 __cil_tmp15 ;
36959  int __cil_tmp16 ;
36960  int __cil_tmp17 ;
36961  int __cil_tmp18 ;
36962  __u16 __cil_tmp19 ;
36963  __u16 __cil_tmp20 ;
36964  __u16 __cil_tmp21 ;
36965  int __cil_tmp22 ;
36966  __u16 __cil_tmp23 ;
36967  int __cil_tmp24 ;
36968  u8 *__cil_tmp25 ;
36969  u8 *__cil_tmp26 ;
36970  u8 __cil_tmp27 ;
36971  int __cil_tmp28 ;
36972
36973  {
36974  {
36975#line 644
36976  __cil_tmp9 = (size_t )size;
36977#line 644
36978  memset(buf, 0, __cil_tmp9);
36979#line 646
36980  i = 0;
36981  }
36982#line 646
36983  goto ldv_28902;
36984  ldv_28901: 
36985  {
36986#line 648
36987  tmp = __create_pipe(dev, 0U);
36988#line 648
36989  __cil_tmp10 = tmp | 2147483776U;
36990#line 648
36991  __cil_tmp11 = (__u8 )6;
36992#line 648
36993  __cil_tmp12 = (__u8 )128;
36994#line 648
36995  __cil_tmp13 = (__u16 )index;
36996#line 648
36997  __cil_tmp14 = (int )__cil_tmp13;
36998#line 648
36999  __cil_tmp15 = (__u16 )type;
37000#line 648
37001  __cil_tmp16 = (int )__cil_tmp15;
37002#line 648
37003  __cil_tmp17 = __cil_tmp16 << 8U;
37004#line 648
37005  __cil_tmp18 = __cil_tmp17 + __cil_tmp14;
37006#line 648
37007  __cil_tmp19 = (__u16 )__cil_tmp18;
37008#line 648
37009  __cil_tmp20 = (__u16 )0;
37010#line 648
37011  __cil_tmp21 = (__u16 )size;
37012#line 648
37013  __cil_tmp22 = (int )__cil_tmp21;
37014#line 648
37015  __cil_tmp23 = (__u16 )__cil_tmp22;
37016#line 648
37017  result = usb_control_msg(dev, __cil_tmp10, __cil_tmp11, __cil_tmp12, __cil_tmp19,
37018                           __cil_tmp20, buf, __cil_tmp23, 5000);
37019  }
37020#line 652
37021  if (result <= 0) {
37022#line 652
37023    if (result != -110) {
37024#line 653
37025      goto ldv_28899;
37026    } else {
37027
37028    }
37029  } else {
37030
37031  }
37032#line 654
37033  if (result > 1) {
37034    {
37035#line 654
37036    __cil_tmp24 = (int )type;
37037#line 654
37038    __cil_tmp25 = (u8 *)buf;
37039#line 654
37040    __cil_tmp26 = __cil_tmp25 + 1UL;
37041#line 654
37042    __cil_tmp27 = *__cil_tmp26;
37043#line 654
37044    __cil_tmp28 = (int )__cil_tmp27;
37045#line 654
37046    if (__cil_tmp28 != __cil_tmp24) {
37047#line 655
37048      result = -61;
37049#line 656
37050      goto ldv_28899;
37051    } else {
37052
37053    }
37054    }
37055  } else {
37056
37057  }
37058#line 658
37059  goto ldv_28900;
37060  ldv_28899: 
37061#line 646
37062  i = i + 1;
37063  ldv_28902: ;
37064#line 646
37065  if (i <= 2) {
37066#line 647
37067    goto ldv_28901;
37068  } else {
37069#line 649
37070    goto ldv_28900;
37071  }
37072  ldv_28900: ;
37073#line 660
37074  return (result);
37075}
37076}
37077#line 686 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
37078static int usb_get_string(struct usb_device *dev , unsigned short langid , unsigned char index ,
37079                          void *buf , int size ) 
37080{ int i ;
37081  int result ;
37082  unsigned int tmp ;
37083  unsigned int __cil_tmp9 ;
37084  __u8 __cil_tmp10 ;
37085  __u8 __cil_tmp11 ;
37086  __u16 __cil_tmp12 ;
37087  unsigned int __cil_tmp13 ;
37088  unsigned int __cil_tmp14 ;
37089  int __cil_tmp15 ;
37090  __u16 __cil_tmp16 ;
37091  int __cil_tmp17 ;
37092  __u16 __cil_tmp18 ;
37093  __u16 __cil_tmp19 ;
37094  int __cil_tmp20 ;
37095  __u16 __cil_tmp21 ;
37096  u8 *__cil_tmp22 ;
37097  u8 *__cil_tmp23 ;
37098  u8 __cil_tmp24 ;
37099  unsigned int __cil_tmp25 ;
37100
37101  {
37102#line 692
37103  i = 0;
37104#line 692
37105  goto ldv_28925;
37106  ldv_28924: 
37107  {
37108#line 694
37109  tmp = __create_pipe(dev, 0U);
37110#line 694
37111  __cil_tmp9 = tmp | 2147483776U;
37112#line 694
37113  __cil_tmp10 = (__u8 )6;
37114#line 694
37115  __cil_tmp11 = (__u8 )128;
37116#line 694
37117  __cil_tmp12 = (__u16 )index;
37118#line 694
37119  __cil_tmp13 = (unsigned int )__cil_tmp12;
37120#line 694
37121  __cil_tmp14 = __cil_tmp13 + 768U;
37122#line 694
37123  __cil_tmp15 = (int )__cil_tmp14;
37124#line 694
37125  __cil_tmp16 = (__u16 )__cil_tmp15;
37126#line 694
37127  __cil_tmp17 = (int )langid;
37128#line 694
37129  __cil_tmp18 = (__u16 )__cil_tmp17;
37130#line 694
37131  __cil_tmp19 = (__u16 )size;
37132#line 694
37133  __cil_tmp20 = (int )__cil_tmp19;
37134#line 694
37135  __cil_tmp21 = (__u16 )__cil_tmp20;
37136#line 694
37137  result = usb_control_msg(dev, __cil_tmp9, __cil_tmp10, __cil_tmp11, __cil_tmp16,
37138                           __cil_tmp18, buf, __cil_tmp21, 5000);
37139  }
37140#line 698
37141  if (result == 0) {
37142#line 699
37143    goto ldv_28922;
37144  } else
37145#line 698
37146  if (result == -32) {
37147#line 699
37148    goto ldv_28922;
37149  } else {
37150
37151  }
37152#line 700
37153  if (result > 1) {
37154    {
37155#line 700
37156    __cil_tmp22 = (u8 *)buf;
37157#line 700
37158    __cil_tmp23 = __cil_tmp22 + 1UL;
37159#line 700
37160    __cil_tmp24 = *__cil_tmp23;
37161#line 700
37162    __cil_tmp25 = (unsigned int )__cil_tmp24;
37163#line 700
37164    if (__cil_tmp25 != 3U) {
37165#line 701
37166      result = -61;
37167#line 702
37168      goto ldv_28922;
37169    } else {
37170
37171    }
37172    }
37173  } else {
37174
37175  }
37176#line 704
37177  goto ldv_28923;
37178  ldv_28922: 
37179#line 692
37180  i = i + 1;
37181  ldv_28925: ;
37182#line 692
37183  if (i <= 2) {
37184#line 693
37185    goto ldv_28924;
37186  } else {
37187#line 695
37188    goto ldv_28923;
37189  }
37190  ldv_28923: ;
37191#line 706
37192  return (result);
37193}
37194}
37195#line 709 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
37196static void usb_try_string_workarounds(unsigned char *buf , int *length ) 
37197{ int newlength ;
37198  int oldlength ;
37199  int __cil_tmp5 ;
37200  int __cil_tmp6 ;
37201  unsigned long __cil_tmp7 ;
37202  unsigned long __cil_tmp8 ;
37203  unsigned char *__cil_tmp9 ;
37204  unsigned char __cil_tmp10 ;
37205  unsigned int __cil_tmp11 ;
37206  int __cil_tmp12 ;
37207
37208  {
37209#line 711
37210  oldlength = *length;
37211#line 713
37212  newlength = 2;
37213#line 713
37214  goto ldv_28934;
37215  ldv_28933: ;
37216  {
37217#line 714
37218  __cil_tmp5 = (int )_ctype[(int )*(buf + (unsigned long )newlength)];
37219#line 714
37220  __cil_tmp6 = __cil_tmp5 & 151;
37221#line 714
37222  if (__cil_tmp6 == 0) {
37223#line 715
37224    goto ldv_28932;
37225  } else {
37226    {
37227#line 714
37228    __cil_tmp7 = (unsigned long )newlength;
37229#line 714
37230    __cil_tmp8 = __cil_tmp7 + 1UL;
37231#line 714
37232    __cil_tmp9 = buf + __cil_tmp8;
37233#line 714
37234    __cil_tmp10 = *__cil_tmp9;
37235#line 714
37236    __cil_tmp11 = (unsigned int )__cil_tmp10;
37237#line 714
37238    if (__cil_tmp11 != 0U) {
37239#line 715
37240      goto ldv_28932;
37241    } else {
37242
37243    }
37244    }
37245  }
37246  }
37247#line 713
37248  newlength = newlength + 2;
37249  ldv_28934: ;
37250  {
37251#line 713
37252  __cil_tmp12 = newlength + 1;
37253#line 713
37254  if (__cil_tmp12 < oldlength) {
37255#line 714
37256    goto ldv_28933;
37257  } else {
37258#line 716
37259    goto ldv_28932;
37260  }
37261  }
37262  ldv_28932: ;
37263#line 717
37264  if (newlength > 2) {
37265#line 718
37266    *buf = (unsigned char )newlength;
37267#line 719
37268    *length = newlength;
37269  } else {
37270
37271  }
37272#line 721
37273  return;
37274}
37275}
37276#line 723 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
37277static int usb_string_sub(struct usb_device *dev , unsigned int langid , unsigned int index ,
37278                          unsigned char *buf ) 
37279{ int rc ;
37280  u32 __cil_tmp6 ;
37281  int __cil_tmp7 ;
37282  unsigned short __cil_tmp8 ;
37283  int __cil_tmp9 ;
37284  unsigned short __cil_tmp10 ;
37285  unsigned char __cil_tmp11 ;
37286  int __cil_tmp12 ;
37287  unsigned char __cil_tmp13 ;
37288  void *__cil_tmp14 ;
37289  unsigned short __cil_tmp15 ;
37290  int __cil_tmp16 ;
37291  unsigned short __cil_tmp17 ;
37292  unsigned char __cil_tmp18 ;
37293  int __cil_tmp19 ;
37294  unsigned char __cil_tmp20 ;
37295  void *__cil_tmp21 ;
37296  unsigned short __cil_tmp22 ;
37297  int __cil_tmp23 ;
37298  unsigned short __cil_tmp24 ;
37299  unsigned char __cil_tmp25 ;
37300  int __cil_tmp26 ;
37301  unsigned char __cil_tmp27 ;
37302  void *__cil_tmp28 ;
37303  unsigned char __cil_tmp29 ;
37304  int __cil_tmp30 ;
37305  unsigned char __cil_tmp31 ;
37306  unsigned int __cil_tmp32 ;
37307  unsigned char *__cil_tmp33 ;
37308  unsigned char __cil_tmp34 ;
37309  unsigned int __cil_tmp35 ;
37310  unsigned char __cil_tmp36 ;
37311  int __cil_tmp37 ;
37312  unsigned char __cil_tmp38 ;
37313
37314  {
37315  {
37316#line 730
37317  __cil_tmp6 = dev->quirks;
37318#line 730
37319  __cil_tmp7 = (int )__cil_tmp6;
37320#line 730
37321  if (__cil_tmp7 & 1) {
37322#line 731
37323    rc = -5;
37324  } else {
37325    {
37326#line 733
37327    __cil_tmp8 = (unsigned short )langid;
37328#line 733
37329    __cil_tmp9 = (int )__cil_tmp8;
37330#line 733
37331    __cil_tmp10 = (unsigned short )__cil_tmp9;
37332#line 733
37333    __cil_tmp11 = (unsigned char )index;
37334#line 733
37335    __cil_tmp12 = (int )__cil_tmp11;
37336#line 733
37337    __cil_tmp13 = (unsigned char )__cil_tmp12;
37338#line 733
37339    __cil_tmp14 = (void *)buf;
37340#line 733
37341    rc = usb_get_string(dev, __cil_tmp10, __cil_tmp13, __cil_tmp14, 255);
37342    }
37343  }
37344  }
37345#line 737
37346  if (rc <= 1) {
37347    {
37348#line 738
37349    __cil_tmp15 = (unsigned short )langid;
37350#line 738
37351    __cil_tmp16 = (int )__cil_tmp15;
37352#line 738
37353    __cil_tmp17 = (unsigned short )__cil_tmp16;
37354#line 738
37355    __cil_tmp18 = (unsigned char )index;
37356#line 738
37357    __cil_tmp19 = (int )__cil_tmp18;
37358#line 738
37359    __cil_tmp20 = (unsigned char )__cil_tmp19;
37360#line 738
37361    __cil_tmp21 = (void *)buf;
37362#line 738
37363    rc = usb_get_string(dev, __cil_tmp17, __cil_tmp20, __cil_tmp21, 2);
37364    }
37365#line 739
37366    if (rc == 2) {
37367      {
37368#line 740
37369      __cil_tmp22 = (unsigned short )langid;
37370#line 740
37371      __cil_tmp23 = (int )__cil_tmp22;
37372#line 740
37373      __cil_tmp24 = (unsigned short )__cil_tmp23;
37374#line 740
37375      __cil_tmp25 = (unsigned char )index;
37376#line 740
37377      __cil_tmp26 = (int )__cil_tmp25;
37378#line 740
37379      __cil_tmp27 = (unsigned char )__cil_tmp26;
37380#line 740
37381      __cil_tmp28 = (void *)buf;
37382#line 740
37383      __cil_tmp29 = *buf;
37384#line 740
37385      __cil_tmp30 = (int )__cil_tmp29;
37386#line 740
37387      rc = usb_get_string(dev, __cil_tmp24, __cil_tmp27, __cil_tmp28, __cil_tmp30);
37388      }
37389    } else {
37390
37391    }
37392  } else {
37393
37394  }
37395#line 743
37396  if (rc > 1) {
37397    {
37398#line 744
37399    __cil_tmp31 = *buf;
37400#line 744
37401    __cil_tmp32 = (unsigned int )__cil_tmp31;
37402#line 744
37403    if (__cil_tmp32 == 0U) {
37404      {
37405#line 744
37406      __cil_tmp33 = buf + 1UL;
37407#line 744
37408      __cil_tmp34 = *__cil_tmp33;
37409#line 744
37410      __cil_tmp35 = (unsigned int )__cil_tmp34;
37411#line 744
37412      if (__cil_tmp35 == 0U) {
37413        {
37414#line 745
37415        usb_try_string_workarounds(buf, & rc);
37416        }
37417      } else {
37418
37419      }
37420      }
37421    } else {
37422
37423    }
37424    }
37425    {
37426#line 748
37427    __cil_tmp36 = *buf;
37428#line 748
37429    __cil_tmp37 = (int )__cil_tmp36;
37430#line 748
37431    if (__cil_tmp37 < rc) {
37432#line 749
37433      __cil_tmp38 = *buf;
37434#line 749
37435      rc = (int )__cil_tmp38;
37436    } else {
37437
37438    }
37439    }
37440#line 751
37441    rc = rc & -2;
37442  } else {
37443
37444  }
37445#line 754
37446  if (rc <= 1) {
37447#line 755
37448    if (rc < 0) {
37449#line 755
37450      rc = rc;
37451    } else {
37452#line 755
37453      rc = -22;
37454    }
37455  } else {
37456
37457  }
37458#line 757
37459  return (rc);
37460}
37461}
37462#line 760 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
37463static int usb_get_langid(struct usb_device *dev , unsigned char *tbuf ) 
37464{ int err ;
37465  unsigned char *__cil_tmp4 ;
37466  unsigned char *__cil_tmp5 ;
37467  unsigned char __cil_tmp6 ;
37468  unsigned int __cil_tmp7 ;
37469  int __cil_tmp8 ;
37470  struct device *__cil_tmp9 ;
37471  struct device  const  *__cil_tmp10 ;
37472  int __cil_tmp11 ;
37473  struct device *__cil_tmp12 ;
37474  struct device  const  *__cil_tmp13 ;
37475  int __cil_tmp14 ;
37476  struct device *__cil_tmp15 ;
37477  struct device  const  *__cil_tmp16 ;
37478  unsigned char *__cil_tmp17 ;
37479  unsigned char __cil_tmp18 ;
37480  int __cil_tmp19 ;
37481  int __cil_tmp20 ;
37482  unsigned char *__cil_tmp21 ;
37483  unsigned char __cil_tmp22 ;
37484  int __cil_tmp23 ;
37485  struct device *__cil_tmp24 ;
37486  struct device  const  *__cil_tmp25 ;
37487  int __cil_tmp26 ;
37488
37489  {
37490  {
37491#line 764
37492  __cil_tmp4 = (unsigned char *)dev;
37493#line 764
37494  __cil_tmp5 = __cil_tmp4 + 1556UL;
37495#line 764
37496  __cil_tmp6 = *__cil_tmp5;
37497#line 764
37498  __cil_tmp7 = (unsigned int )__cil_tmp6;
37499#line 764
37500  if (__cil_tmp7 != 0U) {
37501#line 765
37502    return (0);
37503  } else {
37504
37505  }
37506  }
37507  {
37508#line 767
37509  __cil_tmp8 = dev->string_langid;
37510#line 767
37511  if (__cil_tmp8 < 0) {
37512#line 768
37513    return (-32);
37514  } else {
37515
37516  }
37517  }
37518  {
37519#line 770
37520  err = usb_string_sub(dev, 0U, 0U, tbuf);
37521  }
37522#line 774
37523  if (err == -61) {
37524    {
37525#line 775
37526    dev->string_langid = 1033;
37527#line 776
37528    dev->have_langid = (unsigned char)1;
37529#line 777
37530    __cil_tmp9 = & dev->dev;
37531#line 777
37532    __cil_tmp10 = (struct device  const  *)__cil_tmp9;
37533#line 777
37534    __cil_tmp11 = dev->string_langid;
37535#line 777
37536    dev_err(__cil_tmp10, "string descriptor 0 malformed (err = %d), defaulting to 0x%04x\n",
37537            err, __cil_tmp11);
37538    }
37539#line 781
37540    return (0);
37541  } else
37542#line 774
37543  if (err > 0) {
37544#line 774
37545    if (err <= 3) {
37546      {
37547#line 775
37548      dev->string_langid = 1033;
37549#line 776
37550      dev->have_langid = (unsigned char)1;
37551#line 777
37552      __cil_tmp12 = & dev->dev;
37553#line 777
37554      __cil_tmp13 = (struct device  const  *)__cil_tmp12;
37555#line 777
37556      __cil_tmp14 = dev->string_langid;
37557#line 777
37558      dev_err(__cil_tmp13, "string descriptor 0 malformed (err = %d), defaulting to 0x%04x\n",
37559              err, __cil_tmp14);
37560      }
37561#line 781
37562      return (0);
37563    } else {
37564
37565    }
37566  } else {
37567
37568  }
37569#line 787
37570  if (err < 0) {
37571    {
37572#line 788
37573    __cil_tmp15 = & dev->dev;
37574#line 788
37575    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
37576#line 788
37577    dev_err(__cil_tmp16, "string descriptor 0 read error: %d\n", err);
37578#line 790
37579    dev->string_langid = -1;
37580    }
37581#line 791
37582    return (-32);
37583  } else {
37584
37585  }
37586  {
37587#line 795
37588  __cil_tmp17 = tbuf + 3UL;
37589#line 795
37590  __cil_tmp18 = *__cil_tmp17;
37591#line 795
37592  __cil_tmp19 = (int )__cil_tmp18;
37593#line 795
37594  __cil_tmp20 = __cil_tmp19 << 8;
37595#line 795
37596  __cil_tmp21 = tbuf + 2UL;
37597#line 795
37598  __cil_tmp22 = *__cil_tmp21;
37599#line 795
37600  __cil_tmp23 = (int )__cil_tmp22;
37601#line 795
37602  dev->string_langid = __cil_tmp23 | __cil_tmp20;
37603#line 796
37604  dev->have_langid = (unsigned char)1;
37605#line 797
37606  __cil_tmp24 = & dev->dev;
37607#line 797
37608  __cil_tmp25 = (struct device  const  *)__cil_tmp24;
37609#line 797
37610  __cil_tmp26 = dev->string_langid;
37611#line 797
37612  dev_printk("<7>", __cil_tmp25, "default language 0x%04x\n", __cil_tmp26);
37613  }
37614#line 799
37615  return (0);
37616}
37617}
37618#line 819 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
37619int usb_string(struct usb_device *dev , int index , char *buf , size_t size ) 
37620{ unsigned char *tbuf ;
37621  int err ;
37622  void *tmp ;
37623  enum usb_device_state __cil_tmp8 ;
37624  unsigned int __cil_tmp9 ;
37625  char *__cil_tmp10 ;
37626  unsigned long __cil_tmp11 ;
37627  unsigned long __cil_tmp12 ;
37628  unsigned char *__cil_tmp13 ;
37629  unsigned long __cil_tmp14 ;
37630  unsigned long __cil_tmp15 ;
37631  int __cil_tmp16 ;
37632  unsigned int __cil_tmp17 ;
37633  unsigned int __cil_tmp18 ;
37634  wchar_t const   *__cil_tmp19 ;
37635  wchar_t const   *__cil_tmp20 ;
37636  int __cil_tmp21 ;
37637  int __cil_tmp22 ;
37638  enum utf16_endian __cil_tmp23 ;
37639  u8 *__cil_tmp24 ;
37640  int __cil_tmp25 ;
37641  unsigned long __cil_tmp26 ;
37642  char *__cil_tmp27 ;
37643  unsigned char *__cil_tmp28 ;
37644  unsigned char __cil_tmp29 ;
37645  unsigned int __cil_tmp30 ;
37646  struct device *__cil_tmp31 ;
37647  struct device  const  *__cil_tmp32 ;
37648  unsigned char *__cil_tmp33 ;
37649  unsigned char __cil_tmp34 ;
37650  int __cil_tmp35 ;
37651  void const   *__cil_tmp36 ;
37652
37653  {
37654  {
37655#line 824
37656  __cil_tmp8 = dev->state;
37657#line 824
37658  __cil_tmp9 = (unsigned int )__cil_tmp8;
37659#line 824
37660  if (__cil_tmp9 == 8U) {
37661#line 825
37662    return (-113);
37663  } else {
37664
37665  }
37666  }
37667#line 826
37668  if (size == 0UL) {
37669#line 827
37670    return (-22);
37671  } else {
37672    {
37673#line 826
37674    __cil_tmp10 = (char *)0;
37675#line 826
37676    __cil_tmp11 = (unsigned long )__cil_tmp10;
37677#line 826
37678    __cil_tmp12 = (unsigned long )buf;
37679#line 826
37680    if (__cil_tmp12 == __cil_tmp11) {
37681#line 827
37682      return (-22);
37683    } else
37684#line 826
37685    if (index == 0) {
37686#line 827
37687      return (-22);
37688    } else {
37689
37690    }
37691    }
37692  }
37693  {
37694#line 828
37695  *buf = (char)0;
37696#line 829
37697  tmp = kmalloc(256UL, 16U);
37698#line 829
37699  tbuf = (unsigned char *)tmp;
37700  }
37701  {
37702#line 830
37703  __cil_tmp13 = (unsigned char *)0;
37704#line 830
37705  __cil_tmp14 = (unsigned long )__cil_tmp13;
37706#line 830
37707  __cil_tmp15 = (unsigned long )tbuf;
37708#line 830
37709  if (__cil_tmp15 == __cil_tmp14) {
37710#line 831
37711    return (-12);
37712  } else {
37713
37714  }
37715  }
37716  {
37717#line 833
37718  err = usb_get_langid(dev, tbuf);
37719  }
37720#line 834
37721  if (err < 0) {
37722#line 835
37723    goto errout;
37724  } else {
37725
37726  }
37727  {
37728#line 837
37729  __cil_tmp16 = dev->string_langid;
37730#line 837
37731  __cil_tmp17 = (unsigned int )__cil_tmp16;
37732#line 837
37733  __cil_tmp18 = (unsigned int )index;
37734#line 837
37735  err = usb_string_sub(dev, __cil_tmp17, __cil_tmp18, tbuf);
37736  }
37737#line 838
37738  if (err < 0) {
37739#line 839
37740    goto errout;
37741  } else {
37742
37743  }
37744  {
37745#line 841
37746  size = size - 1UL;
37747#line 842
37748  __cil_tmp19 = (wchar_t const   *)tbuf;
37749#line 842
37750  __cil_tmp20 = __cil_tmp19 + 2U;
37751#line 842
37752  __cil_tmp21 = err + -2;
37753#line 842
37754  __cil_tmp22 = __cil_tmp21 / 2;
37755#line 842
37756  __cil_tmp23 = (enum utf16_endian )1;
37757#line 842
37758  __cil_tmp24 = (u8 *)buf;
37759#line 842
37760  __cil_tmp25 = (int )size;
37761#line 842
37762  err = utf16s_to_utf8s(__cil_tmp20, __cil_tmp22, __cil_tmp23, __cil_tmp24, __cil_tmp25);
37763#line 844
37764  __cil_tmp26 = (unsigned long )err;
37765#line 844
37766  __cil_tmp27 = buf + __cil_tmp26;
37767#line 844
37768  *__cil_tmp27 = (char)0;
37769  }
37770  {
37771#line 846
37772  __cil_tmp28 = tbuf + 1UL;
37773#line 846
37774  __cil_tmp29 = *__cil_tmp28;
37775#line 846
37776  __cil_tmp30 = (unsigned int )__cil_tmp29;
37777#line 846
37778  if (__cil_tmp30 != 3U) {
37779    {
37780#line 847
37781    __cil_tmp31 = & dev->dev;
37782#line 847
37783    __cil_tmp32 = (struct device  const  *)__cil_tmp31;
37784#line 847
37785    __cil_tmp33 = tbuf + 1UL;
37786#line 847
37787    __cil_tmp34 = *__cil_tmp33;
37788#line 847
37789    __cil_tmp35 = (int )__cil_tmp34;
37790#line 847
37791    dev_printk("<7>", __cil_tmp32, "wrong descriptor type %02x for string %d (\"%s\")\n",
37792               __cil_tmp35, index, buf);
37793    }
37794  } else {
37795
37796  }
37797  }
37798  errout: 
37799  {
37800#line 852
37801  __cil_tmp36 = (void const   *)tbuf;
37802#line 852
37803  kfree(__cil_tmp36);
37804  }
37805#line 853
37806  return (err);
37807}
37808}
37809#line 868 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
37810char *usb_cache_string(struct usb_device *udev , int index ) 
37811{ char *buf ;
37812  char *smallbuf ;
37813  int len ;
37814  void *tmp ;
37815  void *tmp___0 ;
37816  size_t __len ;
37817  void *__ret ;
37818  char *__cil_tmp10 ;
37819  unsigned long __cil_tmp11 ;
37820  unsigned long __cil_tmp12 ;
37821  size_t __cil_tmp13 ;
37822  char *__cil_tmp14 ;
37823  unsigned long __cil_tmp15 ;
37824  unsigned long __cil_tmp16 ;
37825  void *__cil_tmp17 ;
37826  void const   *__cil_tmp18 ;
37827  void const   *__cil_tmp19 ;
37828
37829  {
37830#line 871
37831  smallbuf = (char *)0;
37832#line 874
37833  if (index <= 0) {
37834#line 875
37835    return ((char *)0);
37836  } else {
37837
37838  }
37839  {
37840#line 877
37841  tmp = kmalloc(382UL, 16U);
37842#line 877
37843  buf = (char *)tmp;
37844  }
37845  {
37846#line 878
37847  __cil_tmp10 = (char *)0;
37848#line 878
37849  __cil_tmp11 = (unsigned long )__cil_tmp10;
37850#line 878
37851  __cil_tmp12 = (unsigned long )buf;
37852#line 878
37853  if (__cil_tmp12 != __cil_tmp11) {
37854    {
37855#line 879
37856    len = usb_string(udev, index, buf, 382UL);
37857    }
37858#line 880
37859    if (len > 0) {
37860      {
37861#line 881
37862      len = len + 1;
37863#line 881
37864      __cil_tmp13 = (size_t )len;
37865#line 881
37866      tmp___0 = kmalloc(__cil_tmp13, 16U);
37867#line 881
37868      smallbuf = (char *)tmp___0;
37869      }
37870      {
37871#line 882
37872      __cil_tmp14 = (char *)0;
37873#line 882
37874      __cil_tmp15 = (unsigned long )__cil_tmp14;
37875#line 882
37876      __cil_tmp16 = (unsigned long )smallbuf;
37877#line 882
37878      if (__cil_tmp16 == __cil_tmp15) {
37879#line 883
37880        return (buf);
37881      } else {
37882
37883      }
37884      }
37885      {
37886#line 884
37887      __len = (size_t )len;
37888#line 884
37889      __cil_tmp17 = (void *)smallbuf;
37890#line 884
37891      __cil_tmp18 = (void const   *)buf;
37892#line 884
37893      __ret = __builtin_memcpy(__cil_tmp17, __cil_tmp18, __len);
37894      }
37895    } else {
37896
37897    }
37898    {
37899#line 886
37900    __cil_tmp19 = (void const   *)buf;
37901#line 886
37902    kfree(__cil_tmp19);
37903    }
37904  } else {
37905
37906  }
37907  }
37908#line 888
37909  return (smallbuf);
37910}
37911}
37912#line 909 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
37913int usb_get_device_descriptor(struct usb_device *dev , unsigned int size ) 
37914{ struct usb_device_descriptor *desc ;
37915  int ret ;
37916  void *tmp ;
37917  size_t __len ;
37918  void *__ret ;
37919  struct usb_device_descriptor *__cil_tmp8 ;
37920  unsigned long __cil_tmp9 ;
37921  unsigned long __cil_tmp10 ;
37922  void *__cil_tmp11 ;
37923  int __cil_tmp12 ;
37924  struct usb_device_descriptor *__cil_tmp13 ;
37925  void *__cil_tmp14 ;
37926  void const   *__cil_tmp15 ;
37927  void const   *__cil_tmp16 ;
37928
37929  {
37930#line 914
37931  if (size > 18U) {
37932#line 915
37933    return (-22);
37934  } else {
37935
37936  }
37937  {
37938#line 916
37939  tmp = kmalloc(18UL, 16U);
37940#line 916
37941  desc = (struct usb_device_descriptor *)tmp;
37942  }
37943  {
37944#line 917
37945  __cil_tmp8 = (struct usb_device_descriptor *)0;
37946#line 917
37947  __cil_tmp9 = (unsigned long )__cil_tmp8;
37948#line 917
37949  __cil_tmp10 = (unsigned long )desc;
37950#line 917
37951  if (__cil_tmp10 == __cil_tmp9) {
37952#line 918
37953    return (-12);
37954  } else {
37955
37956  }
37957  }
37958  {
37959#line 920
37960  __cil_tmp11 = (void *)desc;
37961#line 920
37962  __cil_tmp12 = (int )size;
37963#line 920
37964  ret = usb_get_descriptor(dev, (unsigned char)1, (unsigned char)0, __cil_tmp11, __cil_tmp12);
37965  }
37966#line 921
37967  if (ret >= 0) {
37968    {
37969#line 922
37970    __len = (size_t )size;
37971#line 922
37972    __cil_tmp13 = & dev->descriptor;
37973#line 922
37974    __cil_tmp14 = (void *)__cil_tmp13;
37975#line 922
37976    __cil_tmp15 = (void const   *)desc;
37977#line 922
37978    __ret = __builtin_memcpy(__cil_tmp14, __cil_tmp15, __len);
37979    }
37980  } else {
37981
37982  }
37983  {
37984#line 923
37985  __cil_tmp16 = (void const   *)desc;
37986#line 923
37987  kfree(__cil_tmp16);
37988  }
37989#line 924
37990  return (ret);
37991}
37992}
37993#line 949 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
37994int usb_get_status(struct usb_device *dev , int type , int target , void *data ) 
37995{ int ret ;
37996  u16 *status ;
37997  void *tmp ;
37998  unsigned int tmp___0 ;
37999  u16 *__cil_tmp9 ;
38000  unsigned long __cil_tmp10 ;
38001  unsigned long __cil_tmp11 ;
38002  unsigned int __cil_tmp12 ;
38003  __u8 __cil_tmp13 ;
38004  signed char __cil_tmp14 ;
38005  int __cil_tmp15 ;
38006  int __cil_tmp16 ;
38007  __u8 __cil_tmp17 ;
38008  int __cil_tmp18 ;
38009  __u8 __cil_tmp19 ;
38010  __u16 __cil_tmp20 ;
38011  __u16 __cil_tmp21 ;
38012  int __cil_tmp22 ;
38013  __u16 __cil_tmp23 ;
38014  void *__cil_tmp24 ;
38015  __u16 __cil_tmp25 ;
38016  u16 *__cil_tmp26 ;
38017  void const   *__cil_tmp27 ;
38018
38019  {
38020  {
38021#line 952
38022  tmp = kmalloc(2UL, 208U);
38023#line 952
38024  status = (u16 *)tmp;
38025  }
38026  {
38027#line 954
38028  __cil_tmp9 = (u16 *)0;
38029#line 954
38030  __cil_tmp10 = (unsigned long )__cil_tmp9;
38031#line 954
38032  __cil_tmp11 = (unsigned long )status;
38033#line 954
38034  if (__cil_tmp11 == __cil_tmp10) {
38035#line 955
38036    return (-12);
38037  } else {
38038
38039  }
38040  }
38041  {
38042#line 957
38043  tmp___0 = __create_pipe(dev, 0U);
38044#line 957
38045  __cil_tmp12 = tmp___0 | 2147483776U;
38046#line 957
38047  __cil_tmp13 = (__u8 )0;
38048#line 957
38049  __cil_tmp14 = (signed char )type;
38050#line 957
38051  __cil_tmp15 = (int )__cil_tmp14;
38052#line 957
38053  __cil_tmp16 = __cil_tmp15 | -128;
38054#line 957
38055  __cil_tmp17 = (__u8 )__cil_tmp16;
38056#line 957
38057  __cil_tmp18 = (int )__cil_tmp17;
38058#line 957
38059  __cil_tmp19 = (__u8 )__cil_tmp18;
38060#line 957
38061  __cil_tmp20 = (__u16 )0;
38062#line 957
38063  __cil_tmp21 = (__u16 )target;
38064#line 957
38065  __cil_tmp22 = (int )__cil_tmp21;
38066#line 957
38067  __cil_tmp23 = (__u16 )__cil_tmp22;
38068#line 957
38069  __cil_tmp24 = (void *)status;
38070#line 957
38071  __cil_tmp25 = (__u16 )2;
38072#line 957
38073  ret = usb_control_msg(dev, __cil_tmp12, __cil_tmp13, __cil_tmp19, __cil_tmp20, __cil_tmp23,
38074                        __cil_tmp24, __cil_tmp25, 5000);
38075#line 961
38076  __cil_tmp26 = (u16 *)data;
38077#line 961
38078  *__cil_tmp26 = *status;
38079#line 962
38080  __cil_tmp27 = (void const   *)status;
38081#line 962
38082  kfree(__cil_tmp27);
38083  }
38084#line 963
38085  return (ret);
38086}
38087}
38088#line 990 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
38089int usb_clear_halt(struct usb_device *dev , int pipe ) 
38090{ int result ;
38091  int endp ;
38092  unsigned int tmp ;
38093  int __cil_tmp6 ;
38094  int __cil_tmp7 ;
38095  unsigned int __cil_tmp8 ;
38096  __u8 __cil_tmp9 ;
38097  __u8 __cil_tmp10 ;
38098  __u16 __cil_tmp11 ;
38099  __u16 __cil_tmp12 ;
38100  int __cil_tmp13 ;
38101  __u16 __cil_tmp14 ;
38102  void *__cil_tmp15 ;
38103  __u16 __cil_tmp16 ;
38104  unsigned int __cil_tmp17 ;
38105
38106  {
38107#line 993
38108  __cil_tmp6 = pipe >> 15;
38109#line 993
38110  endp = __cil_tmp6 & 15;
38111  {
38112#line 995
38113  __cil_tmp7 = pipe & 128;
38114#line 995
38115  if (__cil_tmp7 != 0) {
38116#line 996
38117    endp = endp | 128;
38118  } else {
38119
38120  }
38121  }
38122  {
38123#line 1002
38124  tmp = __create_pipe(dev, 0U);
38125#line 1002
38126  __cil_tmp8 = tmp | 2147483648U;
38127#line 1002
38128  __cil_tmp9 = (__u8 )1;
38129#line 1002
38130  __cil_tmp10 = (__u8 )2;
38131#line 1002
38132  __cil_tmp11 = (__u16 )0;
38133#line 1002
38134  __cil_tmp12 = (__u16 )endp;
38135#line 1002
38136  __cil_tmp13 = (int )__cil_tmp12;
38137#line 1002
38138  __cil_tmp14 = (__u16 )__cil_tmp13;
38139#line 1002
38140  __cil_tmp15 = (void *)0;
38141#line 1002
38142  __cil_tmp16 = (__u16 )0;
38143#line 1002
38144  result = usb_control_msg(dev, __cil_tmp8, __cil_tmp9, __cil_tmp10, __cil_tmp11,
38145                           __cil_tmp14, __cil_tmp15, __cil_tmp16, 5000);
38146  }
38147#line 1008
38148  if (result < 0) {
38149#line 1009
38150    return (result);
38151  } else {
38152
38153  }
38154  {
38155#line 1019
38156  __cil_tmp17 = (unsigned int )endp;
38157#line 1019
38158  usb_reset_endpoint(dev, __cil_tmp17);
38159  }
38160#line 1021
38161  return (0);
38162}
38163}
38164#line 1025 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
38165static int create_intf_ep_devs(struct usb_interface *intf ) 
38166{ struct usb_device *udev ;
38167  struct usb_device *tmp ;
38168  struct usb_host_interface *alt ;
38169  int i ;
38170  unsigned char *__cil_tmp6 ;
38171  unsigned char *__cil_tmp7 ;
38172  unsigned char __cil_tmp8 ;
38173  unsigned int __cil_tmp9 ;
38174  unsigned char *__cil_tmp10 ;
38175  unsigned char *__cil_tmp11 ;
38176  unsigned char __cil_tmp12 ;
38177  unsigned int __cil_tmp13 ;
38178  struct device *__cil_tmp14 ;
38179  unsigned long __cil_tmp15 ;
38180  struct usb_host_endpoint *__cil_tmp16 ;
38181  struct usb_host_endpoint *__cil_tmp17 ;
38182  __u8 __cil_tmp18 ;
38183  int __cil_tmp19 ;
38184
38185  {
38186  {
38187#line 1027
38188  tmp = interface_to_usbdev(intf);
38189#line 1027
38190  udev = tmp;
38191#line 1028
38192  alt = intf->cur_altsetting;
38193  }
38194  {
38195#line 1031
38196  __cil_tmp6 = (unsigned char *)intf;
38197#line 1031
38198  __cil_tmp7 = __cil_tmp6 + 40UL;
38199#line 1031
38200  __cil_tmp8 = *__cil_tmp7;
38201#line 1031
38202  __cil_tmp9 = (unsigned int )__cil_tmp8;
38203#line 1031
38204  if (__cil_tmp9 != 0U) {
38205#line 1032
38206    return (0);
38207  } else {
38208    {
38209#line 1031
38210    __cil_tmp10 = (unsigned char *)intf;
38211#line 1031
38212    __cil_tmp11 = __cil_tmp10 + 40UL;
38213#line 1031
38214    __cil_tmp12 = *__cil_tmp11;
38215#line 1031
38216    __cil_tmp13 = (unsigned int )__cil_tmp12;
38217#line 1031
38218    if (__cil_tmp13 != 0U) {
38219#line 1032
38220      return (0);
38221    } else {
38222
38223    }
38224    }
38225  }
38226  }
38227#line 1034
38228  i = 0;
38229#line 1034
38230  goto ldv_29021;
38231  ldv_29020: 
38232  {
38233#line 1035
38234  __cil_tmp14 = & intf->dev;
38235#line 1035
38236  __cil_tmp15 = (unsigned long )i;
38237#line 1035
38238  __cil_tmp16 = alt->endpoint;
38239#line 1035
38240  __cil_tmp17 = __cil_tmp16 + __cil_tmp15;
38241#line 1035
38242  usb_create_ep_devs(__cil_tmp14, __cil_tmp17, udev);
38243#line 1034
38244  i = i + 1;
38245  }
38246  ldv_29021: ;
38247  {
38248#line 1034
38249  __cil_tmp18 = alt->desc.bNumEndpoints;
38250#line 1034
38251  __cil_tmp19 = (int )__cil_tmp18;
38252#line 1034
38253  if (__cil_tmp19 > i) {
38254#line 1035
38255    goto ldv_29020;
38256  } else {
38257#line 1037
38258    goto ldv_29022;
38259  }
38260  }
38261  ldv_29022: 
38262#line 1036
38263  intf->ep_devs_created = (unsigned char)1;
38264#line 1037
38265  return (0);
38266}
38267}
38268#line 1040 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
38269static void remove_intf_ep_devs(struct usb_interface *intf ) 
38270{ struct usb_host_interface *alt ;
38271  int i ;
38272  unsigned char *__cil_tmp4 ;
38273  unsigned char *__cil_tmp5 ;
38274  unsigned char __cil_tmp6 ;
38275  unsigned int __cil_tmp7 ;
38276  unsigned long __cil_tmp8 ;
38277  struct usb_host_endpoint *__cil_tmp9 ;
38278  struct usb_host_endpoint *__cil_tmp10 ;
38279  __u8 __cil_tmp11 ;
38280  int __cil_tmp12 ;
38281
38282  {
38283#line 1042
38284  alt = intf->cur_altsetting;
38285  {
38286#line 1045
38287  __cil_tmp4 = (unsigned char *)intf;
38288#line 1045
38289  __cil_tmp5 = __cil_tmp4 + 40UL;
38290#line 1045
38291  __cil_tmp6 = *__cil_tmp5;
38292#line 1045
38293  __cil_tmp7 = (unsigned int )__cil_tmp6;
38294#line 1045
38295  if (__cil_tmp7 == 0U) {
38296#line 1046
38297    return;
38298  } else {
38299
38300  }
38301  }
38302#line 1048
38303  i = 0;
38304#line 1048
38305  goto ldv_29029;
38306  ldv_29028: 
38307  {
38308#line 1049
38309  __cil_tmp8 = (unsigned long )i;
38310#line 1049
38311  __cil_tmp9 = alt->endpoint;
38312#line 1049
38313  __cil_tmp10 = __cil_tmp9 + __cil_tmp8;
38314#line 1049
38315  usb_remove_ep_devs(__cil_tmp10);
38316#line 1048
38317  i = i + 1;
38318  }
38319  ldv_29029: ;
38320  {
38321#line 1048
38322  __cil_tmp11 = alt->desc.bNumEndpoints;
38323#line 1048
38324  __cil_tmp12 = (int )__cil_tmp11;
38325#line 1048
38326  if (__cil_tmp12 > i) {
38327#line 1049
38328    goto ldv_29028;
38329  } else {
38330#line 1051
38331    goto ldv_29030;
38332  }
38333  }
38334  ldv_29030: 
38335#line 1050
38336  intf->ep_devs_created = (unsigned char)0;
38337#line 1051
38338  return;
38339}
38340}
38341#line 1065 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
38342void usb_disable_endpoint(struct usb_device *dev , unsigned int epaddr , bool reset_hardware ) 
38343{ unsigned int epnum ;
38344  struct usb_host_endpoint *ep ;
38345  struct usb_device *__cil_tmp6 ;
38346  unsigned long __cil_tmp7 ;
38347  unsigned long __cil_tmp8 ;
38348  unsigned int __cil_tmp9 ;
38349  struct usb_host_endpoint *__cil_tmp10 ;
38350  unsigned long __cil_tmp11 ;
38351  unsigned long __cil_tmp12 ;
38352
38353  {
38354#line 1068
38355  epnum = epaddr & 15U;
38356  {
38357#line 1071
38358  __cil_tmp6 = (struct usb_device *)0;
38359#line 1071
38360  __cil_tmp7 = (unsigned long )__cil_tmp6;
38361#line 1071
38362  __cil_tmp8 = (unsigned long )dev;
38363#line 1071
38364  if (__cil_tmp8 == __cil_tmp7) {
38365#line 1072
38366    return;
38367  } else {
38368
38369  }
38370  }
38371  {
38372#line 1074
38373  __cil_tmp9 = epaddr & 128U;
38374#line 1074
38375  if (__cil_tmp9 == 0U) {
38376#line 1075
38377    ep = dev->ep_out[epnum];
38378#line 1076
38379    if ((int )reset_hardware) {
38380#line 1077
38381      dev->ep_out[epnum] = (struct usb_host_endpoint *)0;
38382    } else {
38383
38384    }
38385  } else {
38386#line 1079
38387    ep = dev->ep_in[epnum];
38388#line 1080
38389    if ((int )reset_hardware) {
38390#line 1081
38391      dev->ep_in[epnum] = (struct usb_host_endpoint *)0;
38392    } else {
38393
38394    }
38395  }
38396  }
38397  {
38398#line 1083
38399  __cil_tmp10 = (struct usb_host_endpoint *)0;
38400#line 1083
38401  __cil_tmp11 = (unsigned long )__cil_tmp10;
38402#line 1083
38403  __cil_tmp12 = (unsigned long )ep;
38404#line 1083
38405  if (__cil_tmp12 != __cil_tmp11) {
38406    {
38407#line 1084
38408    ep->enabled = 0;
38409#line 1085
38410    usb_hcd_flush_endpoint(dev, ep);
38411    }
38412#line 1086
38413    if ((int )reset_hardware) {
38414      {
38415#line 1087
38416      usb_hcd_disable_endpoint(dev, ep);
38417      }
38418    } else {
38419
38420    }
38421  } else {
38422
38423  }
38424  }
38425#line 1089
38426  return;
38427}
38428}
38429#line 1100 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
38430void usb_reset_endpoint(struct usb_device *dev , unsigned int epaddr ) 
38431{ unsigned int epnum ;
38432  struct usb_host_endpoint *ep ;
38433  unsigned int __cil_tmp5 ;
38434  struct usb_host_endpoint *__cil_tmp6 ;
38435  unsigned long __cil_tmp7 ;
38436  unsigned long __cil_tmp8 ;
38437
38438  {
38439#line 1102
38440  epnum = epaddr & 15U;
38441  {
38442#line 1105
38443  __cil_tmp5 = epaddr & 128U;
38444#line 1105
38445  if (__cil_tmp5 == 0U) {
38446#line 1106
38447    ep = dev->ep_out[epnum];
38448  } else {
38449#line 1108
38450    ep = dev->ep_in[epnum];
38451  }
38452  }
38453  {
38454#line 1109
38455  __cil_tmp6 = (struct usb_host_endpoint *)0;
38456#line 1109
38457  __cil_tmp7 = (unsigned long )__cil_tmp6;
38458#line 1109
38459  __cil_tmp8 = (unsigned long )ep;
38460#line 1109
38461  if (__cil_tmp8 != __cil_tmp7) {
38462    {
38463#line 1110
38464    usb_hcd_reset_endpoint(dev, ep);
38465    }
38466  } else {
38467
38468  }
38469  }
38470#line 1111
38471  return;
38472}
38473}
38474#line 1124 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
38475void usb_disable_interface(struct usb_device *dev , struct usb_interface *intf , bool reset_hardware ) 
38476{ struct usb_host_interface *alt ;
38477  int i ;
38478  unsigned long __cil_tmp6 ;
38479  struct usb_host_endpoint *__cil_tmp7 ;
38480  struct usb_host_endpoint *__cil_tmp8 ;
38481  __u8 __cil_tmp9 ;
38482  unsigned int __cil_tmp10 ;
38483  int __cil_tmp11 ;
38484  bool __cil_tmp12 ;
38485  __u8 __cil_tmp13 ;
38486  int __cil_tmp14 ;
38487
38488  {
38489#line 1127
38490  alt = intf->cur_altsetting;
38491#line 1130
38492  i = 0;
38493#line 1130
38494  goto ldv_29059;
38495  ldv_29058: 
38496  {
38497#line 1131
38498  __cil_tmp6 = (unsigned long )i;
38499#line 1131
38500  __cil_tmp7 = alt->endpoint;
38501#line 1131
38502  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
38503#line 1131
38504  __cil_tmp9 = __cil_tmp8->desc.bEndpointAddress;
38505#line 1131
38506  __cil_tmp10 = (unsigned int )__cil_tmp9;
38507#line 1131
38508  __cil_tmp11 = (int )reset_hardware;
38509#line 1131
38510  __cil_tmp12 = (bool )__cil_tmp11;
38511#line 1131
38512  usb_disable_endpoint(dev, __cil_tmp10, __cil_tmp12);
38513#line 1130
38514  i = i + 1;
38515  }
38516  ldv_29059: ;
38517  {
38518#line 1130
38519  __cil_tmp13 = alt->desc.bNumEndpoints;
38520#line 1130
38521  __cil_tmp14 = (int )__cil_tmp13;
38522#line 1130
38523  if (__cil_tmp14 > i) {
38524#line 1131
38525    goto ldv_29058;
38526  } else {
38527#line 1133
38528    goto ldv_29060;
38529  }
38530  }
38531  ldv_29060: ;
38532#line 1135
38533  return;
38534}
38535}
38536#line 1149 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
38537void usb_disable_device(struct usb_device *dev , int skip_ep0 ) 
38538{ int i ;
38539  struct usb_hcd *hcd ;
38540  struct usb_hcd *tmp ;
38541  struct usb_interface *interface ;
38542  int tmp___0 ;
38543  char const   *tmp___1 ;
38544  char *tmp___2 ;
38545  struct usb_bus *__cil_tmp10 ;
38546  struct usb_host_config *__cil_tmp11 ;
38547  unsigned long __cil_tmp12 ;
38548  struct usb_host_config *__cil_tmp13 ;
38549  unsigned long __cil_tmp14 ;
38550  struct usb_host_config *__cil_tmp15 ;
38551  struct usb_interface *__cil_tmp16 ;
38552  struct usb_host_config *__cil_tmp17 ;
38553  __u8 __cil_tmp18 ;
38554  int __cil_tmp19 ;
38555  struct usb_host_config *__cil_tmp20 ;
38556  struct device *__cil_tmp21 ;
38557  struct device *__cil_tmp22 ;
38558  struct device  const  *__cil_tmp23 ;
38559  struct device *__cil_tmp24 ;
38560  struct device  const  *__cil_tmp25 ;
38561  struct device *__cil_tmp26 ;
38562  struct usb_host_config *__cil_tmp27 ;
38563  __u8 __cil_tmp28 ;
38564  int __cil_tmp29 ;
38565  struct usb_host_config *__cil_tmp30 ;
38566  struct usb_interface *__cil_tmp31 ;
38567  struct device *__cil_tmp32 ;
38568  struct usb_host_config *__cil_tmp33 ;
38569  struct usb_host_config *__cil_tmp34 ;
38570  __u8 __cil_tmp35 ;
38571  int __cil_tmp36 ;
38572  enum usb_device_state __cil_tmp37 ;
38573  unsigned int __cil_tmp38 ;
38574  enum usb_device_state __cil_tmp39 ;
38575  struct device *__cil_tmp40 ;
38576  struct device  const  *__cil_tmp41 ;
38577  int (*__cil_tmp42)(struct usb_hcd * , struct usb_device * ) ;
38578  unsigned long __cil_tmp43 ;
38579  struct hc_driver  const  *__cil_tmp44 ;
38580  int (*__cil_tmp45)(struct usb_hcd * , struct usb_device * ) ;
38581  unsigned long __cil_tmp46 ;
38582  unsigned int __cil_tmp47 ;
38583  bool __cil_tmp48 ;
38584  int __cil_tmp49 ;
38585  unsigned int __cil_tmp50 ;
38586  bool __cil_tmp51 ;
38587  struct usb_host_config *__cil_tmp52 ;
38588  struct usb_host_interface *__cil_tmp53 ;
38589  struct usb_host_interface *__cil_tmp54 ;
38590  unsigned int __cil_tmp55 ;
38591  bool __cil_tmp56 ;
38592  int __cil_tmp57 ;
38593  unsigned int __cil_tmp58 ;
38594  bool __cil_tmp59 ;
38595
38596  {
38597  {
38598#line 1152
38599  __cil_tmp10 = dev->bus;
38600#line 1152
38601  tmp = bus_to_hcd(__cil_tmp10);
38602#line 1152
38603  hcd = tmp;
38604  }
38605  {
38606#line 1157
38607  __cil_tmp11 = (struct usb_host_config *)0;
38608#line 1157
38609  __cil_tmp12 = (unsigned long )__cil_tmp11;
38610#line 1157
38611  __cil_tmp13 = dev->actconfig;
38612#line 1157
38613  __cil_tmp14 = (unsigned long )__cil_tmp13;
38614#line 1157
38615  if (__cil_tmp14 != __cil_tmp12) {
38616#line 1163
38617    i = 0;
38618#line 1163
38619    goto ldv_29068;
38620    ldv_29067: 
38621#line 1164
38622    __cil_tmp15 = dev->actconfig;
38623#line 1164
38624    __cil_tmp16 = __cil_tmp15->interface[i];
38625#line 1164
38626    __cil_tmp16->unregistering = (unsigned char)1;
38627#line 1163
38628    i = i + 1;
38629    ldv_29068: ;
38630    {
38631#line 1163
38632    __cil_tmp17 = dev->actconfig;
38633#line 1163
38634    __cil_tmp18 = __cil_tmp17->desc.bNumInterfaces;
38635#line 1163
38636    __cil_tmp19 = (int )__cil_tmp18;
38637#line 1163
38638    if (__cil_tmp19 > i) {
38639#line 1164
38640      goto ldv_29067;
38641    } else {
38642#line 1166
38643      goto ldv_29069;
38644    }
38645    }
38646    ldv_29069: 
38647#line 1166
38648    i = 0;
38649#line 1166
38650    goto ldv_29073;
38651    ldv_29072: 
38652    {
38653#line 1170
38654    __cil_tmp20 = dev->actconfig;
38655#line 1170
38656    interface = __cil_tmp20->interface[i];
38657#line 1171
38658    __cil_tmp21 = & interface->dev;
38659#line 1171
38660    tmp___0 = device_is_registered(__cil_tmp21);
38661    }
38662#line 1171
38663    if (tmp___0 == 0) {
38664#line 1172
38665      goto ldv_29071;
38666    } else {
38667
38668    }
38669    {
38670#line 1173
38671    __cil_tmp22 = & interface->dev;
38672#line 1173
38673    __cil_tmp23 = (struct device  const  *)__cil_tmp22;
38674#line 1173
38675    tmp___1 = dev_name(__cil_tmp23);
38676#line 1173
38677    __cil_tmp24 = & dev->dev;
38678#line 1173
38679    __cil_tmp25 = (struct device  const  *)__cil_tmp24;
38680#line 1173
38681    dev_printk("<7>", __cil_tmp25, "unregistering interface %s\n", tmp___1);
38682#line 1175
38683    remove_intf_ep_devs(interface);
38684#line 1176
38685    __cil_tmp26 = & interface->dev;
38686#line 1176
38687    device_del(__cil_tmp26);
38688    }
38689    ldv_29071: 
38690#line 1166
38691    i = i + 1;
38692    ldv_29073: ;
38693    {
38694#line 1166
38695    __cil_tmp27 = dev->actconfig;
38696#line 1166
38697    __cil_tmp28 = __cil_tmp27->desc.bNumInterfaces;
38698#line 1166
38699    __cil_tmp29 = (int )__cil_tmp28;
38700#line 1166
38701    if (__cil_tmp29 > i) {
38702#line 1167
38703      goto ldv_29072;
38704    } else {
38705#line 1169
38706      goto ldv_29074;
38707    }
38708    }
38709    ldv_29074: 
38710#line 1182
38711    i = 0;
38712#line 1182
38713    goto ldv_29076;
38714    ldv_29075: 
38715    {
38716#line 1183
38717    __cil_tmp30 = dev->actconfig;
38718#line 1183
38719    __cil_tmp31 = __cil_tmp30->interface[i];
38720#line 1183
38721    __cil_tmp32 = & __cil_tmp31->dev;
38722#line 1183
38723    put_device(__cil_tmp32);
38724#line 1184
38725    __cil_tmp33 = dev->actconfig;
38726#line 1184
38727    __cil_tmp33->interface[i] = (struct usb_interface *)0;
38728#line 1182
38729    i = i + 1;
38730    }
38731    ldv_29076: ;
38732    {
38733#line 1182
38734    __cil_tmp34 = dev->actconfig;
38735#line 1182
38736    __cil_tmp35 = __cil_tmp34->desc.bNumInterfaces;
38737#line 1182
38738    __cil_tmp36 = (int )__cil_tmp35;
38739#line 1182
38740    if (__cil_tmp36 > i) {
38741#line 1183
38742      goto ldv_29075;
38743    } else {
38744#line 1185
38745      goto ldv_29077;
38746    }
38747    }
38748    ldv_29077: 
38749#line 1186
38750    dev->actconfig = (struct usb_host_config *)0;
38751    {
38752#line 1187
38753    __cil_tmp37 = dev->state;
38754#line 1187
38755    __cil_tmp38 = (unsigned int )__cil_tmp37;
38756#line 1187
38757    if (__cil_tmp38 == 7U) {
38758      {
38759#line 1188
38760      __cil_tmp39 = (enum usb_device_state )6;
38761#line 1188
38762      usb_set_device_state(dev, __cil_tmp39);
38763      }
38764    } else {
38765
38766    }
38767    }
38768  } else {
38769
38770  }
38771  }
38772#line 1191
38773  if (skip_ep0 != 0) {
38774#line 1191
38775    tmp___2 = (char *)"non-ep0";
38776  } else {
38777#line 1191
38778    tmp___2 = (char *)"all";
38779  }
38780  {
38781#line 1191
38782  __cil_tmp40 = & dev->dev;
38783#line 1191
38784  __cil_tmp41 = (struct device  const  *)__cil_tmp40;
38785#line 1191
38786  dev_printk("<7>", __cil_tmp41, "%s nuking %s URBs\n", "usb_disable_device", tmp___2);
38787  }
38788  {
38789#line 1193
38790  __cil_tmp42 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
38791#line 1193
38792  __cil_tmp43 = (unsigned long )__cil_tmp42;
38793#line 1193
38794  __cil_tmp44 = hcd->driver;
38795#line 1193
38796  __cil_tmp45 = __cil_tmp44->check_bandwidth;
38797#line 1193
38798  __cil_tmp46 = (unsigned long )__cil_tmp45;
38799#line 1193
38800  if (__cil_tmp46 != __cil_tmp43) {
38801#line 1195
38802    i = skip_ep0;
38803#line 1195
38804    goto ldv_29080;
38805    ldv_29079: 
38806    {
38807#line 1196
38808    __cil_tmp47 = (unsigned int )i;
38809#line 1196
38810    __cil_tmp48 = (bool )0;
38811#line 1196
38812    usb_disable_endpoint(dev, __cil_tmp47, __cil_tmp48);
38813#line 1197
38814    __cil_tmp49 = i + 128;
38815#line 1197
38816    __cil_tmp50 = (unsigned int )__cil_tmp49;
38817#line 1197
38818    __cil_tmp51 = (bool )0;
38819#line 1197
38820    usb_disable_endpoint(dev, __cil_tmp50, __cil_tmp51);
38821#line 1195
38822    i = i + 1;
38823    }
38824    ldv_29080: ;
38825#line 1195
38826    if (i <= 15) {
38827#line 1196
38828      goto ldv_29079;
38829    } else {
38830#line 1198
38831      goto ldv_29081;
38832    }
38833    ldv_29081: 
38834    {
38835#line 1200
38836    __cil_tmp52 = (struct usb_host_config *)0;
38837#line 1200
38838    __cil_tmp53 = (struct usb_host_interface *)0;
38839#line 1200
38840    __cil_tmp54 = (struct usb_host_interface *)0;
38841#line 1200
38842    usb_hcd_alloc_bandwidth(dev, __cil_tmp52, __cil_tmp53, __cil_tmp54);
38843    }
38844  } else {
38845
38846  }
38847  }
38848#line 1203
38849  i = skip_ep0;
38850#line 1203
38851  goto ldv_29083;
38852  ldv_29082: 
38853  {
38854#line 1204
38855  __cil_tmp55 = (unsigned int )i;
38856#line 1204
38857  __cil_tmp56 = (bool )1;
38858#line 1204
38859  usb_disable_endpoint(dev, __cil_tmp55, __cil_tmp56);
38860#line 1205
38861  __cil_tmp57 = i + 128;
38862#line 1205
38863  __cil_tmp58 = (unsigned int )__cil_tmp57;
38864#line 1205
38865  __cil_tmp59 = (bool )1;
38866#line 1205
38867  usb_disable_endpoint(dev, __cil_tmp58, __cil_tmp59);
38868#line 1203
38869  i = i + 1;
38870  }
38871  ldv_29083: ;
38872#line 1203
38873  if (i <= 15) {
38874#line 1204
38875    goto ldv_29082;
38876  } else {
38877#line 1206
38878    goto ldv_29084;
38879  }
38880  ldv_29084: ;
38881#line 1208
38882  return;
38883}
38884}
38885#line 1218 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
38886void usb_enable_endpoint(struct usb_device *dev , struct usb_host_endpoint *ep , bool reset_ep ) 
38887{ int epnum ;
38888  int tmp ;
38889  int is_out ;
38890  int tmp___0 ;
38891  int is_control ;
38892  int tmp___1 ;
38893  struct usb_endpoint_descriptor *__cil_tmp10 ;
38894  struct usb_endpoint_descriptor  const  *__cil_tmp11 ;
38895  struct usb_endpoint_descriptor *__cil_tmp12 ;
38896  struct usb_endpoint_descriptor  const  *__cil_tmp13 ;
38897  struct usb_endpoint_descriptor *__cil_tmp14 ;
38898  struct usb_endpoint_descriptor  const  *__cil_tmp15 ;
38899
38900  {
38901  {
38902#line 1221
38903  __cil_tmp10 = & ep->desc;
38904#line 1221
38905  __cil_tmp11 = (struct usb_endpoint_descriptor  const  *)__cil_tmp10;
38906#line 1221
38907  tmp = usb_endpoint_num(__cil_tmp11);
38908#line 1221
38909  epnum = tmp;
38910#line 1222
38911  __cil_tmp12 = & ep->desc;
38912#line 1222
38913  __cil_tmp13 = (struct usb_endpoint_descriptor  const  *)__cil_tmp12;
38914#line 1222
38915  tmp___0 = usb_endpoint_dir_out(__cil_tmp13);
38916#line 1222
38917  is_out = tmp___0;
38918#line 1223
38919  __cil_tmp14 = & ep->desc;
38920#line 1223
38921  __cil_tmp15 = (struct usb_endpoint_descriptor  const  *)__cil_tmp14;
38922#line 1223
38923  tmp___1 = usb_endpoint_xfer_control(__cil_tmp15);
38924#line 1223
38925  is_control = tmp___1;
38926  }
38927#line 1225
38928  if ((int )reset_ep) {
38929    {
38930#line 1226
38931    usb_hcd_reset_endpoint(dev, ep);
38932    }
38933  } else {
38934
38935  }
38936#line 1227
38937  if (is_out != 0) {
38938#line 1228
38939    dev->ep_out[epnum] = ep;
38940  } else
38941#line 1227
38942  if (is_control != 0) {
38943#line 1228
38944    dev->ep_out[epnum] = ep;
38945  } else {
38946
38947  }
38948#line 1229
38949  if (is_out == 0) {
38950#line 1230
38951    dev->ep_in[epnum] = ep;
38952  } else
38953#line 1229
38954  if (is_control != 0) {
38955#line 1230
38956    dev->ep_in[epnum] = ep;
38957  } else {
38958
38959  }
38960#line 1231
38961  ep->enabled = 1;
38962#line 1232
38963  return;
38964}
38965}
38966#line 1242 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
38967void usb_enable_interface(struct usb_device *dev , struct usb_interface *intf , bool reset_eps ) 
38968{ struct usb_host_interface *alt ;
38969  int i ;
38970  unsigned long __cil_tmp6 ;
38971  struct usb_host_endpoint *__cil_tmp7 ;
38972  struct usb_host_endpoint *__cil_tmp8 ;
38973  int __cil_tmp9 ;
38974  bool __cil_tmp10 ;
38975  __u8 __cil_tmp11 ;
38976  int __cil_tmp12 ;
38977
38978  {
38979#line 1245
38980  alt = intf->cur_altsetting;
38981#line 1248
38982  i = 0;
38983#line 1248
38984  goto ldv_29101;
38985  ldv_29100: 
38986  {
38987#line 1249
38988  __cil_tmp6 = (unsigned long )i;
38989#line 1249
38990  __cil_tmp7 = alt->endpoint;
38991#line 1249
38992  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
38993#line 1249
38994  __cil_tmp9 = (int )reset_eps;
38995#line 1249
38996  __cil_tmp10 = (bool )__cil_tmp9;
38997#line 1249
38998  usb_enable_endpoint(dev, __cil_tmp8, __cil_tmp10);
38999#line 1248
39000  i = i + 1;
39001  }
39002  ldv_29101: ;
39003  {
39004#line 1248
39005  __cil_tmp11 = alt->desc.bNumEndpoints;
39006#line 1248
39007  __cil_tmp12 = (int )__cil_tmp11;
39008#line 1248
39009  if (__cil_tmp12 > i) {
39010#line 1249
39011    goto ldv_29100;
39012  } else {
39013#line 1251
39014    goto ldv_29102;
39015  }
39016  }
39017  ldv_29102: ;
39018#line 1253
39019  return;
39020}
39021}
39022#line 1285 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
39023int usb_set_interface(struct usb_device *dev , int interface , int alternate ) 
39024{ struct usb_interface *iface ;
39025  struct usb_host_interface *alt ;
39026  struct usb_hcd *hcd ;
39027  struct usb_hcd *tmp ;
39028  int ret ;
39029  int manual ;
39030  unsigned int epaddr ;
39031  unsigned int pipe ;
39032  unsigned int tmp___0 ;
39033  int i ;
39034  unsigned int tmp___1 ;
39035  unsigned int tmp___2 ;
39036  int tmp___3 ;
39037  struct usb_bus *__cil_tmp17 ;
39038  enum usb_device_state __cil_tmp18 ;
39039  unsigned int __cil_tmp19 ;
39040  struct usb_device  const  *__cil_tmp20 ;
39041  unsigned int __cil_tmp21 ;
39042  struct usb_interface *__cil_tmp22 ;
39043  unsigned long __cil_tmp23 ;
39044  unsigned long __cil_tmp24 ;
39045  struct device *__cil_tmp25 ;
39046  struct device  const  *__cil_tmp26 ;
39047  unsigned char *__cil_tmp27 ;
39048  unsigned char *__cil_tmp28 ;
39049  unsigned char __cil_tmp29 ;
39050  unsigned int __cil_tmp30 ;
39051  struct usb_interface  const  *__cil_tmp31 ;
39052  unsigned int __cil_tmp32 ;
39053  struct usb_host_interface *__cil_tmp33 ;
39054  unsigned long __cil_tmp34 ;
39055  unsigned long __cil_tmp35 ;
39056  struct device *__cil_tmp36 ;
39057  struct device  const  *__cil_tmp37 ;
39058  struct mutex *__cil_tmp38 ;
39059  struct usb_host_config *__cil_tmp39 ;
39060  struct usb_host_interface *__cil_tmp40 ;
39061  struct device *__cil_tmp41 ;
39062  struct device  const  *__cil_tmp42 ;
39063  struct mutex *__cil_tmp43 ;
39064  u32 __cil_tmp44 ;
39065  unsigned int __cil_tmp45 ;
39066  unsigned int __cil_tmp46 ;
39067  __u8 __cil_tmp47 ;
39068  __u8 __cil_tmp48 ;
39069  __u16 __cil_tmp49 ;
39070  int __cil_tmp50 ;
39071  __u16 __cil_tmp51 ;
39072  __u16 __cil_tmp52 ;
39073  int __cil_tmp53 ;
39074  __u16 __cil_tmp54 ;
39075  void *__cil_tmp55 ;
39076  __u16 __cil_tmp56 ;
39077  unsigned int __cil_tmp57 ;
39078  struct device *__cil_tmp58 ;
39079  struct device  const  *__cil_tmp59 ;
39080  struct usb_host_config *__cil_tmp60 ;
39081  struct usb_host_interface *__cil_tmp61 ;
39082  struct mutex *__cil_tmp62 ;
39083  struct mutex *__cil_tmp63 ;
39084  unsigned long __cil_tmp64 ;
39085  struct usb_host_interface *__cil_tmp65 ;
39086  unsigned long __cil_tmp66 ;
39087  bool __cil_tmp67 ;
39088  unsigned long __cil_tmp68 ;
39089  struct usb_host_endpoint *__cil_tmp69 ;
39090  struct usb_host_endpoint *__cil_tmp70 ;
39091  __u8 __cil_tmp71 ;
39092  unsigned int __cil_tmp72 ;
39093  unsigned int __cil_tmp73 ;
39094  int __cil_tmp74 ;
39095  __u8 __cil_tmp75 ;
39096  int __cil_tmp76 ;
39097  bool __cil_tmp77 ;
39098  struct device *__cil_tmp78 ;
39099
39100  {
39101  {
39102#line 1289
39103  __cil_tmp17 = dev->bus;
39104#line 1289
39105  tmp = bus_to_hcd(__cil_tmp17);
39106#line 1289
39107  hcd = tmp;
39108#line 1291
39109  manual = 0;
39110  }
39111  {
39112#line 1295
39113  __cil_tmp18 = dev->state;
39114#line 1295
39115  __cil_tmp19 = (unsigned int )__cil_tmp18;
39116#line 1295
39117  if (__cil_tmp19 == 8U) {
39118#line 1296
39119    return (-113);
39120  } else {
39121
39122  }
39123  }
39124  {
39125#line 1298
39126  __cil_tmp20 = (struct usb_device  const  *)dev;
39127#line 1298
39128  __cil_tmp21 = (unsigned int )interface;
39129#line 1298
39130  iface = usb_ifnum_to_if(__cil_tmp20, __cil_tmp21);
39131  }
39132  {
39133#line 1299
39134  __cil_tmp22 = (struct usb_interface *)0;
39135#line 1299
39136  __cil_tmp23 = (unsigned long )__cil_tmp22;
39137#line 1299
39138  __cil_tmp24 = (unsigned long )iface;
39139#line 1299
39140  if (__cil_tmp24 == __cil_tmp23) {
39141    {
39142#line 1300
39143    __cil_tmp25 = & dev->dev;
39144#line 1300
39145    __cil_tmp26 = (struct device  const  *)__cil_tmp25;
39146#line 1300
39147    dev_printk("<7>", __cil_tmp26, "selecting invalid interface %d\n", interface);
39148    }
39149#line 1302
39150    return (-22);
39151  } else {
39152
39153  }
39154  }
39155  {
39156#line 1304
39157  __cil_tmp27 = (unsigned char *)iface;
39158#line 1304
39159  __cil_tmp28 = __cil_tmp27 + 40UL;
39160#line 1304
39161  __cil_tmp29 = *__cil_tmp28;
39162#line 1304
39163  __cil_tmp30 = (unsigned int )__cil_tmp29;
39164#line 1304
39165  if (__cil_tmp30 != 0U) {
39166#line 1305
39167    return (-19);
39168  } else {
39169
39170  }
39171  }
39172  {
39173#line 1307
39174  __cil_tmp31 = (struct usb_interface  const  *)iface;
39175#line 1307
39176  __cil_tmp32 = (unsigned int )alternate;
39177#line 1307
39178  alt = usb_altnum_to_altsetting(__cil_tmp31, __cil_tmp32);
39179  }
39180  {
39181#line 1308
39182  __cil_tmp33 = (struct usb_host_interface *)0;
39183#line 1308
39184  __cil_tmp34 = (unsigned long )__cil_tmp33;
39185#line 1308
39186  __cil_tmp35 = (unsigned long )alt;
39187#line 1308
39188  if (__cil_tmp35 == __cil_tmp34) {
39189    {
39190#line 1309
39191    __cil_tmp36 = & dev->dev;
39192#line 1309
39193    __cil_tmp37 = (struct device  const  *)__cil_tmp36;
39194#line 1309
39195    dev_warn(__cil_tmp37, "selecting invalid altsetting %d\n", alternate);
39196    }
39197#line 1311
39198    return (-22);
39199  } else {
39200
39201  }
39202  }
39203  {
39204#line 1317
39205  __cil_tmp38 = hcd->bandwidth_mutex;
39206#line 1317
39207  mutex_lock_nested(__cil_tmp38, 0U);
39208#line 1318
39209  __cil_tmp39 = (struct usb_host_config *)0;
39210#line 1318
39211  __cil_tmp40 = iface->cur_altsetting;
39212#line 1318
39213  ret = usb_hcd_alloc_bandwidth(dev, __cil_tmp39, __cil_tmp40, alt);
39214  }
39215#line 1319
39216  if (ret < 0) {
39217    {
39218#line 1320
39219    __cil_tmp41 = & dev->dev;
39220#line 1320
39221    __cil_tmp42 = (struct device  const  *)__cil_tmp41;
39222#line 1320
39223    _dev_info(__cil_tmp42, "Not enough bandwidth for altsetting %d\n", alternate);
39224#line 1322
39225    __cil_tmp43 = hcd->bandwidth_mutex;
39226#line 1322
39227    mutex_unlock(__cil_tmp43);
39228    }
39229#line 1323
39230    return (ret);
39231  } else {
39232
39233  }
39234  {
39235#line 1326
39236  __cil_tmp44 = dev->quirks;
39237#line 1326
39238  __cil_tmp45 = __cil_tmp44 & 4U;
39239#line 1326
39240  if (__cil_tmp45 != 0U) {
39241#line 1327
39242    ret = -32;
39243  } else {
39244    {
39245#line 1329
39246    tmp___0 = __create_pipe(dev, 0U);
39247#line 1329
39248    __cil_tmp46 = tmp___0 | 2147483648U;
39249#line 1329
39250    __cil_tmp47 = (__u8 )11;
39251#line 1329
39252    __cil_tmp48 = (__u8 )1;
39253#line 1329
39254    __cil_tmp49 = (__u16 )alternate;
39255#line 1329
39256    __cil_tmp50 = (int )__cil_tmp49;
39257#line 1329
39258    __cil_tmp51 = (__u16 )__cil_tmp50;
39259#line 1329
39260    __cil_tmp52 = (__u16 )interface;
39261#line 1329
39262    __cil_tmp53 = (int )__cil_tmp52;
39263#line 1329
39264    __cil_tmp54 = (__u16 )__cil_tmp53;
39265#line 1329
39266    __cil_tmp55 = (void *)0;
39267#line 1329
39268    __cil_tmp56 = (__u16 )0;
39269#line 1329
39270    ret = usb_control_msg(dev, __cil_tmp46, __cil_tmp47, __cil_tmp48, __cil_tmp51,
39271                          __cil_tmp54, __cil_tmp55, __cil_tmp56, 5000);
39272    }
39273  }
39274  }
39275#line 1336
39276  if (ret == -32) {
39277    {
39278#line 1336
39279    __cil_tmp57 = iface->num_altsetting;
39280#line 1336
39281    if (__cil_tmp57 == 1U) {
39282      {
39283#line 1337
39284      __cil_tmp58 = & dev->dev;
39285#line 1337
39286      __cil_tmp59 = (struct device  const  *)__cil_tmp58;
39287#line 1337
39288      dev_printk("<7>", __cil_tmp59, "manual set_interface for iface %d, alt %d\n",
39289                 interface, alternate);
39290#line 1340
39291      manual = 1;
39292      }
39293    } else {
39294#line 1336
39295      goto _L;
39296    }
39297    }
39298  } else
39299  _L: 
39300#line 1341
39301  if (ret < 0) {
39302    {
39303#line 1343
39304    __cil_tmp60 = (struct usb_host_config *)0;
39305#line 1343
39306    __cil_tmp61 = iface->cur_altsetting;
39307#line 1343
39308    usb_hcd_alloc_bandwidth(dev, __cil_tmp60, alt, __cil_tmp61);
39309#line 1344
39310    __cil_tmp62 = hcd->bandwidth_mutex;
39311#line 1344
39312    mutex_unlock(__cil_tmp62);
39313    }
39314#line 1345
39315    return (ret);
39316  } else {
39317
39318  }
39319  {
39320#line 1347
39321  __cil_tmp63 = hcd->bandwidth_mutex;
39322#line 1347
39323  mutex_unlock(__cil_tmp63);
39324  }
39325  {
39326#line 1356
39327  __cil_tmp64 = (unsigned long )alt;
39328#line 1356
39329  __cil_tmp65 = iface->cur_altsetting;
39330#line 1356
39331  __cil_tmp66 = (unsigned long )__cil_tmp65;
39332#line 1356
39333  if (__cil_tmp66 != __cil_tmp64) {
39334    {
39335#line 1357
39336    remove_intf_ep_devs(iface);
39337#line 1358
39338    usb_remove_sysfs_intf_files(iface);
39339    }
39340  } else {
39341
39342  }
39343  }
39344  {
39345#line 1360
39346  __cil_tmp67 = (bool )1;
39347#line 1360
39348  usb_disable_interface(dev, iface, __cil_tmp67);
39349#line 1362
39350  iface->cur_altsetting = alt;
39351  }
39352#line 1369
39353  if (manual != 0) {
39354#line 1372
39355    i = 0;
39356#line 1372
39357    goto ldv_29117;
39358    ldv_29116: 
39359    {
39360#line 1373
39361    __cil_tmp68 = (unsigned long )i;
39362#line 1373
39363    __cil_tmp69 = alt->endpoint;
39364#line 1373
39365    __cil_tmp70 = __cil_tmp69 + __cil_tmp68;
39366#line 1373
39367    __cil_tmp71 = __cil_tmp70->desc.bEndpointAddress;
39368#line 1373
39369    epaddr = (unsigned int )__cil_tmp71;
39370#line 1374
39371    __cil_tmp72 = epaddr & 15U;
39372#line 1374
39373    tmp___1 = __create_pipe(dev, __cil_tmp72);
39374    }
39375    {
39376#line 1374
39377    __cil_tmp73 = epaddr & 128U;
39378#line 1374
39379    if (__cil_tmp73 == 0U) {
39380#line 1374
39381      tmp___2 = 0U;
39382    } else {
39383#line 1374
39384      tmp___2 = 128U;
39385    }
39386    }
39387    {
39388#line 1374
39389    pipe = tmp___1 | tmp___2;
39390#line 1379
39391    __cil_tmp74 = (int )pipe;
39392#line 1379
39393    usb_clear_halt(dev, __cil_tmp74);
39394#line 1372
39395    i = i + 1;
39396    }
39397    ldv_29117: ;
39398    {
39399#line 1372
39400    __cil_tmp75 = alt->desc.bNumEndpoints;
39401#line 1372
39402    __cil_tmp76 = (int )__cil_tmp75;
39403#line 1372
39404    if (__cil_tmp76 > i) {
39405#line 1373
39406      goto ldv_29116;
39407    } else {
39408#line 1375
39409      goto ldv_29118;
39410    }
39411    }
39412    ldv_29118: ;
39413  } else {
39414
39415  }
39416  {
39417#line 1394
39418  __cil_tmp77 = (bool )1;
39419#line 1394
39420  usb_enable_interface(dev, iface, __cil_tmp77);
39421#line 1395
39422  __cil_tmp78 = & iface->dev;
39423#line 1395
39424  tmp___3 = device_is_registered(__cil_tmp78);
39425  }
39426#line 1395
39427  if (tmp___3 != 0) {
39428    {
39429#line 1396
39430    usb_create_sysfs_intf_files(iface);
39431#line 1397
39432    create_intf_ep_devs(iface);
39433    }
39434  } else {
39435
39436  }
39437#line 1399
39438  return (0);
39439}
39440}
39441#line 1425 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
39442int usb_reset_configuration(struct usb_device *dev ) 
39443{ int i ;
39444  int retval ;
39445  struct usb_host_config *config ;
39446  struct usb_hcd *hcd ;
39447  struct usb_hcd *tmp ;
39448  struct usb_interface *intf ;
39449  struct usb_host_interface *alt ;
39450  struct usb_interface *intf___0 ;
39451  struct usb_host_interface *alt___0 ;
39452  unsigned int tmp___0 ;
39453  struct usb_interface *intf___1 ;
39454  struct usb_host_interface *alt___1 ;
39455  int tmp___1 ;
39456  struct usb_bus *__cil_tmp15 ;
39457  enum usb_device_state __cil_tmp16 ;
39458  unsigned int __cil_tmp17 ;
39459  unsigned int __cil_tmp18 ;
39460  bool __cil_tmp19 ;
39461  int __cil_tmp20 ;
39462  unsigned int __cil_tmp21 ;
39463  bool __cil_tmp22 ;
39464  struct mutex *__cil_tmp23 ;
39465  struct usb_interface  const  *__cil_tmp24 ;
39466  struct usb_host_interface *__cil_tmp25 ;
39467  unsigned long __cil_tmp26 ;
39468  unsigned long __cil_tmp27 ;
39469  unsigned long __cil_tmp28 ;
39470  struct usb_host_interface *__cil_tmp29 ;
39471  unsigned long __cil_tmp30 ;
39472  struct usb_host_config *__cil_tmp31 ;
39473  struct usb_host_interface *__cil_tmp32 ;
39474  __u8 __cil_tmp33 ;
39475  int __cil_tmp34 ;
39476  struct usb_interface  const  *__cil_tmp35 ;
39477  struct usb_host_interface *__cil_tmp36 ;
39478  unsigned long __cil_tmp37 ;
39479  unsigned long __cil_tmp38 ;
39480  unsigned long __cil_tmp39 ;
39481  struct usb_host_interface *__cil_tmp40 ;
39482  unsigned long __cil_tmp41 ;
39483  struct usb_host_config *__cil_tmp42 ;
39484  struct usb_host_interface *__cil_tmp43 ;
39485  struct mutex *__cil_tmp44 ;
39486  unsigned int __cil_tmp45 ;
39487  __u8 __cil_tmp46 ;
39488  __u8 __cil_tmp47 ;
39489  __u8 __cil_tmp48 ;
39490  int __cil_tmp49 ;
39491  __u16 __cil_tmp50 ;
39492  __u16 __cil_tmp51 ;
39493  void *__cil_tmp52 ;
39494  __u16 __cil_tmp53 ;
39495  struct mutex *__cil_tmp54 ;
39496  struct usb_interface  const  *__cil_tmp55 ;
39497  struct usb_host_interface *__cil_tmp56 ;
39498  unsigned long __cil_tmp57 ;
39499  unsigned long __cil_tmp58 ;
39500  unsigned long __cil_tmp59 ;
39501  struct usb_host_interface *__cil_tmp60 ;
39502  unsigned long __cil_tmp61 ;
39503  bool __cil_tmp62 ;
39504  struct device *__cil_tmp63 ;
39505  __u8 __cil_tmp64 ;
39506  int __cil_tmp65 ;
39507
39508  {
39509  {
39510#line 1429
39511  __cil_tmp15 = dev->bus;
39512#line 1429
39513  tmp = bus_to_hcd(__cil_tmp15);
39514#line 1429
39515  hcd = tmp;
39516  }
39517  {
39518#line 1431
39519  __cil_tmp16 = dev->state;
39520#line 1431
39521  __cil_tmp17 = (unsigned int )__cil_tmp16;
39522#line 1431
39523  if (__cil_tmp17 == 8U) {
39524#line 1432
39525    return (-113);
39526  } else {
39527
39528  }
39529  }
39530#line 1439
39531  i = 1;
39532#line 1439
39533  goto ldv_29135;
39534  ldv_29134: 
39535  {
39536#line 1440
39537  __cil_tmp18 = (unsigned int )i;
39538#line 1440
39539  __cil_tmp19 = (bool )1;
39540#line 1440
39541  usb_disable_endpoint(dev, __cil_tmp18, __cil_tmp19);
39542#line 1441
39543  __cil_tmp20 = i + 128;
39544#line 1441
39545  __cil_tmp21 = (unsigned int )__cil_tmp20;
39546#line 1441
39547  __cil_tmp22 = (bool )1;
39548#line 1441
39549  usb_disable_endpoint(dev, __cil_tmp21, __cil_tmp22);
39550#line 1439
39551  i = i + 1;
39552  }
39553  ldv_29135: ;
39554#line 1439
39555  if (i <= 15) {
39556#line 1440
39557    goto ldv_29134;
39558  } else {
39559#line 1442
39560    goto ldv_29136;
39561  }
39562  ldv_29136: 
39563  {
39564#line 1444
39565  config = dev->actconfig;
39566#line 1445
39567  retval = 0;
39568#line 1446
39569  __cil_tmp23 = hcd->bandwidth_mutex;
39570#line 1446
39571  mutex_lock_nested(__cil_tmp23, 0U);
39572#line 1448
39573  i = 0;
39574  }
39575#line 1448
39576  goto ldv_29141;
39577  ldv_29140: 
39578  {
39579#line 1449
39580  intf = config->interface[i];
39581#line 1452
39582  __cil_tmp24 = (struct usb_interface  const  *)intf;
39583#line 1452
39584  alt = usb_altnum_to_altsetting(__cil_tmp24, 0U);
39585  }
39586  {
39587#line 1453
39588  __cil_tmp25 = (struct usb_host_interface *)0;
39589#line 1453
39590  __cil_tmp26 = (unsigned long )__cil_tmp25;
39591#line 1453
39592  __cil_tmp27 = (unsigned long )alt;
39593#line 1453
39594  if (__cil_tmp27 == __cil_tmp26) {
39595#line 1454
39596    alt = intf->altsetting;
39597  } else {
39598
39599  }
39600  }
39601  {
39602#line 1455
39603  __cil_tmp28 = (unsigned long )alt;
39604#line 1455
39605  __cil_tmp29 = intf->cur_altsetting;
39606#line 1455
39607  __cil_tmp30 = (unsigned long )__cil_tmp29;
39608#line 1455
39609  if (__cil_tmp30 != __cil_tmp28) {
39610    {
39611#line 1456
39612    __cil_tmp31 = (struct usb_host_config *)0;
39613#line 1456
39614    __cil_tmp32 = intf->cur_altsetting;
39615#line 1456
39616    retval = usb_hcd_alloc_bandwidth(dev, __cil_tmp31, __cil_tmp32, alt);
39617    }
39618  } else {
39619
39620  }
39621  }
39622#line 1458
39623  if (retval < 0) {
39624#line 1459
39625    goto ldv_29139;
39626  } else {
39627
39628  }
39629#line 1448
39630  i = i + 1;
39631  ldv_29141: ;
39632  {
39633#line 1448
39634  __cil_tmp33 = config->desc.bNumInterfaces;
39635#line 1448
39636  __cil_tmp34 = (int )__cil_tmp33;
39637#line 1448
39638  if (__cil_tmp34 > i) {
39639#line 1449
39640    goto ldv_29140;
39641  } else {
39642#line 1451
39643    goto ldv_29139;
39644  }
39645  }
39646  ldv_29139: ;
39647#line 1462
39648  if (retval < 0) {
39649    reset_old_alts: 
39650#line 1464
39651    i = i - 1;
39652#line 1464
39653    goto ldv_29146;
39654    ldv_29145: 
39655    {
39656#line 1465
39657    intf___0 = config->interface[i];
39658#line 1468
39659    __cil_tmp35 = (struct usb_interface  const  *)intf___0;
39660#line 1468
39661    alt___0 = usb_altnum_to_altsetting(__cil_tmp35, 0U);
39662    }
39663    {
39664#line 1469
39665    __cil_tmp36 = (struct usb_host_interface *)0;
39666#line 1469
39667    __cil_tmp37 = (unsigned long )__cil_tmp36;
39668#line 1469
39669    __cil_tmp38 = (unsigned long )alt___0;
39670#line 1469
39671    if (__cil_tmp38 == __cil_tmp37) {
39672#line 1470
39673      alt___0 = intf___0->altsetting;
39674    } else {
39675
39676    }
39677    }
39678    {
39679#line 1471
39680    __cil_tmp39 = (unsigned long )alt___0;
39681#line 1471
39682    __cil_tmp40 = intf___0->cur_altsetting;
39683#line 1471
39684    __cil_tmp41 = (unsigned long )__cil_tmp40;
39685#line 1471
39686    if (__cil_tmp41 != __cil_tmp39) {
39687      {
39688#line 1472
39689      __cil_tmp42 = (struct usb_host_config *)0;
39690#line 1472
39691      __cil_tmp43 = intf___0->cur_altsetting;
39692#line 1472
39693      usb_hcd_alloc_bandwidth(dev, __cil_tmp42, alt___0, __cil_tmp43);
39694      }
39695    } else {
39696
39697    }
39698    }
39699#line 1464
39700    i = i - 1;
39701    ldv_29146: ;
39702#line 1464
39703    if (i >= 0) {
39704#line 1465
39705      goto ldv_29145;
39706    } else {
39707#line 1467
39708      goto ldv_29147;
39709    }
39710    ldv_29147: 
39711    {
39712#line 1475
39713    __cil_tmp44 = hcd->bandwidth_mutex;
39714#line 1475
39715    mutex_unlock(__cil_tmp44);
39716    }
39717#line 1476
39718    return (retval);
39719  } else {
39720
39721  }
39722  {
39723#line 1478
39724  tmp___0 = __create_pipe(dev, 0U);
39725#line 1478
39726  __cil_tmp45 = tmp___0 | 2147483648U;
39727#line 1478
39728  __cil_tmp46 = (__u8 )9;
39729#line 1478
39730  __cil_tmp47 = (__u8 )0;
39731#line 1478
39732  __cil_tmp48 = config->desc.bConfigurationValue;
39733#line 1478
39734  __cil_tmp49 = (int )__cil_tmp48;
39735#line 1478
39736  __cil_tmp50 = (__u16 )__cil_tmp49;
39737#line 1478
39738  __cil_tmp51 = (__u16 )0;
39739#line 1478
39740  __cil_tmp52 = (void *)0;
39741#line 1478
39742  __cil_tmp53 = (__u16 )0;
39743#line 1478
39744  retval = usb_control_msg(dev, __cil_tmp45, __cil_tmp46, __cil_tmp47, __cil_tmp50,
39745                           __cil_tmp51, __cil_tmp52, __cil_tmp53, 5000);
39746  }
39747#line 1482
39748  if (retval < 0) {
39749#line 1483
39750    goto reset_old_alts;
39751  } else {
39752
39753  }
39754  {
39755#line 1484
39756  __cil_tmp54 = hcd->bandwidth_mutex;
39757#line 1484
39758  mutex_unlock(__cil_tmp54);
39759#line 1487
39760  i = 0;
39761  }
39762#line 1487
39763  goto ldv_29151;
39764  ldv_29150: 
39765  {
39766#line 1488
39767  intf___1 = config->interface[i];
39768#line 1491
39769  __cil_tmp55 = (struct usb_interface  const  *)intf___1;
39770#line 1491
39771  alt___1 = usb_altnum_to_altsetting(__cil_tmp55, 0U);
39772  }
39773  {
39774#line 1498
39775  __cil_tmp56 = (struct usb_host_interface *)0;
39776#line 1498
39777  __cil_tmp57 = (unsigned long )__cil_tmp56;
39778#line 1498
39779  __cil_tmp58 = (unsigned long )alt___1;
39780#line 1498
39781  if (__cil_tmp58 == __cil_tmp57) {
39782#line 1499
39783    alt___1 = intf___1->altsetting;
39784  } else {
39785
39786  }
39787  }
39788  {
39789#line 1501
39790  __cil_tmp59 = (unsigned long )alt___1;
39791#line 1501
39792  __cil_tmp60 = intf___1->cur_altsetting;
39793#line 1501
39794  __cil_tmp61 = (unsigned long )__cil_tmp60;
39795#line 1501
39796  if (__cil_tmp61 != __cil_tmp59) {
39797    {
39798#line 1502
39799    remove_intf_ep_devs(intf___1);
39800#line 1503
39801    usb_remove_sysfs_intf_files(intf___1);
39802    }
39803  } else {
39804
39805  }
39806  }
39807  {
39808#line 1505
39809  intf___1->cur_altsetting = alt___1;
39810#line 1506
39811  __cil_tmp62 = (bool )1;
39812#line 1506
39813  usb_enable_interface(dev, intf___1, __cil_tmp62);
39814#line 1507
39815  __cil_tmp63 = & intf___1->dev;
39816#line 1507
39817  tmp___1 = device_is_registered(__cil_tmp63);
39818  }
39819#line 1507
39820  if (tmp___1 != 0) {
39821    {
39822#line 1508
39823    usb_create_sysfs_intf_files(intf___1);
39824#line 1509
39825    create_intf_ep_devs(intf___1);
39826    }
39827  } else {
39828
39829  }
39830#line 1487
39831  i = i + 1;
39832  ldv_29151: ;
39833  {
39834#line 1487
39835  __cil_tmp64 = config->desc.bNumInterfaces;
39836#line 1487
39837  __cil_tmp65 = (int )__cil_tmp64;
39838#line 1487
39839  if (__cil_tmp65 > i) {
39840#line 1488
39841    goto ldv_29150;
39842  } else {
39843#line 1490
39844    goto ldv_29152;
39845  }
39846  }
39847  ldv_29152: ;
39848#line 1512
39849  return (0);
39850}
39851}
39852#line 1516 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
39853static void usb_release_interface(struct device *dev ) 
39854{ struct usb_interface *intf ;
39855  struct device  const  *__mptr ;
39856  struct usb_interface_cache *intfc ;
39857  struct usb_host_interface  const  *__mptr___0 ;
39858  struct usb_interface *__cil_tmp6 ;
39859  struct usb_host_interface *__cil_tmp7 ;
39860  struct usb_interface_cache *__cil_tmp8 ;
39861  struct kref *__cil_tmp9 ;
39862  void const   *__cil_tmp10 ;
39863
39864  {
39865  {
39866#line 1518
39867  __mptr = (struct device  const  *)dev;
39868#line 1518
39869  __cil_tmp6 = (struct usb_interface *)__mptr;
39870#line 1518
39871  intf = __cil_tmp6 + 1152921504606846928UL;
39872#line 1520
39873  __cil_tmp7 = intf->altsetting;
39874#line 1520
39875  __mptr___0 = (struct usb_host_interface  const  *)__cil_tmp7;
39876#line 1520
39877  __cil_tmp8 = (struct usb_interface_cache *)__mptr___0;
39878#line 1520
39879  intfc = __cil_tmp8 + 1152921504606846968UL;
39880#line 1522
39881  __cil_tmp9 = & intfc->ref;
39882#line 1522
39883  kref_put(__cil_tmp9, & usb_release_interface_cache);
39884#line 1523
39885  __cil_tmp10 = (void const   *)intf;
39886#line 1523
39887  kfree(__cil_tmp10);
39888  }
39889#line 1524
39890  return;
39891}
39892}
39893#line 1527 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
39894static int usb_if_uevent(struct device *dev , struct kobj_uevent_env *env ) 
39895{ struct usb_device *usb_dev ;
39896  struct usb_interface *intf ;
39897  struct usb_host_interface *alt ;
39898  struct device  const  *__mptr ;
39899  int tmp ;
39900  int tmp___0 ;
39901  struct usb_interface *__cil_tmp9 ;
39902  __u8 __cil_tmp10 ;
39903  int __cil_tmp11 ;
39904  __u8 __cil_tmp12 ;
39905  int __cil_tmp13 ;
39906  __u8 __cil_tmp14 ;
39907  int __cil_tmp15 ;
39908  __le16 __cil_tmp16 ;
39909  int __cil_tmp17 ;
39910  __le16 __cil_tmp18 ;
39911  int __cil_tmp19 ;
39912  __le16 __cil_tmp20 ;
39913  int __cil_tmp21 ;
39914  __u8 __cil_tmp22 ;
39915  int __cil_tmp23 ;
39916  __u8 __cil_tmp24 ;
39917  int __cil_tmp25 ;
39918  __u8 __cil_tmp26 ;
39919  int __cil_tmp27 ;
39920  __u8 __cil_tmp28 ;
39921  int __cil_tmp29 ;
39922  __u8 __cil_tmp30 ;
39923  int __cil_tmp31 ;
39924  __u8 __cil_tmp32 ;
39925  int __cil_tmp33 ;
39926
39927  {
39928  {
39929#line 1533
39930  __mptr = (struct device  const  *)dev;
39931#line 1533
39932  __cil_tmp9 = (struct usb_interface *)__mptr;
39933#line 1533
39934  intf = __cil_tmp9 + 1152921504606846928UL;
39935#line 1534
39936  usb_dev = interface_to_usbdev(intf);
39937#line 1535
39938  alt = intf->cur_altsetting;
39939#line 1537
39940  __cil_tmp10 = alt->desc.bInterfaceClass;
39941#line 1537
39942  __cil_tmp11 = (int )__cil_tmp10;
39943#line 1537
39944  __cil_tmp12 = alt->desc.bInterfaceSubClass;
39945#line 1537
39946  __cil_tmp13 = (int )__cil_tmp12;
39947#line 1537
39948  __cil_tmp14 = alt->desc.bInterfaceProtocol;
39949#line 1537
39950  __cil_tmp15 = (int )__cil_tmp14;
39951#line 1537
39952  tmp = add_uevent_var(env, "INTERFACE=%d/%d/%d", __cil_tmp11, __cil_tmp13, __cil_tmp15);
39953  }
39954#line 1537
39955  if (tmp != 0) {
39956#line 1541
39957    return (-12);
39958  } else {
39959
39960  }
39961  {
39962#line 1543
39963  __cil_tmp16 = usb_dev->descriptor.idVendor;
39964#line 1543
39965  __cil_tmp17 = (int )__cil_tmp16;
39966#line 1543
39967  __cil_tmp18 = usb_dev->descriptor.idProduct;
39968#line 1543
39969  __cil_tmp19 = (int )__cil_tmp18;
39970#line 1543
39971  __cil_tmp20 = usb_dev->descriptor.bcdDevice;
39972#line 1543
39973  __cil_tmp21 = (int )__cil_tmp20;
39974#line 1543
39975  __cil_tmp22 = usb_dev->descriptor.bDeviceClass;
39976#line 1543
39977  __cil_tmp23 = (int )__cil_tmp22;
39978#line 1543
39979  __cil_tmp24 = usb_dev->descriptor.bDeviceSubClass;
39980#line 1543
39981  __cil_tmp25 = (int )__cil_tmp24;
39982#line 1543
39983  __cil_tmp26 = usb_dev->descriptor.bDeviceProtocol;
39984#line 1543
39985  __cil_tmp27 = (int )__cil_tmp26;
39986#line 1543
39987  __cil_tmp28 = alt->desc.bInterfaceClass;
39988#line 1543
39989  __cil_tmp29 = (int )__cil_tmp28;
39990#line 1543
39991  __cil_tmp30 = alt->desc.bInterfaceSubClass;
39992#line 1543
39993  __cil_tmp31 = (int )__cil_tmp30;
39994#line 1543
39995  __cil_tmp32 = alt->desc.bInterfaceProtocol;
39996#line 1543
39997  __cil_tmp33 = (int )__cil_tmp32;
39998#line 1543
39999  tmp___0 = add_uevent_var(env, "MODALIAS=usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02X",
40000                           __cil_tmp17, __cil_tmp19, __cil_tmp21, __cil_tmp23, __cil_tmp25,
40001                           __cil_tmp27, __cil_tmp29, __cil_tmp31, __cil_tmp33);
40002  }
40003#line 1543
40004  if (tmp___0 != 0) {
40005#line 1555
40006    return (-12);
40007  } else {
40008
40009  }
40010#line 1557
40011  return (0);
40012}
40013}
40014#line 1568 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
40015struct device_type usb_if_device_type  =    {"usb_interface", (struct attribute_group  const  **)0, & usb_if_uevent, (char *(*)(struct device * ,
40016                                                                                       mode_t * ))0,
40017    & usb_release_interface, (struct dev_pm_ops  const  *)0};
40018#line 1574 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
40019static struct usb_interface_assoc_descriptor *find_iad(struct usb_device *dev , struct usb_host_config *config ,
40020                                                       u8 inum ) 
40021{ struct usb_interface_assoc_descriptor *retval ;
40022  struct usb_interface_assoc_descriptor *intf_assoc ;
40023  int first_intf ;
40024  int last_intf ;
40025  int i ;
40026  __u8 __cil_tmp9 ;
40027  unsigned int __cil_tmp10 ;
40028  __u8 __cil_tmp11 ;
40029  __u8 __cil_tmp12 ;
40030  int __cil_tmp13 ;
40031  int __cil_tmp14 ;
40032  int __cil_tmp15 ;
40033  int __cil_tmp16 ;
40034  struct usb_interface_assoc_descriptor *__cil_tmp17 ;
40035  unsigned long __cil_tmp18 ;
40036  unsigned long __cil_tmp19 ;
40037  struct device *__cil_tmp20 ;
40038  struct device  const  *__cil_tmp21 ;
40039  int __cil_tmp22 ;
40040  struct usb_interface_assoc_descriptor *__cil_tmp23 ;
40041  unsigned long __cil_tmp24 ;
40042  struct usb_interface_assoc_descriptor *__cil_tmp25 ;
40043  unsigned long __cil_tmp26 ;
40044
40045  {
40046#line 1578
40047  retval = (struct usb_interface_assoc_descriptor *)0;
40048#line 1584
40049  i = 0;
40050#line 1584
40051  goto ldv_29190;
40052  ldv_29189: 
40053#line 1585
40054  intf_assoc = config->intf_assoc[i];
40055  {
40056#line 1586
40057  __cil_tmp9 = intf_assoc->bInterfaceCount;
40058#line 1586
40059  __cil_tmp10 = (unsigned int )__cil_tmp9;
40060#line 1586
40061  if (__cil_tmp10 == 0U) {
40062#line 1587
40063    goto ldv_29188;
40064  } else {
40065
40066  }
40067  }
40068#line 1589
40069  __cil_tmp11 = intf_assoc->bFirstInterface;
40070#line 1589
40071  first_intf = (int )__cil_tmp11;
40072#line 1590
40073  __cil_tmp12 = intf_assoc->bInterfaceCount;
40074#line 1590
40075  __cil_tmp13 = (int )__cil_tmp12;
40076#line 1590
40077  __cil_tmp14 = __cil_tmp13 + -1;
40078#line 1590
40079  last_intf = __cil_tmp14 + first_intf;
40080  {
40081#line 1591
40082  __cil_tmp15 = (int )inum;
40083#line 1591
40084  if (__cil_tmp15 >= first_intf) {
40085    {
40086#line 1591
40087    __cil_tmp16 = (int )inum;
40088#line 1591
40089    if (__cil_tmp16 <= last_intf) {
40090      {
40091#line 1592
40092      __cil_tmp17 = (struct usb_interface_assoc_descriptor *)0;
40093#line 1592
40094      __cil_tmp18 = (unsigned long )__cil_tmp17;
40095#line 1592
40096      __cil_tmp19 = (unsigned long )retval;
40097#line 1592
40098      if (__cil_tmp19 == __cil_tmp18) {
40099#line 1593
40100        retval = intf_assoc;
40101      } else {
40102        {
40103#line 1595
40104        __cil_tmp20 = & dev->dev;
40105#line 1595
40106        __cil_tmp21 = (struct device  const  *)__cil_tmp20;
40107#line 1595
40108        __cil_tmp22 = (int )inum;
40109#line 1595
40110        dev_err(__cil_tmp21, "Interface #%d referenced by multiple IADs\n", __cil_tmp22);
40111        }
40112      }
40113      }
40114    } else {
40115
40116    }
40117    }
40118  } else {
40119
40120  }
40121  }
40122  ldv_29188: 
40123#line 1584
40124  i = i + 1;
40125  ldv_29190: ;
40126#line 1584
40127  if (i <= 15) {
40128    {
40129#line 1584
40130    __cil_tmp23 = (struct usb_interface_assoc_descriptor *)0;
40131#line 1584
40132    __cil_tmp24 = (unsigned long )__cil_tmp23;
40133#line 1584
40134    __cil_tmp25 = config->intf_assoc[i];
40135#line 1584
40136    __cil_tmp26 = (unsigned long )__cil_tmp25;
40137#line 1584
40138    if (__cil_tmp26 != __cil_tmp24) {
40139#line 1585
40140      goto ldv_29189;
40141    } else {
40142#line 1587
40143      goto ldv_29191;
40144    }
40145    }
40146  } else {
40147#line 1587
40148    goto ldv_29191;
40149  }
40150  ldv_29191: ;
40151#line 1600
40152  return (retval);
40153}
40154}
40155#line 1626 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
40156static void __usb_queue_reset_device(struct work_struct *ws ) 
40157{ int rc ;
40158  struct usb_interface *iface ;
40159  struct work_struct  const  *__mptr ;
40160  struct usb_device *udev ;
40161  struct usb_device *tmp ;
40162  struct usb_interface *__cil_tmp7 ;
40163  struct usb_interface  const  *__cil_tmp8 ;
40164  struct device *__cil_tmp9 ;
40165
40166  {
40167  {
40168#line 1630
40169  __mptr = (struct work_struct  const  *)ws;
40170#line 1630
40171  __cil_tmp7 = (struct usb_interface *)__mptr;
40172#line 1630
40173  iface = __cil_tmp7 + 1152921504606845800UL;
40174#line 1631
40175  tmp = interface_to_usbdev(iface);
40176#line 1631
40177  udev = tmp;
40178#line 1633
40179  __cil_tmp8 = (struct usb_interface  const  *)iface;
40180#line 1633
40181  rc = usb_lock_device_for_reset(udev, __cil_tmp8);
40182  }
40183#line 1634
40184  if (rc >= 0) {
40185    {
40186#line 1635
40187    iface->reset_running = (unsigned char)1;
40188#line 1636
40189    usb_reset_device(udev);
40190#line 1637
40191    iface->reset_running = (unsigned char)0;
40192#line 1638
40193    __cil_tmp9 = & udev->dev;
40194#line 1638
40195    device_unlock(__cil_tmp9);
40196    }
40197  } else {
40198
40199  }
40200#line 1640
40201  return;
40202}
40203}
40204#line 1688 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
40205int usb_set_configuration(struct usb_device *dev , int configuration ) 
40206{ int i ;
40207  int ret ;
40208  struct usb_host_config *cp ;
40209  struct usb_interface **new_interfaces ;
40210  struct usb_hcd *hcd ;
40211  struct usb_hcd *tmp ;
40212  int n ;
40213  int nintf ;
40214  void *tmp___0 ;
40215  void *tmp___1 ;
40216  unsigned int tmp___2 ;
40217  struct usb_interface_cache *intfc ;
40218  struct usb_interface *intf ;
40219  struct usb_host_interface *alt ;
40220  struct lock_class_key __key ;
40221  atomic_long_t __constr_expr_0 ;
40222  struct usb_interface *intf___0 ;
40223  char const   *tmp___3 ;
40224  char const   *tmp___4 ;
40225  struct usb_bus *__cil_tmp22 ;
40226  unsigned char *__cil_tmp23 ;
40227  unsigned char *__cil_tmp24 ;
40228  unsigned char __cil_tmp25 ;
40229  unsigned int __cil_tmp26 ;
40230  unsigned long __cil_tmp27 ;
40231  struct usb_host_config *__cil_tmp28 ;
40232  struct usb_host_config *__cil_tmp29 ;
40233  __u8 __cil_tmp30 ;
40234  int __cil_tmp31 ;
40235  unsigned long __cil_tmp32 ;
40236  struct usb_host_config *__cil_tmp33 ;
40237  __u8 __cil_tmp34 ;
40238  int __cil_tmp35 ;
40239  struct usb_host_config *__cil_tmp36 ;
40240  unsigned long __cil_tmp37 ;
40241  unsigned long __cil_tmp38 ;
40242  struct usb_host_config *__cil_tmp39 ;
40243  unsigned long __cil_tmp40 ;
40244  unsigned long __cil_tmp41 ;
40245  struct device *__cil_tmp42 ;
40246  struct device  const  *__cil_tmp43 ;
40247  struct usb_host_config *__cil_tmp44 ;
40248  unsigned long __cil_tmp45 ;
40249  unsigned long __cil_tmp46 ;
40250  __u8 __cil_tmp47 ;
40251  unsigned long __cil_tmp48 ;
40252  unsigned long __cil_tmp49 ;
40253  struct usb_interface **__cil_tmp50 ;
40254  unsigned long __cil_tmp51 ;
40255  unsigned long __cil_tmp52 ;
40256  struct device *__cil_tmp53 ;
40257  struct device  const  *__cil_tmp54 ;
40258  unsigned long __cil_tmp55 ;
40259  struct usb_interface **__cil_tmp56 ;
40260  struct usb_interface *__cil_tmp57 ;
40261  unsigned long __cil_tmp58 ;
40262  unsigned long __cil_tmp59 ;
40263  struct usb_interface **__cil_tmp60 ;
40264  struct usb_interface *__cil_tmp61 ;
40265  unsigned long __cil_tmp62 ;
40266  struct device *__cil_tmp63 ;
40267  struct device  const  *__cil_tmp64 ;
40268  unsigned long __cil_tmp65 ;
40269  struct usb_interface **__cil_tmp66 ;
40270  struct usb_interface *__cil_tmp67 ;
40271  void const   *__cil_tmp68 ;
40272  void const   *__cil_tmp69 ;
40273  __u8 __cil_tmp70 ;
40274  int __cil_tmp71 ;
40275  int __cil_tmp72 ;
40276  unsigned short __cil_tmp73 ;
40277  int __cil_tmp74 ;
40278  struct device *__cil_tmp75 ;
40279  struct device  const  *__cil_tmp76 ;
40280  int __cil_tmp77 ;
40281  struct mutex *__cil_tmp78 ;
40282  enum usb_device_state __cil_tmp79 ;
40283  unsigned int __cil_tmp80 ;
40284  struct usb_host_interface *__cil_tmp81 ;
40285  struct usb_host_interface *__cil_tmp82 ;
40286  struct mutex *__cil_tmp83 ;
40287  unsigned int __cil_tmp84 ;
40288  __u8 __cil_tmp85 ;
40289  __u8 __cil_tmp86 ;
40290  __u16 __cil_tmp87 ;
40291  int __cil_tmp88 ;
40292  __u16 __cil_tmp89 ;
40293  __u16 __cil_tmp90 ;
40294  void *__cil_tmp91 ;
40295  __u16 __cil_tmp92 ;
40296  struct usb_host_config *__cil_tmp93 ;
40297  unsigned long __cil_tmp94 ;
40298  unsigned long __cil_tmp95 ;
40299  enum usb_device_state __cil_tmp96 ;
40300  struct usb_host_config *__cil_tmp97 ;
40301  struct usb_host_interface *__cil_tmp98 ;
40302  struct usb_host_interface *__cil_tmp99 ;
40303  struct mutex *__cil_tmp100 ;
40304  struct mutex *__cil_tmp101 ;
40305  enum usb_device_state __cil_tmp102 ;
40306  unsigned long __cil_tmp103 ;
40307  struct usb_interface **__cil_tmp104 ;
40308  struct usb_host_interface (*__cil_tmp105)[0U] ;
40309  u8 __cil_tmp106 ;
40310  int __cil_tmp107 ;
40311  u8 __cil_tmp108 ;
40312  struct kref *__cil_tmp109 ;
40313  struct usb_interface  const  *__cil_tmp110 ;
40314  struct usb_host_interface *__cil_tmp111 ;
40315  unsigned long __cil_tmp112 ;
40316  unsigned long __cil_tmp113 ;
40317  bool __cil_tmp114 ;
40318  struct work_struct *__cil_tmp115 ;
40319  struct lockdep_map *__cil_tmp116 ;
40320  struct list_head *__cil_tmp117 ;
40321  struct device *__cil_tmp118 ;
40322  struct device *__cil_tmp119 ;
40323  struct device *__cil_tmp120 ;
40324  struct usb_bus *__cil_tmp121 ;
40325  int __cil_tmp122 ;
40326  char (*__cil_tmp123)[16U] ;
40327  char *__cil_tmp124 ;
40328  __u8 __cil_tmp125 ;
40329  int __cil_tmp126 ;
40330  void const   *__cil_tmp127 ;
40331  char *__cil_tmp128 ;
40332  unsigned long __cil_tmp129 ;
40333  char *__cil_tmp130 ;
40334  unsigned long __cil_tmp131 ;
40335  u32 __cil_tmp132 ;
40336  unsigned int __cil_tmp133 ;
40337  __u8 __cil_tmp134 ;
40338  int __cil_tmp135 ;
40339  struct device *__cil_tmp136 ;
40340  struct device  const  *__cil_tmp137 ;
40341  struct device *__cil_tmp138 ;
40342  struct device  const  *__cil_tmp139 ;
40343  struct usb_host_interface *__cil_tmp140 ;
40344  __u8 __cil_tmp141 ;
40345  int __cil_tmp142 ;
40346  struct device *__cil_tmp143 ;
40347  struct device *__cil_tmp144 ;
40348  struct device *__cil_tmp145 ;
40349  struct device  const  *__cil_tmp146 ;
40350  struct device *__cil_tmp147 ;
40351  struct device  const  *__cil_tmp148 ;
40352
40353  {
40354  {
40355#line 1691
40356  cp = (struct usb_host_config *)0;
40357#line 1692
40358  new_interfaces = (struct usb_interface **)0;
40359#line 1693
40360  __cil_tmp22 = dev->bus;
40361#line 1693
40362  tmp = bus_to_hcd(__cil_tmp22);
40363#line 1693
40364  hcd = tmp;
40365  }
40366  {
40367#line 1696
40368  __cil_tmp23 = (unsigned char *)dev;
40369#line 1696
40370  __cil_tmp24 = __cil_tmp23 + 1556UL;
40371#line 1696
40372  __cil_tmp25 = *__cil_tmp24;
40373#line 1696
40374  __cil_tmp26 = (unsigned int )__cil_tmp25;
40375#line 1696
40376  if (__cil_tmp26 == 0U) {
40377#line 1697
40378    configuration = 0;
40379  } else
40380#line 1696
40381  if (configuration == -1) {
40382#line 1697
40383    configuration = 0;
40384  } else {
40385#line 1699
40386    i = 0;
40387#line 1699
40388    goto ldv_29213;
40389    ldv_29212: ;
40390    {
40391#line 1700
40392    __cil_tmp27 = (unsigned long )i;
40393#line 1700
40394    __cil_tmp28 = dev->config;
40395#line 1700
40396    __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
40397#line 1700
40398    __cil_tmp30 = __cil_tmp29->desc.bConfigurationValue;
40399#line 1700
40400    __cil_tmp31 = (int )__cil_tmp30;
40401#line 1700
40402    if (__cil_tmp31 == configuration) {
40403#line 1702
40404      __cil_tmp32 = (unsigned long )i;
40405#line 1702
40406      __cil_tmp33 = dev->config;
40407#line 1702
40408      cp = __cil_tmp33 + __cil_tmp32;
40409#line 1703
40410      goto ldv_29211;
40411    } else {
40412
40413    }
40414    }
40415#line 1699
40416    i = i + 1;
40417    ldv_29213: ;
40418    {
40419#line 1699
40420    __cil_tmp34 = dev->descriptor.bNumConfigurations;
40421#line 1699
40422    __cil_tmp35 = (int )__cil_tmp34;
40423#line 1699
40424    if (__cil_tmp35 > i) {
40425#line 1700
40426      goto ldv_29212;
40427    } else {
40428#line 1702
40429      goto ldv_29211;
40430    }
40431    }
40432    ldv_29211: ;
40433  }
40434  }
40435  {
40436#line 1707
40437  __cil_tmp36 = (struct usb_host_config *)0;
40438#line 1707
40439  __cil_tmp37 = (unsigned long )__cil_tmp36;
40440#line 1707
40441  __cil_tmp38 = (unsigned long )cp;
40442#line 1707
40443  if (__cil_tmp38 == __cil_tmp37) {
40444#line 1707
40445    if (configuration != 0) {
40446#line 1708
40447      return (-22);
40448    } else {
40449
40450    }
40451  } else {
40452
40453  }
40454  }
40455  {
40456#line 1715
40457  __cil_tmp39 = (struct usb_host_config *)0;
40458#line 1715
40459  __cil_tmp40 = (unsigned long )__cil_tmp39;
40460#line 1715
40461  __cil_tmp41 = (unsigned long )cp;
40462#line 1715
40463  if (__cil_tmp41 != __cil_tmp40) {
40464#line 1715
40465    if (configuration == 0) {
40466      {
40467#line 1716
40468      __cil_tmp42 = & dev->dev;
40469#line 1716
40470      __cil_tmp43 = (struct device  const  *)__cil_tmp42;
40471#line 1716
40472      dev_warn(__cil_tmp43, "config 0 descriptor??\n");
40473      }
40474    } else {
40475
40476    }
40477  } else {
40478
40479  }
40480  }
40481#line 1720
40482  nintf = 0;
40483#line 1720
40484  n = nintf;
40485  {
40486#line 1721
40487  __cil_tmp44 = (struct usb_host_config *)0;
40488#line 1721
40489  __cil_tmp45 = (unsigned long )__cil_tmp44;
40490#line 1721
40491  __cil_tmp46 = (unsigned long )cp;
40492#line 1721
40493  if (__cil_tmp46 != __cil_tmp45) {
40494    {
40495#line 1722
40496    __cil_tmp47 = cp->desc.bNumInterfaces;
40497#line 1722
40498    nintf = (int )__cil_tmp47;
40499#line 1723
40500    __cil_tmp48 = (unsigned long )nintf;
40501#line 1723
40502    __cil_tmp49 = __cil_tmp48 * 8UL;
40503#line 1723
40504    tmp___0 = kmalloc(__cil_tmp49, 16U);
40505#line 1723
40506    new_interfaces = (struct usb_interface **)tmp___0;
40507    }
40508    {
40509#line 1725
40510    __cil_tmp50 = (struct usb_interface **)0;
40511#line 1725
40512    __cil_tmp51 = (unsigned long )__cil_tmp50;
40513#line 1725
40514    __cil_tmp52 = (unsigned long )new_interfaces;
40515#line 1725
40516    if (__cil_tmp52 == __cil_tmp51) {
40517      {
40518#line 1726
40519      __cil_tmp53 = & dev->dev;
40520#line 1726
40521      __cil_tmp54 = (struct device  const  *)__cil_tmp53;
40522#line 1726
40523      dev_err(__cil_tmp54, "Out of memory\n");
40524      }
40525#line 1727
40526      return (-12);
40527    } else {
40528
40529    }
40530    }
40531#line 1730
40532    goto ldv_29219;
40533    ldv_29218: 
40534    {
40535#line 1731
40536    tmp___1 = kzalloc(1256UL, 16U);
40537#line 1731
40538    __cil_tmp55 = (unsigned long )n;
40539#line 1731
40540    __cil_tmp56 = new_interfaces + __cil_tmp55;
40541#line 1731
40542    *__cil_tmp56 = (struct usb_interface *)tmp___1;
40543    }
40544    {
40545#line 1734
40546    __cil_tmp57 = (struct usb_interface *)0;
40547#line 1734
40548    __cil_tmp58 = (unsigned long )__cil_tmp57;
40549#line 1734
40550    __cil_tmp59 = (unsigned long )n;
40551#line 1734
40552    __cil_tmp60 = new_interfaces + __cil_tmp59;
40553#line 1734
40554    __cil_tmp61 = *__cil_tmp60;
40555#line 1734
40556    __cil_tmp62 = (unsigned long )__cil_tmp61;
40557#line 1734
40558    if (__cil_tmp62 == __cil_tmp58) {
40559      {
40560#line 1735
40561      __cil_tmp63 = & dev->dev;
40562#line 1735
40563      __cil_tmp64 = (struct device  const  *)__cil_tmp63;
40564#line 1735
40565      dev_err(__cil_tmp64, "Out of memory\n");
40566#line 1736
40567      ret = -12;
40568      }
40569      free_interfaces: ;
40570#line 1738
40571      goto ldv_29216;
40572      ldv_29215: 
40573      {
40574#line 1739
40575      __cil_tmp65 = (unsigned long )n;
40576#line 1739
40577      __cil_tmp66 = new_interfaces + __cil_tmp65;
40578#line 1739
40579      __cil_tmp67 = *__cil_tmp66;
40580#line 1739
40581      __cil_tmp68 = (void const   *)__cil_tmp67;
40582#line 1739
40583      kfree(__cil_tmp68);
40584      }
40585      ldv_29216: 
40586#line 1738
40587      n = n - 1;
40588#line 1738
40589      if (n >= 0) {
40590#line 1739
40591        goto ldv_29215;
40592      } else {
40593#line 1741
40594        goto ldv_29217;
40595      }
40596      ldv_29217: 
40597      {
40598#line 1740
40599      __cil_tmp69 = (void const   *)new_interfaces;
40600#line 1740
40601      kfree(__cil_tmp69);
40602      }
40603#line 1741
40604      return (ret);
40605    } else {
40606
40607    }
40608    }
40609#line 1730
40610    n = n + 1;
40611    ldv_29219: ;
40612#line 1730
40613    if (n < nintf) {
40614#line 1731
40615      goto ldv_29218;
40616    } else {
40617#line 1733
40618      goto ldv_29220;
40619    }
40620    ldv_29220: 
40621#line 1745
40622    __cil_tmp70 = cp->desc.bMaxPower;
40623#line 1745
40624    __cil_tmp71 = (int )__cil_tmp70;
40625#line 1745
40626    __cil_tmp72 = __cil_tmp71 * -2;
40627#line 1745
40628    __cil_tmp73 = dev->bus_mA;
40629#line 1745
40630    __cil_tmp74 = (int )__cil_tmp73;
40631#line 1745
40632    i = __cil_tmp74 + __cil_tmp72;
40633#line 1746
40634    if (i < 0) {
40635      {
40636#line 1747
40637      __cil_tmp75 = & dev->dev;
40638#line 1747
40639      __cil_tmp76 = (struct device  const  *)__cil_tmp75;
40640#line 1747
40641      __cil_tmp77 = - i;
40642#line 1747
40643      dev_warn(__cil_tmp76, "new config #%d exceeds power limit by %dmA\n", configuration,
40644               __cil_tmp77);
40645      }
40646    } else {
40647
40648    }
40649  } else {
40650
40651  }
40652  }
40653  {
40654#line 1753
40655  ret = usb_autoresume_device(dev);
40656  }
40657#line 1754
40658  if (ret != 0) {
40659#line 1755
40660    goto free_interfaces;
40661  } else {
40662
40663  }
40664  {
40665#line 1760
40666  __cil_tmp78 = hcd->bandwidth_mutex;
40667#line 1760
40668  mutex_lock_nested(__cil_tmp78, 0U);
40669  }
40670  {
40671#line 1761
40672  __cil_tmp79 = dev->state;
40673#line 1761
40674  __cil_tmp80 = (unsigned int )__cil_tmp79;
40675#line 1761
40676  if (__cil_tmp80 != 6U) {
40677    {
40678#line 1762
40679    usb_disable_device(dev, 1);
40680    }
40681  } else {
40682
40683  }
40684  }
40685  {
40686#line 1765
40687  cancel_async_set_config(dev);
40688#line 1773
40689  __cil_tmp81 = (struct usb_host_interface *)0;
40690#line 1773
40691  __cil_tmp82 = (struct usb_host_interface *)0;
40692#line 1773
40693  ret = usb_hcd_alloc_bandwidth(dev, cp, __cil_tmp81, __cil_tmp82);
40694  }
40695#line 1774
40696  if (ret < 0) {
40697    {
40698#line 1775
40699    __cil_tmp83 = hcd->bandwidth_mutex;
40700#line 1775
40701    mutex_unlock(__cil_tmp83);
40702#line 1776
40703    usb_autosuspend_device(dev);
40704    }
40705#line 1777
40706    goto free_interfaces;
40707  } else {
40708
40709  }
40710  {
40711#line 1780
40712  tmp___2 = __create_pipe(dev, 0U);
40713#line 1780
40714  __cil_tmp84 = tmp___2 | 2147483648U;
40715#line 1780
40716  __cil_tmp85 = (__u8 )9;
40717#line 1780
40718  __cil_tmp86 = (__u8 )0;
40719#line 1780
40720  __cil_tmp87 = (__u16 )configuration;
40721#line 1780
40722  __cil_tmp88 = (int )__cil_tmp87;
40723#line 1780
40724  __cil_tmp89 = (__u16 )__cil_tmp88;
40725#line 1780
40726  __cil_tmp90 = (__u16 )0;
40727#line 1780
40728  __cil_tmp91 = (void *)0;
40729#line 1780
40730  __cil_tmp92 = (__u16 )0;
40731#line 1780
40732  ret = usb_control_msg(dev, __cil_tmp84, __cil_tmp85, __cil_tmp86, __cil_tmp89, __cil_tmp90,
40733                        __cil_tmp91, __cil_tmp92, 5000);
40734  }
40735#line 1783
40736  if (ret < 0) {
40737#line 1787
40738    cp = (struct usb_host_config *)0;
40739  } else {
40740
40741  }
40742#line 1790
40743  dev->actconfig = cp;
40744  {
40745#line 1791
40746  __cil_tmp93 = (struct usb_host_config *)0;
40747#line 1791
40748  __cil_tmp94 = (unsigned long )__cil_tmp93;
40749#line 1791
40750  __cil_tmp95 = (unsigned long )cp;
40751#line 1791
40752  if (__cil_tmp95 == __cil_tmp94) {
40753    {
40754#line 1792
40755    __cil_tmp96 = (enum usb_device_state )6;
40756#line 1792
40757    usb_set_device_state(dev, __cil_tmp96);
40758#line 1793
40759    __cil_tmp97 = (struct usb_host_config *)0;
40760#line 1793
40761    __cil_tmp98 = (struct usb_host_interface *)0;
40762#line 1793
40763    __cil_tmp99 = (struct usb_host_interface *)0;
40764#line 1793
40765    usb_hcd_alloc_bandwidth(dev, __cil_tmp97, __cil_tmp98, __cil_tmp99);
40766#line 1794
40767    __cil_tmp100 = hcd->bandwidth_mutex;
40768#line 1794
40769    mutex_unlock(__cil_tmp100);
40770#line 1795
40771    usb_autosuspend_device(dev);
40772    }
40773#line 1796
40774    goto free_interfaces;
40775  } else {
40776
40777  }
40778  }
40779  {
40780#line 1798
40781  __cil_tmp101 = hcd->bandwidth_mutex;
40782#line 1798
40783  mutex_unlock(__cil_tmp101);
40784#line 1799
40785  __cil_tmp102 = (enum usb_device_state )7;
40786#line 1799
40787  usb_set_device_state(dev, __cil_tmp102);
40788#line 1804
40789  i = 0;
40790  }
40791#line 1804
40792  goto ldv_29227;
40793  ldv_29226: 
40794  {
40795#line 1809
40796  __cil_tmp103 = (unsigned long )i;
40797#line 1809
40798  __cil_tmp104 = new_interfaces + __cil_tmp103;
40799#line 1809
40800  intf = *__cil_tmp104;
40801#line 1809
40802  cp->interface[i] = intf;
40803#line 1810
40804  intfc = cp->intf_cache[i];
40805#line 1811
40806  __cil_tmp105 = & intfc->altsetting;
40807#line 1811
40808  intf->altsetting = (struct usb_host_interface *)__cil_tmp105;
40809#line 1812
40810  intf->num_altsetting = intfc->num_altsetting;
40811#line 1813
40812  __cil_tmp106 = (u8 )i;
40813#line 1813
40814  __cil_tmp107 = (int )__cil_tmp106;
40815#line 1813
40816  __cil_tmp108 = (u8 )__cil_tmp107;
40817#line 1813
40818  intf->intf_assoc = find_iad(dev, cp, __cil_tmp108);
40819#line 1814
40820  __cil_tmp109 = & intfc->ref;
40821#line 1814
40822  kref_get(__cil_tmp109);
40823#line 1816
40824  __cil_tmp110 = (struct usb_interface  const  *)intf;
40825#line 1816
40826  alt = usb_altnum_to_altsetting(__cil_tmp110, 0U);
40827  }
40828  {
40829#line 1823
40830  __cil_tmp111 = (struct usb_host_interface *)0;
40831#line 1823
40832  __cil_tmp112 = (unsigned long )__cil_tmp111;
40833#line 1823
40834  __cil_tmp113 = (unsigned long )alt;
40835#line 1823
40836  if (__cil_tmp113 == __cil_tmp112) {
40837#line 1824
40838    alt = intf->altsetting;
40839  } else {
40840
40841  }
40842  }
40843  {
40844#line 1826
40845  intf->cur_altsetting = alt;
40846#line 1827
40847  __cil_tmp114 = (bool )1;
40848#line 1827
40849  usb_enable_interface(dev, intf, __cil_tmp114);
40850#line 1828
40851  intf->dev.parent = & dev->dev;
40852#line 1829
40853  intf->dev.driver = (struct device_driver *)0;
40854#line 1830
40855  intf->dev.bus = & usb_bus_type;
40856#line 1831
40857  intf->dev.type = (struct device_type  const  *)(& usb_if_device_type);
40858#line 1832
40859  intf->dev.groups = (struct attribute_group  const  **)(& usb_interface_groups);
40860#line 1833
40861  intf->dev.dma_mask = dev->dev.dma_mask;
40862#line 1834
40863  __cil_tmp115 = & intf->reset_ws;
40864#line 1834
40865  __init_work(__cil_tmp115, 0);
40866#line 1834
40867  __constr_expr_0.counter = 2097664L;
40868#line 1834
40869  intf->reset_ws.data = __constr_expr_0;
40870#line 1834
40871  __cil_tmp116 = & intf->reset_ws.lockdep_map;
40872#line 1834
40873  lockdep_init_map(__cil_tmp116, "(&intf->reset_ws)", & __key, 0);
40874#line 1834
40875  __cil_tmp117 = & intf->reset_ws.entry;
40876#line 1834
40877  INIT_LIST_HEAD(__cil_tmp117);
40878#line 1834
40879  intf->reset_ws.func = & __usb_queue_reset_device;
40880#line 1835
40881  intf->minor = -1;
40882#line 1836
40883  __cil_tmp118 = & intf->dev;
40884#line 1836
40885  device_initialize(__cil_tmp118);
40886#line 1837
40887  __cil_tmp119 = & intf->dev;
40888#line 1837
40889  pm_runtime_no_callbacks(__cil_tmp119);
40890#line 1838
40891  __cil_tmp120 = & intf->dev;
40892#line 1838
40893  __cil_tmp121 = dev->bus;
40894#line 1838
40895  __cil_tmp122 = __cil_tmp121->busnum;
40896#line 1838
40897  __cil_tmp123 = & dev->devpath;
40898#line 1838
40899  __cil_tmp124 = (char *)__cil_tmp123;
40900#line 1838
40901  __cil_tmp125 = alt->desc.bInterfaceNumber;
40902#line 1838
40903  __cil_tmp126 = (int )__cil_tmp125;
40904#line 1838
40905  dev_set_name(__cil_tmp120, "%d-%s:%d.%d", __cil_tmp122, __cil_tmp124, configuration,
40906               __cil_tmp126);
40907#line 1804
40908  i = i + 1;
40909  }
40910  ldv_29227: ;
40911#line 1804
40912  if (i < nintf) {
40913#line 1805
40914    goto ldv_29226;
40915  } else {
40916#line 1807
40917    goto ldv_29228;
40918  }
40919  ldv_29228: 
40920  {
40921#line 1842
40922  __cil_tmp127 = (void const   *)new_interfaces;
40923#line 1842
40924  kfree(__cil_tmp127);
40925  }
40926  {
40927#line 1844
40928  __cil_tmp128 = (char *)0;
40929#line 1844
40930  __cil_tmp129 = (unsigned long )__cil_tmp128;
40931#line 1844
40932  __cil_tmp130 = cp->string;
40933#line 1844
40934  __cil_tmp131 = (unsigned long )__cil_tmp130;
40935#line 1844
40936  if (__cil_tmp131 == __cil_tmp129) {
40937    {
40938#line 1844
40939    __cil_tmp132 = dev->quirks;
40940#line 1844
40941    __cil_tmp133 = __cil_tmp132 & 8U;
40942#line 1844
40943    if (__cil_tmp133 == 0U) {
40944      {
40945#line 1846
40946      __cil_tmp134 = cp->desc.iConfiguration;
40947#line 1846
40948      __cil_tmp135 = (int )__cil_tmp134;
40949#line 1846
40950      cp->string = usb_cache_string(dev, __cil_tmp135);
40951      }
40952    } else {
40953
40954    }
40955    }
40956  } else {
40957
40958  }
40959  }
40960#line 1854
40961  i = 0;
40962#line 1854
40963  goto ldv_29232;
40964  ldv_29231: 
40965  {
40966#line 1855
40967  intf___0 = cp->interface[i];
40968#line 1857
40969  __cil_tmp136 = & intf___0->dev;
40970#line 1857
40971  __cil_tmp137 = (struct device  const  *)__cil_tmp136;
40972#line 1857
40973  tmp___3 = dev_name(__cil_tmp137);
40974#line 1857
40975  __cil_tmp138 = & dev->dev;
40976#line 1857
40977  __cil_tmp139 = (struct device  const  *)__cil_tmp138;
40978#line 1857
40979  __cil_tmp140 = intf___0->cur_altsetting;
40980#line 1857
40981  __cil_tmp141 = __cil_tmp140->desc.bInterfaceNumber;
40982#line 1857
40983  __cil_tmp142 = (int )__cil_tmp141;
40984#line 1857
40985  dev_printk("<7>", __cil_tmp139, "adding %s (config #%d, interface %d)\n", tmp___3,
40986             configuration, __cil_tmp142);
40987#line 1861
40988  __cil_tmp143 = & intf___0->dev;
40989#line 1861
40990  device_enable_async_suspend(__cil_tmp143);
40991#line 1862
40992  __cil_tmp144 = & intf___0->dev;
40993#line 1862
40994  ret = device_add(__cil_tmp144);
40995  }
40996#line 1863
40997  if (ret != 0) {
40998    {
40999#line 1864
41000    __cil_tmp145 = & intf___0->dev;
41001#line 1864
41002    __cil_tmp146 = (struct device  const  *)__cil_tmp145;
41003#line 1864
41004    tmp___4 = dev_name(__cil_tmp146);
41005#line 1864
41006    __cil_tmp147 = & dev->dev;
41007#line 1864
41008    __cil_tmp148 = (struct device  const  *)__cil_tmp147;
41009#line 1864
41010    dev_err(__cil_tmp148, "device_add(%s) --> %d\n", tmp___4, ret);
41011    }
41012#line 1866
41013    goto ldv_29230;
41014  } else {
41015
41016  }
41017  {
41018#line 1868
41019  create_intf_ep_devs(intf___0);
41020  }
41021  ldv_29230: 
41022#line 1854
41023  i = i + 1;
41024  ldv_29232: ;
41025#line 1854
41026  if (i < nintf) {
41027#line 1855
41028    goto ldv_29231;
41029  } else {
41030#line 1857
41031    goto ldv_29233;
41032  }
41033  ldv_29233: 
41034  {
41035#line 1871
41036  usb_autosuspend_device(dev);
41037  }
41038#line 1872
41039  return (0);
41040}
41041}
41042#line 1875 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
41043static struct list_head set_config_list  =    {& set_config_list, & set_config_list};
41044#line 1876 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
41045static spinlock_t set_config_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
41046                                                                      {(struct lock_class *)0,
41047                                                                       (struct lock_class *)0},
41048                                                                      "set_config_lock",
41049                                                                      0, 0UL}}}};
41050#line 1886 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
41051static void driver_set_config_work(struct work_struct *work ) 
41052{ struct set_config_request *req ;
41053  struct work_struct  const  *__mptr ;
41054  struct usb_device *udev ;
41055  struct set_config_request *__cil_tmp5 ;
41056  struct device *__cil_tmp6 ;
41057  struct list_head *__cil_tmp7 ;
41058  int __cil_tmp8 ;
41059  int __cil_tmp9 ;
41060  struct device *__cil_tmp10 ;
41061  void const   *__cil_tmp11 ;
41062
41063  {
41064  {
41065#line 1889
41066  __mptr = (struct work_struct  const  *)work;
41067#line 1889
41068  __cil_tmp5 = (struct set_config_request *)__mptr;
41069#line 1889
41070  req = __cil_tmp5 + 1152921504606846960UL;
41071#line 1890
41072  udev = req->udev;
41073#line 1892
41074  __cil_tmp6 = & udev->dev;
41075#line 1892
41076  device_lock(__cil_tmp6);
41077#line 1893
41078  spin_lock(& set_config_lock);
41079#line 1894
41080  __cil_tmp7 = & req->node;
41081#line 1894
41082  list_del(__cil_tmp7);
41083#line 1895
41084  spin_unlock(& set_config_lock);
41085  }
41086  {
41087#line 1897
41088  __cil_tmp8 = req->config;
41089#line 1897
41090  if (__cil_tmp8 >= -1) {
41091    {
41092#line 1898
41093    __cil_tmp9 = req->config;
41094#line 1898
41095    usb_set_configuration(udev, __cil_tmp9);
41096    }
41097  } else {
41098
41099  }
41100  }
41101  {
41102#line 1899
41103  __cil_tmp10 = & udev->dev;
41104#line 1899
41105  device_unlock(__cil_tmp10);
41106#line 1900
41107  usb_put_dev(udev);
41108#line 1901
41109  __cil_tmp11 = (void const   *)req;
41110#line 1901
41111  kfree(__cil_tmp11);
41112  }
41113#line 1902
41114  return;
41115}
41116}
41117#line 1907 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
41118static void cancel_async_set_config(struct usb_device *udev ) 
41119{ struct set_config_request *req ;
41120  struct list_head  const  *__mptr ;
41121  struct list_head  const  *__mptr___0 ;
41122  struct set_config_request *__cil_tmp5 ;
41123  unsigned long __cil_tmp6 ;
41124  struct usb_device *__cil_tmp7 ;
41125  unsigned long __cil_tmp8 ;
41126  struct list_head *__cil_tmp9 ;
41127  struct set_config_request *__cil_tmp10 ;
41128  unsigned long __cil_tmp11 ;
41129  struct list_head *__cil_tmp12 ;
41130  unsigned long __cil_tmp13 ;
41131
41132  {
41133  {
41134#line 1911
41135  spin_lock(& set_config_lock);
41136#line 1912
41137  __mptr = (struct list_head  const  *)set_config_list.next;
41138#line 1912
41139  __cil_tmp5 = (struct set_config_request *)__mptr;
41140#line 1912
41141  req = __cil_tmp5 + 1152921504606846880UL;
41142  }
41143#line 1912
41144  goto ldv_29258;
41145  ldv_29257: ;
41146  {
41147#line 1913
41148  __cil_tmp6 = (unsigned long )udev;
41149#line 1913
41150  __cil_tmp7 = req->udev;
41151#line 1913
41152  __cil_tmp8 = (unsigned long )__cil_tmp7;
41153#line 1913
41154  if (__cil_tmp8 == __cil_tmp6) {
41155#line 1914
41156    req->config = -999;
41157  } else {
41158
41159  }
41160  }
41161#line 1912
41162  __cil_tmp9 = req->node.next;
41163#line 1912
41164  __mptr___0 = (struct list_head  const  *)__cil_tmp9;
41165#line 1912
41166  __cil_tmp10 = (struct set_config_request *)__mptr___0;
41167#line 1912
41168  req = __cil_tmp10 + 1152921504606846880UL;
41169  ldv_29258: ;
41170  {
41171#line 1912
41172  __cil_tmp11 = (unsigned long )(& set_config_list);
41173#line 1912
41174  __cil_tmp12 = & req->node;
41175#line 1912
41176  __cil_tmp13 = (unsigned long )__cil_tmp12;
41177#line 1912
41178  if (__cil_tmp13 != __cil_tmp11) {
41179#line 1913
41180    goto ldv_29257;
41181  } else {
41182#line 1915
41183    goto ldv_29259;
41184  }
41185  }
41186  ldv_29259: 
41187  {
41188#line 1916
41189  spin_unlock(& set_config_lock);
41190  }
41191#line 1917
41192  return;
41193}
41194}
41195#line 1939 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/message.c.p"
41196int usb_driver_set_configuration(struct usb_device *udev , int config ) 
41197{ struct set_config_request *req ;
41198  void *tmp ;
41199  struct lock_class_key __key ;
41200  atomic_long_t __constr_expr_0 ;
41201  struct set_config_request *__cil_tmp7 ;
41202  unsigned long __cil_tmp8 ;
41203  unsigned long __cil_tmp9 ;
41204  struct work_struct *__cil_tmp10 ;
41205  struct lockdep_map *__cil_tmp11 ;
41206  struct list_head *__cil_tmp12 ;
41207  struct list_head *__cil_tmp13 ;
41208  struct work_struct *__cil_tmp14 ;
41209
41210  {
41211  {
41212#line 1943
41213  tmp = kmalloc(112UL, 208U);
41214#line 1943
41215  req = (struct set_config_request *)tmp;
41216  }
41217  {
41218#line 1944
41219  __cil_tmp7 = (struct set_config_request *)0;
41220#line 1944
41221  __cil_tmp8 = (unsigned long )__cil_tmp7;
41222#line 1944
41223  __cil_tmp9 = (unsigned long )req;
41224#line 1944
41225  if (__cil_tmp9 == __cil_tmp8) {
41226#line 1945
41227    return (-12);
41228  } else {
41229
41230  }
41231  }
41232  {
41233#line 1946
41234  req->udev = udev;
41235#line 1947
41236  req->config = config;
41237#line 1948
41238  __cil_tmp10 = & req->work;
41239#line 1948
41240  __init_work(__cil_tmp10, 0);
41241#line 1948
41242  __constr_expr_0.counter = 2097664L;
41243#line 1948
41244  req->work.data = __constr_expr_0;
41245#line 1948
41246  __cil_tmp11 = & req->work.lockdep_map;
41247#line 1948
41248  lockdep_init_map(__cil_tmp11, "(&req->work)", & __key, 0);
41249#line 1948
41250  __cil_tmp12 = & req->work.entry;
41251#line 1948
41252  INIT_LIST_HEAD(__cil_tmp12);
41253#line 1948
41254  req->work.func = & driver_set_config_work;
41255#line 1950
41256  spin_lock(& set_config_lock);
41257#line 1951
41258  __cil_tmp13 = & req->node;
41259#line 1951
41260  list_add(__cil_tmp13, & set_config_list);
41261#line 1952
41262  spin_unlock(& set_config_lock);
41263#line 1954
41264  usb_get_dev(udev);
41265#line 1955
41266  __cil_tmp14 = & req->work;
41267#line 1955
41268  schedule_work(__cil_tmp14);
41269  }
41270#line 1956
41271  return (0);
41272}
41273}
41274#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/cmpxchg_64.h"
41275extern void __cmpxchg_wrong_size(void) ;
41276#line 213 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
41277__inline static int atomic_cmpxchg(atomic_t *v , int old , int new ) 
41278{ int __ret ;
41279  int __old ;
41280  int __new ;
41281  u8 volatile   *__ptr ;
41282  u16 volatile   *__ptr___0 ;
41283  u32 volatile   *__ptr___1 ;
41284  u64 volatile   *__ptr___2 ;
41285  int *__cil_tmp11 ;
41286  int *__cil_tmp12 ;
41287  int *__cil_tmp13 ;
41288  int *__cil_tmp14 ;
41289
41290  {
41291#line 215
41292  __old = old;
41293#line 215
41294  __new = new;
41295#line 215
41296  if (1) {
41297#line 215
41298    goto case_4;
41299  } else {
41300#line 215
41301    goto switch_default;
41302#line 215
41303    if (0) {
41304#line 215
41305      __cil_tmp11 = & v->counter;
41306#line 215
41307      __ptr = (u8 volatile   *)__cil_tmp11;
41308#line 215
41309      __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; cmpxchgb %2,%1": "=a" (__ret),
41310                           "+m" (*__ptr): "q" (__new), "0" (__old): "memory");
41311#line 215
41312      goto ldv_5544;
41313#line 215
41314      __cil_tmp12 = & v->counter;
41315#line 215
41316      __ptr___0 = (u16 volatile   *)__cil_tmp12;
41317#line 215
41318      __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; cmpxchgw %2,%1": "=a" (__ret),
41319                           "+m" (*__ptr___0): "r" (__new), "0" (__old): "memory");
41320#line 215
41321      goto ldv_5544;
41322      case_4: 
41323#line 215
41324      __cil_tmp13 = & v->counter;
41325#line 215
41326      __ptr___1 = (u32 volatile   *)__cil_tmp13;
41327#line 215
41328      __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; cmpxchgl %2,%1": "=a" (__ret),
41329                           "+m" (*__ptr___1): "r" (__new), "0" (__old): "memory");
41330#line 215
41331      goto ldv_5544;
41332#line 215
41333      __cil_tmp14 = & v->counter;
41334#line 215
41335      __ptr___2 = (u64 volatile   *)__cil_tmp14;
41336#line 215
41337      __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; cmpxchgq %2,%1": "=a" (__ret),
41338                           "+m" (*__ptr___2): "r" (__new), "0" (__old): "memory");
41339#line 215
41340      goto ldv_5544;
41341      switch_default: 
41342      {
41343#line 215
41344      __cmpxchg_wrong_size();
41345      }
41346    } else {
41347
41348    }
41349  }
41350  ldv_5544: ;
41351#line 215
41352  return (__ret);
41353}
41354}
41355#line 232 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
41356__inline static int atomic_add_unless(atomic_t *v , int a , int u ) 
41357{ int c ;
41358  int old ;
41359  long tmp ;
41360  long tmp___0 ;
41361  atomic_t const   *__cil_tmp8 ;
41362  int __cil_tmp9 ;
41363  long __cil_tmp10 ;
41364  int __cil_tmp11 ;
41365  int __cil_tmp12 ;
41366  long __cil_tmp13 ;
41367
41368  {
41369  {
41370#line 235
41371  __cil_tmp8 = (atomic_t const   *)v;
41372#line 235
41373  c = atomic_read(__cil_tmp8);
41374  }
41375  ldv_5577: 
41376  {
41377#line 237
41378  __cil_tmp9 = c == u;
41379#line 237
41380  __cil_tmp10 = (long )__cil_tmp9;
41381#line 237
41382  tmp = __builtin_expect(__cil_tmp10, 0L);
41383  }
41384#line 237
41385  if (tmp != 0L) {
41386#line 238
41387    goto ldv_5576;
41388  } else {
41389
41390  }
41391  {
41392#line 239
41393  __cil_tmp11 = c + a;
41394#line 239
41395  old = atomic_cmpxchg(v, c, __cil_tmp11);
41396#line 240
41397  __cil_tmp12 = old == c;
41398#line 240
41399  __cil_tmp13 = (long )__cil_tmp12;
41400#line 240
41401  tmp___0 = __builtin_expect(__cil_tmp13, 1L);
41402  }
41403#line 240
41404  if (tmp___0 != 0L) {
41405#line 241
41406    goto ldv_5576;
41407  } else {
41408
41409  }
41410#line 242
41411  c = old;
41412#line 243
41413  goto ldv_5577;
41414  ldv_5576: ;
41415#line 244
41416  return (c != u);
41417}
41418}
41419#line 553 "include/linux/pm.h"
41420extern int device_pm_wait_for_dev(struct device * , struct device * ) ;
41421#line 209 "include/linux/device.h"
41422extern int driver_register(struct device_driver * ) ;
41423#line 210
41424extern void driver_unregister(struct device_driver * ) ;
41425#line 212
41426extern struct device_driver *get_driver(struct device_driver * ) ;
41427#line 213
41428extern void put_driver(struct device_driver * ) ;
41429#line 233
41430extern int driver_create_file(struct device_driver * , struct driver_attribute  const  * ) ;
41431#line 235
41432extern void driver_remove_file(struct device_driver * , struct driver_attribute  const  * ) ;
41433#line 728
41434extern int device_bind_driver(struct device * ) ;
41435#line 729
41436extern void device_release_driver(struct device * ) ;
41437#line 730
41438extern int device_attach(struct device * ) ;
41439#line 731
41440extern int driver_attach(struct device_driver * ) ;
41441#line 29 "include/linux/pm_runtime.h"
41442extern int __pm_runtime_idle(struct device * , int  ) ;
41443#line 31
41444extern int __pm_runtime_resume(struct device * , int  ) ;
41445#line 37
41446extern void pm_runtime_allow(struct device * ) ;
41447#line 38
41448extern void pm_runtime_forbid(struct device * ) ;
41449#line 54 "include/linux/pm_runtime.h"
41450__inline static void pm_suspend_ignore_children(struct device *dev , bool enable ) 
41451{ 
41452
41453  {
41454#line 56
41455  dev->power.ignore_children = (unsigned char )enable;
41456#line 57
41457  return;
41458}
41459}
41460#line 64 "include/linux/pm_runtime.h"
41461__inline static void pm_runtime_put_noidle(struct device *dev ) 
41462{ atomic_t *__cil_tmp2 ;
41463
41464  {
41465  {
41466#line 66
41467  __cil_tmp2 = & dev->power.usage_count;
41468#line 66
41469  atomic_add_unless(__cil_tmp2, -1, 0);
41470  }
41471#line 67
41472  return;
41473}
41474}
41475#line 162 "include/linux/pm_runtime.h"
41476__inline static int pm_runtime_autosuspend(struct device *dev ) 
41477{ int tmp ;
41478
41479  {
41480  {
41481#line 164
41482  tmp = __pm_runtime_suspend(dev, 8);
41483  }
41484#line 164
41485  return (tmp);
41486}
41487}
41488#line 167 "include/linux/pm_runtime.h"
41489__inline static int pm_runtime_resume(struct device *dev ) 
41490{ int tmp ;
41491
41492  {
41493  {
41494#line 169
41495  tmp = __pm_runtime_resume(dev, 0);
41496  }
41497#line 169
41498  return (tmp);
41499}
41500}
41501#line 187 "include/linux/pm_runtime.h"
41502__inline static int pm_runtime_get(struct device *dev ) 
41503{ int tmp ;
41504
41505  {
41506  {
41507#line 189
41508  tmp = __pm_runtime_resume(dev, 5);
41509  }
41510#line 189
41511  return (tmp);
41512}
41513}
41514#line 192 "include/linux/pm_runtime.h"
41515__inline static int pm_runtime_get_sync(struct device *dev ) 
41516{ int tmp ;
41517
41518  {
41519  {
41520#line 194
41521  tmp = __pm_runtime_resume(dev, 4);
41522  }
41523#line 194
41524  return (tmp);
41525}
41526}
41527#line 197 "include/linux/pm_runtime.h"
41528__inline static int pm_runtime_put(struct device *dev ) 
41529{ int tmp ;
41530
41531  {
41532  {
41533#line 199
41534  tmp = __pm_runtime_idle(dev, 5);
41535  }
41536#line 199
41537  return (tmp);
41538}
41539}
41540#line 208 "include/linux/pm_runtime.h"
41541__inline static int pm_runtime_put_sync(struct device *dev ) 
41542{ int tmp ;
41543
41544  {
41545  {
41546#line 210
41547  tmp = __pm_runtime_idle(dev, 4);
41548  }
41549#line 210
41550  return (tmp);
41551}
41552}
41553#line 524 "include/linux/usb.h"
41554int usb_autopm_get_interface_async(struct usb_interface *intf ) ;
41555#line 576
41556int usb_driver_claim_interface(struct usb_driver *driver , struct usb_interface *iface ,
41557                               void *priv ) ;
41558#line 594
41559void usb_driver_release_interface(struct usb_driver *driver , struct usb_interface *iface ) ;
41560#line 596
41561struct usb_device_id  const  *usb_match_id(struct usb_interface *interface , struct usb_device_id  const  *id ) ;
41562#line 598
41563int usb_match_one_id(struct usb_interface *interface , struct usb_device_id  const  *id ) ;
41564#line 773
41565ssize_t usb_store_new_id(struct usb_dynids *dynids , struct device_driver *driver ,
41566                         char const   *buf , size_t count ) ;
41567#line 595 "include/linux/usb/hcd.h"
41568void usbfs_update_special(void) ;
41569#line 36 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
41570int usb_match_device(struct usb_device *dev , struct usb_device_id  const  *id ) ;
41571#line 105 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
41572__inline static int is_usb_device(struct device  const  *dev ) 
41573{ struct device_type  const  *__cil_tmp2 ;
41574  unsigned long __cil_tmp3 ;
41575  struct device_type  const  *__cil_tmp4 ;
41576  struct device_type  const  *__cil_tmp5 ;
41577  unsigned long __cil_tmp6 ;
41578
41579  {
41580  {
41581#line 107
41582  __cil_tmp2 = (struct device_type  const  *)(& usb_device_type);
41583#line 107
41584  __cil_tmp3 = (unsigned long )__cil_tmp2;
41585#line 107
41586  __cil_tmp4 = dev->type;
41587#line 107
41588  __cil_tmp5 = (struct device_type  const  *)__cil_tmp4;
41589#line 107
41590  __cil_tmp6 = (unsigned long )__cil_tmp5;
41591#line 107
41592  return (__cil_tmp6 == __cil_tmp3);
41593  }
41594}
41595}
41596#line 122 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
41597__inline static int is_usb_device_driver(struct device_driver *drv ) 
41598{ struct device_driver  const  *__mptr ;
41599  struct usbdrv_wrap *__cil_tmp3 ;
41600
41601  {
41602#line 124
41603  __mptr = (struct device_driver  const  *)drv;
41604  {
41605#line 124
41606  __cil_tmp3 = (struct usbdrv_wrap *)__mptr;
41607#line 124
41608  return (__cil_tmp3->for_devices);
41609  }
41610}
41611}
41612#line 48 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
41613ssize_t usb_store_new_id(struct usb_dynids *dynids , struct device_driver *driver ,
41614                         char const   *buf , size_t count ) 
41615{ struct usb_dynid *dynid ;
41616  u32 idVendor ;
41617  u32 idProduct ;
41618  int fields ;
41619  int retval ;
41620  void *tmp ;
41621  struct device_driver *tmp___0 ;
41622  struct usb_dynid *__cil_tmp12 ;
41623  unsigned long __cil_tmp13 ;
41624  unsigned long __cil_tmp14 ;
41625  struct list_head *__cil_tmp15 ;
41626  spinlock_t *__cil_tmp16 ;
41627  struct list_head *__cil_tmp17 ;
41628  struct list_head *__cil_tmp18 ;
41629  spinlock_t *__cil_tmp19 ;
41630  struct device_driver *__cil_tmp20 ;
41631  unsigned long __cil_tmp21 ;
41632  unsigned long __cil_tmp22 ;
41633
41634  {
41635  {
41636#line 53
41637  idVendor = 0U;
41638#line 54
41639  idProduct = 0U;
41640#line 55
41641  fields = 0;
41642#line 56
41643  retval = 0;
41644#line 58
41645  fields = sscanf(buf, "%x %x", & idVendor, & idProduct);
41646  }
41647#line 59
41648  if (fields <= 1) {
41649#line 60
41650    return (-22L);
41651  } else {
41652
41653  }
41654  {
41655#line 62
41656  tmp = kzalloc(40UL, 208U);
41657#line 62
41658  dynid = (struct usb_dynid *)tmp;
41659  }
41660  {
41661#line 63
41662  __cil_tmp12 = (struct usb_dynid *)0;
41663#line 63
41664  __cil_tmp13 = (unsigned long )__cil_tmp12;
41665#line 63
41666  __cil_tmp14 = (unsigned long )dynid;
41667#line 63
41668  if (__cil_tmp14 == __cil_tmp13) {
41669#line 64
41670    return (-12L);
41671  } else {
41672
41673  }
41674  }
41675  {
41676#line 66
41677  __cil_tmp15 = & dynid->node;
41678#line 66
41679  INIT_LIST_HEAD(__cil_tmp15);
41680#line 67
41681  dynid->id.idVendor = (__u16 )idVendor;
41682#line 68
41683  dynid->id.idProduct = (__u16 )idProduct;
41684#line 69
41685  dynid->id.match_flags = (__u16 )3U;
41686#line 71
41687  __cil_tmp16 = & dynids->lock;
41688#line 71
41689  spin_lock(__cil_tmp16);
41690#line 72
41691  __cil_tmp17 = & dynid->node;
41692#line 72
41693  __cil_tmp18 = & dynids->list;
41694#line 72
41695  list_add_tail(__cil_tmp17, __cil_tmp18);
41696#line 73
41697  __cil_tmp19 = & dynids->lock;
41698#line 73
41699  spin_unlock(__cil_tmp19);
41700#line 75
41701  tmp___0 = get_driver(driver);
41702  }
41703  {
41704#line 75
41705  __cil_tmp20 = (struct device_driver *)0;
41706#line 75
41707  __cil_tmp21 = (unsigned long )__cil_tmp20;
41708#line 75
41709  __cil_tmp22 = (unsigned long )tmp___0;
41710#line 75
41711  if (__cil_tmp22 != __cil_tmp21) {
41712    {
41713#line 76
41714    retval = driver_attach(driver);
41715#line 77
41716    put_driver(driver);
41717    }
41718  } else {
41719
41720  }
41721  }
41722#line 80
41723  if (retval != 0) {
41724#line 81
41725    return ((ssize_t )retval);
41726  } else {
41727
41728  }
41729#line 82
41730  return ((ssize_t )count);
41731}
41732}
41733#line 86 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
41734static ssize_t store_new_id(struct device_driver *driver , char const   *buf , size_t count ) 
41735{ struct usb_driver *usb_drv ;
41736  struct device_driver  const  *__mptr ;
41737  ssize_t tmp ;
41738  struct usb_driver *__cil_tmp7 ;
41739  struct usb_dynids *__cil_tmp8 ;
41740
41741  {
41742  {
41743#line 89
41744  __mptr = (struct device_driver  const  *)driver;
41745#line 89
41746  __cil_tmp7 = (struct usb_driver *)__mptr;
41747#line 89
41748  usb_drv = __cil_tmp7 + 1152921504606846808UL;
41749#line 91
41750  __cil_tmp8 = & usb_drv->dynids;
41751#line 91
41752  tmp = usb_store_new_id(__cil_tmp8, driver, buf, count);
41753  }
41754#line 91
41755  return (tmp);
41756}
41757}
41758#line 93 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
41759static struct driver_attribute driver_attr_new_id  =    {{"new_id", 128U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
41760                                                   {(char)0}, {(char)0}, {(char)0},
41761                                                   {(char)0}, {(char)0}}}}, (ssize_t (*)(struct device_driver * ,
41762                                                                                         char * ))0,
41763    & store_new_id};
41764#line 104 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
41765static ssize_t store_remove_id(struct device_driver *driver , char const   *buf ,
41766                               size_t count ) 
41767{ struct usb_dynid *dynid ;
41768  struct usb_dynid *n ;
41769  struct usb_driver *usb_driver ;
41770  struct device_driver  const  *__mptr ;
41771  u32 idVendor ;
41772  u32 idProduct ;
41773  int fields ;
41774  int retval ;
41775  struct list_head  const  *__mptr___0 ;
41776  struct list_head  const  *__mptr___1 ;
41777  struct usb_device_id *id ;
41778  struct list_head  const  *__mptr___2 ;
41779  struct usb_driver *__cil_tmp16 ;
41780  spinlock_t *__cil_tmp17 ;
41781  struct list_head *__cil_tmp18 ;
41782  struct list_head *__cil_tmp19 ;
41783  __u16 __cil_tmp20 ;
41784  u32 __cil_tmp21 ;
41785  __u16 __cil_tmp22 ;
41786  u32 __cil_tmp23 ;
41787  struct list_head *__cil_tmp24 ;
41788  void const   *__cil_tmp25 ;
41789  struct list_head *__cil_tmp26 ;
41790  struct list_head *__cil_tmp27 ;
41791  unsigned long __cil_tmp28 ;
41792  struct list_head *__cil_tmp29 ;
41793  unsigned long __cil_tmp30 ;
41794  spinlock_t *__cil_tmp31 ;
41795
41796  {
41797  {
41798#line 107
41799  __mptr = (struct device_driver  const  *)driver;
41800#line 107
41801  __cil_tmp16 = (struct usb_driver *)__mptr;
41802#line 107
41803  usb_driver = __cil_tmp16 + 1152921504606846808UL;
41804#line 108
41805  idVendor = 0U;
41806#line 109
41807  idProduct = 0U;
41808#line 110
41809  fields = 0;
41810#line 111
41811  retval = 0;
41812#line 113
41813  fields = sscanf(buf, "%x %x", & idVendor, & idProduct);
41814  }
41815#line 114
41816  if (fields <= 1) {
41817#line 115
41818    return (-22L);
41819  } else {
41820
41821  }
41822  {
41823#line 117
41824  __cil_tmp17 = & usb_driver->dynids.lock;
41825#line 117
41826  spin_lock(__cil_tmp17);
41827#line 118
41828  __cil_tmp18 = usb_driver->dynids.list.next;
41829#line 118
41830  __mptr___0 = (struct list_head  const  *)__cil_tmp18;
41831#line 118
41832  dynid = (struct usb_dynid *)__mptr___0;
41833#line 118
41834  __cil_tmp19 = dynid->node.next;
41835#line 118
41836  __mptr___1 = (struct list_head  const  *)__cil_tmp19;
41837#line 118
41838  n = (struct usb_dynid *)__mptr___1;
41839  }
41840#line 118
41841  goto ldv_24278;
41842  ldv_24277: 
41843#line 119
41844  id = & dynid->id;
41845  {
41846#line 120
41847  __cil_tmp20 = id->idVendor;
41848#line 120
41849  __cil_tmp21 = (u32 )__cil_tmp20;
41850#line 120
41851  if (__cil_tmp21 == idVendor) {
41852    {
41853#line 120
41854    __cil_tmp22 = id->idProduct;
41855#line 120
41856    __cil_tmp23 = (u32 )__cil_tmp22;
41857#line 120
41858    if (__cil_tmp23 == idProduct) {
41859      {
41860#line 122
41861      __cil_tmp24 = & dynid->node;
41862#line 122
41863      list_del(__cil_tmp24);
41864#line 123
41865      __cil_tmp25 = (void const   *)dynid;
41866#line 123
41867      kfree(__cil_tmp25);
41868#line 124
41869      retval = 0;
41870      }
41871#line 125
41872      goto ldv_24276;
41873    } else {
41874
41875    }
41876    }
41877  } else {
41878
41879  }
41880  }
41881#line 118
41882  dynid = n;
41883#line 118
41884  __cil_tmp26 = n->node.next;
41885#line 118
41886  __mptr___2 = (struct list_head  const  *)__cil_tmp26;
41887#line 118
41888  n = (struct usb_dynid *)__mptr___2;
41889  ldv_24278: ;
41890  {
41891#line 118
41892  __cil_tmp27 = & usb_driver->dynids.list;
41893#line 118
41894  __cil_tmp28 = (unsigned long )__cil_tmp27;
41895#line 118
41896  __cil_tmp29 = & dynid->node;
41897#line 118
41898  __cil_tmp30 = (unsigned long )__cil_tmp29;
41899#line 118
41900  if (__cil_tmp30 != __cil_tmp28) {
41901#line 119
41902    goto ldv_24277;
41903  } else {
41904#line 121
41905    goto ldv_24276;
41906  }
41907  }
41908  ldv_24276: 
41909  {
41910#line 128
41911  __cil_tmp31 = & usb_driver->dynids.lock;
41912#line 128
41913  spin_unlock(__cil_tmp31);
41914  }
41915#line 130
41916  if (retval != 0) {
41917#line 131
41918    return ((ssize_t )retval);
41919  } else {
41920
41921  }
41922#line 132
41923  return ((ssize_t )count);
41924}
41925}
41926#line 134 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
41927static struct driver_attribute driver_attr_remove_id  =    {{"remove_id", 128U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
41928                                                      {(char)0}, {(char)0}, {(char)0},
41929                                                      {(char)0}, {(char)0}}}}, (ssize_t (*)(struct device_driver * ,
41930                                                                                            char * ))0,
41931    & store_remove_id};
41932#line 136 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
41933static int usb_create_newid_file(struct usb_driver *usb_drv ) 
41934{ int error ;
41935  unsigned char *__cil_tmp3 ;
41936  unsigned char *__cil_tmp4 ;
41937  unsigned char __cil_tmp5 ;
41938  unsigned int __cil_tmp6 ;
41939  int (*__cil_tmp7)(struct usb_interface * , struct usb_device_id  const  * ) ;
41940  unsigned long __cil_tmp8 ;
41941  int (*__cil_tmp9)(struct usb_interface * , struct usb_device_id  const  * ) ;
41942  unsigned long __cil_tmp10 ;
41943  struct device_driver *__cil_tmp11 ;
41944  struct driver_attribute  const  *__cil_tmp12 ;
41945
41946  {
41947#line 138
41948  error = 0;
41949  {
41950#line 140
41951  __cil_tmp3 = (unsigned char *)usb_drv;
41952#line 140
41953  __cil_tmp4 = __cil_tmp3 + 288UL;
41954#line 140
41955  __cil_tmp5 = *__cil_tmp4;
41956#line 140
41957  __cil_tmp6 = (unsigned int )__cil_tmp5;
41958#line 140
41959  if (__cil_tmp6 != 0U) {
41960#line 141
41961    goto exit;
41962  } else {
41963
41964  }
41965  }
41966  {
41967#line 143
41968  __cil_tmp7 = (int (*)(struct usb_interface * , struct usb_device_id  const  * ))0;
41969#line 143
41970  __cil_tmp8 = (unsigned long )__cil_tmp7;
41971#line 143
41972  __cil_tmp9 = usb_drv->probe;
41973#line 143
41974  __cil_tmp10 = (unsigned long )__cil_tmp9;
41975#line 143
41976  if (__cil_tmp10 != __cil_tmp8) {
41977    {
41978#line 144
41979    __cil_tmp11 = & usb_drv->drvwrap.driver;
41980#line 144
41981    __cil_tmp12 = (struct driver_attribute  const  *)(& driver_attr_new_id);
41982#line 144
41983    error = driver_create_file(__cil_tmp11, __cil_tmp12);
41984    }
41985  } else {
41986
41987  }
41988  }
41989  exit: ;
41990#line 147
41991  return (error);
41992}
41993}
41994#line 150 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
41995static void usb_remove_newid_file(struct usb_driver *usb_drv ) 
41996{ unsigned char *__cil_tmp2 ;
41997  unsigned char *__cil_tmp3 ;
41998  unsigned char __cil_tmp4 ;
41999  unsigned int __cil_tmp5 ;
42000  int (*__cil_tmp6)(struct usb_interface * , struct usb_device_id  const  * ) ;
42001  unsigned long __cil_tmp7 ;
42002  int (*__cil_tmp8)(struct usb_interface * , struct usb_device_id  const  * ) ;
42003  unsigned long __cil_tmp9 ;
42004  struct device_driver *__cil_tmp10 ;
42005  struct driver_attribute  const  *__cil_tmp11 ;
42006
42007  {
42008  {
42009#line 152
42010  __cil_tmp2 = (unsigned char *)usb_drv;
42011#line 152
42012  __cil_tmp3 = __cil_tmp2 + 288UL;
42013#line 152
42014  __cil_tmp4 = *__cil_tmp3;
42015#line 152
42016  __cil_tmp5 = (unsigned int )__cil_tmp4;
42017#line 152
42018  if (__cil_tmp5 != 0U) {
42019#line 153
42020    return;
42021  } else {
42022
42023  }
42024  }
42025  {
42026#line 155
42027  __cil_tmp6 = (int (*)(struct usb_interface * , struct usb_device_id  const  * ))0;
42028#line 155
42029  __cil_tmp7 = (unsigned long )__cil_tmp6;
42030#line 155
42031  __cil_tmp8 = usb_drv->probe;
42032#line 155
42033  __cil_tmp9 = (unsigned long )__cil_tmp8;
42034#line 155
42035  if (__cil_tmp9 != __cil_tmp7) {
42036    {
42037#line 156
42038    __cil_tmp10 = & usb_drv->drvwrap.driver;
42039#line 156
42040    __cil_tmp11 = (struct driver_attribute  const  *)(& driver_attr_new_id);
42041#line 156
42042    driver_remove_file(__cil_tmp10, __cil_tmp11);
42043    }
42044  } else {
42045
42046  }
42047  }
42048#line 158
42049  return;
42050}
42051}
42052#line 161 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42053static int usb_create_removeid_file(struct usb_driver *drv ) 
42054{ int error ;
42055  int (*__cil_tmp3)(struct usb_interface * , struct usb_device_id  const  * ) ;
42056  unsigned long __cil_tmp4 ;
42057  int (*__cil_tmp5)(struct usb_interface * , struct usb_device_id  const  * ) ;
42058  unsigned long __cil_tmp6 ;
42059  struct device_driver *__cil_tmp7 ;
42060  struct driver_attribute  const  *__cil_tmp8 ;
42061
42062  {
42063#line 163
42064  error = 0;
42065  {
42066#line 164
42067  __cil_tmp3 = (int (*)(struct usb_interface * , struct usb_device_id  const  * ))0;
42068#line 164
42069  __cil_tmp4 = (unsigned long )__cil_tmp3;
42070#line 164
42071  __cil_tmp5 = drv->probe;
42072#line 164
42073  __cil_tmp6 = (unsigned long )__cil_tmp5;
42074#line 164
42075  if (__cil_tmp6 != __cil_tmp4) {
42076    {
42077#line 165
42078    __cil_tmp7 = & drv->drvwrap.driver;
42079#line 165
42080    __cil_tmp8 = (struct driver_attribute  const  *)(& driver_attr_remove_id);
42081#line 165
42082    error = driver_create_file(__cil_tmp7, __cil_tmp8);
42083    }
42084  } else {
42085
42086  }
42087  }
42088#line 167
42089  return (error);
42090}
42091}
42092#line 170 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42093static void usb_remove_removeid_file(struct usb_driver *drv ) 
42094{ struct device_driver *__cil_tmp2 ;
42095  struct driver_attribute  const  *__cil_tmp3 ;
42096
42097  {
42098  {
42099#line 172
42100  __cil_tmp2 = & drv->drvwrap.driver;
42101#line 172
42102  __cil_tmp3 = (struct driver_attribute  const  *)(& driver_attr_remove_id);
42103#line 172
42104  driver_remove_file(__cil_tmp2, __cil_tmp3);
42105  }
42106#line 173
42107  return;
42108}
42109}
42110#line 175 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42111static void usb_free_dynids(struct usb_driver *usb_drv ) 
42112{ struct usb_dynid *dynid ;
42113  struct usb_dynid *n ;
42114  struct list_head  const  *__mptr ;
42115  struct list_head  const  *__mptr___0 ;
42116  struct list_head  const  *__mptr___1 ;
42117  spinlock_t *__cil_tmp7 ;
42118  struct list_head *__cil_tmp8 ;
42119  struct list_head *__cil_tmp9 ;
42120  struct list_head *__cil_tmp10 ;
42121  void const   *__cil_tmp11 ;
42122  struct list_head *__cil_tmp12 ;
42123  struct list_head *__cil_tmp13 ;
42124  unsigned long __cil_tmp14 ;
42125  struct list_head *__cil_tmp15 ;
42126  unsigned long __cil_tmp16 ;
42127  spinlock_t *__cil_tmp17 ;
42128
42129  {
42130  {
42131#line 179
42132  __cil_tmp7 = & usb_drv->dynids.lock;
42133#line 179
42134  spin_lock(__cil_tmp7);
42135#line 180
42136  __cil_tmp8 = usb_drv->dynids.list.next;
42137#line 180
42138  __mptr = (struct list_head  const  *)__cil_tmp8;
42139#line 180
42140  dynid = (struct usb_dynid *)__mptr;
42141#line 180
42142  __cil_tmp9 = dynid->node.next;
42143#line 180
42144  __mptr___0 = (struct list_head  const  *)__cil_tmp9;
42145#line 180
42146  n = (struct usb_dynid *)__mptr___0;
42147  }
42148#line 180
42149  goto ldv_24307;
42150  ldv_24306: 
42151  {
42152#line 181
42153  __cil_tmp10 = & dynid->node;
42154#line 181
42155  list_del(__cil_tmp10);
42156#line 182
42157  __cil_tmp11 = (void const   *)dynid;
42158#line 182
42159  kfree(__cil_tmp11);
42160#line 180
42161  dynid = n;
42162#line 180
42163  __cil_tmp12 = n->node.next;
42164#line 180
42165  __mptr___1 = (struct list_head  const  *)__cil_tmp12;
42166#line 180
42167  n = (struct usb_dynid *)__mptr___1;
42168  }
42169  ldv_24307: ;
42170  {
42171#line 180
42172  __cil_tmp13 = & usb_drv->dynids.list;
42173#line 180
42174  __cil_tmp14 = (unsigned long )__cil_tmp13;
42175#line 180
42176  __cil_tmp15 = & dynid->node;
42177#line 180
42178  __cil_tmp16 = (unsigned long )__cil_tmp15;
42179#line 180
42180  if (__cil_tmp16 != __cil_tmp14) {
42181#line 181
42182    goto ldv_24306;
42183  } else {
42184#line 183
42185    goto ldv_24308;
42186  }
42187  }
42188  ldv_24308: 
42189  {
42190#line 184
42191  __cil_tmp17 = & usb_drv->dynids.lock;
42192#line 184
42193  spin_unlock(__cil_tmp17);
42194  }
42195#line 185
42196  return;
42197}
42198}
42199#line 211 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42200static struct usb_device_id  const  *usb_match_dynamic_id(struct usb_interface *intf ,
42201                                                          struct usb_driver *drv ) 
42202{ struct usb_dynid *dynid ;
42203  struct list_head  const  *__mptr ;
42204  int tmp ;
42205  struct list_head  const  *__mptr___0 ;
42206  spinlock_t *__cil_tmp7 ;
42207  struct list_head *__cil_tmp8 ;
42208  struct usb_device_id *__cil_tmp9 ;
42209  struct usb_device_id  const  *__cil_tmp10 ;
42210  spinlock_t *__cil_tmp11 ;
42211  struct usb_device_id *__cil_tmp12 ;
42212  struct list_head *__cil_tmp13 ;
42213  struct list_head *__cil_tmp14 ;
42214  unsigned long __cil_tmp15 ;
42215  struct list_head *__cil_tmp16 ;
42216  unsigned long __cil_tmp17 ;
42217  spinlock_t *__cil_tmp18 ;
42218
42219  {
42220  {
42221#line 216
42222  __cil_tmp7 = & drv->dynids.lock;
42223#line 216
42224  spin_lock(__cil_tmp7);
42225#line 217
42226  __cil_tmp8 = drv->dynids.list.next;
42227#line 217
42228  __mptr = (struct list_head  const  *)__cil_tmp8;
42229#line 217
42230  dynid = (struct usb_dynid *)__mptr;
42231  }
42232#line 217
42233  goto ldv_24319;
42234  ldv_24318: 
42235  {
42236#line 218
42237  __cil_tmp9 = & dynid->id;
42238#line 218
42239  __cil_tmp10 = (struct usb_device_id  const  *)__cil_tmp9;
42240#line 218
42241  tmp = usb_match_one_id(intf, __cil_tmp10);
42242  }
42243#line 218
42244  if (tmp != 0) {
42245    {
42246#line 219
42247    __cil_tmp11 = & drv->dynids.lock;
42248#line 219
42249    spin_unlock(__cil_tmp11);
42250    }
42251    {
42252#line 220
42253    __cil_tmp12 = & dynid->id;
42254#line 220
42255    return ((struct usb_device_id  const  *)__cil_tmp12);
42256    }
42257  } else {
42258
42259  }
42260#line 217
42261  __cil_tmp13 = dynid->node.next;
42262#line 217
42263  __mptr___0 = (struct list_head  const  *)__cil_tmp13;
42264#line 217
42265  dynid = (struct usb_dynid *)__mptr___0;
42266  ldv_24319: ;
42267  {
42268#line 217
42269  __cil_tmp14 = & drv->dynids.list;
42270#line 217
42271  __cil_tmp15 = (unsigned long )__cil_tmp14;
42272#line 217
42273  __cil_tmp16 = & dynid->node;
42274#line 217
42275  __cil_tmp17 = (unsigned long )__cil_tmp16;
42276#line 217
42277  if (__cil_tmp17 != __cil_tmp15) {
42278#line 218
42279    goto ldv_24318;
42280  } else {
42281#line 220
42282    goto ldv_24320;
42283  }
42284  }
42285  ldv_24320: 
42286  {
42287#line 223
42288  __cil_tmp18 = & drv->dynids.lock;
42289#line 223
42290  spin_unlock(__cil_tmp18);
42291  }
42292#line 224
42293  return ((struct usb_device_id  const  *)0);
42294}
42295}
42296#line 229 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42297static int usb_probe_device(struct device *dev ) 
42298{ struct usb_device_driver *udriver ;
42299  struct device_driver  const  *__mptr ;
42300  struct usb_device *udev ;
42301  struct device  const  *__mptr___0 ;
42302  int error ;
42303  struct device_driver *__cil_tmp7 ;
42304  struct usb_device_driver *__cil_tmp8 ;
42305  struct usb_device *__cil_tmp9 ;
42306  struct device  const  *__cil_tmp10 ;
42307  unsigned char *__cil_tmp11 ;
42308  unsigned char *__cil_tmp12 ;
42309  unsigned char __cil_tmp13 ;
42310  unsigned int __cil_tmp14 ;
42311  int (*__cil_tmp15)(struct usb_device * ) ;
42312
42313  {
42314  {
42315#line 231
42316  __cil_tmp7 = dev->driver;
42317#line 231
42318  __mptr = (struct device_driver  const  *)__cil_tmp7;
42319#line 231
42320  __cil_tmp8 = (struct usb_device_driver *)__mptr;
42321#line 231
42322  udriver = __cil_tmp8 + 1152921504606846936UL;
42323#line 232
42324  __mptr___0 = (struct device  const  *)dev;
42325#line 232
42326  __cil_tmp9 = (struct usb_device *)__mptr___0;
42327#line 232
42328  udev = __cil_tmp9 + 1152921504606846840UL;
42329#line 233
42330  error = 0;
42331#line 235
42332  __cil_tmp10 = (struct device  const  *)dev;
42333#line 235
42334  dev_printk("<7>", __cil_tmp10, "%s\n", "usb_probe_device");
42335  }
42336  {
42337#line 242
42338  __cil_tmp11 = (unsigned char *)udriver;
42339#line 242
42340  __cil_tmp12 = __cil_tmp11 + 160UL;
42341#line 242
42342  __cil_tmp13 = *__cil_tmp12;
42343#line 242
42344  __cil_tmp14 = (unsigned int )__cil_tmp13;
42345#line 242
42346  if (__cil_tmp14 == 0U) {
42347    {
42348#line 243
42349    error = usb_autoresume_device(udev);
42350    }
42351  } else {
42352
42353  }
42354  }
42355#line 245
42356  if (error == 0) {
42357    {
42358#line 246
42359    __cil_tmp15 = udriver->probe;
42360#line 246
42361    error = (*__cil_tmp15)(udev);
42362    }
42363  } else {
42364
42365  }
42366#line 247
42367  return (error);
42368}
42369}
42370#line 251 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42371static int usb_unbind_device(struct device *dev ) 
42372{ struct usb_device *udev ;
42373  struct device  const  *__mptr ;
42374  struct usb_device_driver *udriver ;
42375  struct device_driver  const  *__mptr___0 ;
42376  struct usb_device *__cil_tmp6 ;
42377  struct device_driver *__cil_tmp7 ;
42378  struct usb_device_driver *__cil_tmp8 ;
42379  void (*__cil_tmp9)(struct usb_device * ) ;
42380  unsigned char *__cil_tmp10 ;
42381  unsigned char *__cil_tmp11 ;
42382  unsigned char __cil_tmp12 ;
42383  unsigned int __cil_tmp13 ;
42384
42385  {
42386  {
42387#line 253
42388  __mptr = (struct device  const  *)dev;
42389#line 253
42390  __cil_tmp6 = (struct usb_device *)__mptr;
42391#line 253
42392  udev = __cil_tmp6 + 1152921504606846840UL;
42393#line 254
42394  __cil_tmp7 = dev->driver;
42395#line 254
42396  __mptr___0 = (struct device_driver  const  *)__cil_tmp7;
42397#line 254
42398  __cil_tmp8 = (struct usb_device_driver *)__mptr___0;
42399#line 254
42400  udriver = __cil_tmp8 + 1152921504606846936UL;
42401#line 256
42402  __cil_tmp9 = udriver->disconnect;
42403#line 256
42404  (*__cil_tmp9)(udev);
42405  }
42406  {
42407#line 257
42408  __cil_tmp10 = (unsigned char *)udriver;
42409#line 257
42410  __cil_tmp11 = __cil_tmp10 + 160UL;
42411#line 257
42412  __cil_tmp12 = *__cil_tmp11;
42413#line 257
42414  __cil_tmp13 = (unsigned int )__cil_tmp12;
42415#line 257
42416  if (__cil_tmp13 == 0U) {
42417    {
42418#line 258
42419    usb_autosuspend_device(udev);
42420    }
42421  } else {
42422
42423  }
42424  }
42425#line 259
42426  return (0);
42427}
42428}
42429#line 271 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42430static void usb_cancel_queued_reset(struct usb_interface *iface ) 
42431{ unsigned char *__cil_tmp2 ;
42432  unsigned char *__cil_tmp3 ;
42433  unsigned char __cil_tmp4 ;
42434  unsigned int __cil_tmp5 ;
42435  struct work_struct *__cil_tmp6 ;
42436
42437  {
42438  {
42439#line 273
42440  __cil_tmp2 = (unsigned char *)iface;
42441#line 273
42442  __cil_tmp3 = __cil_tmp2 + 40UL;
42443#line 273
42444  __cil_tmp4 = *__cil_tmp3;
42445#line 273
42446  __cil_tmp5 = (unsigned int )__cil_tmp4;
42447#line 273
42448  if (__cil_tmp5 == 0U) {
42449    {
42450#line 274
42451    __cil_tmp6 = & iface->reset_ws;
42452#line 274
42453    cancel_work_sync(__cil_tmp6);
42454    }
42455  } else {
42456
42457  }
42458  }
42459#line 275
42460  return;
42461}
42462}
42463#line 278 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42464static int usb_probe_interface(struct device *dev ) 
42465{ struct usb_driver *driver ;
42466  struct device_driver  const  *__mptr ;
42467  struct usb_interface *intf ;
42468  struct device  const  *__mptr___0 ;
42469  struct usb_device *udev ;
42470  struct usb_device *tmp ;
42471  struct usb_device_id  const  *id ;
42472  int error ;
42473  bool tmp___0 ;
42474  struct device_driver *__cil_tmp11 ;
42475  struct usb_driver *__cil_tmp12 ;
42476  struct usb_interface *__cil_tmp13 ;
42477  struct device  const  *__cil_tmp14 ;
42478  unsigned char *__cil_tmp15 ;
42479  unsigned char *__cil_tmp16 ;
42480  unsigned char __cil_tmp17 ;
42481  unsigned int __cil_tmp18 ;
42482  struct device *__cil_tmp19 ;
42483  struct device  const  *__cil_tmp20 ;
42484  struct usb_device_id  const  *__cil_tmp21 ;
42485  struct usb_device_id  const  *__cil_tmp22 ;
42486  unsigned long __cil_tmp23 ;
42487  unsigned long __cil_tmp24 ;
42488  struct usb_device_id  const  *__cil_tmp25 ;
42489  unsigned long __cil_tmp26 ;
42490  unsigned long __cil_tmp27 ;
42491  struct device  const  *__cil_tmp28 ;
42492  bool __cil_tmp29 ;
42493  unsigned char *__cil_tmp30 ;
42494  unsigned char *__cil_tmp31 ;
42495  unsigned char __cil_tmp32 ;
42496  unsigned int __cil_tmp33 ;
42497  unsigned char *__cil_tmp34 ;
42498  unsigned char *__cil_tmp35 ;
42499  unsigned char __cil_tmp36 ;
42500  unsigned int __cil_tmp37 ;
42501  struct usb_host_interface *__cil_tmp38 ;
42502  __u8 __cil_tmp39 ;
42503  int __cil_tmp40 ;
42504  int (*__cil_tmp41)(struct usb_interface * , struct usb_device_id  const  * ) ;
42505  unsigned char *__cil_tmp42 ;
42506  unsigned char *__cil_tmp43 ;
42507  unsigned char __cil_tmp44 ;
42508  unsigned int __cil_tmp45 ;
42509
42510  {
42511  {
42512#line 280
42513  __cil_tmp11 = dev->driver;
42514#line 280
42515  __mptr = (struct device_driver  const  *)__cil_tmp11;
42516#line 280
42517  __cil_tmp12 = (struct usb_driver *)__mptr;
42518#line 280
42519  driver = __cil_tmp12 + 1152921504606846808UL;
42520#line 281
42521  __mptr___0 = (struct device  const  *)dev;
42522#line 281
42523  __cil_tmp13 = (struct usb_interface *)__mptr___0;
42524#line 281
42525  intf = __cil_tmp13 + 1152921504606846928UL;
42526#line 282
42527  tmp = interface_to_usbdev(intf);
42528#line 282
42529  udev = tmp;
42530#line 284
42531  error = -19;
42532#line 286
42533  __cil_tmp14 = (struct device  const  *)dev;
42534#line 286
42535  dev_printk("<7>", __cil_tmp14, "%s\n", "usb_probe_interface");
42536#line 288
42537  intf->needs_binding = (unsigned char)0;
42538#line 290
42539  tmp___0 = usb_device_is_owned(udev);
42540  }
42541#line 290
42542  if ((int )tmp___0) {
42543#line 291
42544    return (error);
42545  } else {
42546
42547  }
42548  {
42549#line 293
42550  __cil_tmp15 = (unsigned char *)udev;
42551#line 293
42552  __cil_tmp16 = __cil_tmp15 + 1556UL;
42553#line 293
42554  __cil_tmp17 = *__cil_tmp16;
42555#line 293
42556  __cil_tmp18 = (unsigned int )__cil_tmp17;
42557#line 293
42558  if (__cil_tmp18 == 0U) {
42559    {
42560#line 294
42561    __cil_tmp19 = & intf->dev;
42562#line 294
42563    __cil_tmp20 = (struct device  const  *)__cil_tmp19;
42564#line 294
42565    dev_err(__cil_tmp20, "Device is not authorized for usage\n");
42566    }
42567#line 295
42568    return (error);
42569  } else {
42570
42571  }
42572  }
42573  {
42574#line 298
42575  __cil_tmp21 = driver->id_table;
42576#line 298
42577  id = usb_match_id(intf, __cil_tmp21);
42578  }
42579  {
42580#line 299
42581  __cil_tmp22 = (struct usb_device_id  const  *)0;
42582#line 299
42583  __cil_tmp23 = (unsigned long )__cil_tmp22;
42584#line 299
42585  __cil_tmp24 = (unsigned long )id;
42586#line 299
42587  if (__cil_tmp24 == __cil_tmp23) {
42588    {
42589#line 300
42590    id = usb_match_dynamic_id(intf, driver);
42591    }
42592  } else {
42593
42594  }
42595  }
42596  {
42597#line 301
42598  __cil_tmp25 = (struct usb_device_id  const  *)0;
42599#line 301
42600  __cil_tmp26 = (unsigned long )__cil_tmp25;
42601#line 301
42602  __cil_tmp27 = (unsigned long )id;
42603#line 301
42604  if (__cil_tmp27 == __cil_tmp26) {
42605#line 302
42606    return (error);
42607  } else {
42608
42609  }
42610  }
42611  {
42612#line 304
42613  __cil_tmp28 = (struct device  const  *)dev;
42614#line 304
42615  dev_printk("<7>", __cil_tmp28, "%s - got id\n", "usb_probe_interface");
42616#line 306
42617  error = usb_autoresume_device(udev);
42618  }
42619#line 307
42620  if (error != 0) {
42621#line 308
42622    return (error);
42623  } else {
42624
42625  }
42626  {
42627#line 310
42628  intf->condition = (enum usb_interface_condition )1;
42629#line 316
42630  pm_runtime_set_active(dev);
42631#line 317
42632  __cil_tmp29 = (bool )0;
42633#line 317
42634  pm_suspend_ignore_children(dev, __cil_tmp29);
42635  }
42636  {
42637#line 318
42638  __cil_tmp30 = (unsigned char *)driver;
42639#line 318
42640  __cil_tmp31 = __cil_tmp30 + 288UL;
42641#line 318
42642  __cil_tmp32 = *__cil_tmp31;
42643#line 318
42644  __cil_tmp33 = (unsigned int )__cil_tmp32;
42645#line 318
42646  if (__cil_tmp33 != 0U) {
42647    {
42648#line 319
42649    pm_runtime_enable(dev);
42650    }
42651  } else {
42652
42653  }
42654  }
42655  {
42656#line 322
42657  __cil_tmp34 = (unsigned char *)intf;
42658#line 322
42659  __cil_tmp35 = __cil_tmp34 + 40UL;
42660#line 322
42661  __cil_tmp36 = *__cil_tmp35;
42662#line 322
42663  __cil_tmp37 = (unsigned int )__cil_tmp36;
42664#line 322
42665  if (__cil_tmp37 != 0U) {
42666    {
42667#line 323
42668    __cil_tmp38 = intf->altsetting;
42669#line 323
42670    __cil_tmp39 = __cil_tmp38->desc.bInterfaceNumber;
42671#line 323
42672    __cil_tmp40 = (int )__cil_tmp39;
42673#line 323
42674    error = usb_set_interface(udev, __cil_tmp40, 0);
42675    }
42676#line 325
42677    if (error < 0) {
42678#line 326
42679      goto err;
42680    } else {
42681
42682    }
42683#line 327
42684    intf->needs_altsetting0 = (unsigned char)0;
42685  } else {
42686
42687  }
42688  }
42689  {
42690#line 330
42691  __cil_tmp41 = driver->probe;
42692#line 330
42693  error = (*__cil_tmp41)(intf, id);
42694  }
42695#line 331
42696  if (error != 0) {
42697#line 332
42698    goto err;
42699  } else {
42700
42701  }
42702  {
42703#line 334
42704  intf->condition = (enum usb_interface_condition )2;
42705#line 335
42706  usb_autosuspend_device(udev);
42707  }
42708#line 336
42709  return (error);
42710  err: 
42711  {
42712#line 339
42713  intf->needs_remote_wakeup = (unsigned char)0;
42714#line 340
42715  intf->condition = (enum usb_interface_condition )0;
42716#line 341
42717  usb_cancel_queued_reset(intf);
42718  }
42719  {
42720#line 344
42721  __cil_tmp42 = (unsigned char *)driver;
42722#line 344
42723  __cil_tmp43 = __cil_tmp42 + 288UL;
42724#line 344
42725  __cil_tmp44 = *__cil_tmp43;
42726#line 344
42727  __cil_tmp45 = (unsigned int )__cil_tmp44;
42728#line 344
42729  if (__cil_tmp45 != 0U) {
42730    {
42731#line 345
42732    pm_runtime_disable(dev);
42733    }
42734  } else {
42735
42736  }
42737  }
42738  {
42739#line 346
42740  pm_runtime_set_suspended(dev);
42741#line 348
42742  usb_autosuspend_device(udev);
42743  }
42744#line 349
42745  return (error);
42746}
42747}
42748#line 353 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42749static int usb_unbind_interface(struct device *dev ) 
42750{ struct usb_driver *driver ;
42751  struct device_driver  const  *__mptr ;
42752  struct usb_interface *intf ;
42753  struct device  const  *__mptr___0 ;
42754  struct usb_device *udev ;
42755  int error ;
42756  int r ;
42757  struct device_driver *__cil_tmp9 ;
42758  struct usb_driver *__cil_tmp10 ;
42759  struct usb_interface *__cil_tmp11 ;
42760  unsigned char *__cil_tmp12 ;
42761  unsigned char *__cil_tmp13 ;
42762  unsigned char __cil_tmp14 ;
42763  unsigned int __cil_tmp15 ;
42764  bool __cil_tmp16 ;
42765  void (*__cil_tmp17)(struct usb_interface * ) ;
42766  struct usb_host_interface *__cil_tmp18 ;
42767  __u8 __cil_tmp19 ;
42768  unsigned int __cil_tmp20 ;
42769  bool __cil_tmp21 ;
42770  bool __cil_tmp22 ;
42771  struct usb_host_interface *__cil_tmp23 ;
42772  __u8 __cil_tmp24 ;
42773  int __cil_tmp25 ;
42774  void *__cil_tmp26 ;
42775  unsigned char *__cil_tmp27 ;
42776  unsigned char *__cil_tmp28 ;
42777  unsigned char __cil_tmp29 ;
42778  unsigned int __cil_tmp30 ;
42779  atomic_t *__cil_tmp31 ;
42780  atomic_t const   *__cil_tmp32 ;
42781  atomic_t *__cil_tmp33 ;
42782
42783  {
42784  {
42785#line 355
42786  __cil_tmp9 = dev->driver;
42787#line 355
42788  __mptr = (struct device_driver  const  *)__cil_tmp9;
42789#line 355
42790  __cil_tmp10 = (struct usb_driver *)__mptr;
42791#line 355
42792  driver = __cil_tmp10 + 1152921504606846808UL;
42793#line 356
42794  __mptr___0 = (struct device  const  *)dev;
42795#line 356
42796  __cil_tmp11 = (struct usb_interface *)__mptr___0;
42797#line 356
42798  intf = __cil_tmp11 + 1152921504606846928UL;
42799#line 360
42800  intf->condition = (enum usb_interface_condition )3;
42801#line 363
42802  udev = interface_to_usbdev(intf);
42803#line 364
42804  error = usb_autoresume_device(udev);
42805  }
42806  {
42807#line 369
42808  __cil_tmp12 = (unsigned char *)driver;
42809#line 369
42810  __cil_tmp13 = __cil_tmp12 + 288UL;
42811#line 369
42812  __cil_tmp14 = *__cil_tmp13;
42813#line 369
42814  __cil_tmp15 = (unsigned int )__cil_tmp14;
42815#line 369
42816  if (__cil_tmp15 == 0U) {
42817    {
42818#line 370
42819    __cil_tmp16 = (bool )0;
42820#line 370
42821    usb_disable_interface(udev, intf, __cil_tmp16);
42822    }
42823  } else {
42824
42825  }
42826  }
42827  {
42828#line 372
42829  __cil_tmp17 = driver->disconnect;
42830#line 372
42831  (*__cil_tmp17)(intf);
42832#line 373
42833  usb_cancel_queued_reset(intf);
42834  }
42835  {
42836#line 381
42837  __cil_tmp18 = intf->cur_altsetting;
42838#line 381
42839  __cil_tmp19 = __cil_tmp18->desc.bAlternateSetting;
42840#line 381
42841  __cil_tmp20 = (unsigned int )__cil_tmp19;
42842#line 381
42843  if (__cil_tmp20 == 0U) {
42844    {
42845#line 385
42846    __cil_tmp21 = (bool )0;
42847#line 385
42848    usb_enable_interface(udev, intf, __cil_tmp21);
42849    }
42850  } else
42851#line 386
42852  if (error == 0) {
42853    {
42854#line 386
42855    __cil_tmp22 = intf->dev.power.is_prepared;
42856#line 386
42857    if (! __cil_tmp22) {
42858      {
42859#line 387
42860      __cil_tmp23 = intf->altsetting;
42861#line 387
42862      __cil_tmp24 = __cil_tmp23->desc.bInterfaceNumber;
42863#line 387
42864      __cil_tmp25 = (int )__cil_tmp24;
42865#line 387
42866      r = usb_set_interface(udev, __cil_tmp25, 0);
42867      }
42868#line 389
42869      if (r < 0) {
42870#line 390
42871        intf->needs_altsetting0 = (unsigned char)1;
42872      } else {
42873
42874      }
42875    } else {
42876#line 392
42877      intf->needs_altsetting0 = (unsigned char)1;
42878    }
42879    }
42880  } else {
42881#line 392
42882    intf->needs_altsetting0 = (unsigned char)1;
42883  }
42884  }
42885  {
42886#line 394
42887  __cil_tmp26 = (void *)0;
42888#line 394
42889  usb_set_intfdata(intf, __cil_tmp26);
42890#line 396
42891  intf->condition = (enum usb_interface_condition )0;
42892#line 397
42893  intf->needs_remote_wakeup = (unsigned char)0;
42894  }
42895  {
42896#line 400
42897  __cil_tmp27 = (unsigned char *)driver;
42898#line 400
42899  __cil_tmp28 = __cil_tmp27 + 288UL;
42900#line 400
42901  __cil_tmp29 = *__cil_tmp28;
42902#line 400
42903  __cil_tmp30 = (unsigned int )__cil_tmp29;
42904#line 400
42905  if (__cil_tmp30 != 0U) {
42906    {
42907#line 401
42908    pm_runtime_disable(dev);
42909    }
42910  } else {
42911
42912  }
42913  }
42914  {
42915#line 402
42916  pm_runtime_set_suspended(dev);
42917#line 405
42918  __cil_tmp31 = & intf->pm_usage_cnt;
42919#line 405
42920  __cil_tmp32 = (atomic_t const   *)__cil_tmp31;
42921#line 405
42922  r = atomic_read(__cil_tmp32);
42923  }
42924#line 405
42925  goto ldv_24371;
42926  ldv_24370: 
42927  {
42928#line 406
42929  usb_autopm_put_interface_no_suspend(intf);
42930#line 405
42931  r = r - 1;
42932  }
42933  ldv_24371: ;
42934#line 405
42935  if (r > 0) {
42936#line 406
42937    goto ldv_24370;
42938  } else {
42939#line 408
42940    goto ldv_24372;
42941  }
42942  ldv_24372: 
42943  {
42944#line 407
42945  __cil_tmp33 = & intf->pm_usage_cnt;
42946#line 407
42947  atomic_set(__cil_tmp33, 0);
42948  }
42949#line 409
42950  if (error == 0) {
42951    {
42952#line 410
42953    usb_autosuspend_device(udev);
42954    }
42955  } else {
42956
42957  }
42958#line 412
42959  return (0);
42960}
42961}
42962#line 435 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
42963int usb_driver_claim_interface(struct usb_driver *driver , struct usb_interface *iface ,
42964                               void *priv ) 
42965{ struct device *dev ;
42966  int retval ;
42967  int tmp ;
42968  struct device_driver *__cil_tmp7 ;
42969  unsigned long __cil_tmp8 ;
42970  struct device_driver *__cil_tmp9 ;
42971  unsigned long __cil_tmp10 ;
42972  bool __cil_tmp11 ;
42973  unsigned char *__cil_tmp12 ;
42974  unsigned char *__cil_tmp13 ;
42975  unsigned char __cil_tmp14 ;
42976  unsigned int __cil_tmp15 ;
42977
42978  {
42979#line 438
42980  dev = & iface->dev;
42981#line 439
42982  retval = 0;
42983  {
42984#line 441
42985  __cil_tmp7 = (struct device_driver *)0;
42986#line 441
42987  __cil_tmp8 = (unsigned long )__cil_tmp7;
42988#line 441
42989  __cil_tmp9 = dev->driver;
42990#line 441
42991  __cil_tmp10 = (unsigned long )__cil_tmp9;
42992#line 441
42993  if (__cil_tmp10 != __cil_tmp8) {
42994#line 442
42995    return (-16);
42996  } else {
42997
42998  }
42999  }
43000  {
43001#line 444
43002  dev->driver = & driver->drvwrap.driver;
43003#line 445
43004  usb_set_intfdata(iface, priv);
43005#line 446
43006  iface->needs_binding = (unsigned char)0;
43007#line 448
43008  iface->condition = (enum usb_interface_condition )2;
43009#line 456
43010  __cil_tmp11 = (bool )0;
43011#line 456
43012  pm_suspend_ignore_children(dev, __cil_tmp11);
43013  }
43014  {
43015#line 457
43016  __cil_tmp12 = (unsigned char *)driver;
43017#line 457
43018  __cil_tmp13 = __cil_tmp12 + 288UL;
43019#line 457
43020  __cil_tmp14 = *__cil_tmp13;
43021#line 457
43022  __cil_tmp15 = (unsigned int )__cil_tmp14;
43023#line 457
43024  if (__cil_tmp15 != 0U) {
43025    {
43026#line 458
43027    pm_runtime_enable(dev);
43028    }
43029  } else {
43030    {
43031#line 460
43032    pm_runtime_set_active(dev);
43033    }
43034  }
43035  }
43036  {
43037#line 465
43038  tmp = device_is_registered(dev);
43039  }
43040#line 465
43041  if (tmp != 0) {
43042    {
43043#line 466
43044    retval = device_bind_driver(dev);
43045    }
43046  } else {
43047
43048  }
43049#line 468
43050  return (retval);
43051}
43052}
43053#line 486 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
43054void usb_driver_release_interface(struct usb_driver *driver , struct usb_interface *iface ) 
43055{ struct device *dev ;
43056  int tmp ;
43057  struct device_driver *__cil_tmp5 ;
43058  unsigned long __cil_tmp6 ;
43059  struct device_driver *__cil_tmp7 ;
43060  unsigned long __cil_tmp8 ;
43061  struct device_driver *__cil_tmp9 ;
43062  unsigned long __cil_tmp10 ;
43063  struct device_driver *__cil_tmp11 ;
43064  unsigned long __cil_tmp12 ;
43065  enum usb_interface_condition __cil_tmp13 ;
43066  unsigned int __cil_tmp14 ;
43067
43068  {
43069#line 489
43070  dev = & iface->dev;
43071  {
43072#line 492
43073  __cil_tmp5 = (struct device_driver *)0;
43074#line 492
43075  __cil_tmp6 = (unsigned long )__cil_tmp5;
43076#line 492
43077  __cil_tmp7 = dev->driver;
43078#line 492
43079  __cil_tmp8 = (unsigned long )__cil_tmp7;
43080#line 492
43081  if (__cil_tmp8 == __cil_tmp6) {
43082#line 493
43083    return;
43084  } else {
43085    {
43086#line 492
43087    __cil_tmp9 = & driver->drvwrap.driver;
43088#line 492
43089    __cil_tmp10 = (unsigned long )__cil_tmp9;
43090#line 492
43091    __cil_tmp11 = dev->driver;
43092#line 492
43093    __cil_tmp12 = (unsigned long )__cil_tmp11;
43094#line 492
43095    if (__cil_tmp12 != __cil_tmp10) {
43096#line 493
43097      return;
43098    } else {
43099
43100    }
43101    }
43102  }
43103  }
43104  {
43105#line 496
43106  __cil_tmp13 = iface->condition;
43107#line 496
43108  __cil_tmp14 = (unsigned int )__cil_tmp13;
43109#line 496
43110  if (__cil_tmp14 != 2U) {
43111#line 497
43112    return;
43113  } else {
43114
43115  }
43116  }
43117  {
43118#line 498
43119  iface->condition = (enum usb_interface_condition )3;
43120#line 503
43121  tmp = device_is_registered(dev);
43122  }
43123#line 503
43124  if (tmp != 0) {
43125    {
43126#line 504
43127    device_release_driver(dev);
43128    }
43129  } else {
43130    {
43131#line 506
43132    device_lock(dev);
43133#line 507
43134    usb_unbind_interface(dev);
43135#line 508
43136    dev->driver = (struct device_driver *)0;
43137#line 509
43138    device_unlock(dev);
43139    }
43140  }
43141#line 511
43142  return;
43143}
43144}
43145#line 515 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
43146int usb_match_device(struct usb_device *dev , struct usb_device_id  const  *id ) 
43147{ __u16 __cil_tmp3 ;
43148  int __cil_tmp4 ;
43149  __le16 __cil_tmp5 ;
43150  int __cil_tmp6 ;
43151  __u16 __cil_tmp7 ;
43152  unsigned short __cil_tmp8 ;
43153  int __cil_tmp9 ;
43154  __u16 __cil_tmp10 ;
43155  int __cil_tmp11 ;
43156  int __cil_tmp12 ;
43157  __le16 __cil_tmp13 ;
43158  int __cil_tmp14 ;
43159  __u16 __cil_tmp15 ;
43160  unsigned short __cil_tmp16 ;
43161  int __cil_tmp17 ;
43162  __u16 __cil_tmp18 ;
43163  int __cil_tmp19 ;
43164  int __cil_tmp20 ;
43165  __le16 __cil_tmp21 ;
43166  int __cil_tmp22 ;
43167  __u16 __cil_tmp23 ;
43168  unsigned short __cil_tmp24 ;
43169  int __cil_tmp25 ;
43170  __u16 __cil_tmp26 ;
43171  int __cil_tmp27 ;
43172  int __cil_tmp28 ;
43173  __le16 __cil_tmp29 ;
43174  int __cil_tmp30 ;
43175  __u16 __cil_tmp31 ;
43176  unsigned short __cil_tmp32 ;
43177  int __cil_tmp33 ;
43178  __u16 __cil_tmp34 ;
43179  int __cil_tmp35 ;
43180  int __cil_tmp36 ;
43181  __u8 __cil_tmp37 ;
43182  int __cil_tmp38 ;
43183  __u8 __cil_tmp39 ;
43184  unsigned char __cil_tmp40 ;
43185  int __cil_tmp41 ;
43186  __u16 __cil_tmp42 ;
43187  int __cil_tmp43 ;
43188  int __cil_tmp44 ;
43189  __u8 __cil_tmp45 ;
43190  int __cil_tmp46 ;
43191  __u8 __cil_tmp47 ;
43192  unsigned char __cil_tmp48 ;
43193  int __cil_tmp49 ;
43194  __u16 __cil_tmp50 ;
43195  int __cil_tmp51 ;
43196  int __cil_tmp52 ;
43197  __u8 __cil_tmp53 ;
43198  int __cil_tmp54 ;
43199  __u8 __cil_tmp55 ;
43200  unsigned char __cil_tmp56 ;
43201  int __cil_tmp57 ;
43202
43203  {
43204  {
43205#line 517
43206  __cil_tmp3 = id->match_flags;
43207#line 517
43208  __cil_tmp4 = (int )__cil_tmp3;
43209#line 517
43210  if (__cil_tmp4 & 1) {
43211    {
43212#line 517
43213    __cil_tmp5 = dev->descriptor.idVendor;
43214#line 517
43215    __cil_tmp6 = (int )__cil_tmp5;
43216#line 517
43217    __cil_tmp7 = id->idVendor;
43218#line 517
43219    __cil_tmp8 = (unsigned short )__cil_tmp7;
43220#line 517
43221    __cil_tmp9 = (int )__cil_tmp8;
43222#line 517
43223    if (__cil_tmp9 != __cil_tmp6) {
43224#line 519
43225      return (0);
43226    } else {
43227
43228    }
43229    }
43230  } else {
43231
43232  }
43233  }
43234  {
43235#line 521
43236  __cil_tmp10 = id->match_flags;
43237#line 521
43238  __cil_tmp11 = (int )__cil_tmp10;
43239#line 521
43240  __cil_tmp12 = __cil_tmp11 & 2;
43241#line 521
43242  if (__cil_tmp12 != 0) {
43243    {
43244#line 521
43245    __cil_tmp13 = dev->descriptor.idProduct;
43246#line 521
43247    __cil_tmp14 = (int )__cil_tmp13;
43248#line 521
43249    __cil_tmp15 = id->idProduct;
43250#line 521
43251    __cil_tmp16 = (unsigned short )__cil_tmp15;
43252#line 521
43253    __cil_tmp17 = (int )__cil_tmp16;
43254#line 521
43255    if (__cil_tmp17 != __cil_tmp14) {
43256#line 523
43257      return (0);
43258    } else {
43259
43260    }
43261    }
43262  } else {
43263
43264  }
43265  }
43266  {
43267#line 527
43268  __cil_tmp18 = id->match_flags;
43269#line 527
43270  __cil_tmp19 = (int )__cil_tmp18;
43271#line 527
43272  __cil_tmp20 = __cil_tmp19 & 4;
43273#line 527
43274  if (__cil_tmp20 != 0) {
43275    {
43276#line 527
43277    __cil_tmp21 = dev->descriptor.bcdDevice;
43278#line 527
43279    __cil_tmp22 = (int )__cil_tmp21;
43280#line 527
43281    __cil_tmp23 = id->bcdDevice_lo;
43282#line 527
43283    __cil_tmp24 = (unsigned short )__cil_tmp23;
43284#line 527
43285    __cil_tmp25 = (int )__cil_tmp24;
43286#line 527
43287    if (__cil_tmp25 > __cil_tmp22) {
43288#line 529
43289      return (0);
43290    } else {
43291
43292    }
43293    }
43294  } else {
43295
43296  }
43297  }
43298  {
43299#line 531
43300  __cil_tmp26 = id->match_flags;
43301#line 531
43302  __cil_tmp27 = (int )__cil_tmp26;
43303#line 531
43304  __cil_tmp28 = __cil_tmp27 & 8;
43305#line 531
43306  if (__cil_tmp28 != 0) {
43307    {
43308#line 531
43309    __cil_tmp29 = dev->descriptor.bcdDevice;
43310#line 531
43311    __cil_tmp30 = (int )__cil_tmp29;
43312#line 531
43313    __cil_tmp31 = id->bcdDevice_hi;
43314#line 531
43315    __cil_tmp32 = (unsigned short )__cil_tmp31;
43316#line 531
43317    __cil_tmp33 = (int )__cil_tmp32;
43318#line 531
43319    if (__cil_tmp33 < __cil_tmp30) {
43320#line 533
43321      return (0);
43322    } else {
43323
43324    }
43325    }
43326  } else {
43327
43328  }
43329  }
43330  {
43331#line 535
43332  __cil_tmp34 = id->match_flags;
43333#line 535
43334  __cil_tmp35 = (int )__cil_tmp34;
43335#line 535
43336  __cil_tmp36 = __cil_tmp35 & 16;
43337#line 535
43338  if (__cil_tmp36 != 0) {
43339    {
43340#line 535
43341    __cil_tmp37 = dev->descriptor.bDeviceClass;
43342#line 535
43343    __cil_tmp38 = (int )__cil_tmp37;
43344#line 535
43345    __cil_tmp39 = id->bDeviceClass;
43346#line 535
43347    __cil_tmp40 = (unsigned char )__cil_tmp39;
43348#line 535
43349    __cil_tmp41 = (int )__cil_tmp40;
43350#line 535
43351    if (__cil_tmp41 != __cil_tmp38) {
43352#line 537
43353      return (0);
43354    } else {
43355
43356    }
43357    }
43358  } else {
43359
43360  }
43361  }
43362  {
43363#line 539
43364  __cil_tmp42 = id->match_flags;
43365#line 539
43366  __cil_tmp43 = (int )__cil_tmp42;
43367#line 539
43368  __cil_tmp44 = __cil_tmp43 & 32;
43369#line 539
43370  if (__cil_tmp44 != 0) {
43371    {
43372#line 539
43373    __cil_tmp45 = dev->descriptor.bDeviceSubClass;
43374#line 539
43375    __cil_tmp46 = (int )__cil_tmp45;
43376#line 539
43377    __cil_tmp47 = id->bDeviceSubClass;
43378#line 539
43379    __cil_tmp48 = (unsigned char )__cil_tmp47;
43380#line 539
43381    __cil_tmp49 = (int )__cil_tmp48;
43382#line 539
43383    if (__cil_tmp49 != __cil_tmp46) {
43384#line 541
43385      return (0);
43386    } else {
43387
43388    }
43389    }
43390  } else {
43391
43392  }
43393  }
43394  {
43395#line 543
43396  __cil_tmp50 = id->match_flags;
43397#line 543
43398  __cil_tmp51 = (int )__cil_tmp50;
43399#line 543
43400  __cil_tmp52 = __cil_tmp51 & 64;
43401#line 543
43402  if (__cil_tmp52 != 0) {
43403    {
43404#line 543
43405    __cil_tmp53 = dev->descriptor.bDeviceProtocol;
43406#line 543
43407    __cil_tmp54 = (int )__cil_tmp53;
43408#line 543
43409    __cil_tmp55 = id->bDeviceProtocol;
43410#line 543
43411    __cil_tmp56 = (unsigned char )__cil_tmp55;
43412#line 543
43413    __cil_tmp57 = (int )__cil_tmp56;
43414#line 543
43415    if (__cil_tmp57 != __cil_tmp54) {
43416#line 545
43417      return (0);
43418    } else {
43419
43420    }
43421    }
43422  } else {
43423
43424  }
43425  }
43426#line 547
43427  return (1);
43428}
43429}
43430#line 551 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
43431int usb_match_one_id(struct usb_interface *interface , struct usb_device_id  const  *id ) 
43432{ struct usb_host_interface *intf ;
43433  struct usb_device *dev ;
43434  int tmp ;
43435  struct usb_device_id  const  *__cil_tmp6 ;
43436  unsigned long __cil_tmp7 ;
43437  unsigned long __cil_tmp8 ;
43438  __u8 __cil_tmp9 ;
43439  unsigned int __cil_tmp10 ;
43440  __u16 __cil_tmp11 ;
43441  int __cil_tmp12 ;
43442  int __cil_tmp13 ;
43443  __u16 __cil_tmp14 ;
43444  int __cil_tmp15 ;
43445  int __cil_tmp16 ;
43446  __u16 __cil_tmp17 ;
43447  int __cil_tmp18 ;
43448  int __cil_tmp19 ;
43449  __u8 __cil_tmp20 ;
43450  int __cil_tmp21 ;
43451  __u8 __cil_tmp22 ;
43452  unsigned char __cil_tmp23 ;
43453  int __cil_tmp24 ;
43454  __u16 __cil_tmp25 ;
43455  int __cil_tmp26 ;
43456  int __cil_tmp27 ;
43457  __u8 __cil_tmp28 ;
43458  int __cil_tmp29 ;
43459  __u8 __cil_tmp30 ;
43460  unsigned char __cil_tmp31 ;
43461  int __cil_tmp32 ;
43462  __u16 __cil_tmp33 ;
43463  int __cil_tmp34 ;
43464  int __cil_tmp35 ;
43465  __u8 __cil_tmp36 ;
43466  int __cil_tmp37 ;
43467  __u8 __cil_tmp38 ;
43468  unsigned char __cil_tmp39 ;
43469  int __cil_tmp40 ;
43470
43471  {
43472  {
43473#line 558
43474  __cil_tmp6 = (struct usb_device_id  const  *)0;
43475#line 558
43476  __cil_tmp7 = (unsigned long )__cil_tmp6;
43477#line 558
43478  __cil_tmp8 = (unsigned long )id;
43479#line 558
43480  if (__cil_tmp8 == __cil_tmp7) {
43481#line 559
43482    return (0);
43483  } else {
43484
43485  }
43486  }
43487  {
43488#line 561
43489  intf = interface->cur_altsetting;
43490#line 562
43491  dev = interface_to_usbdev(interface);
43492#line 564
43493  tmp = usb_match_device(dev, id);
43494  }
43495#line 564
43496  if (tmp == 0) {
43497#line 565
43498    return (0);
43499  } else {
43500
43501  }
43502  {
43503#line 570
43504  __cil_tmp9 = dev->descriptor.bDeviceClass;
43505#line 570
43506  __cil_tmp10 = (unsigned int )__cil_tmp9;
43507#line 570
43508  if (__cil_tmp10 == 255U) {
43509    {
43510#line 570
43511    __cil_tmp11 = id->match_flags;
43512#line 570
43513    __cil_tmp12 = (int )__cil_tmp11;
43514#line 570
43515    __cil_tmp13 = __cil_tmp12 & 1;
43516#line 570
43517    if (__cil_tmp13 == 0) {
43518      {
43519#line 570
43520      __cil_tmp14 = id->match_flags;
43521#line 570
43522      __cil_tmp15 = (int )__cil_tmp14;
43523#line 570
43524      __cil_tmp16 = __cil_tmp15 & 896;
43525#line 570
43526      if (__cil_tmp16 != 0) {
43527#line 575
43528        return (0);
43529      } else {
43530
43531      }
43532      }
43533    } else {
43534
43535    }
43536    }
43537  } else {
43538
43539  }
43540  }
43541  {
43542#line 577
43543  __cil_tmp17 = id->match_flags;
43544#line 577
43545  __cil_tmp18 = (int )__cil_tmp17;
43546#line 577
43547  __cil_tmp19 = __cil_tmp18 & 128;
43548#line 577
43549  if (__cil_tmp19 != 0) {
43550    {
43551#line 577
43552    __cil_tmp20 = intf->desc.bInterfaceClass;
43553#line 577
43554    __cil_tmp21 = (int )__cil_tmp20;
43555#line 577
43556    __cil_tmp22 = id->bInterfaceClass;
43557#line 577
43558    __cil_tmp23 = (unsigned char )__cil_tmp22;
43559#line 577
43560    __cil_tmp24 = (int )__cil_tmp23;
43561#line 577
43562    if (__cil_tmp24 != __cil_tmp21) {
43563#line 579
43564      return (0);
43565    } else {
43566
43567    }
43568    }
43569  } else {
43570
43571  }
43572  }
43573  {
43574#line 581
43575  __cil_tmp25 = id->match_flags;
43576#line 581
43577  __cil_tmp26 = (int )__cil_tmp25;
43578#line 581
43579  __cil_tmp27 = __cil_tmp26 & 256;
43580#line 581
43581  if (__cil_tmp27 != 0) {
43582    {
43583#line 581
43584    __cil_tmp28 = intf->desc.bInterfaceSubClass;
43585#line 581
43586    __cil_tmp29 = (int )__cil_tmp28;
43587#line 581
43588    __cil_tmp30 = id->bInterfaceSubClass;
43589#line 581
43590    __cil_tmp31 = (unsigned char )__cil_tmp30;
43591#line 581
43592    __cil_tmp32 = (int )__cil_tmp31;
43593#line 581
43594    if (__cil_tmp32 != __cil_tmp29) {
43595#line 583
43596      return (0);
43597    } else {
43598
43599    }
43600    }
43601  } else {
43602
43603  }
43604  }
43605  {
43606#line 585
43607  __cil_tmp33 = id->match_flags;
43608#line 585
43609  __cil_tmp34 = (int )__cil_tmp33;
43610#line 585
43611  __cil_tmp35 = __cil_tmp34 & 512;
43612#line 585
43613  if (__cil_tmp35 != 0) {
43614    {
43615#line 585
43616    __cil_tmp36 = intf->desc.bInterfaceProtocol;
43617#line 585
43618    __cil_tmp37 = (int )__cil_tmp36;
43619#line 585
43620    __cil_tmp38 = id->bInterfaceProtocol;
43621#line 585
43622    __cil_tmp39 = (unsigned char )__cil_tmp38;
43623#line 585
43624    __cil_tmp40 = (int )__cil_tmp39;
43625#line 585
43626    if (__cil_tmp40 != __cil_tmp37) {
43627#line 587
43628      return (0);
43629    } else {
43630
43631    }
43632    }
43633  } else {
43634
43635  }
43636  }
43637#line 589
43638  return (1);
43639}
43640}
43641#line 664 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
43642struct usb_device_id  const  *usb_match_id(struct usb_interface *interface , struct usb_device_id  const  *id ) 
43643{ int tmp ;
43644  struct usb_device_id  const  *__cil_tmp4 ;
43645  unsigned long __cil_tmp5 ;
43646  unsigned long __cil_tmp6 ;
43647  __u16 __cil_tmp7 ;
43648  unsigned short __cil_tmp8 ;
43649  unsigned int __cil_tmp9 ;
43650  __u16 __cil_tmp10 ;
43651  unsigned short __cil_tmp11 ;
43652  unsigned int __cil_tmp12 ;
43653  __u8 __cil_tmp13 ;
43654  unsigned char __cil_tmp14 ;
43655  unsigned int __cil_tmp15 ;
43656  __u8 __cil_tmp16 ;
43657  unsigned char __cil_tmp17 ;
43658  unsigned int __cil_tmp18 ;
43659  kernel_ulong_t __cil_tmp19 ;
43660  unsigned long __cil_tmp20 ;
43661
43662  {
43663  {
43664#line 668
43665  __cil_tmp4 = (struct usb_device_id  const  *)0;
43666#line 668
43667  __cil_tmp5 = (unsigned long )__cil_tmp4;
43668#line 668
43669  __cil_tmp6 = (unsigned long )id;
43670#line 668
43671  if (__cil_tmp6 == __cil_tmp5) {
43672#line 669
43673    return ((struct usb_device_id  const  *)0);
43674  } else {
43675
43676  }
43677  }
43678#line 676
43679  goto ldv_24422;
43680  ldv_24421: 
43681  {
43682#line 678
43683  tmp = usb_match_one_id(interface, id);
43684  }
43685#line 678
43686  if (tmp != 0) {
43687#line 679
43688    return (id);
43689  } else {
43690
43691  }
43692#line 677
43693  id = id + 1;
43694  ldv_24422: ;
43695  {
43696#line 676
43697  __cil_tmp7 = id->idVendor;
43698#line 676
43699  __cil_tmp8 = (unsigned short )__cil_tmp7;
43700#line 676
43701  __cil_tmp9 = (unsigned int )__cil_tmp8;
43702#line 676
43703  if (__cil_tmp9 != 0U) {
43704#line 678
43705    goto ldv_24421;
43706  } else {
43707    {
43708#line 676
43709    __cil_tmp10 = id->idProduct;
43710#line 676
43711    __cil_tmp11 = (unsigned short )__cil_tmp10;
43712#line 676
43713    __cil_tmp12 = (unsigned int )__cil_tmp11;
43714#line 676
43715    if (__cil_tmp12 != 0U) {
43716#line 678
43717      goto ldv_24421;
43718    } else {
43719      {
43720#line 676
43721      __cil_tmp13 = id->bDeviceClass;
43722#line 676
43723      __cil_tmp14 = (unsigned char )__cil_tmp13;
43724#line 676
43725      __cil_tmp15 = (unsigned int )__cil_tmp14;
43726#line 676
43727      if (__cil_tmp15 != 0U) {
43728#line 678
43729        goto ldv_24421;
43730      } else {
43731        {
43732#line 676
43733        __cil_tmp16 = id->bInterfaceClass;
43734#line 676
43735        __cil_tmp17 = (unsigned char )__cil_tmp16;
43736#line 676
43737        __cil_tmp18 = (unsigned int )__cil_tmp17;
43738#line 676
43739        if (__cil_tmp18 != 0U) {
43740#line 678
43741          goto ldv_24421;
43742        } else {
43743          {
43744#line 676
43745          __cil_tmp19 = id->driver_info;
43746#line 676
43747          __cil_tmp20 = (unsigned long )__cil_tmp19;
43748#line 676
43749          if (__cil_tmp20 != 0UL) {
43750#line 678
43751            goto ldv_24421;
43752          } else {
43753#line 680
43754            goto ldv_24423;
43755          }
43756          }
43757        }
43758        }
43759      }
43760      }
43761    }
43762    }
43763  }
43764  }
43765  ldv_24423: ;
43766#line 682
43767  return ((struct usb_device_id  const  *)0);
43768}
43769}
43770#line 686 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
43771static int usb_device_match(struct device *dev , struct device_driver *drv ) 
43772{ int tmp ;
43773  struct usb_interface *intf ;
43774  struct usb_driver *usb_drv ;
43775  struct usb_device_id  const  *id ;
43776  int tmp___0 ;
43777  struct device  const  *__mptr ;
43778  struct device_driver  const  *__mptr___0 ;
43779  int tmp___1 ;
43780  int tmp___2 ;
43781  struct device  const  *__cil_tmp12 ;
43782  struct device  const  *__cil_tmp13 ;
43783  struct usb_interface *__cil_tmp14 ;
43784  struct usb_driver *__cil_tmp15 ;
43785  struct usb_device_id  const  *__cil_tmp16 ;
43786  struct usb_device_id  const  *__cil_tmp17 ;
43787  unsigned long __cil_tmp18 ;
43788  unsigned long __cil_tmp19 ;
43789  struct usb_device_id  const  *__cil_tmp20 ;
43790  unsigned long __cil_tmp21 ;
43791  unsigned long __cil_tmp22 ;
43792
43793  {
43794  {
43795#line 689
43796  __cil_tmp12 = (struct device  const  *)dev;
43797#line 689
43798  tmp___2 = is_usb_device(__cil_tmp12);
43799  }
43800#line 689
43801  if (tmp___2 != 0) {
43802    {
43803#line 692
43804    tmp = is_usb_device_driver(drv);
43805    }
43806#line 692
43807    if (tmp == 0) {
43808#line 693
43809      return (0);
43810    } else {
43811
43812    }
43813#line 696
43814    return (1);
43815  } else {
43816    {
43817#line 698
43818    __cil_tmp13 = (struct device  const  *)dev;
43819#line 698
43820    tmp___1 = is_usb_interface(__cil_tmp13);
43821    }
43822#line 698
43823    if (tmp___1 != 0) {
43824      {
43825#line 704
43826      tmp___0 = is_usb_device_driver(drv);
43827      }
43828#line 704
43829      if (tmp___0 != 0) {
43830#line 705
43831        return (0);
43832      } else {
43833
43834      }
43835      {
43836#line 707
43837      __mptr = (struct device  const  *)dev;
43838#line 707
43839      __cil_tmp14 = (struct usb_interface *)__mptr;
43840#line 707
43841      intf = __cil_tmp14 + 1152921504606846928UL;
43842#line 708
43843      __mptr___0 = (struct device_driver  const  *)drv;
43844#line 708
43845      __cil_tmp15 = (struct usb_driver *)__mptr___0;
43846#line 708
43847      usb_drv = __cil_tmp15 + 1152921504606846808UL;
43848#line 710
43849      __cil_tmp16 = usb_drv->id_table;
43850#line 710
43851      id = usb_match_id(intf, __cil_tmp16);
43852      }
43853      {
43854#line 711
43855      __cil_tmp17 = (struct usb_device_id  const  *)0;
43856#line 711
43857      __cil_tmp18 = (unsigned long )__cil_tmp17;
43858#line 711
43859      __cil_tmp19 = (unsigned long )id;
43860#line 711
43861      if (__cil_tmp19 != __cil_tmp18) {
43862#line 712
43863        return (1);
43864      } else {
43865
43866      }
43867      }
43868      {
43869#line 714
43870      id = usb_match_dynamic_id(intf, usb_drv);
43871      }
43872      {
43873#line 715
43874      __cil_tmp20 = (struct usb_device_id  const  *)0;
43875#line 715
43876      __cil_tmp21 = (unsigned long )__cil_tmp20;
43877#line 715
43878      __cil_tmp22 = (unsigned long )id;
43879#line 715
43880      if (__cil_tmp22 != __cil_tmp21) {
43881#line 716
43882        return (1);
43883      } else {
43884
43885      }
43886      }
43887    } else {
43888
43889    }
43890  }
43891#line 719
43892  return (0);
43893}
43894}
43895#line 723 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
43896static int usb_uevent(struct device *dev , struct kobj_uevent_env *env ) 
43897{ struct usb_device *usb_dev ;
43898  struct device  const  *__mptr ;
43899  struct usb_interface *intf ;
43900  struct device  const  *__mptr___0 ;
43901  int tmp ;
43902  int tmp___0 ;
43903  char const   *tmp___1 ;
43904  char const   *tmp___2 ;
43905  int tmp___3 ;
43906  int tmp___4 ;
43907  int tmp___5 ;
43908  struct device  const  *__cil_tmp14 ;
43909  struct usb_device *__cil_tmp15 ;
43910  struct device  const  *__cil_tmp16 ;
43911  struct usb_interface *__cil_tmp17 ;
43912  int __cil_tmp18 ;
43913  struct device  const  *__cil_tmp19 ;
43914  struct usb_bus *__cil_tmp20 ;
43915  unsigned long __cil_tmp21 ;
43916  struct usb_bus *__cil_tmp22 ;
43917  unsigned long __cil_tmp23 ;
43918  struct device  const  *__cil_tmp24 ;
43919  struct usb_bus *__cil_tmp25 ;
43920  int __cil_tmp26 ;
43921  int __cil_tmp27 ;
43922  __le16 __cil_tmp28 ;
43923  int __cil_tmp29 ;
43924  __le16 __cil_tmp30 ;
43925  int __cil_tmp31 ;
43926  __le16 __cil_tmp32 ;
43927  int __cil_tmp33 ;
43928  __u8 __cil_tmp34 ;
43929  int __cil_tmp35 ;
43930  __u8 __cil_tmp36 ;
43931  int __cil_tmp37 ;
43932  __u8 __cil_tmp38 ;
43933  int __cil_tmp39 ;
43934
43935  {
43936  {
43937#line 727
43938  __cil_tmp14 = (struct device  const  *)dev;
43939#line 727
43940  tmp___0 = is_usb_device(__cil_tmp14);
43941  }
43942#line 727
43943  if (tmp___0 != 0) {
43944#line 728
43945    __mptr = (struct device  const  *)dev;
43946#line 728
43947    __cil_tmp15 = (struct usb_device *)__mptr;
43948#line 728
43949    usb_dev = __cil_tmp15 + 1152921504606846840UL;
43950  } else {
43951    {
43952#line 729
43953    __cil_tmp16 = (struct device  const  *)dev;
43954#line 729
43955    tmp = is_usb_interface(__cil_tmp16);
43956    }
43957#line 729
43958    if (tmp != 0) {
43959      {
43960#line 730
43961      __mptr___0 = (struct device  const  *)dev;
43962#line 730
43963      __cil_tmp17 = (struct usb_interface *)__mptr___0;
43964#line 730
43965      intf = __cil_tmp17 + 1152921504606846928UL;
43966#line 732
43967      usb_dev = interface_to_usbdev(intf);
43968      }
43969    } else {
43970#line 734
43971      return (0);
43972    }
43973  }
43974  {
43975#line 737
43976  __cil_tmp18 = usb_dev->devnum;
43977#line 737
43978  if (__cil_tmp18 < 0) {
43979    {
43980#line 739
43981    __cil_tmp19 = (struct device  const  *)dev;
43982#line 739
43983    tmp___1 = dev_name(__cil_tmp19);
43984#line 739
43985    printk("<7>usb %s: already deleted?\n", tmp___1);
43986    }
43987#line 740
43988    return (-19);
43989  } else {
43990
43991  }
43992  }
43993  {
43994#line 742
43995  __cil_tmp20 = (struct usb_bus *)0;
43996#line 742
43997  __cil_tmp21 = (unsigned long )__cil_tmp20;
43998#line 742
43999  __cil_tmp22 = usb_dev->bus;
44000#line 742
44001  __cil_tmp23 = (unsigned long )__cil_tmp22;
44002#line 742
44003  if (__cil_tmp23 == __cil_tmp21) {
44004    {
44005#line 743
44006    __cil_tmp24 = (struct device  const  *)dev;
44007#line 743
44008    tmp___2 = dev_name(__cil_tmp24);
44009#line 743
44010    printk("<7>usb %s: bus removed?\n", tmp___2);
44011    }
44012#line 744
44013    return (-19);
44014  } else {
44015
44016  }
44017  }
44018  {
44019#line 752
44020  __cil_tmp25 = usb_dev->bus;
44021#line 752
44022  __cil_tmp26 = __cil_tmp25->busnum;
44023#line 752
44024  __cil_tmp27 = usb_dev->devnum;
44025#line 752
44026  tmp___3 = add_uevent_var(env, "DEVICE=/proc/bus/usb/%03d/%03d", __cil_tmp26, __cil_tmp27);
44027  }
44028#line 752
44029  if (tmp___3 != 0) {
44030#line 754
44031    return (-12);
44032  } else {
44033
44034  }
44035  {
44036#line 758
44037  __cil_tmp28 = usb_dev->descriptor.idVendor;
44038#line 758
44039  __cil_tmp29 = (int )__cil_tmp28;
44040#line 758
44041  __cil_tmp30 = usb_dev->descriptor.idProduct;
44042#line 758
44043  __cil_tmp31 = (int )__cil_tmp30;
44044#line 758
44045  __cil_tmp32 = usb_dev->descriptor.bcdDevice;
44046#line 758
44047  __cil_tmp33 = (int )__cil_tmp32;
44048#line 758
44049  tmp___4 = add_uevent_var(env, "PRODUCT=%x/%x/%x", __cil_tmp29, __cil_tmp31, __cil_tmp33);
44050  }
44051#line 758
44052  if (tmp___4 != 0) {
44053#line 762
44054    return (-12);
44055  } else {
44056
44057  }
44058  {
44059#line 765
44060  __cil_tmp34 = usb_dev->descriptor.bDeviceClass;
44061#line 765
44062  __cil_tmp35 = (int )__cil_tmp34;
44063#line 765
44064  __cil_tmp36 = usb_dev->descriptor.bDeviceSubClass;
44065#line 765
44066  __cil_tmp37 = (int )__cil_tmp36;
44067#line 765
44068  __cil_tmp38 = usb_dev->descriptor.bDeviceProtocol;
44069#line 765
44070  __cil_tmp39 = (int )__cil_tmp38;
44071#line 765
44072  tmp___5 = add_uevent_var(env, "TYPE=%d/%d/%d", __cil_tmp35, __cil_tmp37, __cil_tmp39);
44073  }
44074#line 765
44075  if (tmp___5 != 0) {
44076#line 769
44077    return (-12);
44078  } else {
44079
44080  }
44081#line 771
44082  return (0);
44083}
44084}
44085#line 792 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44086int usb_register_device_driver(struct usb_device_driver *new_udriver , struct module *owner ) 
44087{ int retval ;
44088  int tmp ;
44089  struct device_driver *__cil_tmp5 ;
44090  char const   *__cil_tmp6 ;
44091  char const   *__cil_tmp7 ;
44092
44093  {
44094  {
44095#line 795
44096  retval = 0;
44097#line 797
44098  tmp = usb_disabled();
44099  }
44100#line 797
44101  if (tmp != 0) {
44102#line 798
44103    return (-19);
44104  } else {
44105
44106  }
44107  {
44108#line 800
44109  new_udriver->drvwrap.for_devices = 1;
44110#line 801
44111  new_udriver->drvwrap.driver.name = new_udriver->name;
44112#line 802
44113  new_udriver->drvwrap.driver.bus = & usb_bus_type;
44114#line 803
44115  new_udriver->drvwrap.driver.probe = & usb_probe_device;
44116#line 804
44117  new_udriver->drvwrap.driver.remove = & usb_unbind_device;
44118#line 805
44119  new_udriver->drvwrap.driver.owner = owner;
44120#line 807
44121  __cil_tmp5 = & new_udriver->drvwrap.driver;
44122#line 807
44123  retval = driver_register(__cil_tmp5);
44124  }
44125#line 809
44126  if (retval == 0) {
44127    {
44128#line 810
44129    __cil_tmp6 = new_udriver->name;
44130#line 810
44131    printk("<6>%s: registered new device driver %s\n", usbcore_name, __cil_tmp6);
44132#line 812
44133    usbfs_update_special();
44134    }
44135  } else {
44136    {
44137#line 814
44138    __cil_tmp7 = new_udriver->name;
44139#line 814
44140    printk("<3>%s: error %d registering device \tdriver %s\n", usbcore_name, retval,
44141           __cil_tmp7);
44142    }
44143  }
44144#line 819
44145  return (retval);
44146}
44147}
44148#line 830 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44149void usb_deregister_device_driver(struct usb_device_driver *udriver ) 
44150{ char const   *__cil_tmp2 ;
44151  struct device_driver *__cil_tmp3 ;
44152
44153  {
44154  {
44155#line 832
44156  __cil_tmp2 = udriver->name;
44157#line 832
44158  printk("<6>%s: deregistering device driver %s\n", usbcore_name, __cil_tmp2);
44159#line 835
44160  __cil_tmp3 = & udriver->drvwrap.driver;
44161#line 835
44162  driver_unregister(__cil_tmp3);
44163#line 836
44164  usbfs_update_special();
44165  }
44166#line 837
44167  return;
44168}
44169}
44170#line 855 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44171int usb_register_driver(struct usb_driver *new_driver , struct module *owner , char const   *mod_name ) 
44172{ int retval ;
44173  int tmp ;
44174  struct lock_class_key __key ;
44175  spinlock_t *__cil_tmp7 ;
44176  struct raw_spinlock *__cil_tmp8 ;
44177  struct list_head *__cil_tmp9 ;
44178  struct device_driver *__cil_tmp10 ;
44179  char const   *__cil_tmp11 ;
44180  struct device_driver *__cil_tmp12 ;
44181  char const   *__cil_tmp13 ;
44182
44183  {
44184  {
44185#line 858
44186  retval = 0;
44187#line 860
44188  tmp = usb_disabled();
44189  }
44190#line 860
44191  if (tmp != 0) {
44192#line 861
44193    return (-19);
44194  } else {
44195
44196  }
44197  {
44198#line 863
44199  new_driver->drvwrap.for_devices = 0;
44200#line 864
44201  new_driver->drvwrap.driver.name = new_driver->name;
44202#line 865
44203  new_driver->drvwrap.driver.bus = & usb_bus_type;
44204#line 866
44205  new_driver->drvwrap.driver.probe = & usb_probe_interface;
44206#line 867
44207  new_driver->drvwrap.driver.remove = & usb_unbind_interface;
44208#line 868
44209  new_driver->drvwrap.driver.owner = owner;
44210#line 869
44211  new_driver->drvwrap.driver.mod_name = mod_name;
44212#line 870
44213  __cil_tmp7 = & new_driver->dynids.lock;
44214#line 870
44215  spinlock_check(__cil_tmp7);
44216#line 870
44217  __cil_tmp8 = & new_driver->dynids.lock.ldv_6060.rlock;
44218#line 870
44219  __raw_spin_lock_init(__cil_tmp8, "&(&new_driver->dynids.lock)->rlock", & __key);
44220#line 871
44221  __cil_tmp9 = & new_driver->dynids.list;
44222#line 871
44223  INIT_LIST_HEAD(__cil_tmp9);
44224#line 873
44225  __cil_tmp10 = & new_driver->drvwrap.driver;
44226#line 873
44227  retval = driver_register(__cil_tmp10);
44228  }
44229#line 874
44230  if (retval != 0) {
44231#line 875
44232    goto out;
44233  } else {
44234
44235  }
44236  {
44237#line 877
44238  usbfs_update_special();
44239#line 879
44240  retval = usb_create_newid_file(new_driver);
44241  }
44242#line 880
44243  if (retval != 0) {
44244#line 881
44245    goto out_newid;
44246  } else {
44247
44248  }
44249  {
44250#line 883
44251  retval = usb_create_removeid_file(new_driver);
44252  }
44253#line 884
44254  if (retval != 0) {
44255#line 885
44256    goto out_removeid;
44257  } else {
44258
44259  }
44260  {
44261#line 887
44262  __cil_tmp11 = new_driver->name;
44263#line 887
44264  printk("<6>%s: registered new interface driver %s\n", usbcore_name, __cil_tmp11);
44265  }
44266  out: ;
44267#line 891
44268  return (retval);
44269  out_removeid: 
44270  {
44271#line 894
44272  usb_remove_newid_file(new_driver);
44273  }
44274  out_newid: 
44275  {
44276#line 896
44277  __cil_tmp12 = & new_driver->drvwrap.driver;
44278#line 896
44279  driver_unregister(__cil_tmp12);
44280#line 898
44281  __cil_tmp13 = new_driver->name;
44282#line 898
44283  printk("<3>%s: error %d registering interface \tdriver %s\n", usbcore_name, retval,
44284         __cil_tmp13);
44285  }
44286#line 901
44287  goto out;
44288}
44289}
44290#line 916 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44291void usb_deregister(struct usb_driver *driver ) 
44292{ char const   *__cil_tmp2 ;
44293  struct device_driver *__cil_tmp3 ;
44294
44295  {
44296  {
44297#line 918
44298  __cil_tmp2 = driver->name;
44299#line 918
44300  printk("<6>%s: deregistering interface driver %s\n", usbcore_name, __cil_tmp2);
44301#line 921
44302  usb_remove_removeid_file(driver);
44303#line 922
44304  usb_remove_newid_file(driver);
44305#line 923
44306  usb_free_dynids(driver);
44307#line 924
44308  __cil_tmp3 = & driver->drvwrap.driver;
44309#line 924
44310  driver_unregister(__cil_tmp3);
44311#line 926
44312  usbfs_update_special();
44313  }
44314#line 927
44315  return;
44316}
44317}
44318#line 937 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44319void usb_forced_unbind_intf(struct usb_interface *intf ) 
44320{ struct usb_driver *driver ;
44321  struct device_driver  const  *__mptr ;
44322  struct device_driver *__cil_tmp4 ;
44323  struct usb_driver *__cil_tmp5 ;
44324  struct device *__cil_tmp6 ;
44325  struct device  const  *__cil_tmp7 ;
44326
44327  {
44328  {
44329#line 939
44330  __cil_tmp4 = intf->dev.driver;
44331#line 939
44332  __mptr = (struct device_driver  const  *)__cil_tmp4;
44333#line 939
44334  __cil_tmp5 = (struct usb_driver *)__mptr;
44335#line 939
44336  driver = __cil_tmp5 + 1152921504606846808UL;
44337#line 941
44338  __cil_tmp6 = & intf->dev;
44339#line 941
44340  __cil_tmp7 = (struct device  const  *)__cil_tmp6;
44341#line 941
44342  dev_printk("<7>", __cil_tmp7, "forced unbind\n");
44343#line 942
44344  usb_driver_release_interface(driver, intf);
44345#line 945
44346  intf->needs_binding = (unsigned char)1;
44347  }
44348#line 946
44349  return;
44350}
44351}
44352#line 957 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44353void usb_rebind_intf(struct usb_interface *intf ) 
44354{ int rc ;
44355  struct usb_driver *driver ;
44356  struct device_driver  const  *__mptr ;
44357  struct device_driver *__cil_tmp5 ;
44358  unsigned long __cil_tmp6 ;
44359  struct device_driver *__cil_tmp7 ;
44360  unsigned long __cil_tmp8 ;
44361  struct device_driver *__cil_tmp9 ;
44362  struct usb_driver *__cil_tmp10 ;
44363  struct device *__cil_tmp11 ;
44364  struct device  const  *__cil_tmp12 ;
44365  bool __cil_tmp13 ;
44366  struct device *__cil_tmp14 ;
44367  struct device *__cil_tmp15 ;
44368  struct device  const  *__cil_tmp16 ;
44369
44370  {
44371  {
44372#line 962
44373  __cil_tmp5 = (struct device_driver *)0;
44374#line 962
44375  __cil_tmp6 = (unsigned long )__cil_tmp5;
44376#line 962
44377  __cil_tmp7 = intf->dev.driver;
44378#line 962
44379  __cil_tmp8 = (unsigned long )__cil_tmp7;
44380#line 962
44381  if (__cil_tmp8 != __cil_tmp6) {
44382    {
44383#line 964
44384    __cil_tmp9 = intf->dev.driver;
44385#line 964
44386    __mptr = (struct device_driver  const  *)__cil_tmp9;
44387#line 964
44388    __cil_tmp10 = (struct usb_driver *)__mptr;
44389#line 964
44390    driver = __cil_tmp10 + 1152921504606846808UL;
44391#line 966
44392    __cil_tmp11 = & intf->dev;
44393#line 966
44394    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
44395#line 966
44396    dev_printk("<7>", __cil_tmp12, "forced unbind\n");
44397#line 967
44398    usb_driver_release_interface(driver, intf);
44399    }
44400  } else {
44401
44402  }
44403  }
44404  {
44405#line 971
44406  __cil_tmp13 = intf->dev.power.is_prepared;
44407#line 971
44408  if (! __cil_tmp13) {
44409    {
44410#line 972
44411    intf->needs_binding = (unsigned char)0;
44412#line 973
44413    __cil_tmp14 = & intf->dev;
44414#line 973
44415    rc = device_attach(__cil_tmp14);
44416    }
44417#line 974
44418    if (rc < 0) {
44419      {
44420#line 975
44421      __cil_tmp15 = & intf->dev;
44422#line 975
44423      __cil_tmp16 = (struct device  const  *)__cil_tmp15;
44424#line 975
44425      dev_warn(__cil_tmp16, "rebind failed: %d\n", rc);
44426      }
44427    } else {
44428
44429    }
44430  } else {
44431
44432  }
44433  }
44434#line 977
44435  return;
44436}
44437}
44438#line 989 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44439static void do_unbind_rebind(struct usb_device *udev , int action ) 
44440{ struct usb_host_config *config ;
44441  int i ;
44442  struct usb_interface *intf ;
44443  struct usb_driver *drv ;
44444  struct device_driver  const  *__mptr ;
44445  struct usb_host_config *__cil_tmp8 ;
44446  unsigned long __cil_tmp9 ;
44447  unsigned long __cil_tmp10 ;
44448  struct device_driver *__cil_tmp11 ;
44449  unsigned long __cil_tmp12 ;
44450  struct device_driver *__cil_tmp13 ;
44451  unsigned long __cil_tmp14 ;
44452  struct device_driver *__cil_tmp15 ;
44453  struct usb_driver *__cil_tmp16 ;
44454  int (*__cil_tmp17)(struct usb_interface * , pm_message_t  ) ;
44455  unsigned long __cil_tmp18 ;
44456  int (*__cil_tmp19)(struct usb_interface * , pm_message_t  ) ;
44457  unsigned long __cil_tmp20 ;
44458  int (*__cil_tmp21)(struct usb_interface * ) ;
44459  unsigned long __cil_tmp22 ;
44460  int (*__cil_tmp23)(struct usb_interface * ) ;
44461  unsigned long __cil_tmp24 ;
44462  unsigned char *__cil_tmp25 ;
44463  unsigned char *__cil_tmp26 ;
44464  unsigned char __cil_tmp27 ;
44465  unsigned int __cil_tmp28 ;
44466  __u8 __cil_tmp29 ;
44467  int __cil_tmp30 ;
44468
44469  {
44470#line 996
44471  config = udev->actconfig;
44472  {
44473#line 997
44474  __cil_tmp8 = (struct usb_host_config *)0;
44475#line 997
44476  __cil_tmp9 = (unsigned long )__cil_tmp8;
44477#line 997
44478  __cil_tmp10 = (unsigned long )config;
44479#line 997
44480  if (__cil_tmp10 != __cil_tmp9) {
44481#line 998
44482    i = 0;
44483#line 998
44484    goto ldv_24527;
44485    ldv_24526: 
44486#line 999
44487    intf = config->interface[i];
44488#line 1001
44489    if (action == 0) {
44490#line 1001
44491      goto case_0;
44492    } else
44493#line 1008
44494    if (action == 1) {
44495#line 1008
44496      goto case_1;
44497    } else
44498#line 1000
44499    if (0) {
44500      case_0: ;
44501      {
44502#line 1002
44503      __cil_tmp11 = (struct device_driver *)0;
44504#line 1002
44505      __cil_tmp12 = (unsigned long )__cil_tmp11;
44506#line 1002
44507      __cil_tmp13 = intf->dev.driver;
44508#line 1002
44509      __cil_tmp14 = (unsigned long )__cil_tmp13;
44510#line 1002
44511      if (__cil_tmp14 != __cil_tmp12) {
44512#line 1003
44513        __cil_tmp15 = intf->dev.driver;
44514#line 1003
44515        __mptr = (struct device_driver  const  *)__cil_tmp15;
44516#line 1003
44517        __cil_tmp16 = (struct usb_driver *)__mptr;
44518#line 1003
44519        drv = __cil_tmp16 + 1152921504606846808UL;
44520        {
44521#line 1004
44522        __cil_tmp17 = (int (*)(struct usb_interface * , pm_message_t  ))0;
44523#line 1004
44524        __cil_tmp18 = (unsigned long )__cil_tmp17;
44525#line 1004
44526        __cil_tmp19 = drv->suspend;
44527#line 1004
44528        __cil_tmp20 = (unsigned long )__cil_tmp19;
44529#line 1004
44530        if (__cil_tmp20 == __cil_tmp18) {
44531          {
44532#line 1005
44533          usb_forced_unbind_intf(intf);
44534          }
44535        } else {
44536          {
44537#line 1004
44538          __cil_tmp21 = (int (*)(struct usb_interface * ))0;
44539#line 1004
44540          __cil_tmp22 = (unsigned long )__cil_tmp21;
44541#line 1004
44542          __cil_tmp23 = drv->resume;
44543#line 1004
44544          __cil_tmp24 = (unsigned long )__cil_tmp23;
44545#line 1004
44546          if (__cil_tmp24 == __cil_tmp22) {
44547            {
44548#line 1005
44549            usb_forced_unbind_intf(intf);
44550            }
44551          } else {
44552
44553          }
44554          }
44555        }
44556        }
44557      } else {
44558
44559      }
44560      }
44561#line 1007
44562      goto ldv_24524;
44563      case_1: ;
44564      {
44565#line 1009
44566      __cil_tmp25 = (unsigned char *)intf;
44567#line 1009
44568      __cil_tmp26 = __cil_tmp25 + 40UL;
44569#line 1009
44570      __cil_tmp27 = *__cil_tmp26;
44571#line 1009
44572      __cil_tmp28 = (unsigned int )__cil_tmp27;
44573#line 1009
44574      if (__cil_tmp28 != 0U) {
44575        {
44576#line 1010
44577        usb_rebind_intf(intf);
44578        }
44579      } else {
44580
44581      }
44582      }
44583#line 1011
44584      goto ldv_24524;
44585    } else {
44586
44587    }
44588    ldv_24524: 
44589#line 998
44590    i = i + 1;
44591    ldv_24527: ;
44592    {
44593#line 998
44594    __cil_tmp29 = config->desc.bNumInterfaces;
44595#line 998
44596    __cil_tmp30 = (int )__cil_tmp29;
44597#line 998
44598    if (__cil_tmp30 > i) {
44599#line 999
44600      goto ldv_24526;
44601    } else {
44602#line 1001
44603      goto ldv_24528;
44604    }
44605    }
44606    ldv_24528: ;
44607  } else {
44608
44609  }
44610  }
44611#line 1004
44612  return;
44613}
44614}
44615#line 1017 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44616static int usb_suspend_device(struct usb_device *udev , pm_message_t msg ) 
44617{ struct usb_device_driver *udriver ;
44618  int status ;
44619  struct device_driver  const  *__mptr ;
44620  enum usb_device_state __cil_tmp6 ;
44621  unsigned int __cil_tmp7 ;
44622  enum usb_device_state __cil_tmp8 ;
44623  unsigned int __cil_tmp9 ;
44624  struct device_driver *__cil_tmp10 ;
44625  unsigned long __cil_tmp11 ;
44626  struct device_driver *__cil_tmp12 ;
44627  unsigned long __cil_tmp13 ;
44628  struct device_driver *__cil_tmp14 ;
44629  struct usb_device_driver *__cil_tmp15 ;
44630  int (*__cil_tmp16)(struct usb_device * , pm_message_t  ) ;
44631
44632  {
44633#line 1020
44634  status = 0;
44635  {
44636#line 1022
44637  __cil_tmp6 = udev->state;
44638#line 1022
44639  __cil_tmp7 = (unsigned int )__cil_tmp6;
44640#line 1022
44641  if (__cil_tmp7 == 0U) {
44642#line 1024
44643    goto done;
44644  } else {
44645    {
44646#line 1022
44647    __cil_tmp8 = udev->state;
44648#line 1022
44649    __cil_tmp9 = (unsigned int )__cil_tmp8;
44650#line 1022
44651    if (__cil_tmp9 == 8U) {
44652#line 1024
44653      goto done;
44654    } else {
44655
44656    }
44657    }
44658  }
44659  }
44660  {
44661#line 1027
44662  __cil_tmp10 = (struct device_driver *)0;
44663#line 1027
44664  __cil_tmp11 = (unsigned long )__cil_tmp10;
44665#line 1027
44666  __cil_tmp12 = udev->dev.driver;
44667#line 1027
44668  __cil_tmp13 = (unsigned long )__cil_tmp12;
44669#line 1027
44670  if (__cil_tmp13 != __cil_tmp11) {
44671#line 1028
44672    __cil_tmp14 = udev->dev.driver;
44673#line 1028
44674    __mptr = (struct device_driver  const  *)__cil_tmp14;
44675#line 1028
44676    __cil_tmp15 = (struct usb_device_driver *)__mptr;
44677#line 1028
44678    udriver = __cil_tmp15 + 1152921504606846936UL;
44679  } else {
44680#line 1030
44681    udev->do_remote_wakeup = (unsigned char)0;
44682#line 1031
44683    udriver = & usb_generic_driver;
44684  }
44685  }
44686  {
44687#line 1033
44688  __cil_tmp16 = udriver->suspend;
44689#line 1033
44690  status = (*__cil_tmp16)(udev, msg);
44691  }
44692  done: ;
44693#line 1037
44694  return (status);
44695}
44696}
44697#line 1040 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44698static int usb_resume_device(struct usb_device *udev , pm_message_t msg ) 
44699{ struct usb_device_driver *udriver ;
44700  int status ;
44701  struct device_driver  const  *__mptr ;
44702  enum usb_device_state __cil_tmp6 ;
44703  unsigned int __cil_tmp7 ;
44704  struct device_driver *__cil_tmp8 ;
44705  unsigned long __cil_tmp9 ;
44706  struct device_driver *__cil_tmp10 ;
44707  unsigned long __cil_tmp11 ;
44708  int __cil_tmp12 ;
44709  struct usb_device *__cil_tmp13 ;
44710  unsigned long __cil_tmp14 ;
44711  struct usb_device *__cil_tmp15 ;
44712  unsigned long __cil_tmp16 ;
44713  struct usb_bus *__cil_tmp17 ;
44714  unsigned long __cil_tmp18 ;
44715  struct usb_bus *__cil_tmp19 ;
44716  struct usb_bus *__cil_tmp20 ;
44717  unsigned long __cil_tmp21 ;
44718  struct device *__cil_tmp22 ;
44719  struct usb_bus *__cil_tmp23 ;
44720  struct usb_bus *__cil_tmp24 ;
44721  struct usb_device *__cil_tmp25 ;
44722  struct device *__cil_tmp26 ;
44723  u32 __cil_tmp27 ;
44724  unsigned int __cil_tmp28 ;
44725  struct device_driver *__cil_tmp29 ;
44726  struct usb_device_driver *__cil_tmp30 ;
44727  int (*__cil_tmp31)(struct usb_device * , pm_message_t  ) ;
44728
44729  {
44730#line 1043
44731  status = 0;
44732  {
44733#line 1045
44734  __cil_tmp6 = udev->state;
44735#line 1045
44736  __cil_tmp7 = (unsigned int )__cil_tmp6;
44737#line 1045
44738  if (__cil_tmp7 == 0U) {
44739#line 1046
44740    goto done;
44741  } else {
44742
44743  }
44744  }
44745  {
44746#line 1049
44747  __cil_tmp8 = (struct device_driver *)0;
44748#line 1049
44749  __cil_tmp9 = (unsigned long )__cil_tmp8;
44750#line 1049
44751  __cil_tmp10 = udev->dev.driver;
44752#line 1049
44753  __cil_tmp11 = (unsigned long )__cil_tmp10;
44754#line 1049
44755  if (__cil_tmp11 == __cil_tmp9) {
44756#line 1050
44757    status = -107;
44758#line 1051
44759    goto done;
44760  } else {
44761
44762  }
44763  }
44764  {
44765#line 1057
44766  __cil_tmp12 = msg.event & 1024;
44767#line 1057
44768  if (__cil_tmp12 == 0) {
44769    {
44770#line 1057
44771    __cil_tmp13 = (struct usb_device *)0;
44772#line 1057
44773    __cil_tmp14 = (unsigned long )__cil_tmp13;
44774#line 1057
44775    __cil_tmp15 = udev->parent;
44776#line 1057
44777    __cil_tmp16 = (unsigned long )__cil_tmp15;
44778#line 1057
44779    if (__cil_tmp16 != __cil_tmp14) {
44780      {
44781#line 1057
44782      __cil_tmp17 = (struct usb_bus *)0;
44783#line 1057
44784      __cil_tmp18 = (unsigned long )__cil_tmp17;
44785#line 1057
44786      __cil_tmp19 = udev->bus;
44787#line 1057
44788      __cil_tmp20 = __cil_tmp19->hs_companion;
44789#line 1057
44790      __cil_tmp21 = (unsigned long )__cil_tmp20;
44791#line 1057
44792      if (__cil_tmp21 != __cil_tmp18) {
44793        {
44794#line 1059
44795        __cil_tmp22 = & udev->dev;
44796#line 1059
44797        __cil_tmp23 = udev->bus;
44798#line 1059
44799        __cil_tmp24 = __cil_tmp23->hs_companion;
44800#line 1059
44801        __cil_tmp25 = __cil_tmp24->root_hub;
44802#line 1059
44803        __cil_tmp26 = & __cil_tmp25->dev;
44804#line 1059
44805        device_pm_wait_for_dev(__cil_tmp22, __cil_tmp26);
44806        }
44807      } else {
44808
44809      }
44810      }
44811    } else {
44812
44813    }
44814    }
44815  } else {
44816
44817  }
44818  }
44819  {
44820#line 1062
44821  __cil_tmp27 = udev->quirks;
44822#line 1062
44823  __cil_tmp28 = __cil_tmp27 & 2U;
44824#line 1062
44825  if (__cil_tmp28 != 0U) {
44826#line 1063
44827    udev->reset_resume = (unsigned char)1;
44828  } else {
44829
44830  }
44831  }
44832  {
44833#line 1065
44834  __cil_tmp29 = udev->dev.driver;
44835#line 1065
44836  __mptr = (struct device_driver  const  *)__cil_tmp29;
44837#line 1065
44838  __cil_tmp30 = (struct usb_device_driver *)__mptr;
44839#line 1065
44840  udriver = __cil_tmp30 + 1152921504606846936UL;
44841#line 1066
44842  __cil_tmp31 = udriver->resume;
44843#line 1066
44844  status = (*__cil_tmp31)(udev, msg);
44845  }
44846  done: ;
44847#line 1070
44848  return (status);
44849}
44850}
44851#line 1073 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44852static int usb_suspend_interface(struct usb_device *udev , struct usb_interface *intf ,
44853                                 pm_message_t msg ) 
44854{ struct usb_driver *driver ;
44855  int status ;
44856  struct device_driver  const  *__mptr ;
44857  enum usb_device_state __cil_tmp7 ;
44858  unsigned int __cil_tmp8 ;
44859  enum usb_interface_condition __cil_tmp9 ;
44860  unsigned int __cil_tmp10 ;
44861  struct device_driver *__cil_tmp11 ;
44862  struct usb_driver *__cil_tmp12 ;
44863  int (*__cil_tmp13)(struct usb_interface * , pm_message_t  ) ;
44864  unsigned long __cil_tmp14 ;
44865  int (*__cil_tmp15)(struct usb_interface * , pm_message_t  ) ;
44866  unsigned long __cil_tmp16 ;
44867  int (*__cil_tmp17)(struct usb_interface * , pm_message_t  ) ;
44868  int __cil_tmp18 ;
44869  struct device *__cil_tmp19 ;
44870  struct device  const  *__cil_tmp20 ;
44871  char *__cil_tmp21 ;
44872  struct device *__cil_tmp22 ;
44873  struct device  const  *__cil_tmp23 ;
44874  char *__cil_tmp24 ;
44875  char const   *__cil_tmp25 ;
44876
44877  {
44878#line 1077
44879  status = 0;
44880  {
44881#line 1079
44882  __cil_tmp7 = udev->state;
44883#line 1079
44884  __cil_tmp8 = (unsigned int )__cil_tmp7;
44885#line 1079
44886  if (__cil_tmp8 == 0U) {
44887#line 1081
44888    goto done;
44889  } else {
44890    {
44891#line 1079
44892    __cil_tmp9 = intf->condition;
44893#line 1079
44894    __cil_tmp10 = (unsigned int )__cil_tmp9;
44895#line 1079
44896    if (__cil_tmp10 == 0U) {
44897#line 1081
44898      goto done;
44899    } else {
44900
44901    }
44902    }
44903  }
44904  }
44905#line 1082
44906  __cil_tmp11 = intf->dev.driver;
44907#line 1082
44908  __mptr = (struct device_driver  const  *)__cil_tmp11;
44909#line 1082
44910  __cil_tmp12 = (struct usb_driver *)__mptr;
44911#line 1082
44912  driver = __cil_tmp12 + 1152921504606846808UL;
44913  {
44914#line 1084
44915  __cil_tmp13 = (int (*)(struct usb_interface * , pm_message_t  ))0;
44916#line 1084
44917  __cil_tmp14 = (unsigned long )__cil_tmp13;
44918#line 1084
44919  __cil_tmp15 = driver->suspend;
44920#line 1084
44921  __cil_tmp16 = (unsigned long )__cil_tmp15;
44922#line 1084
44923  if (__cil_tmp16 != __cil_tmp14) {
44924    {
44925#line 1085
44926    __cil_tmp17 = driver->suspend;
44927#line 1085
44928    status = (*__cil_tmp17)(intf, msg);
44929    }
44930#line 1086
44931    if (status != 0) {
44932      {
44933#line 1086
44934      __cil_tmp18 = msg.event & 1024;
44935#line 1086
44936      if (__cil_tmp18 == 0) {
44937        {
44938#line 1087
44939        __cil_tmp19 = & intf->dev;
44940#line 1087
44941        __cil_tmp20 = (struct device  const  *)__cil_tmp19;
44942#line 1087
44943        __cil_tmp21 = (char *)"suspend";
44944#line 1087
44945        dev_err(__cil_tmp20, "%s error %d\n", __cil_tmp21, status);
44946        }
44947      } else {
44948
44949      }
44950      }
44951    } else {
44952
44953    }
44954  } else {
44955    {
44956#line 1091
44957    intf->needs_binding = (unsigned char)1;
44958#line 1092
44959    __cil_tmp22 = & intf->dev;
44960#line 1092
44961    __cil_tmp23 = (struct device  const  *)__cil_tmp22;
44962#line 1092
44963    __cil_tmp24 = (char *)"suspend";
44964#line 1092
44965    __cil_tmp25 = driver->name;
44966#line 1092
44967    dev_warn(__cil_tmp23, "no %s for driver %s?\n", __cil_tmp24, __cil_tmp25);
44968    }
44969  }
44970  }
44971  done: ;
44972#line 1098
44973  return (status);
44974}
44975}
44976#line 1101 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
44977static int usb_resume_interface(struct usb_device *udev , struct usb_interface *intf ,
44978                                pm_message_t msg , int reset_resume ) 
44979{ struct usb_driver *driver ;
44980  int status ;
44981  struct device_driver  const  *__mptr ;
44982  enum usb_device_state __cil_tmp8 ;
44983  unsigned int __cil_tmp9 ;
44984  enum usb_interface_condition __cil_tmp10 ;
44985  unsigned int __cil_tmp11 ;
44986  enum usb_interface_condition __cil_tmp12 ;
44987  unsigned int __cil_tmp13 ;
44988  unsigned char *__cil_tmp14 ;
44989  unsigned char *__cil_tmp15 ;
44990  unsigned char __cil_tmp16 ;
44991  unsigned int __cil_tmp17 ;
44992  bool __cil_tmp18 ;
44993  struct usb_host_interface *__cil_tmp19 ;
44994  __u8 __cil_tmp20 ;
44995  int __cil_tmp21 ;
44996  unsigned char *__cil_tmp22 ;
44997  unsigned char *__cil_tmp23 ;
44998  unsigned char __cil_tmp24 ;
44999  unsigned int __cil_tmp25 ;
45000  struct device_driver *__cil_tmp26 ;
45001  struct usb_driver *__cil_tmp27 ;
45002  int (*__cil_tmp28)(struct usb_interface * ) ;
45003  unsigned long __cil_tmp29 ;
45004  int (*__cil_tmp30)(struct usb_interface * ) ;
45005  unsigned long __cil_tmp31 ;
45006  int (*__cil_tmp32)(struct usb_interface * ) ;
45007  struct device *__cil_tmp33 ;
45008  struct device  const  *__cil_tmp34 ;
45009  char *__cil_tmp35 ;
45010  struct device *__cil_tmp36 ;
45011  struct device  const  *__cil_tmp37 ;
45012  char *__cil_tmp38 ;
45013  char const   *__cil_tmp39 ;
45014  int (*__cil_tmp40)(struct usb_interface * ) ;
45015  unsigned long __cil_tmp41 ;
45016  int (*__cil_tmp42)(struct usb_interface * ) ;
45017  unsigned long __cil_tmp43 ;
45018  int (*__cil_tmp44)(struct usb_interface * ) ;
45019  struct device *__cil_tmp45 ;
45020  struct device  const  *__cil_tmp46 ;
45021  char *__cil_tmp47 ;
45022  struct device *__cil_tmp48 ;
45023  struct device  const  *__cil_tmp49 ;
45024  char *__cil_tmp50 ;
45025  char const   *__cil_tmp51 ;
45026
45027  {
45028#line 1105
45029  status = 0;
45030  {
45031#line 1107
45032  __cil_tmp8 = udev->state;
45033#line 1107
45034  __cil_tmp9 = (unsigned int )__cil_tmp8;
45035#line 1107
45036  if (__cil_tmp9 == 0U) {
45037#line 1108
45038    goto done;
45039  } else {
45040
45041  }
45042  }
45043  {
45044#line 1111
45045  __cil_tmp10 = intf->condition;
45046#line 1111
45047  __cil_tmp11 = (unsigned int )__cil_tmp10;
45048#line 1111
45049  if (__cil_tmp11 == 3U) {
45050#line 1112
45051    goto done;
45052  } else {
45053
45054  }
45055  }
45056  {
45057#line 1115
45058  __cil_tmp12 = intf->condition;
45059#line 1115
45060  __cil_tmp13 = (unsigned int )__cil_tmp12;
45061#line 1115
45062  if (__cil_tmp13 == 0U) {
45063    {
45064#line 1118
45065    __cil_tmp14 = (unsigned char *)intf;
45066#line 1118
45067    __cil_tmp15 = __cil_tmp14 + 40UL;
45068#line 1118
45069    __cil_tmp16 = *__cil_tmp15;
45070#line 1118
45071    __cil_tmp17 = (unsigned int )__cil_tmp16;
45072#line 1118
45073    if (__cil_tmp17 != 0U) {
45074      {
45075#line 1118
45076      __cil_tmp18 = intf->dev.power.is_prepared;
45077#line 1118
45078      if (! __cil_tmp18) {
45079        {
45080#line 1119
45081        __cil_tmp19 = intf->altsetting;
45082#line 1119
45083        __cil_tmp20 = __cil_tmp19->desc.bInterfaceNumber;
45084#line 1119
45085        __cil_tmp21 = (int )__cil_tmp20;
45086#line 1119
45087        usb_set_interface(udev, __cil_tmp21, 0);
45088#line 1121
45089        intf->needs_altsetting0 = (unsigned char)0;
45090        }
45091      } else {
45092
45093      }
45094      }
45095    } else {
45096
45097    }
45098    }
45099#line 1123
45100    goto done;
45101  } else {
45102
45103  }
45104  }
45105  {
45106#line 1127
45107  __cil_tmp22 = (unsigned char *)intf;
45108#line 1127
45109  __cil_tmp23 = __cil_tmp22 + 40UL;
45110#line 1127
45111  __cil_tmp24 = *__cil_tmp23;
45112#line 1127
45113  __cil_tmp25 = (unsigned int )__cil_tmp24;
45114#line 1127
45115  if (__cil_tmp25 != 0U) {
45116#line 1128
45117    goto done;
45118  } else {
45119
45120  }
45121  }
45122#line 1129
45123  __cil_tmp26 = intf->dev.driver;
45124#line 1129
45125  __mptr = (struct device_driver  const  *)__cil_tmp26;
45126#line 1129
45127  __cil_tmp27 = (struct usb_driver *)__mptr;
45128#line 1129
45129  driver = __cil_tmp27 + 1152921504606846808UL;
45130#line 1131
45131  if (reset_resume != 0) {
45132    {
45133#line 1132
45134    __cil_tmp28 = (int (*)(struct usb_interface * ))0;
45135#line 1132
45136    __cil_tmp29 = (unsigned long )__cil_tmp28;
45137#line 1132
45138    __cil_tmp30 = driver->reset_resume;
45139#line 1132
45140    __cil_tmp31 = (unsigned long )__cil_tmp30;
45141#line 1132
45142    if (__cil_tmp31 != __cil_tmp29) {
45143      {
45144#line 1133
45145      __cil_tmp32 = driver->reset_resume;
45146#line 1133
45147      status = (*__cil_tmp32)(intf);
45148      }
45149#line 1134
45150      if (status != 0) {
45151        {
45152#line 1135
45153        __cil_tmp33 = & intf->dev;
45154#line 1135
45155        __cil_tmp34 = (struct device  const  *)__cil_tmp33;
45156#line 1135
45157        __cil_tmp35 = (char *)"reset_resume";
45158#line 1135
45159        dev_err(__cil_tmp34, "%s error %d\n", __cil_tmp35, status);
45160        }
45161      } else {
45162
45163      }
45164    } else {
45165      {
45166#line 1138
45167      intf->needs_binding = (unsigned char)1;
45168#line 1139
45169      __cil_tmp36 = & intf->dev;
45170#line 1139
45171      __cil_tmp37 = (struct device  const  *)__cil_tmp36;
45172#line 1139
45173      __cil_tmp38 = (char *)"reset_resume";
45174#line 1139
45175      __cil_tmp39 = driver->name;
45176#line 1139
45177      dev_warn(__cil_tmp37, "no %s for driver %s?\n", __cil_tmp38, __cil_tmp39);
45178      }
45179    }
45180    }
45181  } else {
45182    {
45183#line 1143
45184    __cil_tmp40 = (int (*)(struct usb_interface * ))0;
45185#line 1143
45186    __cil_tmp41 = (unsigned long )__cil_tmp40;
45187#line 1143
45188    __cil_tmp42 = driver->resume;
45189#line 1143
45190    __cil_tmp43 = (unsigned long )__cil_tmp42;
45191#line 1143
45192    if (__cil_tmp43 != __cil_tmp41) {
45193      {
45194#line 1144
45195      __cil_tmp44 = driver->resume;
45196#line 1144
45197      status = (*__cil_tmp44)(intf);
45198      }
45199#line 1145
45200      if (status != 0) {
45201        {
45202#line 1146
45203        __cil_tmp45 = & intf->dev;
45204#line 1146
45205        __cil_tmp46 = (struct device  const  *)__cil_tmp45;
45206#line 1146
45207        __cil_tmp47 = (char *)"resume";
45208#line 1146
45209        dev_err(__cil_tmp46, "%s error %d\n", __cil_tmp47, status);
45210        }
45211      } else {
45212
45213      }
45214    } else {
45215      {
45216#line 1149
45217      intf->needs_binding = (unsigned char)1;
45218#line 1150
45219      __cil_tmp48 = & intf->dev;
45220#line 1150
45221      __cil_tmp49 = (struct device  const  *)__cil_tmp48;
45222#line 1150
45223      __cil_tmp50 = (char *)"resume";
45224#line 1150
45225      __cil_tmp51 = driver->name;
45226#line 1150
45227      dev_warn(__cil_tmp49, "no %s for driver %s?\n", __cil_tmp50, __cil_tmp51);
45228      }
45229    }
45230    }
45231  }
45232  done: ;
45233#line 1159
45234  return (status);
45235}
45236}
45237#line 1182 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45238static int usb_suspend_both(struct usb_device *udev , pm_message_t msg ) 
45239{ int status ;
45240  int i ;
45241  int n ;
45242  struct usb_interface *intf ;
45243  enum usb_device_state __cil_tmp7 ;
45244  unsigned int __cil_tmp8 ;
45245  enum usb_device_state __cil_tmp9 ;
45246  unsigned int __cil_tmp10 ;
45247  struct usb_host_config *__cil_tmp11 ;
45248  unsigned long __cil_tmp12 ;
45249  struct usb_host_config *__cil_tmp13 ;
45250  unsigned long __cil_tmp14 ;
45251  struct usb_host_config *__cil_tmp15 ;
45252  __u8 __cil_tmp16 ;
45253  struct usb_host_config *__cil_tmp17 ;
45254  int __cil_tmp18 ;
45255  int __cil_tmp19 ;
45256  struct usb_host_config *__cil_tmp20 ;
45257  struct usb_host_endpoint *__cil_tmp21 ;
45258  struct usb_host_endpoint *__cil_tmp22 ;
45259
45260  {
45261#line 1184
45262  status = 0;
45263#line 1185
45264  i = 0;
45265#line 1185
45266  n = 0;
45267  {
45268#line 1188
45269  __cil_tmp7 = udev->state;
45270#line 1188
45271  __cil_tmp8 = (unsigned int )__cil_tmp7;
45272#line 1188
45273  if (__cil_tmp8 == 0U) {
45274#line 1190
45275    goto done;
45276  } else {
45277    {
45278#line 1188
45279    __cil_tmp9 = udev->state;
45280#line 1188
45281    __cil_tmp10 = (unsigned int )__cil_tmp9;
45282#line 1188
45283    if (__cil_tmp10 == 8U) {
45284#line 1190
45285      goto done;
45286    } else {
45287
45288    }
45289    }
45290  }
45291  }
45292  {
45293#line 1193
45294  __cil_tmp11 = (struct usb_host_config *)0;
45295#line 1193
45296  __cil_tmp12 = (unsigned long )__cil_tmp11;
45297#line 1193
45298  __cil_tmp13 = udev->actconfig;
45299#line 1193
45300  __cil_tmp14 = (unsigned long )__cil_tmp13;
45301#line 1193
45302  if (__cil_tmp14 != __cil_tmp12) {
45303#line 1194
45304    __cil_tmp15 = udev->actconfig;
45305#line 1194
45306    __cil_tmp16 = __cil_tmp15->desc.bNumInterfaces;
45307#line 1194
45308    n = (int )__cil_tmp16;
45309#line 1195
45310    i = n + -1;
45311#line 1195
45312    goto ldv_24587;
45313    ldv_24586: 
45314    {
45315#line 1196
45316    __cil_tmp17 = udev->actconfig;
45317#line 1196
45318    intf = __cil_tmp17->interface[i];
45319#line 1197
45320    status = usb_suspend_interface(udev, intf, msg);
45321    }
45322    {
45323#line 1200
45324    __cil_tmp18 = msg.event & 1024;
45325#line 1200
45326    if (__cil_tmp18 == 0) {
45327#line 1201
45328      status = 0;
45329    } else {
45330
45331    }
45332    }
45333#line 1202
45334    if (status != 0) {
45335#line 1203
45336      goto ldv_24585;
45337    } else {
45338
45339    }
45340#line 1195
45341    i = i - 1;
45342    ldv_24587: ;
45343#line 1195
45344    if (i >= 0) {
45345#line 1196
45346      goto ldv_24586;
45347    } else {
45348#line 1198
45349      goto ldv_24585;
45350    }
45351    ldv_24585: ;
45352  } else {
45353
45354  }
45355  }
45356#line 1206
45357  if (status == 0) {
45358    {
45359#line 1207
45360    status = usb_suspend_device(udev, msg);
45361    }
45362    {
45363#line 1210
45364    __cil_tmp19 = msg.event & 1024;
45365#line 1210
45366    if (__cil_tmp19 == 0) {
45367#line 1211
45368      status = 0;
45369    } else {
45370
45371    }
45372    }
45373  } else {
45374
45375  }
45376#line 1215
45377  if (status != 0) {
45378#line 1216
45379    msg.event = msg.event ^ 18;
45380#line 1217
45381    goto ldv_24589;
45382    ldv_24588: 
45383    {
45384#line 1218
45385    __cil_tmp20 = udev->actconfig;
45386#line 1218
45387    intf = __cil_tmp20->interface[i];
45388#line 1219
45389    usb_resume_interface(udev, intf, msg, 0);
45390    }
45391    ldv_24589: 
45392#line 1217
45393    i = i + 1;
45394#line 1217
45395    if (i < n) {
45396#line 1218
45397      goto ldv_24588;
45398    } else {
45399#line 1220
45400      goto ldv_24590;
45401    }
45402    ldv_24590: ;
45403  } else {
45404#line 1226
45405    udev->can_submit = (unsigned char)0;
45406#line 1227
45407    i = 0;
45408#line 1227
45409    goto ldv_24592;
45410    ldv_24591: 
45411    {
45412#line 1228
45413    __cil_tmp21 = udev->ep_out[i];
45414#line 1228
45415    usb_hcd_flush_endpoint(udev, __cil_tmp21);
45416#line 1229
45417    __cil_tmp22 = udev->ep_in[i];
45418#line 1229
45419    usb_hcd_flush_endpoint(udev, __cil_tmp22);
45420#line 1227
45421    i = i + 1;
45422    }
45423    ldv_24592: ;
45424#line 1227
45425    if (i <= 15) {
45426#line 1228
45427      goto ldv_24591;
45428    } else {
45429#line 1230
45430      goto ldv_24593;
45431    }
45432    ldv_24593: ;
45433  }
45434  done: ;
45435#line 1235
45436  return (status);
45437}
45438}
45439#line 1256 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45440static int usb_resume_both(struct usb_device *udev , pm_message_t msg ) 
45441{ int status ;
45442  int i ;
45443  struct usb_interface *intf ;
45444  enum usb_device_state __cil_tmp6 ;
45445  unsigned int __cil_tmp7 ;
45446  enum usb_device_state __cil_tmp8 ;
45447  unsigned int __cil_tmp9 ;
45448  unsigned char *__cil_tmp10 ;
45449  unsigned char *__cil_tmp11 ;
45450  unsigned char __cil_tmp12 ;
45451  unsigned int __cil_tmp13 ;
45452  struct usb_host_config *__cil_tmp14 ;
45453  unsigned long __cil_tmp15 ;
45454  struct usb_host_config *__cil_tmp16 ;
45455  unsigned long __cil_tmp17 ;
45456  struct usb_host_config *__cil_tmp18 ;
45457  unsigned char __cil_tmp19 ;
45458  int __cil_tmp20 ;
45459  struct usb_host_config *__cil_tmp21 ;
45460  __u8 __cil_tmp22 ;
45461  int __cil_tmp23 ;
45462
45463  {
45464#line 1258
45465  status = 0;
45466  {
45467#line 1262
45468  __cil_tmp6 = udev->state;
45469#line 1262
45470  __cil_tmp7 = (unsigned int )__cil_tmp6;
45471#line 1262
45472  if (__cil_tmp7 == 0U) {
45473#line 1263
45474    status = -19;
45475#line 1264
45476    goto done;
45477  } else {
45478
45479  }
45480  }
45481#line 1266
45482  udev->can_submit = (unsigned char)1;
45483  {
45484#line 1269
45485  __cil_tmp8 = udev->state;
45486#line 1269
45487  __cil_tmp9 = (unsigned int )__cil_tmp8;
45488#line 1269
45489  if (__cil_tmp9 == 8U) {
45490    {
45491#line 1270
45492    status = usb_resume_device(udev, msg);
45493    }
45494  } else {
45495    {
45496#line 1269
45497    __cil_tmp10 = (unsigned char *)udev;
45498#line 1269
45499    __cil_tmp11 = __cil_tmp10 + 1904UL;
45500#line 1269
45501    __cil_tmp12 = *__cil_tmp11;
45502#line 1269
45503    __cil_tmp13 = (unsigned int )__cil_tmp12;
45504#line 1269
45505    if (__cil_tmp13 != 0U) {
45506      {
45507#line 1270
45508      status = usb_resume_device(udev, msg);
45509      }
45510    } else {
45511
45512    }
45513    }
45514  }
45515  }
45516#line 1273
45517  if (status == 0) {
45518    {
45519#line 1273
45520    __cil_tmp14 = (struct usb_host_config *)0;
45521#line 1273
45522    __cil_tmp15 = (unsigned long )__cil_tmp14;
45523#line 1273
45524    __cil_tmp16 = udev->actconfig;
45525#line 1273
45526    __cil_tmp17 = (unsigned long )__cil_tmp16;
45527#line 1273
45528    if (__cil_tmp17 != __cil_tmp15) {
45529#line 1274
45530      i = 0;
45531#line 1274
45532      goto ldv_24605;
45533      ldv_24604: 
45534      {
45535#line 1275
45536      __cil_tmp18 = udev->actconfig;
45537#line 1275
45538      intf = __cil_tmp18->interface[i];
45539#line 1276
45540      __cil_tmp19 = udev->reset_resume;
45541#line 1276
45542      __cil_tmp20 = (int )__cil_tmp19;
45543#line 1276
45544      usb_resume_interface(udev, intf, msg, __cil_tmp20);
45545#line 1274
45546      i = i + 1;
45547      }
45548      ldv_24605: ;
45549      {
45550#line 1274
45551      __cil_tmp21 = udev->actconfig;
45552#line 1274
45553      __cil_tmp22 = __cil_tmp21->desc.bNumInterfaces;
45554#line 1274
45555      __cil_tmp23 = (int )__cil_tmp22;
45556#line 1274
45557      if (__cil_tmp23 > i) {
45558#line 1275
45559        goto ldv_24604;
45560      } else {
45561#line 1277
45562        goto ldv_24606;
45563      }
45564      }
45565      ldv_24606: ;
45566    } else {
45567
45568    }
45569    }
45570  } else {
45571
45572  }
45573  {
45574#line 1280
45575  usb_mark_last_busy(udev);
45576  }
45577  done: ;
45578#line 1284
45579  if (status == 0) {
45580#line 1285
45581    udev->reset_resume = (unsigned char)0;
45582  } else {
45583
45584  }
45585#line 1286
45586  return (status);
45587}
45588}
45589#line 1289 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45590static void choose_wakeup(struct usb_device *udev , pm_message_t msg ) 
45591{ int w ;
45592  bool tmp ;
45593  enum usb_device_state __cil_tmp5 ;
45594  unsigned int __cil_tmp6 ;
45595  struct device *__cil_tmp7 ;
45596  enum usb_device_state __cil_tmp8 ;
45597  unsigned int __cil_tmp9 ;
45598  unsigned char __cil_tmp10 ;
45599  int __cil_tmp11 ;
45600  struct device *__cil_tmp12 ;
45601
45602  {
45603#line 1297
45604  if (msg.event == 1) {
45605#line 1297
45606    goto _L;
45607  } else
45608#line 1297
45609  if (msg.event == 8) {
45610    _L: 
45611    {
45612#line 1298
45613    __cil_tmp5 = udev->state;
45614#line 1298
45615    __cil_tmp6 = (unsigned int )__cil_tmp5;
45616#line 1298
45617    if (__cil_tmp6 != 8U) {
45618#line 1299
45619      udev->do_remote_wakeup = (unsigned char)0;
45620    } else {
45621
45622    }
45623    }
45624#line 1300
45625    return;
45626  } else {
45627
45628  }
45629  {
45630#line 1306
45631  __cil_tmp7 = & udev->dev;
45632#line 1306
45633  tmp = device_may_wakeup(__cil_tmp7);
45634#line 1306
45635  w = (int )tmp;
45636  }
45637  {
45638#line 1311
45639  __cil_tmp8 = udev->state;
45640#line 1311
45641  __cil_tmp9 = (unsigned int )__cil_tmp8;
45642#line 1311
45643  if (__cil_tmp9 == 8U) {
45644    {
45645#line 1311
45646    __cil_tmp10 = udev->do_remote_wakeup;
45647#line 1311
45648    __cil_tmp11 = (int )__cil_tmp10;
45649#line 1311
45650    if (__cil_tmp11 != w) {
45651      {
45652#line 1312
45653      __cil_tmp12 = & udev->dev;
45654#line 1312
45655      pm_runtime_resume(__cil_tmp12);
45656      }
45657    } else {
45658
45659    }
45660    }
45661  } else {
45662
45663  }
45664  }
45665#line 1313
45666  udev->do_remote_wakeup = (unsigned char )w;
45667#line 1314
45668  return;
45669}
45670}
45671#line 1317 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45672int usb_suspend(struct device *dev , pm_message_t msg ) 
45673{ struct usb_device *udev ;
45674  struct device  const  *__mptr ;
45675  int tmp ;
45676  struct usb_device *__cil_tmp6 ;
45677
45678  {
45679  {
45680#line 1319
45681  __mptr = (struct device  const  *)dev;
45682#line 1319
45683  __cil_tmp6 = (struct usb_device *)__mptr;
45684#line 1319
45685  udev = __cil_tmp6 + 1152921504606846840UL;
45686#line 1321
45687  do_unbind_rebind(udev, 0);
45688#line 1322
45689  choose_wakeup(udev, msg);
45690#line 1323
45691  tmp = usb_suspend_both(udev, msg);
45692  }
45693#line 1323
45694  return (tmp);
45695}
45696}
45697#line 1327 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45698int usb_resume(struct device *dev , pm_message_t msg ) 
45699{ struct usb_device *udev ;
45700  struct device  const  *__mptr ;
45701  int status ;
45702  struct usb_device *__cil_tmp6 ;
45703  enum usb_device_state __cil_tmp7 ;
45704  unsigned int __cil_tmp8 ;
45705
45706  {
45707#line 1329
45708  __mptr = (struct device  const  *)dev;
45709#line 1329
45710  __cil_tmp6 = (struct usb_device *)__mptr;
45711#line 1329
45712  udev = __cil_tmp6 + 1152921504606846840UL;
45713#line 1333
45714  if (msg.event == 0) {
45715    {
45716#line 1334
45717    __cil_tmp7 = udev->state;
45718#line 1334
45719    __cil_tmp8 = (unsigned int )__cil_tmp7;
45720#line 1334
45721    if (__cil_tmp8 != 0U) {
45722      {
45723#line 1335
45724      do_unbind_rebind(udev, 1);
45725      }
45726    } else {
45727
45728    }
45729    }
45730#line 1336
45731    status = 0;
45732  } else {
45733    {
45734#line 1343
45735    status = usb_resume_both(udev, msg);
45736    }
45737#line 1344
45738    if (status == 0) {
45739      {
45740#line 1345
45741      pm_runtime_disable(dev);
45742#line 1346
45743      pm_runtime_set_active(dev);
45744#line 1347
45745      pm_runtime_enable(dev);
45746#line 1348
45747      do_unbind_rebind(udev, 1);
45748      }
45749    } else {
45750
45751    }
45752  }
45753#line 1355
45754  if (status == -19) {
45755#line 1356
45756    status = 0;
45757  } else
45758#line 1355
45759  if (status == -108) {
45760#line 1356
45761    status = 0;
45762  } else {
45763
45764  }
45765#line 1357
45766  return (status);
45767}
45768}
45769#line 1374 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45770void usb_enable_autosuspend(struct usb_device *udev ) 
45771{ struct device *__cil_tmp2 ;
45772
45773  {
45774  {
45775#line 1376
45776  __cil_tmp2 = & udev->dev;
45777#line 1376
45778  pm_runtime_allow(__cil_tmp2);
45779  }
45780#line 1377
45781  return;
45782}
45783}
45784#line 1389 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45785void usb_disable_autosuspend(struct usb_device *udev ) 
45786{ struct device *__cil_tmp2 ;
45787
45788  {
45789  {
45790#line 1391
45791  __cil_tmp2 = & udev->dev;
45792#line 1391
45793  pm_runtime_forbid(__cil_tmp2);
45794  }
45795#line 1392
45796  return;
45797}
45798}
45799#line 1411 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45800void usb_autosuspend_device(struct usb_device *udev ) 
45801{ int status ;
45802  struct device *__cil_tmp3 ;
45803
45804  {
45805  {
45806#line 1415
45807  usb_mark_last_busy(udev);
45808#line 1416
45809  __cil_tmp3 = & udev->dev;
45810#line 1416
45811  status = pm_runtime_put_sync_autosuspend(__cil_tmp3);
45812  }
45813#line 1419
45814  return;
45815}
45816}
45817#line 1440 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45818int usb_autoresume_device(struct usb_device *udev ) 
45819{ int status ;
45820  struct device *__cil_tmp3 ;
45821  struct device *__cil_tmp4 ;
45822
45823  {
45824  {
45825#line 1444
45826  __cil_tmp3 = & udev->dev;
45827#line 1444
45828  status = pm_runtime_get_sync(__cil_tmp3);
45829  }
45830#line 1445
45831  if (status < 0) {
45832    {
45833#line 1446
45834    __cil_tmp4 = & udev->dev;
45835#line 1446
45836    pm_runtime_put_sync(__cil_tmp4);
45837    }
45838  } else {
45839
45840  }
45841#line 1450
45842  if (status > 0) {
45843#line 1451
45844    status = 0;
45845  } else {
45846
45847  }
45848#line 1452
45849  return (status);
45850}
45851}
45852#line 1470 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45853void usb_autopm_put_interface(struct usb_interface *intf ) 
45854{ struct usb_device *udev ;
45855  struct usb_device *tmp ;
45856  int status ;
45857  atomic_t *__cil_tmp5 ;
45858  struct device *__cil_tmp6 ;
45859
45860  {
45861  {
45862#line 1472
45863  tmp = interface_to_usbdev(intf);
45864#line 1472
45865  udev = tmp;
45866#line 1475
45867  usb_mark_last_busy(udev);
45868#line 1476
45869  __cil_tmp5 = & intf->pm_usage_cnt;
45870#line 1476
45871  atomic_dec(__cil_tmp5);
45872#line 1477
45873  __cil_tmp6 = & intf->dev;
45874#line 1477
45875  status = pm_runtime_put_sync(__cil_tmp6);
45876  }
45877#line 1480
45878  return;
45879}
45880}
45881#line 1499 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45882void usb_autopm_put_interface_async(struct usb_interface *intf ) 
45883{ struct usb_device *udev ;
45884  struct usb_device *tmp ;
45885  int status ;
45886  atomic_t *__cil_tmp5 ;
45887  struct device *__cil_tmp6 ;
45888
45889  {
45890  {
45891#line 1501
45892  tmp = interface_to_usbdev(intf);
45893#line 1501
45894  udev = tmp;
45895#line 1504
45896  usb_mark_last_busy(udev);
45897#line 1505
45898  __cil_tmp5 = & intf->pm_usage_cnt;
45899#line 1505
45900  atomic_dec(__cil_tmp5);
45901#line 1506
45902  __cil_tmp6 = & intf->dev;
45903#line 1506
45904  status = pm_runtime_put(__cil_tmp6);
45905  }
45906#line 1509
45907  return;
45908}
45909}
45910#line 1522 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45911void usb_autopm_put_interface_no_suspend(struct usb_interface *intf ) 
45912{ struct usb_device *udev ;
45913  struct usb_device *tmp ;
45914  atomic_t *__cil_tmp4 ;
45915  struct device *__cil_tmp5 ;
45916
45917  {
45918  {
45919#line 1524
45920  tmp = interface_to_usbdev(intf);
45921#line 1524
45922  udev = tmp;
45923#line 1526
45924  usb_mark_last_busy(udev);
45925#line 1527
45926  __cil_tmp4 = & intf->pm_usage_cnt;
45927#line 1527
45928  atomic_dec(__cil_tmp4);
45929#line 1528
45930  __cil_tmp5 = & intf->dev;
45931#line 1528
45932  pm_runtime_put_noidle(__cil_tmp5);
45933  }
45934#line 1529
45935  return;
45936}
45937}
45938#line 1549 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45939int usb_autopm_get_interface(struct usb_interface *intf ) 
45940{ int status ;
45941  struct device *__cil_tmp3 ;
45942  struct device *__cil_tmp4 ;
45943  atomic_t *__cil_tmp5 ;
45944
45945  {
45946  {
45947#line 1553
45948  __cil_tmp3 = & intf->dev;
45949#line 1553
45950  status = pm_runtime_get_sync(__cil_tmp3);
45951  }
45952#line 1554
45953  if (status < 0) {
45954    {
45955#line 1555
45956    __cil_tmp4 = & intf->dev;
45957#line 1555
45958    pm_runtime_put_sync(__cil_tmp4);
45959    }
45960  } else {
45961    {
45962#line 1557
45963    __cil_tmp5 = & intf->pm_usage_cnt;
45964#line 1557
45965    atomic_inc(__cil_tmp5);
45966    }
45967  }
45968#line 1561
45969  if (status > 0) {
45970#line 1562
45971    status = 0;
45972  } else {
45973
45974  }
45975#line 1563
45976  return (status);
45977}
45978}
45979#line 1582 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
45980int usb_autopm_get_interface_async(struct usb_interface *intf ) 
45981{ int status ;
45982  struct device *__cil_tmp3 ;
45983  struct device *__cil_tmp4 ;
45984  atomic_t *__cil_tmp5 ;
45985  atomic_t *__cil_tmp6 ;
45986
45987  {
45988  {
45989#line 1586
45990  __cil_tmp3 = & intf->dev;
45991#line 1586
45992  status = pm_runtime_get(__cil_tmp3);
45993  }
45994#line 1587
45995  if (status < 0) {
45996#line 1587
45997    if (status != -115) {
45998      {
45999#line 1588
46000      __cil_tmp4 = & intf->dev;
46001#line 1588
46002      pm_runtime_put_noidle(__cil_tmp4);
46003      }
46004    } else {
46005      {
46006#line 1590
46007      __cil_tmp5 = & intf->pm_usage_cnt;
46008#line 1590
46009      atomic_inc(__cil_tmp5);
46010      }
46011    }
46012  } else {
46013    {
46014#line 1590
46015    __cil_tmp6 = & intf->pm_usage_cnt;
46016#line 1590
46017    atomic_inc(__cil_tmp6);
46018    }
46019  }
46020#line 1594
46021  if (status > 0) {
46022#line 1595
46023    status = 0;
46024  } else {
46025
46026  }
46027#line 1596
46028  return (status);
46029}
46030}
46031#line 1609 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
46032void usb_autopm_get_interface_no_resume(struct usb_interface *intf ) 
46033{ struct usb_device *udev ;
46034  struct usb_device *tmp ;
46035  atomic_t *__cil_tmp4 ;
46036  struct device *__cil_tmp5 ;
46037
46038  {
46039  {
46040#line 1611
46041  tmp = interface_to_usbdev(intf);
46042#line 1611
46043  udev = tmp;
46044#line 1613
46045  usb_mark_last_busy(udev);
46046#line 1614
46047  __cil_tmp4 = & intf->pm_usage_cnt;
46048#line 1614
46049  atomic_inc(__cil_tmp4);
46050#line 1615
46051  __cil_tmp5 = & intf->dev;
46052#line 1615
46053  pm_runtime_get_noresume(__cil_tmp5);
46054  }
46055#line 1616
46056  return;
46057}
46058}
46059#line 1620 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
46060static int autosuspend_check(struct usb_device *udev ) 
46061{ int w ;
46062  int i ;
46063  struct usb_interface *intf ;
46064  int tmp ;
46065  struct usb_driver *driver ;
46066  struct device_driver  const  *__mptr ;
46067  bool tmp___0 ;
46068  int tmp___1 ;
46069  struct usb_host_config *__cil_tmp10 ;
46070  unsigned long __cil_tmp11 ;
46071  struct usb_host_config *__cil_tmp12 ;
46072  unsigned long __cil_tmp13 ;
46073  struct usb_host_config *__cil_tmp14 ;
46074  unsigned char *__cil_tmp15 ;
46075  unsigned char *__cil_tmp16 ;
46076  unsigned char __cil_tmp17 ;
46077  unsigned int __cil_tmp18 ;
46078  atomic_t *__cil_tmp19 ;
46079  atomic_t const   *__cil_tmp20 ;
46080  unsigned char __cil_tmp21 ;
46081  int __cil_tmp22 ;
46082  u32 __cil_tmp23 ;
46083  unsigned int __cil_tmp24 ;
46084  struct device_driver *__cil_tmp25 ;
46085  struct usb_driver *__cil_tmp26 ;
46086  int (*__cil_tmp27)(struct usb_interface * ) ;
46087  unsigned long __cil_tmp28 ;
46088  int (*__cil_tmp29)(struct usb_interface * ) ;
46089  unsigned long __cil_tmp30 ;
46090  unsigned char *__cil_tmp31 ;
46091  unsigned char *__cil_tmp32 ;
46092  unsigned char __cil_tmp33 ;
46093  unsigned int __cil_tmp34 ;
46094  struct usb_host_config *__cil_tmp35 ;
46095  __u8 __cil_tmp36 ;
46096  int __cil_tmp37 ;
46097  struct device *__cil_tmp38 ;
46098  struct device *__cil_tmp39 ;
46099  struct device  const  *__cil_tmp40 ;
46100
46101  {
46102#line 1628
46103  w = 0;
46104  {
46105#line 1629
46106  __cil_tmp10 = (struct usb_host_config *)0;
46107#line 1629
46108  __cil_tmp11 = (unsigned long )__cil_tmp10;
46109#line 1629
46110  __cil_tmp12 = udev->actconfig;
46111#line 1629
46112  __cil_tmp13 = (unsigned long )__cil_tmp12;
46113#line 1629
46114  if (__cil_tmp13 != __cil_tmp11) {
46115#line 1630
46116    i = 0;
46117#line 1630
46118    goto ldv_24740;
46119    ldv_24739: 
46120#line 1631
46121    __cil_tmp14 = udev->actconfig;
46122#line 1631
46123    intf = __cil_tmp14->interface[i];
46124    {
46125#line 1638
46126    __cil_tmp15 = (unsigned char *)intf;
46127#line 1638
46128    __cil_tmp16 = __cil_tmp15 + 848UL;
46129#line 1638
46130    __cil_tmp17 = *__cil_tmp16;
46131#line 1638
46132    __cil_tmp18 = (unsigned int )__cil_tmp17;
46133#line 1638
46134    if (__cil_tmp18 != 0U) {
46135#line 1639
46136      goto ldv_24735;
46137    } else {
46138
46139    }
46140    }
46141    {
46142#line 1640
46143    __cil_tmp19 = & intf->dev.power.usage_count;
46144#line 1640
46145    __cil_tmp20 = (atomic_t const   *)__cil_tmp19;
46146#line 1640
46147    tmp = atomic_read(__cil_tmp20);
46148    }
46149#line 1640
46150    if (tmp > 0) {
46151#line 1641
46152      return (-16);
46153    } else {
46154
46155    }
46156#line 1642
46157    __cil_tmp21 = intf->needs_remote_wakeup;
46158#line 1642
46159    __cil_tmp22 = (int )__cil_tmp21;
46160#line 1642
46161    w = __cil_tmp22 | w;
46162    {
46163#line 1648
46164    __cil_tmp23 = udev->quirks;
46165#line 1648
46166    __cil_tmp24 = __cil_tmp23 & 2U;
46167#line 1648
46168    if (__cil_tmp24 != 0U) {
46169#line 1651
46170      __cil_tmp25 = intf->dev.driver;
46171#line 1651
46172      __mptr = (struct device_driver  const  *)__cil_tmp25;
46173#line 1651
46174      __cil_tmp26 = (struct usb_driver *)__mptr;
46175#line 1651
46176      driver = __cil_tmp26 + 1152921504606846808UL;
46177      {
46178#line 1652
46179      __cil_tmp27 = (int (*)(struct usb_interface * ))0;
46180#line 1652
46181      __cil_tmp28 = (unsigned long )__cil_tmp27;
46182#line 1652
46183      __cil_tmp29 = driver->reset_resume;
46184#line 1652
46185      __cil_tmp30 = (unsigned long )__cil_tmp29;
46186#line 1652
46187      if (__cil_tmp30 == __cil_tmp28) {
46188#line 1654
46189        return (-95);
46190      } else {
46191        {
46192#line 1652
46193        __cil_tmp31 = (unsigned char *)intf;
46194#line 1652
46195        __cil_tmp32 = __cil_tmp31 + 40UL;
46196#line 1652
46197        __cil_tmp33 = *__cil_tmp32;
46198#line 1652
46199        __cil_tmp34 = (unsigned int )__cil_tmp33;
46200#line 1652
46201        if (__cil_tmp34 != 0U) {
46202#line 1654
46203          return (-95);
46204        } else {
46205
46206        }
46207        }
46208      }
46209      }
46210    } else {
46211
46212    }
46213    }
46214    ldv_24735: 
46215#line 1630
46216    i = i + 1;
46217    ldv_24740: ;
46218    {
46219#line 1630
46220    __cil_tmp35 = udev->actconfig;
46221#line 1630
46222    __cil_tmp36 = __cil_tmp35->desc.bNumInterfaces;
46223#line 1630
46224    __cil_tmp37 = (int )__cil_tmp36;
46225#line 1630
46226    if (__cil_tmp37 > i) {
46227#line 1631
46228      goto ldv_24739;
46229    } else {
46230#line 1633
46231      goto ldv_24741;
46232    }
46233    }
46234    ldv_24741: ;
46235  } else {
46236
46237  }
46238  }
46239#line 1658
46240  if (w != 0) {
46241    {
46242#line 1658
46243    __cil_tmp38 = & udev->dev;
46244#line 1658
46245    tmp___0 = device_can_wakeup(__cil_tmp38);
46246    }
46247#line 1658
46248    if (tmp___0) {
46249#line 1658
46250      tmp___1 = 0;
46251    } else {
46252#line 1658
46253      tmp___1 = 1;
46254    }
46255#line 1658
46256    if (tmp___1) {
46257      {
46258#line 1659
46259      __cil_tmp39 = & udev->dev;
46260#line 1659
46261      __cil_tmp40 = (struct device  const  *)__cil_tmp39;
46262#line 1659
46263      dev_printk("<7>", __cil_tmp40, "remote wakeup needed for autosuspend\n");
46264      }
46265#line 1660
46266      return (-95);
46267    } else {
46268
46269    }
46270  } else {
46271
46272  }
46273#line 1662
46274  udev->do_remote_wakeup = (unsigned char )w;
46275#line 1663
46276  return (0);
46277}
46278}
46279#line 1666 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
46280int usb_runtime_suspend(struct device *dev ) 
46281{ struct usb_device *udev ;
46282  struct device  const  *__mptr ;
46283  int status ;
46284  int tmp ;
46285  struct pm_message __constr_expr_0 ;
46286  struct usb_device *__cil_tmp7 ;
46287
46288  {
46289  {
46290#line 1668
46291  __mptr = (struct device  const  *)dev;
46292#line 1668
46293  __cil_tmp7 = (struct usb_device *)__mptr;
46294#line 1668
46295  udev = __cil_tmp7 + 1152921504606846840UL;
46296#line 1675
46297  tmp = autosuspend_check(udev);
46298  }
46299#line 1675
46300  if (tmp != 0) {
46301#line 1676
46302    return (-11);
46303  } else {
46304
46305  }
46306  {
46307#line 1678
46308  __constr_expr_0.event = 1026;
46309#line 1678
46310  status = usb_suspend_both(udev, __constr_expr_0);
46311  }
46312#line 1682
46313  if (status != 0) {
46314#line 1683
46315    return (-16);
46316  } else {
46317
46318  }
46319#line 1684
46320  return (status);
46321}
46322}
46323#line 1687 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
46324int usb_runtime_resume(struct device *dev ) 
46325{ struct usb_device *udev ;
46326  struct device  const  *__mptr ;
46327  int status ;
46328  struct pm_message __constr_expr_0 ;
46329  struct usb_device *__cil_tmp6 ;
46330
46331  {
46332  {
46333#line 1689
46334  __mptr = (struct device  const  *)dev;
46335#line 1689
46336  __cil_tmp6 = (struct usb_device *)__mptr;
46337#line 1689
46338  udev = __cil_tmp6 + 1152921504606846840UL;
46339#line 1695
46340  __constr_expr_0.event = 1040;
46341#line 1695
46342  status = usb_resume_both(udev, __constr_expr_0);
46343  }
46344#line 1696
46345  return (status);
46346}
46347}
46348#line 1699 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
46349int usb_runtime_idle(struct device *dev ) 
46350{ struct usb_device *udev ;
46351  struct device  const  *__mptr ;
46352  int tmp ;
46353  struct usb_device *__cil_tmp5 ;
46354
46355  {
46356  {
46357#line 1701
46358  __mptr = (struct device  const  *)dev;
46359#line 1701
46360  __cil_tmp5 = (struct usb_device *)__mptr;
46361#line 1701
46362  udev = __cil_tmp5 + 1152921504606846840UL;
46363#line 1706
46364  tmp = autosuspend_check(udev);
46365  }
46366#line 1706
46367  if (tmp == 0) {
46368    {
46369#line 1707
46370    pm_runtime_autosuspend(dev);
46371    }
46372  } else {
46373
46374  }
46375#line 1708
46376  return (0);
46377}
46378}
46379#line 1713 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/driver.c.p"
46380struct bus_type usb_bus_type  = 
46381#line 1713
46382     {"usb", (struct bus_attribute *)0, (struct device_attribute *)0, (struct driver_attribute *)0,
46383    & usb_device_match, & usb_uevent, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
46384    (void (*)(struct device * ))0, (int (*)(struct device * , pm_message_t  ))0, (int (*)(struct device * ))0,
46385    (struct dev_pm_ops  const  *)0, (struct subsys_private *)0};
46386#line 34 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/string_64.h"
46387extern void *__memcpy(void * , void const   * , size_t  ) ;
46388#line 488 "include/linux/usb/ch9.h"
46389__inline static int usb_endpoint_xfer_isoc(struct usb_endpoint_descriptor  const  *epd ) 
46390{ __u8 __cil_tmp2 ;
46391  int __cil_tmp3 ;
46392  int __cil_tmp4 ;
46393
46394  {
46395  {
46396#line 491
46397  __cil_tmp2 = epd->bmAttributes;
46398#line 491
46399  __cil_tmp3 = (int )__cil_tmp2;
46400#line 491
46401  __cil_tmp4 = __cil_tmp3 & 3;
46402#line 491
46403  return (__cil_tmp4 == 1);
46404  }
46405}
46406}
46407#line 26 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/config.c.p"
46408__inline static char const   *plural(int n ) 
46409{ char const   *tmp ;
46410
46411  {
46412#line 28
46413  if (n == 1) {
46414#line 28
46415    tmp = "";
46416  } else {
46417#line 28
46418    tmp = "s";
46419  }
46420#line 28
46421  return (tmp);
46422}
46423}
46424#line 31 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/config.c.p"
46425static int find_next_descriptor(unsigned char *buffer , int size , int dt1 , int dt2 ,
46426                                int *num_skipped ) 
46427{ struct usb_descriptor_header *h ;
46428  int n ;
46429  unsigned char *buffer0 ;
46430  __u8 __cil_tmp9 ;
46431  int __cil_tmp10 ;
46432  __u8 __cil_tmp11 ;
46433  int __cil_tmp12 ;
46434  __u8 __cil_tmp13 ;
46435  unsigned long __cil_tmp14 ;
46436  __u8 __cil_tmp15 ;
46437  int __cil_tmp16 ;
46438  int *__cil_tmp17 ;
46439  unsigned long __cil_tmp18 ;
46440  unsigned long __cil_tmp19 ;
46441  long __cil_tmp20 ;
46442  unsigned int __cil_tmp21 ;
46443  long __cil_tmp22 ;
46444  unsigned int __cil_tmp23 ;
46445  unsigned int __cil_tmp24 ;
46446
46447  {
46448#line 35
46449  n = 0;
46450#line 36
46451  buffer0 = buffer;
46452#line 39
46453  goto ldv_24241;
46454  ldv_24240: 
46455#line 40
46456  h = (struct usb_descriptor_header *)buffer;
46457  {
46458#line 41
46459  __cil_tmp9 = h->bDescriptorType;
46460#line 41
46461  __cil_tmp10 = (int )__cil_tmp9;
46462#line 41
46463  if (__cil_tmp10 == dt1) {
46464#line 42
46465    goto ldv_24239;
46466  } else {
46467    {
46468#line 41
46469    __cil_tmp11 = h->bDescriptorType;
46470#line 41
46471    __cil_tmp12 = (int )__cil_tmp11;
46472#line 41
46473    if (__cil_tmp12 == dt2) {
46474#line 42
46475      goto ldv_24239;
46476    } else {
46477
46478    }
46479    }
46480  }
46481  }
46482#line 43
46483  __cil_tmp13 = h->bLength;
46484#line 43
46485  __cil_tmp14 = (unsigned long )__cil_tmp13;
46486#line 43
46487  buffer = buffer + __cil_tmp14;
46488#line 44
46489  __cil_tmp15 = h->bLength;
46490#line 44
46491  __cil_tmp16 = (int )__cil_tmp15;
46492#line 44
46493  size = size - __cil_tmp16;
46494#line 45
46495  n = n + 1;
46496  ldv_24241: ;
46497#line 39
46498  if (size > 0) {
46499#line 40
46500    goto ldv_24240;
46501  } else {
46502#line 42
46503    goto ldv_24239;
46504  }
46505  ldv_24239: ;
46506  {
46507#line 50
46508  __cil_tmp17 = (int *)0;
46509#line 50
46510  __cil_tmp18 = (unsigned long )__cil_tmp17;
46511#line 50
46512  __cil_tmp19 = (unsigned long )num_skipped;
46513#line 50
46514  if (__cil_tmp19 != __cil_tmp18) {
46515#line 51
46516    *num_skipped = n;
46517  } else {
46518
46519  }
46520  }
46521  {
46522#line 52
46523  __cil_tmp20 = (long )buffer0;
46524#line 52
46525  __cil_tmp21 = (unsigned int )__cil_tmp20;
46526#line 52
46527  __cil_tmp22 = (long )buffer;
46528#line 52
46529  __cil_tmp23 = (unsigned int )__cil_tmp22;
46530#line 52
46531  __cil_tmp24 = __cil_tmp23 - __cil_tmp21;
46532#line 52
46533  return ((int )__cil_tmp24);
46534  }
46535}
46536}
46537#line 55 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/config.c.p"
46538static void usb_parse_ss_endpoint_companion(struct device *ddev , int cfgno , int inum ,
46539                                            int asnum , struct usb_host_endpoint *ep ,
46540                                            unsigned char *buffer , int size ) 
46541{ struct usb_ss_ep_comp_descriptor *desc ;
46542  int max_tx ;
46543  int tmp ;
46544  int tmp___0 ;
46545  size_t __len ;
46546  void *__ret ;
46547  int tmp___1 ;
46548  char *tmp___3 ;
46549  int tmp___4 ;
46550  int tmp___5 ;
46551  int tmp___6 ;
46552  int tmp___7 ;
46553  int tmp___8 ;
46554  int tmp___9 ;
46555  int tmp___10 ;
46556  char *tmp___12 ;
46557  int tmp___13 ;
46558  __u8 __cil_tmp25 ;
46559  unsigned int __cil_tmp26 ;
46560  struct device  const  *__cil_tmp27 ;
46561  __u8 __cil_tmp28 ;
46562  int __cil_tmp29 ;
46563  struct usb_endpoint_descriptor *__cil_tmp30 ;
46564  struct usb_endpoint_descriptor  const  *__cil_tmp31 ;
46565  struct usb_endpoint_descriptor *__cil_tmp32 ;
46566  struct usb_endpoint_descriptor  const  *__cil_tmp33 ;
46567  struct usb_ss_ep_comp_descriptor *__cil_tmp34 ;
46568  void *__cil_tmp35 ;
46569  void const   *__cil_tmp36 ;
46570  struct usb_ss_ep_comp_descriptor *__cil_tmp37 ;
46571  void *__cil_tmp38 ;
46572  void const   *__cil_tmp39 ;
46573  struct usb_endpoint_descriptor *__cil_tmp40 ;
46574  struct usb_endpoint_descriptor  const  *__cil_tmp41 ;
46575  __u8 __cil_tmp42 ;
46576  unsigned int __cil_tmp43 ;
46577  struct device  const  *__cil_tmp44 ;
46578  __u8 __cil_tmp45 ;
46579  int __cil_tmp46 ;
46580  __u8 __cil_tmp47 ;
46581  int __cil_tmp48 ;
46582  __u8 __cil_tmp49 ;
46583  unsigned int __cil_tmp50 ;
46584  struct device  const  *__cil_tmp51 ;
46585  __u8 __cil_tmp52 ;
46586  int __cil_tmp53 ;
46587  __u8 __cil_tmp54 ;
46588  int __cil_tmp55 ;
46589  struct usb_endpoint_descriptor *__cil_tmp56 ;
46590  struct usb_endpoint_descriptor  const  *__cil_tmp57 ;
46591  struct usb_endpoint_descriptor *__cil_tmp58 ;
46592  struct usb_endpoint_descriptor  const  *__cil_tmp59 ;
46593  __u8 __cil_tmp60 ;
46594  unsigned int __cil_tmp61 ;
46595  struct usb_endpoint_descriptor *__cil_tmp62 ;
46596  struct usb_endpoint_descriptor  const  *__cil_tmp63 ;
46597  struct device  const  *__cil_tmp64 ;
46598  __u8 __cil_tmp65 ;
46599  int __cil_tmp66 ;
46600  __u8 __cil_tmp67 ;
46601  int __cil_tmp68 ;
46602  struct usb_endpoint_descriptor *__cil_tmp69 ;
46603  struct usb_endpoint_descriptor  const  *__cil_tmp70 ;
46604  __u8 __cil_tmp71 ;
46605  unsigned int __cil_tmp72 ;
46606  struct device  const  *__cil_tmp73 ;
46607  __u8 __cil_tmp74 ;
46608  int __cil_tmp75 ;
46609  struct usb_endpoint_descriptor *__cil_tmp76 ;
46610  struct usb_endpoint_descriptor  const  *__cil_tmp77 ;
46611  __u8 __cil_tmp78 ;
46612  unsigned int __cil_tmp79 ;
46613  struct device  const  *__cil_tmp80 ;
46614  __u8 __cil_tmp81 ;
46615  int __cil_tmp82 ;
46616  int __cil_tmp83 ;
46617  __u8 __cil_tmp84 ;
46618  int __cil_tmp85 ;
46619  struct usb_endpoint_descriptor *__cil_tmp86 ;
46620  struct usb_endpoint_descriptor  const  *__cil_tmp87 ;
46621  __u8 __cil_tmp88 ;
46622  int __cil_tmp89 ;
46623  int __cil_tmp90 ;
46624  __u8 __cil_tmp91 ;
46625  int __cil_tmp92 ;
46626  int __cil_tmp93 ;
46627  __le16 __cil_tmp94 ;
46628  int __cil_tmp95 ;
46629  int __cil_tmp96 ;
46630  struct usb_endpoint_descriptor *__cil_tmp97 ;
46631  struct usb_endpoint_descriptor  const  *__cil_tmp98 ;
46632  __u8 __cil_tmp99 ;
46633  int __cil_tmp100 ;
46634  int __cil_tmp101 ;
46635  __le16 __cil_tmp102 ;
46636  int __cil_tmp103 ;
46637  __le16 __cil_tmp104 ;
46638  int __cil_tmp105 ;
46639  struct usb_endpoint_descriptor *__cil_tmp106 ;
46640  struct usb_endpoint_descriptor  const  *__cil_tmp107 ;
46641  struct device  const  *__cil_tmp108 ;
46642  __le16 __cil_tmp109 ;
46643  int __cil_tmp110 ;
46644  __u8 __cil_tmp111 ;
46645  int __cil_tmp112 ;
46646
46647  {
46648#line 65
46649  desc = (struct usb_ss_ep_comp_descriptor *)buffer;
46650  {
46651#line 66
46652  __cil_tmp25 = desc->bDescriptorType;
46653#line 66
46654  __cil_tmp26 = (unsigned int )__cil_tmp25;
46655#line 66
46656  if (__cil_tmp26 != 48U) {
46657#line 66
46658    goto _L;
46659  } else
46660#line 66
46661  if (size <= 5) {
46662    _L: 
46663    {
46664#line 68
46665    __cil_tmp27 = (struct device  const  *)ddev;
46666#line 68
46667    __cil_tmp28 = ep->desc.bEndpointAddress;
46668#line 68
46669    __cil_tmp29 = (int )__cil_tmp28;
46670#line 68
46671    dev_warn(__cil_tmp27, "No SuperSpeed endpoint companion for config %d  interface %d altsetting %d ep %d: using minimum values\n",
46672             cfgno, inum, asnum, __cil_tmp29);
46673#line 80
46674    ep->ss_ep_comp.bLength = (__u8 )6U;
46675#line 81
46676    ep->ss_ep_comp.bDescriptorType = (__u8 )48U;
46677#line 82
46678    __cil_tmp30 = & ep->desc;
46679#line 82
46680    __cil_tmp31 = (struct usb_endpoint_descriptor  const  *)__cil_tmp30;
46681#line 82
46682    tmp = usb_endpoint_xfer_isoc(__cil_tmp31);
46683    }
46684#line 82
46685    if (tmp != 0) {
46686#line 84
46687      ep->ss_ep_comp.wBytesPerInterval = ep->desc.wMaxPacketSize;
46688    } else {
46689      {
46690#line 82
46691      __cil_tmp32 = & ep->desc;
46692#line 82
46693      __cil_tmp33 = (struct usb_endpoint_descriptor  const  *)__cil_tmp32;
46694#line 82
46695      tmp___0 = usb_endpoint_xfer_int(__cil_tmp33);
46696      }
46697#line 82
46698      if (tmp___0 != 0) {
46699#line 84
46700        ep->ss_ep_comp.wBytesPerInterval = ep->desc.wMaxPacketSize;
46701      } else {
46702
46703      }
46704    }
46705#line 86
46706    return;
46707  } else {
46708
46709  }
46710  }
46711#line 89
46712  __len = 6UL;
46713#line 89
46714  if (__len > 63UL) {
46715    {
46716#line 89
46717    __cil_tmp34 = & ep->ss_ep_comp;
46718#line 89
46719    __cil_tmp35 = (void *)__cil_tmp34;
46720#line 89
46721    __cil_tmp36 = (void const   *)desc;
46722#line 89
46723    __ret = __memcpy(__cil_tmp35, __cil_tmp36, __len);
46724    }
46725  } else {
46726    {
46727#line 89
46728    __cil_tmp37 = & ep->ss_ep_comp;
46729#line 89
46730    __cil_tmp38 = (void *)__cil_tmp37;
46731#line 89
46732    __cil_tmp39 = (void const   *)desc;
46733#line 89
46734    __ret = __builtin_memcpy(__cil_tmp38, __cil_tmp39, __len);
46735    }
46736  }
46737  {
46738#line 92
46739  __cil_tmp40 = & ep->desc;
46740#line 92
46741  __cil_tmp41 = (struct usb_endpoint_descriptor  const  *)__cil_tmp40;
46742#line 92
46743  tmp___1 = usb_endpoint_xfer_control(__cil_tmp41);
46744  }
46745#line 92
46746  if (tmp___1 != 0) {
46747    {
46748#line 92
46749    __cil_tmp42 = desc->bMaxBurst;
46750#line 92
46751    __cil_tmp43 = (unsigned int )__cil_tmp42;
46752#line 92
46753    if (__cil_tmp43 != 0U) {
46754      {
46755#line 93
46756      __cil_tmp44 = (struct device  const  *)ddev;
46757#line 93
46758      __cil_tmp45 = desc->bMaxBurst;
46759#line 93
46760      __cil_tmp46 = (int )__cil_tmp45;
46761#line 93
46762      __cil_tmp47 = ep->desc.bEndpointAddress;
46763#line 93
46764      __cil_tmp48 = (int )__cil_tmp47;
46765#line 93
46766      dev_warn(__cil_tmp44, "Control endpoint with bMaxBurst = %d in config %d interface %d altsetting %d ep %d: setting to zero\n",
46767               __cil_tmp46, cfgno, inum, asnum, __cil_tmp48);
46768#line 97
46769      ep->ss_ep_comp.bMaxBurst = (__u8 )0U;
46770      }
46771    } else {
46772#line 92
46773      goto _L___0;
46774    }
46775    }
46776  } else {
46777    _L___0: 
46778    {
46779#line 98
46780    __cil_tmp49 = desc->bMaxBurst;
46781#line 98
46782    __cil_tmp50 = (unsigned int )__cil_tmp49;
46783#line 98
46784    if (__cil_tmp50 > 15U) {
46785      {
46786#line 99
46787      __cil_tmp51 = (struct device  const  *)ddev;
46788#line 99
46789      __cil_tmp52 = desc->bMaxBurst;
46790#line 99
46791      __cil_tmp53 = (int )__cil_tmp52;
46792#line 99
46793      __cil_tmp54 = ep->desc.bEndpointAddress;
46794#line 99
46795      __cil_tmp55 = (int )__cil_tmp54;
46796#line 99
46797      dev_warn(__cil_tmp51, "Endpoint with bMaxBurst = %d in config %d interface %d altsetting %d ep %d: setting to 15\n",
46798               __cil_tmp53, cfgno, inum, asnum, __cil_tmp55);
46799#line 103
46800      ep->ss_ep_comp.bMaxBurst = (__u8 )15U;
46801      }
46802    } else {
46803
46804    }
46805    }
46806  }
46807  {
46808#line 106
46809  __cil_tmp56 = & ep->desc;
46810#line 106
46811  __cil_tmp57 = (struct usb_endpoint_descriptor  const  *)__cil_tmp56;
46812#line 106
46813  tmp___7 = usb_endpoint_xfer_control(__cil_tmp57);
46814  }
46815#line 106
46816  if (tmp___7 != 0) {
46817#line 106
46818    goto _L___3;
46819  } else {
46820    {
46821#line 106
46822    __cil_tmp58 = & ep->desc;
46823#line 106
46824    __cil_tmp59 = (struct usb_endpoint_descriptor  const  *)__cil_tmp58;
46825#line 106
46826    tmp___8 = usb_endpoint_xfer_int(__cil_tmp59);
46827    }
46828#line 106
46829    if (tmp___8 != 0) {
46830      _L___3: 
46831      {
46832#line 106
46833      __cil_tmp60 = desc->bmAttributes;
46834#line 106
46835      __cil_tmp61 = (unsigned int )__cil_tmp60;
46836#line 106
46837      if (__cil_tmp61 != 0U) {
46838        {
46839#line 109
46840        __cil_tmp62 = & ep->desc;
46841#line 109
46842        __cil_tmp63 = (struct usb_endpoint_descriptor  const  *)__cil_tmp62;
46843#line 109
46844        tmp___4 = usb_endpoint_xfer_control(__cil_tmp63);
46845        }
46846#line 109
46847        if (tmp___4 != 0) {
46848#line 109
46849          tmp___3 = (char *)"Control";
46850        } else {
46851#line 109
46852          tmp___3 = (char *)"Bulk";
46853        }
46854        {
46855#line 109
46856        __cil_tmp64 = (struct device  const  *)ddev;
46857#line 109
46858        __cil_tmp65 = desc->bmAttributes;
46859#line 109
46860        __cil_tmp66 = (int )__cil_tmp65;
46861#line 109
46862        __cil_tmp67 = ep->desc.bEndpointAddress;
46863#line 109
46864        __cil_tmp68 = (int )__cil_tmp67;
46865#line 109
46866        dev_warn(__cil_tmp64, "%s endpoint with bmAttributes = %d in config %d interface %d altsetting %d ep %d: setting to zero\n",
46867                 tmp___3, __cil_tmp66, cfgno, inum, asnum, __cil_tmp68);
46868#line 115
46869        ep->ss_ep_comp.bmAttributes = (__u8 )0U;
46870        }
46871      } else {
46872#line 106
46873        goto _L___2;
46874      }
46875      }
46876    } else {
46877      _L___2: 
46878      {
46879#line 116
46880      __cil_tmp69 = & ep->desc;
46881#line 116
46882      __cil_tmp70 = (struct usb_endpoint_descriptor  const  *)__cil_tmp69;
46883#line 116
46884      tmp___6 = usb_endpoint_xfer_bulk(__cil_tmp70);
46885      }
46886#line 116
46887      if (tmp___6 != 0) {
46888        {
46889#line 116
46890        __cil_tmp71 = desc->bmAttributes;
46891#line 116
46892        __cil_tmp72 = (unsigned int )__cil_tmp71;
46893#line 116
46894        if (__cil_tmp72 > 16U) {
46895          {
46896#line 118
46897          __cil_tmp73 = (struct device  const  *)ddev;
46898#line 118
46899          __cil_tmp74 = ep->desc.bEndpointAddress;
46900#line 118
46901          __cil_tmp75 = (int )__cil_tmp74;
46902#line 118
46903          dev_warn(__cil_tmp73, "Bulk endpoint with more than 65536 streams in config %d interface %d altsetting %d ep %d: setting to max\n",
46904                   cfgno, inum, asnum, __cil_tmp75);
46905#line 122
46906          ep->ss_ep_comp.bmAttributes = (__u8 )16U;
46907          }
46908        } else {
46909#line 116
46910          goto _L___1;
46911        }
46912        }
46913      } else {
46914        _L___1: 
46915        {
46916#line 123
46917        __cil_tmp76 = & ep->desc;
46918#line 123
46919        __cil_tmp77 = (struct usb_endpoint_descriptor  const  *)__cil_tmp76;
46920#line 123
46921        tmp___5 = usb_endpoint_xfer_isoc(__cil_tmp77);
46922        }
46923#line 123
46924        if (tmp___5 != 0) {
46925          {
46926#line 123
46927          __cil_tmp78 = desc->bmAttributes;
46928#line 123
46929          __cil_tmp79 = (unsigned int )__cil_tmp78;
46930#line 123
46931          if (__cil_tmp79 > 2U) {
46932            {
46933#line 125
46934            __cil_tmp80 = (struct device  const  *)ddev;
46935#line 125
46936            __cil_tmp81 = desc->bmAttributes;
46937#line 125
46938            __cil_tmp82 = (int )__cil_tmp81;
46939#line 125
46940            __cil_tmp83 = __cil_tmp82 + 1;
46941#line 125
46942            __cil_tmp84 = ep->desc.bEndpointAddress;
46943#line 125
46944            __cil_tmp85 = (int )__cil_tmp84;
46945#line 125
46946            dev_warn(__cil_tmp80, "Isoc endpoint has Mult of %d in config %d interface %d altsetting %d ep %d: setting to 3\n",
46947                     __cil_tmp83, cfgno, inum, asnum, __cil_tmp85);
46948#line 129
46949            ep->ss_ep_comp.bmAttributes = (__u8 )2U;
46950            }
46951          } else {
46952
46953          }
46954          }
46955        } else {
46956
46957        }
46958      }
46959    }
46960  }
46961  {
46962#line 132
46963  __cil_tmp86 = & ep->desc;
46964#line 132
46965  __cil_tmp87 = (struct usb_endpoint_descriptor  const  *)__cil_tmp86;
46966#line 132
46967  tmp___10 = usb_endpoint_xfer_isoc(__cil_tmp87);
46968  }
46969#line 132
46970  if (tmp___10 != 0) {
46971#line 133
46972    __cil_tmp88 = desc->bmAttributes;
46973#line 133
46974    __cil_tmp89 = (int )__cil_tmp88;
46975#line 133
46976    __cil_tmp90 = __cil_tmp89 + 1;
46977#line 133
46978    __cil_tmp91 = desc->bMaxBurst;
46979#line 133
46980    __cil_tmp92 = (int )__cil_tmp91;
46981#line 133
46982    __cil_tmp93 = __cil_tmp92 + 1;
46983#line 133
46984    __cil_tmp94 = ep->desc.wMaxPacketSize;
46985#line 133
46986    __cil_tmp95 = (int )__cil_tmp94;
46987#line 133
46988    __cil_tmp96 = __cil_tmp95 * __cil_tmp93;
46989#line 133
46990    max_tx = __cil_tmp96 * __cil_tmp90;
46991  } else {
46992    {
46993#line 135
46994    __cil_tmp97 = & ep->desc;
46995#line 135
46996    __cil_tmp98 = (struct usb_endpoint_descriptor  const  *)__cil_tmp97;
46997#line 135
46998    tmp___9 = usb_endpoint_xfer_int(__cil_tmp98);
46999    }
47000#line 135
47001    if (tmp___9 != 0) {
47002#line 136
47003      __cil_tmp99 = desc->bMaxBurst;
47004#line 136
47005      __cil_tmp100 = (int )__cil_tmp99;
47006#line 136
47007      __cil_tmp101 = __cil_tmp100 + 1;
47008#line 136
47009      __cil_tmp102 = ep->desc.wMaxPacketSize;
47010#line 136
47011      __cil_tmp103 = (int )__cil_tmp102;
47012#line 136
47013      max_tx = __cil_tmp103 * __cil_tmp101;
47014    } else {
47015#line 138
47016      max_tx = 999999;
47017    }
47018  }
47019  {
47020#line 139
47021  __cil_tmp104 = desc->wBytesPerInterval;
47022#line 139
47023  __cil_tmp105 = (int )__cil_tmp104;
47024#line 139
47025  if (__cil_tmp105 > max_tx) {
47026    {
47027#line 140
47028    __cil_tmp106 = & ep->desc;
47029#line 140
47030    __cil_tmp107 = (struct usb_endpoint_descriptor  const  *)__cil_tmp106;
47031#line 140
47032    tmp___13 = usb_endpoint_xfer_isoc(__cil_tmp107);
47033    }
47034#line 140
47035    if (tmp___13 != 0) {
47036#line 140
47037      tmp___12 = (char *)"Isoc";
47038    } else {
47039#line 140
47040      tmp___12 = (char *)"Int";
47041    }
47042    {
47043#line 140
47044    __cil_tmp108 = (struct device  const  *)ddev;
47045#line 140
47046    __cil_tmp109 = desc->wBytesPerInterval;
47047#line 140
47048    __cil_tmp110 = (int )__cil_tmp109;
47049#line 140
47050    __cil_tmp111 = ep->desc.bEndpointAddress;
47051#line 140
47052    __cil_tmp112 = (int )__cil_tmp111;
47053#line 140
47054    dev_warn(__cil_tmp108, "%s endpoint with wBytesPerInterval of %d in config %d interface %d altsetting %d ep %d: setting to %d\n",
47055             tmp___12, __cil_tmp110, cfgno, inum, asnum, __cil_tmp112, max_tx);
47056#line 147
47057    ep->ss_ep_comp.wBytesPerInterval = (__le16 )max_tx;
47058    }
47059  } else {
47060
47061  }
47062  }
47063#line 149
47064  return;
47065}
47066}
47067#line 151 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/config.c.p"
47068static int usb_parse_endpoint(struct device *ddev , int cfgno , int inum , int asnum ,
47069                              struct usb_host_interface *ifp , int num_ep , unsigned char *buffer ,
47070                              int size ) 
47071{ unsigned char *buffer0 ;
47072  struct usb_endpoint_descriptor *d ;
47073  struct usb_host_endpoint *endpoint ;
47074  int n ;
47075  int i ;
47076  int j ;
47077  int retval ;
47078  size_t __len ;
47079  void *__ret ;
47080  struct device  const  *__mptr ;
47081  struct device  const  *__mptr___0 ;
47082  int tmp ;
47083  int tmp___0 ;
47084  struct device  const  *__mptr___1 ;
47085  int tmp___1 ;
47086  unsigned int maxp ;
47087  struct device  const  *__mptr___2 ;
47088  int tmp___2 ;
47089  struct device  const  *__mptr___3 ;
47090  char const   *tmp___3 ;
47091  __u8 __cil_tmp29 ;
47092  unsigned long __cil_tmp30 ;
47093  __u8 __cil_tmp31 ;
47094  int __cil_tmp32 ;
47095  __u8 __cil_tmp33 ;
47096  unsigned int __cil_tmp34 ;
47097  __u8 __cil_tmp35 ;
47098  unsigned int __cil_tmp36 ;
47099  struct device  const  *__cil_tmp37 ;
47100  __u8 __cil_tmp38 ;
47101  int __cil_tmp39 ;
47102  __u8 __cil_tmp40 ;
47103  int __cil_tmp41 ;
47104  struct device  const  *__cil_tmp42 ;
47105  __u8 __cil_tmp43 ;
47106  int __cil_tmp44 ;
47107  struct device  const  *__cil_tmp45 ;
47108  __u8 __cil_tmp46 ;
47109  int __cil_tmp47 ;
47110  __u8 __cil_tmp48 ;
47111  int __cil_tmp49 ;
47112  __u8 __cil_tmp50 ;
47113  unsigned long __cil_tmp51 ;
47114  struct usb_host_endpoint *__cil_tmp52 ;
47115  __u8 __cil_tmp53 ;
47116  int __cil_tmp54 ;
47117  int __cil_tmp55 ;
47118  struct usb_endpoint_descriptor *__cil_tmp56 ;
47119  void *__cil_tmp57 ;
47120  void const   *__cil_tmp58 ;
47121  struct list_head *__cil_tmp59 ;
47122  struct usb_endpoint_descriptor  const  *__cil_tmp60 ;
47123  struct usb_device *__cil_tmp61 ;
47124  struct usb_device *__cil_tmp62 ;
47125  enum usb_device_speed __cil_tmp63 ;
47126  unsigned int __cil_tmp64 ;
47127  int __cil_tmp65 ;
47128  struct usb_device *__cil_tmp66 ;
47129  struct usb_device *__cil_tmp67 ;
47130  enum usb_device_speed __cil_tmp68 ;
47131  unsigned int __cil_tmp69 ;
47132  int __cil_tmp70 ;
47133  __u8 __cil_tmp71 ;
47134  int __cil_tmp72 ;
47135  int __cil_tmp73 ;
47136  struct usb_endpoint_descriptor  const  *__cil_tmp74 ;
47137  struct usb_device *__cil_tmp75 ;
47138  struct usb_device *__cil_tmp76 ;
47139  enum usb_device_speed __cil_tmp77 ;
47140  unsigned int __cil_tmp78 ;
47141  int __cil_tmp79 ;
47142  __u8 __cil_tmp80 ;
47143  int __cil_tmp81 ;
47144  struct device  const  *__cil_tmp82 ;
47145  __u8 __cil_tmp83 ;
47146  int __cil_tmp84 ;
47147  __u8 __cil_tmp85 ;
47148  int __cil_tmp86 ;
47149  __u8 __cil_tmp87 ;
47150  int __cil_tmp88 ;
47151  struct device  const  *__cil_tmp89 ;
47152  __u8 __cil_tmp90 ;
47153  int __cil_tmp91 ;
47154  __u8 __cil_tmp92 ;
47155  int __cil_tmp93 ;
47156  struct usb_device *__cil_tmp94 ;
47157  struct usb_device *__cil_tmp95 ;
47158  enum usb_device_speed __cil_tmp96 ;
47159  unsigned int __cil_tmp97 ;
47160  struct usb_endpoint_descriptor  const  *__cil_tmp98 ;
47161  struct device  const  *__cil_tmp99 ;
47162  __u8 __cil_tmp100 ;
47163  int __cil_tmp101 ;
47164  __le16 __cil_tmp102 ;
47165  unsigned int __cil_tmp103 ;
47166  struct usb_device *__cil_tmp104 ;
47167  struct usb_device *__cil_tmp105 ;
47168  enum usb_device_speed __cil_tmp106 ;
47169  unsigned int __cil_tmp107 ;
47170  struct usb_endpoint_descriptor  const  *__cil_tmp108 ;
47171  __le16 __cil_tmp109 ;
47172  unsigned int __cil_tmp110 ;
47173  struct device  const  *__cil_tmp111 ;
47174  __u8 __cil_tmp112 ;
47175  int __cil_tmp113 ;
47176  struct usb_device *__cil_tmp114 ;
47177  struct usb_device *__cil_tmp115 ;
47178  enum usb_device_speed __cil_tmp116 ;
47179  unsigned int __cil_tmp117 ;
47180  unsigned int __cil_tmp118 ;
47181  long __cil_tmp119 ;
47182  unsigned int __cil_tmp120 ;
47183  long __cil_tmp121 ;
47184  unsigned int __cil_tmp122 ;
47185  unsigned int __cil_tmp123 ;
47186  unsigned int __cil_tmp124 ;
47187  struct device  const  *__cil_tmp125 ;
47188  char *__cil_tmp126 ;
47189  int *__cil_tmp127 ;
47190  unsigned int __cil_tmp128 ;
47191  long __cil_tmp129 ;
47192  unsigned int __cil_tmp130 ;
47193  long __cil_tmp131 ;
47194  unsigned int __cil_tmp132 ;
47195  unsigned int __cil_tmp133 ;
47196  unsigned int __cil_tmp134 ;
47197
47198  {
47199#line 155
47200  buffer0 = buffer;
47201#line 160
47202  d = (struct usb_endpoint_descriptor *)buffer;
47203#line 161
47204  __cil_tmp29 = d->bLength;
47205#line 161
47206  __cil_tmp30 = (unsigned long )__cil_tmp29;
47207#line 161
47208  buffer = buffer + __cil_tmp30;
47209#line 162
47210  __cil_tmp31 = d->bLength;
47211#line 162
47212  __cil_tmp32 = (int )__cil_tmp31;
47213#line 162
47214  size = size - __cil_tmp32;
47215  {
47216#line 164
47217  __cil_tmp33 = d->bLength;
47218#line 164
47219  __cil_tmp34 = (unsigned int )__cil_tmp33;
47220#line 164
47221  if (__cil_tmp34 > 8U) {
47222#line 165
47223    n = 9;
47224  } else {
47225    {
47226#line 166
47227    __cil_tmp35 = d->bLength;
47228#line 166
47229    __cil_tmp36 = (unsigned int )__cil_tmp35;
47230#line 166
47231    if (__cil_tmp36 > 6U) {
47232#line 167
47233      n = 7;
47234    } else {
47235      {
47236#line 169
47237      __cil_tmp37 = (struct device  const  *)ddev;
47238#line 169
47239      __cil_tmp38 = d->bLength;
47240#line 169
47241      __cil_tmp39 = (int )__cil_tmp38;
47242#line 169
47243      dev_warn(__cil_tmp37, "config %d interface %d altsetting %d has an invalid endpoint descriptor of length %d, skipping\n",
47244               cfgno, inum, asnum, __cil_tmp39);
47245      }
47246#line 172
47247      goto skip_to_next_endpoint_or_interface_descriptor;
47248    }
47249    }
47250  }
47251  }
47252#line 175
47253  __cil_tmp40 = d->bEndpointAddress;
47254#line 175
47255  __cil_tmp41 = (int )__cil_tmp40;
47256#line 175
47257  i = __cil_tmp41 & -129;
47258#line 176
47259  if (i > 15) {
47260    {
47261#line 177
47262    __cil_tmp42 = (struct device  const  *)ddev;
47263#line 177
47264    __cil_tmp43 = d->bEndpointAddress;
47265#line 177
47266    __cil_tmp44 = (int )__cil_tmp43;
47267#line 177
47268    dev_warn(__cil_tmp42, "config %d interface %d altsetting %d has an invalid endpoint with address 0x%X, skipping\n",
47269             cfgno, inum, asnum, __cil_tmp44);
47270    }
47271#line 180
47272    goto skip_to_next_endpoint_or_interface_descriptor;
47273  } else
47274#line 176
47275  if (i == 0) {
47276    {
47277#line 177
47278    __cil_tmp45 = (struct device  const  *)ddev;
47279#line 177
47280    __cil_tmp46 = d->bEndpointAddress;
47281#line 177
47282    __cil_tmp47 = (int )__cil_tmp46;
47283#line 177
47284    dev_warn(__cil_tmp45, "config %d interface %d altsetting %d has an invalid endpoint with address 0x%X, skipping\n",
47285             cfgno, inum, asnum, __cil_tmp47);
47286    }
47287#line 180
47288    goto skip_to_next_endpoint_or_interface_descriptor;
47289  } else {
47290
47291  }
47292  {
47293#line 184
47294  __cil_tmp48 = ifp->desc.bNumEndpoints;
47295#line 184
47296  __cil_tmp49 = (int )__cil_tmp48;
47297#line 184
47298  if (__cil_tmp49 >= num_ep) {
47299#line 185
47300    goto skip_to_next_endpoint_or_interface_descriptor;
47301  } else {
47302
47303  }
47304  }
47305  {
47306#line 187
47307  __cil_tmp50 = ifp->desc.bNumEndpoints;
47308#line 187
47309  __cil_tmp51 = (unsigned long )__cil_tmp50;
47310#line 187
47311  __cil_tmp52 = ifp->endpoint;
47312#line 187
47313  endpoint = __cil_tmp52 + __cil_tmp51;
47314#line 188
47315  __cil_tmp53 = ifp->desc.bNumEndpoints;
47316#line 188
47317  __cil_tmp54 = (int )__cil_tmp53;
47318#line 188
47319  __cil_tmp55 = __cil_tmp54 + 1;
47320#line 188
47321  ifp->desc.bNumEndpoints = (__u8 )__cil_tmp55;
47322#line 190
47323  __len = (size_t )n;
47324#line 190
47325  __cil_tmp56 = & endpoint->desc;
47326#line 190
47327  __cil_tmp57 = (void *)__cil_tmp56;
47328#line 190
47329  __cil_tmp58 = (void const   *)d;
47330#line 190
47331  __ret = __builtin_memcpy(__cil_tmp57, __cil_tmp58, __len);
47332#line 191
47333  __cil_tmp59 = & endpoint->urb_list;
47334#line 191
47335  INIT_LIST_HEAD(__cil_tmp59);
47336#line 195
47337  i = 0;
47338#line 196
47339  j = 255;
47340#line 197
47341  __cil_tmp60 = (struct usb_endpoint_descriptor  const  *)d;
47342#line 197
47343  tmp___0 = usb_endpoint_xfer_int(__cil_tmp60);
47344  }
47345#line 197
47346  if (tmp___0 != 0) {
47347#line 198
47348    i = 1;
47349#line 199
47350    __mptr = (struct device  const  *)ddev;
47351    {
47352#line 200
47353    __cil_tmp61 = (struct usb_device *)__mptr;
47354#line 200
47355    __cil_tmp62 = __cil_tmp61 + 1152921504606846840UL;
47356#line 200
47357    __cil_tmp63 = __cil_tmp62->speed;
47358#line 200
47359    __cil_tmp64 = (unsigned int )__cil_tmp63;
47360#line 200
47361    __cil_tmp65 = (int )__cil_tmp64;
47362#line 200
47363    if (__cil_tmp65 == 5) {
47364#line 200
47365      goto case_5;
47366    } else {
47367      {
47368#line 201
47369      __cil_tmp66 = (struct usb_device *)__mptr;
47370#line 201
47371      __cil_tmp67 = __cil_tmp66 + 1152921504606846840UL;
47372#line 201
47373      __cil_tmp68 = __cil_tmp67->speed;
47374#line 201
47375      __cil_tmp69 = (unsigned int )__cil_tmp68;
47376#line 201
47377      __cil_tmp70 = (int )__cil_tmp69;
47378#line 201
47379      if (__cil_tmp70 == 3) {
47380#line 201
47381        goto case_3;
47382      } else {
47383#line 211
47384        goto switch_default;
47385#line 199
47386        if (0) {
47387          case_5: ;
47388          case_3: 
47389          {
47390#line 206
47391          __cil_tmp71 = d->bInterval;
47392#line 206
47393          __cil_tmp72 = (int )__cil_tmp71;
47394#line 206
47395          __cil_tmp73 = __cil_tmp72 * 8;
47396#line 206
47397          n = fls(__cil_tmp73);
47398          }
47399#line 207
47400          if (n == 0) {
47401#line 208
47402            n = 9;
47403          } else {
47404
47405          }
47406#line 209
47407          j = 16;
47408#line 210
47409          goto ldv_24281;
47410          switch_default: 
47411#line 215
47412          n = 32;
47413#line 216
47414          goto ldv_24281;
47415        } else {
47416
47417        }
47418      }
47419      }
47420    }
47421    }
47422    ldv_24281: ;
47423  } else {
47424    {
47425#line 218
47426    __cil_tmp74 = (struct usb_endpoint_descriptor  const  *)d;
47427#line 218
47428    tmp = usb_endpoint_xfer_isoc(__cil_tmp74);
47429    }
47430#line 218
47431    if (tmp != 0) {
47432#line 219
47433      i = 1;
47434#line 220
47435      j = 16;
47436#line 221
47437      __mptr___0 = (struct device  const  *)ddev;
47438      {
47439#line 222
47440      __cil_tmp75 = (struct usb_device *)__mptr___0;
47441#line 222
47442      __cil_tmp76 = __cil_tmp75 + 1152921504606846840UL;
47443#line 222
47444      __cil_tmp77 = __cil_tmp76->speed;
47445#line 222
47446      __cil_tmp78 = (unsigned int )__cil_tmp77;
47447#line 222
47448      __cil_tmp79 = (int )__cil_tmp78;
47449#line 222
47450      if (__cil_tmp79 == 3) {
47451#line 222
47452        goto case_3___0;
47453      } else {
47454#line 225
47455        goto switch_default___0;
47456#line 221
47457        if (0) {
47458          case_3___0: 
47459#line 223
47460          n = 9;
47461#line 224
47462          goto ldv_24286;
47463          switch_default___0: 
47464#line 226
47465          n = 6;
47466#line 227
47467          goto ldv_24286;
47468        } else {
47469
47470        }
47471      }
47472      }
47473      ldv_24286: ;
47474    } else {
47475
47476    }
47477  }
47478  {
47479#line 230
47480  __cil_tmp80 = d->bInterval;
47481#line 230
47482  __cil_tmp81 = (int )__cil_tmp80;
47483#line 230
47484  if (__cil_tmp81 < i) {
47485    {
47486#line 231
47487    __cil_tmp82 = (struct device  const  *)ddev;
47488#line 231
47489    __cil_tmp83 = d->bEndpointAddress;
47490#line 231
47491    __cil_tmp84 = (int )__cil_tmp83;
47492#line 231
47493    __cil_tmp85 = d->bInterval;
47494#line 231
47495    __cil_tmp86 = (int )__cil_tmp85;
47496#line 231
47497    dev_warn(__cil_tmp82, "config %d interface %d altsetting %d endpoint 0x%X has an invalid bInterval %d, changing to %d\n",
47498             cfgno, inum, asnum, __cil_tmp84, __cil_tmp86, n);
47499#line 236
47500    endpoint->desc.bInterval = (__u8 )n;
47501    }
47502  } else {
47503    {
47504#line 230
47505    __cil_tmp87 = d->bInterval;
47506#line 230
47507    __cil_tmp88 = (int )__cil_tmp87;
47508#line 230
47509    if (__cil_tmp88 > j) {
47510      {
47511#line 231
47512      __cil_tmp89 = (struct device  const  *)ddev;
47513#line 231
47514      __cil_tmp90 = d->bEndpointAddress;
47515#line 231
47516      __cil_tmp91 = (int )__cil_tmp90;
47517#line 231
47518      __cil_tmp92 = d->bInterval;
47519#line 231
47520      __cil_tmp93 = (int )__cil_tmp92;
47521#line 231
47522      dev_warn(__cil_tmp89, "config %d interface %d altsetting %d endpoint 0x%X has an invalid bInterval %d, changing to %d\n",
47523               cfgno, inum, asnum, __cil_tmp91, __cil_tmp93, n);
47524#line 236
47525      endpoint->desc.bInterval = (__u8 )n;
47526      }
47527    } else {
47528
47529    }
47530    }
47531  }
47532  }
47533#line 243
47534  __mptr___1 = (struct device  const  *)ddev;
47535  {
47536#line 243
47537  __cil_tmp94 = (struct usb_device *)__mptr___1;
47538#line 243
47539  __cil_tmp95 = __cil_tmp94 + 1152921504606846840UL;
47540#line 243
47541  __cil_tmp96 = __cil_tmp95->speed;
47542#line 243
47543  __cil_tmp97 = (unsigned int )__cil_tmp96;
47544#line 243
47545  if (__cil_tmp97 == 1U) {
47546    {
47547#line 243
47548    __cil_tmp98 = (struct usb_endpoint_descriptor  const  *)d;
47549#line 243
47550    tmp___1 = usb_endpoint_xfer_bulk(__cil_tmp98);
47551    }
47552#line 243
47553    if (tmp___1 != 0) {
47554      {
47555#line 245
47556      __cil_tmp99 = (struct device  const  *)ddev;
47557#line 245
47558      __cil_tmp100 = d->bEndpointAddress;
47559#line 245
47560      __cil_tmp101 = (int )__cil_tmp100;
47561#line 245
47562      dev_warn(__cil_tmp99, "config %d interface %d altsetting %d endpoint 0x%X is Bulk; changing to Interrupt\n",
47563               cfgno, inum, asnum, __cil_tmp101);
47564#line 248
47565      endpoint->desc.bmAttributes = (__u8 )3U;
47566#line 249
47567      endpoint->desc.bInterval = (__u8 )1U;
47568      }
47569      {
47570#line 250
47571      __cil_tmp102 = endpoint->desc.wMaxPacketSize;
47572#line 250
47573      __cil_tmp103 = (unsigned int )__cil_tmp102;
47574#line 250
47575      if (__cil_tmp103 > 8U) {
47576#line 251
47577        endpoint->desc.wMaxPacketSize = (__le16 )8U;
47578      } else {
47579
47580      }
47581      }
47582    } else {
47583
47584    }
47585  } else {
47586
47587  }
47588  }
47589#line 259
47590  __mptr___2 = (struct device  const  *)ddev;
47591  {
47592#line 259
47593  __cil_tmp104 = (struct usb_device *)__mptr___2;
47594#line 259
47595  __cil_tmp105 = __cil_tmp104 + 1152921504606846840UL;
47596#line 259
47597  __cil_tmp106 = __cil_tmp105->speed;
47598#line 259
47599  __cil_tmp107 = (unsigned int )__cil_tmp106;
47600#line 259
47601  if (__cil_tmp107 == 3U) {
47602    {
47603#line 259
47604    __cil_tmp108 = (struct usb_endpoint_descriptor  const  *)d;
47605#line 259
47606    tmp___2 = usb_endpoint_xfer_bulk(__cil_tmp108);
47607    }
47608#line 259
47609    if (tmp___2 != 0) {
47610#line 263
47611      __cil_tmp109 = endpoint->desc.wMaxPacketSize;
47612#line 263
47613      __cil_tmp110 = (unsigned int )__cil_tmp109;
47614#line 263
47615      maxp = __cil_tmp110 & 2047U;
47616#line 264
47617      if (maxp != 512U) {
47618        {
47619#line 265
47620        __cil_tmp111 = (struct device  const  *)ddev;
47621#line 265
47622        __cil_tmp112 = d->bEndpointAddress;
47623#line 265
47624        __cil_tmp113 = (int )__cil_tmp112;
47625#line 265
47626        dev_warn(__cil_tmp111, "config %d interface %d altsetting %d bulk endpoint 0x%X has invalid maxpacket %d\n",
47627                 cfgno, inum, asnum, __cil_tmp113, maxp);
47628        }
47629      } else {
47630
47631      }
47632    } else {
47633
47634    }
47635  } else {
47636
47637  }
47638  }
47639#line 272
47640  __mptr___3 = (struct device  const  *)ddev;
47641  {
47642#line 272
47643  __cil_tmp114 = (struct usb_device *)__mptr___3;
47644#line 272
47645  __cil_tmp115 = __cil_tmp114 + 1152921504606846840UL;
47646#line 272
47647  __cil_tmp116 = __cil_tmp115->speed;
47648#line 272
47649  __cil_tmp117 = (unsigned int )__cil_tmp116;
47650#line 272
47651  if (__cil_tmp117 == 5U) {
47652    {
47653#line 273
47654    usb_parse_ss_endpoint_companion(ddev, cfgno, inum, asnum, endpoint, buffer, size);
47655    }
47656  } else {
47657
47658  }
47659  }
47660  {
47661#line 278
47662  endpoint->extra = buffer;
47663#line 279
47664  i = find_next_descriptor(buffer, size, 5, 4, & n);
47665#line 281
47666  endpoint->extralen = i;
47667#line 282
47668  __cil_tmp118 = (unsigned int )i;
47669#line 282
47670  __cil_tmp119 = (long )buffer0;
47671#line 282
47672  __cil_tmp120 = (unsigned int )__cil_tmp119;
47673#line 282
47674  __cil_tmp121 = (long )buffer;
47675#line 282
47676  __cil_tmp122 = (unsigned int )__cil_tmp121;
47677#line 282
47678  __cil_tmp123 = __cil_tmp122 - __cil_tmp120;
47679#line 282
47680  __cil_tmp124 = __cil_tmp123 + __cil_tmp118;
47681#line 282
47682  retval = (int )__cil_tmp124;
47683  }
47684#line 283
47685  if (n > 0) {
47686    {
47687#line 284
47688    tmp___3 = plural(n);
47689#line 284
47690    __cil_tmp125 = (struct device  const  *)ddev;
47691#line 284
47692    __cil_tmp126 = (char *)"endpoint";
47693#line 284
47694    dev_printk("<7>", __cil_tmp125, "skipped %d descriptor%s after %s\n", n, tmp___3,
47695               __cil_tmp126);
47696    }
47697  } else {
47698
47699  }
47700#line 286
47701  return (retval);
47702  skip_to_next_endpoint_or_interface_descriptor: 
47703  {
47704#line 289
47705  __cil_tmp127 = (int *)0;
47706#line 289
47707  i = find_next_descriptor(buffer, size, 5, 4, __cil_tmp127);
47708  }
47709  {
47710#line 291
47711  __cil_tmp128 = (unsigned int )i;
47712#line 291
47713  __cil_tmp129 = (long )buffer0;
47714#line 291
47715  __cil_tmp130 = (unsigned int )__cil_tmp129;
47716#line 291
47717  __cil_tmp131 = (long )buffer;
47718#line 291
47719  __cil_tmp132 = (unsigned int )__cil_tmp131;
47720#line 291
47721  __cil_tmp133 = __cil_tmp132 - __cil_tmp130;
47722#line 291
47723  __cil_tmp134 = __cil_tmp133 + __cil_tmp128;
47724#line 291
47725  return ((int )__cil_tmp134);
47726  }
47727}
47728}
47729#line 294 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/config.c.p"
47730void usb_release_interface_cache(struct kref *ref ) 
47731{ struct usb_interface_cache *intfc ;
47732  struct kref  const  *__mptr ;
47733  int j ;
47734  struct usb_host_interface *alt ;
47735  struct usb_interface_cache *__cil_tmp6 ;
47736  unsigned long __cil_tmp7 ;
47737  struct usb_host_interface (*__cil_tmp8)[0U] ;
47738  struct usb_host_interface *__cil_tmp9 ;
47739  struct usb_host_endpoint *__cil_tmp10 ;
47740  void const   *__cil_tmp11 ;
47741  char *__cil_tmp12 ;
47742  void const   *__cil_tmp13 ;
47743  unsigned int __cil_tmp14 ;
47744  unsigned int __cil_tmp15 ;
47745  void const   *__cil_tmp16 ;
47746
47747  {
47748#line 296
47749  __mptr = (struct kref  const  *)ref;
47750#line 296
47751  __cil_tmp6 = (struct usb_interface_cache *)__mptr;
47752#line 296
47753  intfc = __cil_tmp6 + 1152921504606846972UL;
47754#line 299
47755  j = 0;
47756#line 299
47757  goto ldv_24304;
47758  ldv_24303: 
47759  {
47760#line 300
47761  __cil_tmp7 = (unsigned long )j;
47762#line 300
47763  __cil_tmp8 = & intfc->altsetting;
47764#line 300
47765  __cil_tmp9 = (struct usb_host_interface *)__cil_tmp8;
47766#line 300
47767  alt = __cil_tmp9 + __cil_tmp7;
47768#line 302
47769  __cil_tmp10 = alt->endpoint;
47770#line 302
47771  __cil_tmp11 = (void const   *)__cil_tmp10;
47772#line 302
47773  kfree(__cil_tmp11);
47774#line 303
47775  __cil_tmp12 = alt->string;
47776#line 303
47777  __cil_tmp13 = (void const   *)__cil_tmp12;
47778#line 303
47779  kfree(__cil_tmp13);
47780#line 299
47781  j = j + 1;
47782  }
47783  ldv_24304: ;
47784  {
47785#line 299
47786  __cil_tmp14 = intfc->num_altsetting;
47787#line 299
47788  __cil_tmp15 = (unsigned int )j;
47789#line 299
47790  if (__cil_tmp15 < __cil_tmp14) {
47791#line 300
47792    goto ldv_24303;
47793  } else {
47794#line 302
47795    goto ldv_24305;
47796  }
47797  }
47798  ldv_24305: 
47799  {
47800#line 305
47801  __cil_tmp16 = (void const   *)intfc;
47802#line 305
47803  kfree(__cil_tmp16);
47804  }
47805#line 306
47806  return;
47807}
47808}
47809#line 308 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/config.c.p"
47810static int usb_parse_interface(struct device *ddev , int cfgno , struct usb_host_config *config ,
47811                               unsigned char *buffer , int size , u8 *inums , u8 *nalts ) 
47812{ unsigned char *buffer0 ;
47813  struct usb_interface_descriptor *d ;
47814  int inum ;
47815  int asnum ;
47816  struct usb_interface_cache *intfc ;
47817  struct usb_host_interface *alt ;
47818  int i ;
47819  int n ;
47820  int len ;
47821  int retval ;
47822  int num_ep ;
47823  int num_ep_orig ;
47824  size_t __len ;
47825  void *__ret ;
47826  char const   *tmp ;
47827  void *tmp___0 ;
47828  char const   *tmp___1 ;
47829  __u8 __cil_tmp25 ;
47830  unsigned long __cil_tmp26 ;
47831  __u8 __cil_tmp27 ;
47832  int __cil_tmp28 ;
47833  __u8 __cil_tmp29 ;
47834  unsigned int __cil_tmp30 ;
47835  __u8 __cil_tmp31 ;
47836  unsigned long __cil_tmp32 ;
47837  u8 *__cil_tmp33 ;
47838  u8 __cil_tmp34 ;
47839  int __cil_tmp35 ;
47840  __u8 __cil_tmp36 ;
47841  int __cil_tmp37 ;
47842  struct usb_interface_cache *__cil_tmp38 ;
47843  unsigned long __cil_tmp39 ;
47844  unsigned long __cil_tmp40 ;
47845  unsigned long __cil_tmp41 ;
47846  u8 *__cil_tmp42 ;
47847  u8 __cil_tmp43 ;
47848  unsigned int __cil_tmp44 ;
47849  unsigned int __cil_tmp45 ;
47850  __u8 __cil_tmp46 ;
47851  struct usb_host_interface (*__cil_tmp47)[0U] ;
47852  __u8 __cil_tmp48 ;
47853  int __cil_tmp49 ;
47854  struct device  const  *__cil_tmp50 ;
47855  unsigned int __cil_tmp51 ;
47856  unsigned int __cil_tmp52 ;
47857  unsigned int __cil_tmp53 ;
47858  struct usb_interface_descriptor *__cil_tmp54 ;
47859  void *__cil_tmp55 ;
47860  void const   *__cil_tmp56 ;
47861  struct usb_interface_descriptor *__cil_tmp57 ;
47862  void *__cil_tmp58 ;
47863  void const   *__cil_tmp59 ;
47864  struct device  const  *__cil_tmp60 ;
47865  char *__cil_tmp61 ;
47866  unsigned long __cil_tmp62 ;
47867  __u8 __cil_tmp63 ;
47868  struct device  const  *__cil_tmp64 ;
47869  unsigned int __cil_tmp65 ;
47870  unsigned int __cil_tmp66 ;
47871  size_t __cil_tmp67 ;
47872  struct usb_host_endpoint *__cil_tmp68 ;
47873  unsigned long __cil_tmp69 ;
47874  struct usb_host_endpoint *__cil_tmp70 ;
47875  unsigned long __cil_tmp71 ;
47876  struct usb_descriptor_header *__cil_tmp72 ;
47877  __u8 __cil_tmp73 ;
47878  unsigned int __cil_tmp74 ;
47879  unsigned long __cil_tmp75 ;
47880  struct device  const  *__cil_tmp76 ;
47881  long __cil_tmp77 ;
47882  unsigned int __cil_tmp78 ;
47883  long __cil_tmp79 ;
47884  unsigned int __cil_tmp80 ;
47885  unsigned int __cil_tmp81 ;
47886  int *__cil_tmp82 ;
47887  unsigned int __cil_tmp83 ;
47888  long __cil_tmp84 ;
47889  unsigned int __cil_tmp85 ;
47890  long __cil_tmp86 ;
47891  unsigned int __cil_tmp87 ;
47892  unsigned int __cil_tmp88 ;
47893  unsigned int __cil_tmp89 ;
47894
47895  {
47896#line 312
47897  buffer0 = buffer;
47898#line 321
47899  d = (struct usb_interface_descriptor *)buffer;
47900#line 322
47901  __cil_tmp25 = d->bLength;
47902#line 322
47903  __cil_tmp26 = (unsigned long )__cil_tmp25;
47904#line 322
47905  buffer = buffer + __cil_tmp26;
47906#line 323
47907  __cil_tmp27 = d->bLength;
47908#line 323
47909  __cil_tmp28 = (int )__cil_tmp27;
47910#line 323
47911  size = size - __cil_tmp28;
47912  {
47913#line 325
47914  __cil_tmp29 = d->bLength;
47915#line 325
47916  __cil_tmp30 = (unsigned int )__cil_tmp29;
47917#line 325
47918  if (__cil_tmp30 <= 8U) {
47919#line 326
47920    goto skip_to_next_interface_descriptor;
47921  } else {
47922
47923  }
47924  }
47925#line 329
47926  intfc = (struct usb_interface_cache *)0;
47927#line 330
47928  __cil_tmp31 = d->bInterfaceNumber;
47929#line 330
47930  inum = (int )__cil_tmp31;
47931#line 331
47932  i = 0;
47933#line 331
47934  goto ldv_24330;
47935  ldv_24329: ;
47936  {
47937#line 332
47938  __cil_tmp32 = (unsigned long )i;
47939#line 332
47940  __cil_tmp33 = inums + __cil_tmp32;
47941#line 332
47942  __cil_tmp34 = *__cil_tmp33;
47943#line 332
47944  __cil_tmp35 = (int )__cil_tmp34;
47945#line 332
47946  if (__cil_tmp35 == inum) {
47947#line 333
47948    intfc = config->intf_cache[i];
47949#line 334
47950    goto ldv_24328;
47951  } else {
47952
47953  }
47954  }
47955#line 331
47956  i = i + 1;
47957  ldv_24330: ;
47958  {
47959#line 331
47960  __cil_tmp36 = config->desc.bNumInterfaces;
47961#line 331
47962  __cil_tmp37 = (int )__cil_tmp36;
47963#line 331
47964  if (__cil_tmp37 > i) {
47965#line 332
47966    goto ldv_24329;
47967  } else {
47968#line 334
47969    goto ldv_24328;
47970  }
47971  }
47972  ldv_24328: ;
47973  {
47974#line 337
47975  __cil_tmp38 = (struct usb_interface_cache *)0;
47976#line 337
47977  __cil_tmp39 = (unsigned long )__cil_tmp38;
47978#line 337
47979  __cil_tmp40 = (unsigned long )intfc;
47980#line 337
47981  if (__cil_tmp40 == __cil_tmp39) {
47982#line 338
47983    goto skip_to_next_interface_descriptor;
47984  } else {
47985    {
47986#line 337
47987    __cil_tmp41 = (unsigned long )i;
47988#line 337
47989    __cil_tmp42 = nalts + __cil_tmp41;
47990#line 337
47991    __cil_tmp43 = *__cil_tmp42;
47992#line 337
47993    __cil_tmp44 = (unsigned int )__cil_tmp43;
47994#line 337
47995    __cil_tmp45 = intfc->num_altsetting;
47996#line 337
47997    if (__cil_tmp45 >= __cil_tmp44) {
47998#line 338
47999      goto skip_to_next_interface_descriptor;
48000    } else {
48001
48002    }
48003    }
48004  }
48005  }
48006#line 341
48007  __cil_tmp46 = d->bAlternateSetting;
48008#line 341
48009  asnum = (int )__cil_tmp46;
48010#line 342
48011  i = 0;
48012#line 342
48013  __cil_tmp47 = & intfc->altsetting;
48014#line 342
48015  alt = (struct usb_host_interface *)__cil_tmp47;
48016#line 342
48017  goto ldv_24332;
48018  ldv_24331: ;
48019  {
48020#line 345
48021  __cil_tmp48 = alt->desc.bAlternateSetting;
48022#line 345
48023  __cil_tmp49 = (int )__cil_tmp48;
48024#line 345
48025  if (__cil_tmp49 == asnum) {
48026    {
48027#line 346
48028    __cil_tmp50 = (struct device  const  *)ddev;
48029#line 346
48030    dev_warn(__cil_tmp50, "Duplicate descriptor for config %d interface %d altsetting %d, skipping\n",
48031             cfgno, inum, asnum);
48032    }
48033#line 349
48034    goto skip_to_next_interface_descriptor;
48035  } else {
48036
48037  }
48038  }
48039#line 344
48040  i = i + 1;
48041#line 344
48042  alt = alt + 1;
48043  ldv_24332: ;
48044  {
48045#line 342
48046  __cil_tmp51 = intfc->num_altsetting;
48047#line 342
48048  __cil_tmp52 = (unsigned int )i;
48049#line 342
48050  if (__cil_tmp52 < __cil_tmp51) {
48051#line 344
48052    goto ldv_24331;
48053  } else {
48054#line 346
48055    goto ldv_24333;
48056  }
48057  }
48058  ldv_24333: 
48059#line 353
48060  __cil_tmp53 = intfc->num_altsetting;
48061#line 353
48062  intfc->num_altsetting = __cil_tmp53 + 1U;
48063#line 354
48064  __len = 9UL;
48065#line 354
48066  if (__len > 63UL) {
48067    {
48068#line 354
48069    __cil_tmp54 = & alt->desc;
48070#line 354
48071    __cil_tmp55 = (void *)__cil_tmp54;
48072#line 354
48073    __cil_tmp56 = (void const   *)d;
48074#line 354
48075    __ret = __memcpy(__cil_tmp55, __cil_tmp56, __len);
48076    }
48077  } else {
48078    {
48079#line 354
48080    __cil_tmp57 = & alt->desc;
48081#line 354
48082    __cil_tmp58 = (void *)__cil_tmp57;
48083#line 354
48084    __cil_tmp59 = (void const   *)d;
48085#line 354
48086    __ret = __builtin_memcpy(__cil_tmp58, __cil_tmp59, __len);
48087    }
48088  }
48089  {
48090#line 358
48091  alt->extra = buffer;
48092#line 359
48093  i = find_next_descriptor(buffer, size, 5, 4, & n);
48094#line 361
48095  alt->extralen = i;
48096  }
48097#line 362
48098  if (n > 0) {
48099    {
48100#line 363
48101    tmp = plural(n);
48102#line 363
48103    __cil_tmp60 = (struct device  const  *)ddev;
48104#line 363
48105    __cil_tmp61 = (char *)"interface";
48106#line 363
48107    dev_printk("<7>", __cil_tmp60, "skipped %d descriptor%s after %s\n", n, tmp, __cil_tmp61);
48108    }
48109  } else {
48110
48111  }
48112#line 365
48113  __cil_tmp62 = (unsigned long )i;
48114#line 365
48115  buffer = buffer + __cil_tmp62;
48116#line 366
48117  size = size - i;
48118#line 369
48119  __cil_tmp63 = alt->desc.bNumEndpoints;
48120#line 369
48121  num_ep_orig = (int )__cil_tmp63;
48122#line 369
48123  num_ep = num_ep_orig;
48124#line 370
48125  alt->desc.bNumEndpoints = (__u8 )0U;
48126#line 371
48127  if (num_ep > 30) {
48128    {
48129#line 372
48130    __cil_tmp64 = (struct device  const  *)ddev;
48131#line 372
48132    dev_warn(__cil_tmp64, "too many endpoints for config %d interface %d altsetting %d: %d, using maximum allowed: %d\n",
48133             cfgno, inum, asnum, num_ep, 30);
48134#line 375
48135    num_ep = 30;
48136    }
48137  } else {
48138
48139  }
48140#line 378
48141  if (num_ep > 0) {
48142    {
48143#line 380
48144    __cil_tmp65 = (unsigned int )num_ep;
48145#line 380
48146    __cil_tmp66 = __cil_tmp65 * 64U;
48147#line 380
48148    len = (int )__cil_tmp66;
48149#line 381
48150    __cil_tmp67 = (size_t )len;
48151#line 381
48152    tmp___0 = kzalloc(__cil_tmp67, 208U);
48153#line 381
48154    alt->endpoint = (struct usb_host_endpoint *)tmp___0;
48155    }
48156    {
48157#line 382
48158    __cil_tmp68 = (struct usb_host_endpoint *)0;
48159#line 382
48160    __cil_tmp69 = (unsigned long )__cil_tmp68;
48161#line 382
48162    __cil_tmp70 = alt->endpoint;
48163#line 382
48164    __cil_tmp71 = (unsigned long )__cil_tmp70;
48165#line 382
48166    if (__cil_tmp71 == __cil_tmp69) {
48167#line 383
48168      return (-12);
48169    } else {
48170
48171    }
48172    }
48173  } else {
48174
48175  }
48176#line 387
48177  n = 0;
48178#line 388
48179  goto ldv_24339;
48180  ldv_24338: ;
48181  {
48182#line 389
48183  __cil_tmp72 = (struct usb_descriptor_header *)buffer;
48184#line 389
48185  __cil_tmp73 = __cil_tmp72->bDescriptorType;
48186#line 389
48187  __cil_tmp74 = (unsigned int )__cil_tmp73;
48188#line 389
48189  if (__cil_tmp74 == 4U) {
48190#line 391
48191    goto ldv_24337;
48192  } else {
48193
48194  }
48195  }
48196  {
48197#line 392
48198  retval = usb_parse_endpoint(ddev, cfgno, inum, asnum, alt, num_ep, buffer, size);
48199  }
48200#line 394
48201  if (retval < 0) {
48202#line 395
48203    return (retval);
48204  } else {
48205
48206  }
48207#line 396
48208  n = n + 1;
48209#line 398
48210  __cil_tmp75 = (unsigned long )retval;
48211#line 398
48212  buffer = buffer + __cil_tmp75;
48213#line 399
48214  size = size - retval;
48215  ldv_24339: ;
48216#line 388
48217  if (size > 0) {
48218#line 389
48219    goto ldv_24338;
48220  } else {
48221#line 391
48222    goto ldv_24337;
48223  }
48224  ldv_24337: ;
48225#line 402
48226  if (n != num_ep_orig) {
48227    {
48228#line 403
48229    tmp___1 = plural(n);
48230#line 403
48231    __cil_tmp76 = (struct device  const  *)ddev;
48232#line 403
48233    dev_warn(__cil_tmp76, "config %d interface %d altsetting %d has %d endpoint descriptor%s, different from the interface descriptor\'s value: %d\n",
48234             cfgno, inum, asnum, n, tmp___1, num_ep_orig);
48235    }
48236  } else {
48237
48238  }
48239  {
48240#line 407
48241  __cil_tmp77 = (long )buffer0;
48242#line 407
48243  __cil_tmp78 = (unsigned int )__cil_tmp77;
48244#line 407
48245  __cil_tmp79 = (long )buffer;
48246#line 407
48247  __cil_tmp80 = (unsigned int )__cil_tmp79;
48248#line 407
48249  __cil_tmp81 = __cil_tmp80 - __cil_tmp78;
48250#line 407
48251  return ((int )__cil_tmp81);
48252  }
48253  skip_to_next_interface_descriptor: 
48254  {
48255#line 410
48256  __cil_tmp82 = (int *)0;
48257#line 410
48258  i = find_next_descriptor(buffer, size, 4, 4, __cil_tmp82);
48259  }
48260  {
48261#line 412
48262  __cil_tmp83 = (unsigned int )i;
48263#line 412
48264  __cil_tmp84 = (long )buffer0;
48265#line 412
48266  __cil_tmp85 = (unsigned int )__cil_tmp84;
48267#line 412
48268  __cil_tmp86 = (long )buffer;
48269#line 412
48270  __cil_tmp87 = (unsigned int )__cil_tmp86;
48271#line 412
48272  __cil_tmp88 = __cil_tmp87 - __cil_tmp85;
48273#line 412
48274  __cil_tmp89 = __cil_tmp88 + __cil_tmp83;
48275#line 412
48276  return ((int )__cil_tmp89);
48277  }
48278}
48279}
48280#line 415 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/config.c.p"
48281static int usb_parse_configuration(struct usb_device *dev , int cfgidx , struct usb_host_config *config ,
48282                                   unsigned char *buffer , int size ) 
48283{ struct device *ddev ;
48284  unsigned char *buffer0 ;
48285  int cfgno ;
48286  int nintf ;
48287  int nintf_orig ;
48288  int i ;
48289  int j ;
48290  int n ;
48291  struct usb_interface_cache *intfc ;
48292  unsigned char *buffer2 ;
48293  int size2 ;
48294  struct usb_descriptor_header *header ;
48295  int len ;
48296  int retval ;
48297  u8 inums[32U] ;
48298  u8 nalts[32U] ;
48299  unsigned int iad_num ;
48300  size_t __len ;
48301  void *__ret ;
48302  char const   *tmp ;
48303  struct usb_interface_descriptor *d ;
48304  int inum ;
48305  char const   *tmp___0 ;
48306  void *tmp___1 ;
48307  char const   *tmp___2 ;
48308  struct usb_config_descriptor *__cil_tmp31 ;
48309  void *__cil_tmp32 ;
48310  void const   *__cil_tmp33 ;
48311  struct usb_config_descriptor *__cil_tmp34 ;
48312  void *__cil_tmp35 ;
48313  void const   *__cil_tmp36 ;
48314  __u8 __cil_tmp37 ;
48315  unsigned int __cil_tmp38 ;
48316  struct device  const  *__cil_tmp39 ;
48317  __u8 __cil_tmp40 ;
48318  int __cil_tmp41 ;
48319  __u8 __cil_tmp42 ;
48320  int __cil_tmp43 ;
48321  __u8 __cil_tmp44 ;
48322  unsigned int __cil_tmp45 ;
48323  struct device  const  *__cil_tmp46 ;
48324  __u8 __cil_tmp47 ;
48325  int __cil_tmp48 ;
48326  __u8 __cil_tmp49 ;
48327  int __cil_tmp50 ;
48328  __u8 __cil_tmp51 ;
48329  __u8 __cil_tmp52 ;
48330  unsigned long __cil_tmp53 ;
48331  __u8 __cil_tmp54 ;
48332  int __cil_tmp55 ;
48333  __u8 __cil_tmp56 ;
48334  struct device  const  *__cil_tmp57 ;
48335  unsigned int __cil_tmp58 ;
48336  struct device  const  *__cil_tmp59 ;
48337  __u8 __cil_tmp60 ;
48338  int __cil_tmp61 ;
48339  struct device  const  *__cil_tmp62 ;
48340  __u8 __cil_tmp63 ;
48341  int __cil_tmp64 ;
48342  __u8 __cil_tmp65 ;
48343  unsigned int __cil_tmp66 ;
48344  struct device  const  *__cil_tmp67 ;
48345  __u8 __cil_tmp68 ;
48346  int __cil_tmp69 ;
48347  __u8 __cil_tmp70 ;
48348  unsigned int __cil_tmp71 ;
48349  __u8 __cil_tmp72 ;
48350  unsigned int __cil_tmp73 ;
48351  struct device  const  *__cil_tmp74 ;
48352  __u8 __cil_tmp75 ;
48353  int __cil_tmp76 ;
48354  __u8 __cil_tmp77 ;
48355  u32 __cil_tmp78 ;
48356  unsigned int __cil_tmp79 ;
48357  struct device  const  *__cil_tmp80 ;
48358  struct device  const  *__cil_tmp81 ;
48359  int __cil_tmp82 ;
48360  int __cil_tmp83 ;
48361  unsigned int __cil_tmp84 ;
48362  int __cil_tmp85 ;
48363  int __cil_tmp86 ;
48364  __u8 __cil_tmp87 ;
48365  unsigned int __cil_tmp88 ;
48366  struct device  const  *__cil_tmp89 ;
48367  __u8 __cil_tmp90 ;
48368  unsigned int __cil_tmp91 ;
48369  struct device  const  *__cil_tmp92 ;
48370  __u8 __cil_tmp93 ;
48371  int __cil_tmp94 ;
48372  __u8 __cil_tmp95 ;
48373  unsigned int __cil_tmp96 ;
48374  struct device  const  *__cil_tmp97 ;
48375  __u8 __cil_tmp98 ;
48376  int __cil_tmp99 ;
48377  __u8 __cil_tmp100 ;
48378  unsigned long __cil_tmp101 ;
48379  __u8 __cil_tmp102 ;
48380  int __cil_tmp103 ;
48381  long __cil_tmp104 ;
48382  unsigned int __cil_tmp105 ;
48383  long __cil_tmp106 ;
48384  unsigned int __cil_tmp107 ;
48385  unsigned int __cil_tmp108 ;
48386  long __cil_tmp109 ;
48387  unsigned short __cil_tmp110 ;
48388  int __cil_tmp111 ;
48389  long __cil_tmp112 ;
48390  unsigned short __cil_tmp113 ;
48391  int __cil_tmp114 ;
48392  int __cil_tmp115 ;
48393  struct device  const  *__cil_tmp116 ;
48394  struct device  const  *__cil_tmp117 ;
48395  int __cil_tmp118 ;
48396  struct device  const  *__cil_tmp119 ;
48397  struct device  const  *__cil_tmp120 ;
48398  int __cil_tmp121 ;
48399  unsigned long __cil_tmp122 ;
48400  unsigned int __cil_tmp123 ;
48401  unsigned int __cil_tmp124 ;
48402  unsigned int __cil_tmp125 ;
48403  size_t __cil_tmp126 ;
48404  struct usb_interface_cache *__cil_tmp127 ;
48405  unsigned long __cil_tmp128 ;
48406  unsigned long __cil_tmp129 ;
48407  struct kref *__cil_tmp130 ;
48408  struct device  const  *__cil_tmp131 ;
48409  char *__cil_tmp132 ;
48410  unsigned long __cil_tmp133 ;
48411  u8 *__cil_tmp134 ;
48412  u8 *__cil_tmp135 ;
48413  unsigned long __cil_tmp136 ;
48414  __u8 __cil_tmp137 ;
48415  int __cil_tmp138 ;
48416  unsigned int __cil_tmp139 ;
48417  unsigned int __cil_tmp140 ;
48418  unsigned int __cil_tmp141 ;
48419  unsigned int __cil_tmp142 ;
48420  struct device  const  *__cil_tmp143 ;
48421  int __cil_tmp144 ;
48422  unsigned int __cil_tmp145 ;
48423  unsigned int __cil_tmp146 ;
48424
48425  {
48426#line 418
48427  ddev = & dev->dev;
48428#line 419
48429  buffer0 = buffer;
48430#line 429
48431  iad_num = 0U;
48432#line 431
48433  __len = 9UL;
48434#line 431
48435  if (__len > 63UL) {
48436    {
48437#line 431
48438    __cil_tmp31 = & config->desc;
48439#line 431
48440    __cil_tmp32 = (void *)__cil_tmp31;
48441#line 431
48442    __cil_tmp33 = (void const   *)buffer;
48443#line 431
48444    __ret = __memcpy(__cil_tmp32, __cil_tmp33, __len);
48445    }
48446  } else {
48447    {
48448#line 431
48449    __cil_tmp34 = & config->desc;
48450#line 431
48451    __cil_tmp35 = (void *)__cil_tmp34;
48452#line 431
48453    __cil_tmp36 = (void const   *)buffer;
48454#line 431
48455    __ret = __builtin_memcpy(__cil_tmp35, __cil_tmp36, __len);
48456    }
48457  }
48458  {
48459#line 432
48460  __cil_tmp37 = config->desc.bDescriptorType;
48461#line 432
48462  __cil_tmp38 = (unsigned int )__cil_tmp37;
48463#line 432
48464  if (__cil_tmp38 != 2U) {
48465    {
48466#line 434
48467    __cil_tmp39 = (struct device  const  *)ddev;
48468#line 434
48469    __cil_tmp40 = config->desc.bDescriptorType;
48470#line 434
48471    __cil_tmp41 = (int )__cil_tmp40;
48472#line 434
48473    __cil_tmp42 = config->desc.bLength;
48474#line 434
48475    __cil_tmp43 = (int )__cil_tmp42;
48476#line 434
48477    dev_err(__cil_tmp39, "invalid descriptor for config index %d: type = 0x%X, length = %d\n",
48478            cfgidx, __cil_tmp41, __cil_tmp43);
48479    }
48480#line 437
48481    return (-22);
48482  } else {
48483    {
48484#line 432
48485    __cil_tmp44 = config->desc.bLength;
48486#line 432
48487    __cil_tmp45 = (unsigned int )__cil_tmp44;
48488#line 432
48489    if (__cil_tmp45 <= 8U) {
48490      {
48491#line 434
48492      __cil_tmp46 = (struct device  const  *)ddev;
48493#line 434
48494      __cil_tmp47 = config->desc.bDescriptorType;
48495#line 434
48496      __cil_tmp48 = (int )__cil_tmp47;
48497#line 434
48498      __cil_tmp49 = config->desc.bLength;
48499#line 434
48500      __cil_tmp50 = (int )__cil_tmp49;
48501#line 434
48502      dev_err(__cil_tmp46, "invalid descriptor for config index %d: type = 0x%X, length = %d\n",
48503              cfgidx, __cil_tmp48, __cil_tmp50);
48504      }
48505#line 437
48506      return (-22);
48507    } else {
48508
48509    }
48510    }
48511  }
48512  }
48513#line 439
48514  __cil_tmp51 = config->desc.bConfigurationValue;
48515#line 439
48516  cfgno = (int )__cil_tmp51;
48517#line 441
48518  __cil_tmp52 = config->desc.bLength;
48519#line 441
48520  __cil_tmp53 = (unsigned long )__cil_tmp52;
48521#line 441
48522  buffer = buffer + __cil_tmp53;
48523#line 442
48524  __cil_tmp54 = config->desc.bLength;
48525#line 442
48526  __cil_tmp55 = (int )__cil_tmp54;
48527#line 442
48528  size = size - __cil_tmp55;
48529#line 444
48530  __cil_tmp56 = config->desc.bNumInterfaces;
48531#line 444
48532  nintf_orig = (int )__cil_tmp56;
48533#line 444
48534  nintf = nintf_orig;
48535#line 445
48536  if (nintf > 32) {
48537    {
48538#line 446
48539    __cil_tmp57 = (struct device  const  *)ddev;
48540#line 446
48541    dev_warn(__cil_tmp57, "config %d has too many interfaces: %d, using maximum allowed: %d\n",
48542             cfgno, nintf, 32);
48543#line 449
48544    nintf = 32;
48545    }
48546  } else {
48547
48548  }
48549#line 454
48550  n = 0;
48551#line 455
48552  buffer2 = buffer;
48553#line 455
48554  size2 = size;
48555#line 455
48556  goto ldv_24375;
48557  ldv_24374: ;
48558  {
48559#line 459
48560  __cil_tmp58 = (unsigned int )size2;
48561#line 459
48562  if (__cil_tmp58 <= 1U) {
48563    {
48564#line 460
48565    tmp = plural(size2);
48566#line 460
48567    __cil_tmp59 = (struct device  const  *)ddev;
48568#line 460
48569    dev_warn(__cil_tmp59, "config %d descriptor has %d excess byte%s, ignoring\n",
48570             cfgno, size2, tmp);
48571    }
48572#line 463
48573    goto ldv_24367;
48574  } else {
48575
48576  }
48577  }
48578#line 466
48579  header = (struct usb_descriptor_header *)buffer2;
48580  {
48581#line 467
48582  __cil_tmp60 = header->bLength;
48583#line 467
48584  __cil_tmp61 = (int )__cil_tmp60;
48585#line 467
48586  if (__cil_tmp61 > size2) {
48587    {
48588#line 468
48589    __cil_tmp62 = (struct device  const  *)ddev;
48590#line 468
48591    __cil_tmp63 = header->bLength;
48592#line 468
48593    __cil_tmp64 = (int )__cil_tmp63;
48594#line 468
48595    dev_warn(__cil_tmp62, "config %d has an invalid descriptor of length %d, skipping remainder of the config\n",
48596             cfgno, __cil_tmp64);
48597    }
48598#line 471
48599    goto ldv_24367;
48600  } else {
48601    {
48602#line 467
48603    __cil_tmp65 = header->bLength;
48604#line 467
48605    __cil_tmp66 = (unsigned int )__cil_tmp65;
48606#line 467
48607    if (__cil_tmp66 <= 1U) {
48608      {
48609#line 468
48610      __cil_tmp67 = (struct device  const  *)ddev;
48611#line 468
48612      __cil_tmp68 = header->bLength;
48613#line 468
48614      __cil_tmp69 = (int )__cil_tmp68;
48615#line 468
48616      dev_warn(__cil_tmp67, "config %d has an invalid descriptor of length %d, skipping remainder of the config\n",
48617               cfgno, __cil_tmp69);
48618      }
48619#line 471
48620      goto ldv_24367;
48621    } else {
48622
48623    }
48624    }
48625  }
48626  }
48627  {
48628#line 474
48629  __cil_tmp70 = header->bDescriptorType;
48630#line 474
48631  __cil_tmp71 = (unsigned int )__cil_tmp70;
48632#line 474
48633  if (__cil_tmp71 == 4U) {
48634#line 478
48635    d = (struct usb_interface_descriptor *)header;
48636    {
48637#line 479
48638    __cil_tmp72 = d->bLength;
48639#line 479
48640    __cil_tmp73 = (unsigned int )__cil_tmp72;
48641#line 479
48642    if (__cil_tmp73 <= 8U) {
48643      {
48644#line 480
48645      __cil_tmp74 = (struct device  const  *)ddev;
48646#line 480
48647      __cil_tmp75 = d->bLength;
48648#line 480
48649      __cil_tmp76 = (int )__cil_tmp75;
48650#line 480
48651      dev_warn(__cil_tmp74, "config %d has an invalid interface descriptor of length %d, skipping\n",
48652               cfgno, __cil_tmp76);
48653      }
48654#line 483
48655      goto ldv_24370;
48656    } else {
48657
48658    }
48659    }
48660#line 486
48661    __cil_tmp77 = d->bInterfaceNumber;
48662#line 486
48663    inum = (int )__cil_tmp77;
48664    {
48665#line 488
48666    __cil_tmp78 = dev->quirks;
48667#line 488
48668    __cil_tmp79 = __cil_tmp78 & 32U;
48669#line 488
48670    if (__cil_tmp79 != 0U) {
48671#line 488
48672      if (n >= nintf_orig) {
48673        {
48674#line 490
48675        __cil_tmp80 = (struct device  const  *)ddev;
48676#line 490
48677        dev_warn(__cil_tmp80, "config %d has more interface descriptors, than it declares in bNumInterfaces, ignoring interface number: %d\n",
48678                 cfgno, inum);
48679        }
48680#line 494
48681        goto ldv_24370;
48682      } else {
48683
48684      }
48685    } else {
48686
48687    }
48688    }
48689#line 497
48690    if (inum >= nintf_orig) {
48691      {
48692#line 498
48693      __cil_tmp81 = (struct device  const  *)ddev;
48694#line 498
48695      __cil_tmp82 = nintf_orig + -1;
48696#line 498
48697      dev_warn(__cil_tmp81, "config %d has an invalid interface number: %d but max is %d\n",
48698               cfgno, inum, __cil_tmp82);
48699      }
48700    } else {
48701
48702    }
48703#line 504
48704    i = 0;
48705#line 504
48706    goto ldv_24373;
48707    ldv_24372: ;
48708    {
48709#line 505
48710    __cil_tmp83 = (int )inums[i];
48711#line 505
48712    if (__cil_tmp83 == inum) {
48713#line 506
48714      goto ldv_24371;
48715    } else {
48716
48717    }
48718    }
48719#line 504
48720    i = i + 1;
48721    ldv_24373: ;
48722#line 504
48723    if (i < n) {
48724#line 505
48725      goto ldv_24372;
48726    } else {
48727#line 507
48728      goto ldv_24371;
48729    }
48730    ldv_24371: ;
48731#line 508
48732    if (i < n) {
48733      {
48734#line 509
48735      __cil_tmp84 = (unsigned int )nalts[i];
48736#line 509
48737      if (__cil_tmp84 != 255U) {
48738#line 510
48739        __cil_tmp85 = (int )nalts[i];
48740#line 510
48741        __cil_tmp86 = __cil_tmp85 + 1;
48742#line 510
48743        nalts[i] = (u8 )__cil_tmp86;
48744      } else
48745#line 511
48746      if (n <= 31) {
48747#line 512
48748        inums[n] = (u8 )inum;
48749#line 513
48750        nalts[n] = (u8 )1U;
48751#line 514
48752        n = n + 1;
48753      } else {
48754
48755      }
48756      }
48757    } else {
48758
48759    }
48760  } else {
48761    {
48762#line 517
48763    __cil_tmp87 = header->bDescriptorType;
48764#line 517
48765    __cil_tmp88 = (unsigned int )__cil_tmp87;
48766#line 517
48767    if (__cil_tmp88 == 11U) {
48768#line 519
48769      if (iad_num == 16U) {
48770        {
48771#line 520
48772        __cil_tmp89 = (struct device  const  *)ddev;
48773#line 520
48774        dev_warn(__cil_tmp89, "found more Interface Association Descriptors than allocated for in configuration %d\n",
48775                 cfgno);
48776        }
48777      } else {
48778#line 525
48779        config->intf_assoc[iad_num] = (struct usb_interface_assoc_descriptor *)header;
48780#line 528
48781        iad_num = iad_num + 1U;
48782      }
48783    } else {
48784      {
48785#line 531
48786      __cil_tmp90 = header->bDescriptorType;
48787#line 531
48788      __cil_tmp91 = (unsigned int )__cil_tmp90;
48789#line 531
48790      if (__cil_tmp91 == 1U) {
48791        {
48792#line 533
48793        __cil_tmp92 = (struct device  const  *)ddev;
48794#line 533
48795        __cil_tmp93 = header->bDescriptorType;
48796#line 533
48797        __cil_tmp94 = (int )__cil_tmp93;
48798#line 533
48799        dev_warn(__cil_tmp92, "config %d contains an unexpected descriptor of type 0x%X, skipping\n",
48800                 cfgno, __cil_tmp94);
48801        }
48802      } else {
48803        {
48804#line 531
48805        __cil_tmp95 = header->bDescriptorType;
48806#line 531
48807        __cil_tmp96 = (unsigned int )__cil_tmp95;
48808#line 531
48809        if (__cil_tmp96 == 2U) {
48810          {
48811#line 533
48812          __cil_tmp97 = (struct device  const  *)ddev;
48813#line 533
48814          __cil_tmp98 = header->bDescriptorType;
48815#line 533
48816          __cil_tmp99 = (int )__cil_tmp98;
48817#line 533
48818          dev_warn(__cil_tmp97, "config %d contains an unexpected descriptor of type 0x%X, skipping\n",
48819                   cfgno, __cil_tmp99);
48820          }
48821        } else {
48822
48823        }
48824        }
48825      }
48826      }
48827    }
48828    }
48829  }
48830  }
48831  ldv_24370: 
48832#line 457
48833  __cil_tmp100 = header->bLength;
48834#line 457
48835  __cil_tmp101 = (unsigned long )__cil_tmp100;
48836#line 457
48837  buffer2 = buffer2 + __cil_tmp101;
48838#line 457
48839  __cil_tmp102 = header->bLength;
48840#line 457
48841  __cil_tmp103 = (int )__cil_tmp102;
48842#line 457
48843  size2 = size2 - __cil_tmp103;
48844  ldv_24375: ;
48845#line 455
48846  if (size2 > 0) {
48847#line 457
48848    goto ldv_24374;
48849  } else {
48850#line 459
48851    goto ldv_24367;
48852  }
48853  ldv_24367: 
48854#line 538
48855  __cil_tmp104 = (long )buffer;
48856#line 538
48857  __cil_tmp105 = (unsigned int )__cil_tmp104;
48858#line 538
48859  __cil_tmp106 = (long )buffer2;
48860#line 538
48861  __cil_tmp107 = (unsigned int )__cil_tmp106;
48862#line 538
48863  __cil_tmp108 = __cil_tmp107 - __cil_tmp105;
48864#line 538
48865  size = (int )__cil_tmp108;
48866#line 539
48867  __cil_tmp109 = (long )buffer0;
48868#line 539
48869  __cil_tmp110 = (unsigned short )__cil_tmp109;
48870#line 539
48871  __cil_tmp111 = (int )__cil_tmp110;
48872#line 539
48873  __cil_tmp112 = (long )buffer2;
48874#line 539
48875  __cil_tmp113 = (unsigned short )__cil_tmp112;
48876#line 539
48877  __cil_tmp114 = (int )__cil_tmp113;
48878#line 539
48879  __cil_tmp115 = __cil_tmp114 - __cil_tmp111;
48880#line 539
48881  config->desc.wTotalLength = (__le16 )__cil_tmp115;
48882#line 541
48883  if (n != nintf) {
48884    {
48885#line 542
48886    tmp___0 = plural(n);
48887#line 542
48888    __cil_tmp116 = (struct device  const  *)ddev;
48889#line 542
48890    dev_warn(__cil_tmp116, "config %d has %d interface%s, different from the descriptor\'s value: %d\n",
48891             cfgno, n, tmp___0, nintf_orig);
48892    }
48893  } else
48894#line 545
48895  if (n == 0) {
48896    {
48897#line 546
48898    __cil_tmp117 = (struct device  const  *)ddev;
48899#line 546
48900    dev_warn(__cil_tmp117, "config %d has no interfaces?\n", cfgno);
48901    }
48902  } else {
48903
48904  }
48905#line 547
48906  nintf = n;
48907#line 547
48908  config->desc.bNumInterfaces = (__u8 )nintf;
48909#line 550
48910  i = 0;
48911#line 550
48912  goto ldv_24380;
48913  ldv_24379: 
48914#line 551
48915  j = 0;
48916#line 551
48917  goto ldv_24378;
48918  ldv_24377: ;
48919  {
48920#line 552
48921  __cil_tmp118 = (int )inums[j];
48922#line 552
48923  if (__cil_tmp118 == i) {
48924#line 553
48925    goto ldv_24376;
48926  } else {
48927
48928  }
48929  }
48930#line 551
48931  j = j + 1;
48932  ldv_24378: ;
48933#line 551
48934  if (j < nintf) {
48935#line 552
48936    goto ldv_24377;
48937  } else {
48938#line 554
48939    goto ldv_24376;
48940  }
48941  ldv_24376: ;
48942#line 555
48943  if (j >= nintf) {
48944    {
48945#line 556
48946    __cil_tmp119 = (struct device  const  *)ddev;
48947#line 556
48948    dev_warn(__cil_tmp119, "config %d has no interface number %d\n", cfgno, i);
48949    }
48950  } else {
48951
48952  }
48953#line 550
48954  i = i + 1;
48955  ldv_24380: ;
48956#line 550
48957  if (i < nintf) {
48958#line 551
48959    goto ldv_24379;
48960  } else {
48961#line 553
48962    goto ldv_24381;
48963  }
48964  ldv_24381: 
48965#line 561
48966  i = 0;
48967#line 561
48968  goto ldv_24383;
48969  ldv_24382: 
48970#line 562
48971  j = (int )nalts[i];
48972#line 563
48973  if (j > 128) {
48974    {
48975#line 564
48976    __cil_tmp120 = (struct device  const  *)ddev;
48977#line 564
48978    __cil_tmp121 = (int )inums[i];
48979#line 564
48980    dev_warn(__cil_tmp120, "too many alternate settings for config %d interface %d: %d, using maximum allowed: %d\n",
48981             cfgno, __cil_tmp121, j, 128);
48982#line 568
48983    j = 128;
48984#line 568
48985    nalts[i] = (u8 )128U;
48986    }
48987  } else {
48988
48989  }
48990  {
48991#line 571
48992  __cil_tmp122 = (unsigned long )j;
48993#line 571
48994  __cil_tmp123 = (unsigned int )__cil_tmp122;
48995#line 571
48996  __cil_tmp124 = __cil_tmp123 * 48U;
48997#line 571
48998  __cil_tmp125 = __cil_tmp124 + 8U;
48999#line 571
49000  len = (int )__cil_tmp125;
49001#line 572
49002  __cil_tmp126 = (size_t )len;
49003#line 572
49004  tmp___1 = kzalloc(__cil_tmp126, 208U);
49005#line 572
49006  intfc = (struct usb_interface_cache *)tmp___1;
49007#line 572
49008  config->intf_cache[i] = intfc;
49009  }
49010  {
49011#line 573
49012  __cil_tmp127 = (struct usb_interface_cache *)0;
49013#line 573
49014  __cil_tmp128 = (unsigned long )__cil_tmp127;
49015#line 573
49016  __cil_tmp129 = (unsigned long )intfc;
49017#line 573
49018  if (__cil_tmp129 == __cil_tmp128) {
49019#line 574
49020    return (-12);
49021  } else {
49022
49023  }
49024  }
49025  {
49026#line 575
49027  __cil_tmp130 = & intfc->ref;
49028#line 575
49029  kref_init(__cil_tmp130);
49030#line 561
49031  i = i + 1;
49032  }
49033  ldv_24383: ;
49034#line 561
49035  if (i < nintf) {
49036#line 562
49037    goto ldv_24382;
49038  } else {
49039#line 564
49040    goto ldv_24384;
49041  }
49042  ldv_24384: 
49043  {
49044#line 582
49045  config->extra = buffer;
49046#line 583
49047  i = find_next_descriptor(buffer, size, 4, 4, & n);
49048#line 585
49049  config->extralen = i;
49050  }
49051#line 586
49052  if (n > 0) {
49053    {
49054#line 587
49055    tmp___2 = plural(n);
49056#line 587
49057    __cil_tmp131 = (struct device  const  *)ddev;
49058#line 587
49059    __cil_tmp132 = (char *)"configuration";
49060#line 587
49061    dev_printk("<7>", __cil_tmp131, "skipped %d descriptor%s after %s\n", n, tmp___2,
49062               __cil_tmp132);
49063    }
49064  } else {
49065
49066  }
49067#line 589
49068  __cil_tmp133 = (unsigned long )i;
49069#line 589
49070  buffer = buffer + __cil_tmp133;
49071#line 590
49072  size = size - i;
49073#line 593
49074  goto ldv_24386;
49075  ldv_24385: 
49076  {
49077#line 594
49078  __cil_tmp134 = (u8 *)(& inums);
49079#line 594
49080  __cil_tmp135 = (u8 *)(& nalts);
49081#line 594
49082  retval = usb_parse_interface(ddev, cfgno, config, buffer, size, __cil_tmp134, __cil_tmp135);
49083  }
49084#line 596
49085  if (retval < 0) {
49086#line 597
49087    return (retval);
49088  } else {
49089
49090  }
49091#line 599
49092  __cil_tmp136 = (unsigned long )retval;
49093#line 599
49094  buffer = buffer + __cil_tmp136;
49095#line 600
49096  size = size - retval;
49097  ldv_24386: ;
49098#line 593
49099  if (size > 0) {
49100#line 594
49101    goto ldv_24385;
49102  } else {
49103#line 596
49104    goto ldv_24387;
49105  }
49106  ldv_24387: 
49107#line 604
49108  i = 0;
49109#line 604
49110  goto ldv_24395;
49111  ldv_24394: 
49112#line 605
49113  intfc = config->intf_cache[i];
49114#line 606
49115  j = 0;
49116#line 606
49117  goto ldv_24392;
49118  ldv_24391: 
49119#line 607
49120  n = 0;
49121#line 607
49122  goto ldv_24390;
49123  ldv_24389: ;
49124  {
49125#line 608
49126  __cil_tmp137 = intfc->altsetting[n].desc.bAlternateSetting;
49127#line 608
49128  __cil_tmp138 = (int )__cil_tmp137;
49129#line 608
49130  if (__cil_tmp138 == j) {
49131#line 610
49132    goto ldv_24388;
49133  } else {
49134
49135  }
49136  }
49137#line 607
49138  n = n + 1;
49139  ldv_24390: ;
49140  {
49141#line 607
49142  __cil_tmp139 = intfc->num_altsetting;
49143#line 607
49144  __cil_tmp140 = (unsigned int )n;
49145#line 607
49146  if (__cil_tmp140 < __cil_tmp139) {
49147#line 608
49148    goto ldv_24389;
49149  } else {
49150#line 610
49151    goto ldv_24388;
49152  }
49153  }
49154  ldv_24388: ;
49155  {
49156#line 612
49157  __cil_tmp141 = intfc->num_altsetting;
49158#line 612
49159  __cil_tmp142 = (unsigned int )n;
49160#line 612
49161  if (__cil_tmp142 >= __cil_tmp141) {
49162    {
49163#line 613
49164    __cil_tmp143 = (struct device  const  *)ddev;
49165#line 613
49166    __cil_tmp144 = (int )inums[i];
49167#line 613
49168    dev_warn(__cil_tmp143, "config %d interface %d has no altsetting %d\n", cfgno,
49169             __cil_tmp144, j);
49170    }
49171  } else {
49172
49173  }
49174  }
49175#line 606
49176  j = j + 1;
49177  ldv_24392: ;
49178  {
49179#line 606
49180  __cil_tmp145 = intfc->num_altsetting;
49181#line 606
49182  __cil_tmp146 = (unsigned int )j;
49183#line 606
49184  if (__cil_tmp146 < __cil_tmp145) {
49185#line 607
49186    goto ldv_24391;
49187  } else {
49188#line 609
49189    goto ldv_24393;
49190  }
49191  }
49192  ldv_24393: 
49193#line 604
49194  i = i + 1;
49195  ldv_24395: ;
49196#line 604
49197  if (i < nintf) {
49198#line 605
49199    goto ldv_24394;
49200  } else {
49201#line 607
49202    goto ldv_24396;
49203  }
49204  ldv_24396: ;
49205#line 618
49206  return (0);
49207}
49208}
49209#line 624 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/config.c.p"
49210void usb_destroy_configuration(struct usb_device *dev ) 
49211{ int c ;
49212  int i ;
49213  struct usb_host_config *cf ;
49214  struct usb_host_config *__cil_tmp5 ;
49215  unsigned long __cil_tmp6 ;
49216  struct usb_host_config *__cil_tmp7 ;
49217  unsigned long __cil_tmp8 ;
49218  char **__cil_tmp9 ;
49219  unsigned long __cil_tmp10 ;
49220  char **__cil_tmp11 ;
49221  unsigned long __cil_tmp12 ;
49222  unsigned long __cil_tmp13 ;
49223  char **__cil_tmp14 ;
49224  char **__cil_tmp15 ;
49225  char *__cil_tmp16 ;
49226  void const   *__cil_tmp17 ;
49227  __u8 __cil_tmp18 ;
49228  int __cil_tmp19 ;
49229  char **__cil_tmp20 ;
49230  void const   *__cil_tmp21 ;
49231  unsigned long __cil_tmp22 ;
49232  struct usb_host_config *__cil_tmp23 ;
49233  char *__cil_tmp24 ;
49234  void const   *__cil_tmp25 ;
49235  struct usb_interface_cache *__cil_tmp26 ;
49236  unsigned long __cil_tmp27 ;
49237  struct usb_interface_cache *__cil_tmp28 ;
49238  unsigned long __cil_tmp29 ;
49239  struct usb_interface_cache *__cil_tmp30 ;
49240  struct kref *__cil_tmp31 ;
49241  __u8 __cil_tmp32 ;
49242  int __cil_tmp33 ;
49243  __u8 __cil_tmp34 ;
49244  int __cil_tmp35 ;
49245  struct usb_host_config *__cil_tmp36 ;
49246  void const   *__cil_tmp37 ;
49247
49248  {
49249  {
49250#line 628
49251  __cil_tmp5 = (struct usb_host_config *)0;
49252#line 628
49253  __cil_tmp6 = (unsigned long )__cil_tmp5;
49254#line 628
49255  __cil_tmp7 = dev->config;
49256#line 628
49257  __cil_tmp8 = (unsigned long )__cil_tmp7;
49258#line 628
49259  if (__cil_tmp8 == __cil_tmp6) {
49260#line 629
49261    return;
49262  } else {
49263
49264  }
49265  }
49266  {
49267#line 631
49268  __cil_tmp9 = (char **)0;
49269#line 631
49270  __cil_tmp10 = (unsigned long )__cil_tmp9;
49271#line 631
49272  __cil_tmp11 = dev->rawdescriptors;
49273#line 631
49274  __cil_tmp12 = (unsigned long )__cil_tmp11;
49275#line 631
49276  if (__cil_tmp12 != __cil_tmp10) {
49277#line 632
49278    i = 0;
49279#line 632
49280    goto ldv_24403;
49281    ldv_24402: 
49282    {
49283#line 633
49284    __cil_tmp13 = (unsigned long )i;
49285#line 633
49286    __cil_tmp14 = dev->rawdescriptors;
49287#line 633
49288    __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
49289#line 633
49290    __cil_tmp16 = *__cil_tmp15;
49291#line 633
49292    __cil_tmp17 = (void const   *)__cil_tmp16;
49293#line 633
49294    kfree(__cil_tmp17);
49295#line 632
49296    i = i + 1;
49297    }
49298    ldv_24403: ;
49299    {
49300#line 632
49301    __cil_tmp18 = dev->descriptor.bNumConfigurations;
49302#line 632
49303    __cil_tmp19 = (int )__cil_tmp18;
49304#line 632
49305    if (__cil_tmp19 > i) {
49306#line 633
49307      goto ldv_24402;
49308    } else {
49309#line 635
49310      goto ldv_24404;
49311    }
49312    }
49313    ldv_24404: 
49314    {
49315#line 635
49316    __cil_tmp20 = dev->rawdescriptors;
49317#line 635
49318    __cil_tmp21 = (void const   *)__cil_tmp20;
49319#line 635
49320    kfree(__cil_tmp21);
49321#line 636
49322    dev->rawdescriptors = (char **)0;
49323    }
49324  } else {
49325
49326  }
49327  }
49328#line 639
49329  c = 0;
49330#line 639
49331  goto ldv_24410;
49332  ldv_24409: 
49333  {
49334#line 640
49335  __cil_tmp22 = (unsigned long )c;
49336#line 640
49337  __cil_tmp23 = dev->config;
49338#line 640
49339  cf = __cil_tmp23 + __cil_tmp22;
49340#line 642
49341  __cil_tmp24 = cf->string;
49342#line 642
49343  __cil_tmp25 = (void const   *)__cil_tmp24;
49344#line 642
49345  kfree(__cil_tmp25);
49346#line 643
49347  i = 0;
49348  }
49349#line 643
49350  goto ldv_24407;
49351  ldv_24406: ;
49352  {
49353#line 644
49354  __cil_tmp26 = (struct usb_interface_cache *)0;
49355#line 644
49356  __cil_tmp27 = (unsigned long )__cil_tmp26;
49357#line 644
49358  __cil_tmp28 = cf->intf_cache[i];
49359#line 644
49360  __cil_tmp29 = (unsigned long )__cil_tmp28;
49361#line 644
49362  if (__cil_tmp29 != __cil_tmp27) {
49363    {
49364#line 645
49365    __cil_tmp30 = cf->intf_cache[i];
49366#line 645
49367    __cil_tmp31 = & __cil_tmp30->ref;
49368#line 645
49369    kref_put(__cil_tmp31, & usb_release_interface_cache);
49370    }
49371  } else {
49372
49373  }
49374  }
49375#line 643
49376  i = i + 1;
49377  ldv_24407: ;
49378  {
49379#line 643
49380  __cil_tmp32 = cf->desc.bNumInterfaces;
49381#line 643
49382  __cil_tmp33 = (int )__cil_tmp32;
49383#line 643
49384  if (__cil_tmp33 > i) {
49385#line 644
49386    goto ldv_24406;
49387  } else {
49388#line 646
49389    goto ldv_24408;
49390  }
49391  }
49392  ldv_24408: 
49393#line 639
49394  c = c + 1;
49395  ldv_24410: ;
49396  {
49397#line 639
49398  __cil_tmp34 = dev->descriptor.bNumConfigurations;
49399#line 639
49400  __cil_tmp35 = (int )__cil_tmp34;
49401#line 639
49402  if (__cil_tmp35 > c) {
49403#line 640
49404    goto ldv_24409;
49405  } else {
49406#line 642
49407    goto ldv_24411;
49408  }
49409  }
49410  ldv_24411: 
49411  {
49412#line 649
49413  __cil_tmp36 = dev->config;
49414#line 649
49415  __cil_tmp37 = (void const   *)__cil_tmp36;
49416#line 649
49417  kfree(__cil_tmp37);
49418#line 650
49419  dev->config = (struct usb_host_config *)0;
49420  }
49421#line 651
49422  return;
49423}
49424}
49425#line 664 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/config.c.p"
49426int usb_get_configuration(struct usb_device *dev ) 
49427{ struct device *ddev ;
49428  int ncfg ;
49429  int result ;
49430  unsigned int cfgno ;
49431  unsigned int length ;
49432  unsigned char *bigbuffer ;
49433  struct usb_config_descriptor *desc ;
49434  void *tmp ;
49435  void *tmp___0 ;
49436  void *tmp___1 ;
49437  int _max1 ;
49438  int _max2 ;
49439  int tmp___2 ;
49440  void *tmp___3 ;
49441  __u8 __cil_tmp16 ;
49442  unsigned char *__cil_tmp17 ;
49443  unsigned char *__cil_tmp18 ;
49444  unsigned char __cil_tmp19 ;
49445  unsigned int __cil_tmp20 ;
49446  struct device  const  *__cil_tmp21 ;
49447  struct device  const  *__cil_tmp22 ;
49448  unsigned long __cil_tmp23 ;
49449  unsigned int __cil_tmp24 ;
49450  size_t __cil_tmp25 ;
49451  struct usb_host_config *__cil_tmp26 ;
49452  unsigned long __cil_tmp27 ;
49453  struct usb_host_config *__cil_tmp28 ;
49454  unsigned long __cil_tmp29 ;
49455  unsigned long __cil_tmp30 ;
49456  unsigned int __cil_tmp31 ;
49457  size_t __cil_tmp32 ;
49458  char **__cil_tmp33 ;
49459  unsigned long __cil_tmp34 ;
49460  char **__cil_tmp35 ;
49461  unsigned long __cil_tmp36 ;
49462  struct usb_config_descriptor *__cil_tmp37 ;
49463  unsigned long __cil_tmp38 ;
49464  unsigned long __cil_tmp39 ;
49465  unsigned char __cil_tmp40 ;
49466  int __cil_tmp41 ;
49467  unsigned char __cil_tmp42 ;
49468  void *__cil_tmp43 ;
49469  struct device  const  *__cil_tmp44 ;
49470  char *__cil_tmp45 ;
49471  struct device  const  *__cil_tmp46 ;
49472  struct device  const  *__cil_tmp47 ;
49473  __le16 __cil_tmp48 ;
49474  size_t __cil_tmp49 ;
49475  unsigned char *__cil_tmp50 ;
49476  unsigned long __cil_tmp51 ;
49477  unsigned long __cil_tmp52 ;
49478  unsigned char __cil_tmp53 ;
49479  int __cil_tmp54 ;
49480  unsigned char __cil_tmp55 ;
49481  void *__cil_tmp56 ;
49482  int __cil_tmp57 ;
49483  struct device  const  *__cil_tmp58 ;
49484  char *__cil_tmp59 ;
49485  void const   *__cil_tmp60 ;
49486  unsigned int __cil_tmp61 ;
49487  struct device  const  *__cil_tmp62 ;
49488  unsigned long __cil_tmp63 ;
49489  char **__cil_tmp64 ;
49490  char **__cil_tmp65 ;
49491  int __cil_tmp66 ;
49492  unsigned long __cil_tmp67 ;
49493  struct usb_host_config *__cil_tmp68 ;
49494  struct usb_host_config *__cil_tmp69 ;
49495  int __cil_tmp70 ;
49496  unsigned int __cil_tmp71 ;
49497  void const   *__cil_tmp72 ;
49498  struct device  const  *__cil_tmp73 ;
49499
49500  {
49501#line 666
49502  ddev = & dev->dev;
49503#line 667
49504  __cil_tmp16 = dev->descriptor.bNumConfigurations;
49505#line 667
49506  ncfg = (int )__cil_tmp16;
49507#line 668
49508  result = 0;
49509#line 673
49510  cfgno = 0U;
49511  {
49512#line 674
49513  __cil_tmp17 = (unsigned char *)dev;
49514#line 674
49515  __cil_tmp18 = __cil_tmp17 + 1556UL;
49516#line 674
49517  __cil_tmp19 = *__cil_tmp18;
49518#line 674
49519  __cil_tmp20 = (unsigned int )__cil_tmp19;
49520#line 674
49521  if (__cil_tmp20 == 0U) {
49522#line 675
49523    goto out_not_authorized;
49524  } else {
49525
49526  }
49527  }
49528#line 676
49529  result = -12;
49530#line 677
49531  if (ncfg > 8) {
49532    {
49533#line 678
49534    __cil_tmp21 = (struct device  const  *)ddev;
49535#line 678
49536    dev_warn(__cil_tmp21, "too many configurations: %d, using maximum allowed: %d\n",
49537             ncfg, 8);
49538#line 680
49539    ncfg = 8;
49540#line 680
49541    dev->descriptor.bNumConfigurations = (__u8 )8U;
49542    }
49543  } else {
49544
49545  }
49546#line 683
49547  if (ncfg <= 0) {
49548    {
49549#line 684
49550    __cil_tmp22 = (struct device  const  *)ddev;
49551#line 684
49552    dev_err(__cil_tmp22, "no configurations\n");
49553    }
49554#line 685
49555    return (-22);
49556  } else {
49557
49558  }
49559  {
49560#line 688
49561  __cil_tmp23 = (unsigned long )ncfg;
49562#line 688
49563  __cil_tmp24 = (unsigned int )__cil_tmp23;
49564#line 688
49565  length = __cil_tmp24 * 680U;
49566#line 689
49567  __cil_tmp25 = (size_t )length;
49568#line 689
49569  tmp = kzalloc(__cil_tmp25, 208U);
49570#line 689
49571  dev->config = (struct usb_host_config *)tmp;
49572  }
49573  {
49574#line 690
49575  __cil_tmp26 = (struct usb_host_config *)0;
49576#line 690
49577  __cil_tmp27 = (unsigned long )__cil_tmp26;
49578#line 690
49579  __cil_tmp28 = dev->config;
49580#line 690
49581  __cil_tmp29 = (unsigned long )__cil_tmp28;
49582#line 690
49583  if (__cil_tmp29 == __cil_tmp27) {
49584#line 691
49585    goto err2;
49586  } else {
49587
49588  }
49589  }
49590  {
49591#line 693
49592  __cil_tmp30 = (unsigned long )ncfg;
49593#line 693
49594  __cil_tmp31 = (unsigned int )__cil_tmp30;
49595#line 693
49596  length = __cil_tmp31 * 8U;
49597#line 694
49598  __cil_tmp32 = (size_t )length;
49599#line 694
49600  tmp___0 = kzalloc(__cil_tmp32, 208U);
49601#line 694
49602  dev->rawdescriptors = (char **)tmp___0;
49603  }
49604  {
49605#line 695
49606  __cil_tmp33 = (char **)0;
49607#line 695
49608  __cil_tmp34 = (unsigned long )__cil_tmp33;
49609#line 695
49610  __cil_tmp35 = dev->rawdescriptors;
49611#line 695
49612  __cil_tmp36 = (unsigned long )__cil_tmp35;
49613#line 695
49614  if (__cil_tmp36 == __cil_tmp34) {
49615#line 696
49616    goto err2;
49617  } else {
49618
49619  }
49620  }
49621  {
49622#line 698
49623  tmp___1 = kmalloc(9UL, 208U);
49624#line 698
49625  desc = (struct usb_config_descriptor *)tmp___1;
49626  }
49627  {
49628#line 699
49629  __cil_tmp37 = (struct usb_config_descriptor *)0;
49630#line 699
49631  __cil_tmp38 = (unsigned long )__cil_tmp37;
49632#line 699
49633  __cil_tmp39 = (unsigned long )desc;
49634#line 699
49635  if (__cil_tmp39 == __cil_tmp38) {
49636#line 700
49637    goto err2;
49638  } else {
49639
49640  }
49641  }
49642#line 702
49643  result = 0;
49644#line 703
49645  goto ldv_24430;
49646  ldv_24429: 
49647  {
49648#line 706
49649  __cil_tmp40 = (unsigned char )cfgno;
49650#line 706
49651  __cil_tmp41 = (int )__cil_tmp40;
49652#line 706
49653  __cil_tmp42 = (unsigned char )__cil_tmp41;
49654#line 706
49655  __cil_tmp43 = (void *)desc;
49656#line 706
49657  result = usb_get_descriptor(dev, (unsigned char)2, __cil_tmp42, __cil_tmp43, 9);
49658  }
49659#line 708
49660  if (result < 0) {
49661    {
49662#line 709
49663    __cil_tmp44 = (struct device  const  *)ddev;
49664#line 709
49665    __cil_tmp45 = (char *)"start";
49666#line 709
49667    dev_err(__cil_tmp44, "unable to read config index %d descriptor/%s: %d\n", cfgno,
49668            __cil_tmp45, result);
49669#line 711
49670    __cil_tmp46 = (struct device  const  *)ddev;
49671#line 711
49672    dev_err(__cil_tmp46, "chopping to %d config(s)\n", cfgno);
49673#line 712
49674    dev->descriptor.bNumConfigurations = (__u8 )cfgno;
49675    }
49676#line 713
49677    goto ldv_24424;
49678  } else
49679#line 714
49680  if (result <= 3) {
49681    {
49682#line 715
49683    __cil_tmp47 = (struct device  const  *)ddev;
49684#line 715
49685    dev_err(__cil_tmp47, "config index %d descriptor too short (expected %i, got %i)\n",
49686            cfgno, 9, result);
49687#line 718
49688    result = -22;
49689    }
49690#line 719
49691    goto err;
49692  } else {
49693
49694  }
49695#line 721
49696  __cil_tmp48 = desc->wTotalLength;
49697#line 721
49698  _max1 = (int )__cil_tmp48;
49699#line 721
49700  _max2 = 9;
49701#line 721
49702  if (_max1 > _max2) {
49703#line 721
49704    tmp___2 = _max1;
49705  } else {
49706#line 721
49707    tmp___2 = _max2;
49708  }
49709  {
49710#line 721
49711  length = (unsigned int )tmp___2;
49712#line 725
49713  __cil_tmp49 = (size_t )length;
49714#line 725
49715  tmp___3 = kmalloc(__cil_tmp49, 208U);
49716#line 725
49717  bigbuffer = (unsigned char *)tmp___3;
49718  }
49719  {
49720#line 726
49721  __cil_tmp50 = (unsigned char *)0;
49722#line 726
49723  __cil_tmp51 = (unsigned long )__cil_tmp50;
49724#line 726
49725  __cil_tmp52 = (unsigned long )bigbuffer;
49726#line 726
49727  if (__cil_tmp52 == __cil_tmp51) {
49728#line 727
49729    result = -12;
49730#line 728
49731    goto err;
49732  } else {
49733
49734  }
49735  }
49736  {
49737#line 730
49738  __cil_tmp53 = (unsigned char )cfgno;
49739#line 730
49740  __cil_tmp54 = (int )__cil_tmp53;
49741#line 730
49742  __cil_tmp55 = (unsigned char )__cil_tmp54;
49743#line 730
49744  __cil_tmp56 = (void *)bigbuffer;
49745#line 730
49746  __cil_tmp57 = (int )length;
49747#line 730
49748  result = usb_get_descriptor(dev, (unsigned char)2, __cil_tmp55, __cil_tmp56, __cil_tmp57);
49749  }
49750#line 732
49751  if (result < 0) {
49752    {
49753#line 733
49754    __cil_tmp58 = (struct device  const  *)ddev;
49755#line 733
49756    __cil_tmp59 = (char *)"all";
49757#line 733
49758    dev_err(__cil_tmp58, "unable to read config index %d descriptor/%s\n", cfgno,
49759            __cil_tmp59);
49760#line 735
49761    __cil_tmp60 = (void const   *)bigbuffer;
49762#line 735
49763    kfree(__cil_tmp60);
49764    }
49765#line 736
49766    goto err;
49767  } else {
49768
49769  }
49770  {
49771#line 738
49772  __cil_tmp61 = (unsigned int )result;
49773#line 738
49774  if (__cil_tmp61 < length) {
49775    {
49776#line 739
49777    __cil_tmp62 = (struct device  const  *)ddev;
49778#line 739
49779    dev_warn(__cil_tmp62, "config index %d descriptor too short (expected %i, got %i)\n",
49780             cfgno, length, result);
49781#line 741
49782    length = (unsigned int )result;
49783    }
49784  } else {
49785
49786  }
49787  }
49788  {
49789#line 744
49790  __cil_tmp63 = (unsigned long )cfgno;
49791#line 744
49792  __cil_tmp64 = dev->rawdescriptors;
49793#line 744
49794  __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
49795#line 744
49796  *__cil_tmp65 = (char *)bigbuffer;
49797#line 746
49798  __cil_tmp66 = (int )cfgno;
49799#line 746
49800  __cil_tmp67 = (unsigned long )cfgno;
49801#line 746
49802  __cil_tmp68 = dev->config;
49803#line 746
49804  __cil_tmp69 = __cil_tmp68 + __cil_tmp67;
49805#line 746
49806  __cil_tmp70 = (int )length;
49807#line 746
49808  result = usb_parse_configuration(dev, __cil_tmp66, __cil_tmp69, bigbuffer, __cil_tmp70);
49809  }
49810#line 748
49811  if (result < 0) {
49812#line 749
49813    cfgno = cfgno + 1U;
49814#line 750
49815    goto err;
49816  } else {
49817
49818  }
49819#line 703
49820  cfgno = cfgno + 1U;
49821  ldv_24430: ;
49822  {
49823#line 703
49824  __cil_tmp71 = (unsigned int )ncfg;
49825#line 703
49826  if (__cil_tmp71 > cfgno) {
49827#line 704
49828    goto ldv_24429;
49829  } else {
49830#line 706
49831    goto ldv_24424;
49832  }
49833  }
49834  ldv_24424: 
49835#line 753
49836  result = 0;
49837  err: 
49838  {
49839#line 756
49840  __cil_tmp72 = (void const   *)desc;
49841#line 756
49842  kfree(__cil_tmp72);
49843  }
49844  out_not_authorized: 
49845#line 758
49846  dev->descriptor.bNumConfigurations = (__u8 )cfgno;
49847  err2: ;
49848#line 760
49849  if (result == -12) {
49850    {
49851#line 761
49852    __cil_tmp73 = (struct device  const  *)ddev;
49853#line 761
49854    dev_err(__cil_tmp73, "out of memory\n");
49855    }
49856  } else {
49857
49858  }
49859#line 762
49860  return (result);
49861}
49862}
49863#line 63 "include/linux/string.h"
49864extern char *strrchr(char const   * , int  ) ;
49865#line 27 "include/linux/err.h"
49866__inline static long PTR_ERR(void const   *ptr ) 
49867{ 
49868
49869  {
49870#line 29
49871  return ((long )ptr);
49872}
49873}
49874#line 89 "include/linux/rwsem.h"
49875extern void down_write(struct rw_semaphore * ) ;
49876#line 104
49877extern void up_write(struct rw_semaphore * ) ;
49878#line 537 "include/linux/module.h"
49879__inline static int ldv_try_module_get_1(struct module *module ) ;
49880#line 547
49881void ldv_module_put_2(struct module *ldv_func_arg1 ) ;
49882#line 551
49883void ldv_module_put_4(struct module *ldv_func_arg1 ) ;
49884#line 391 "include/linux/device.h"
49885extern struct class *__class_create(struct module * , char const   * , struct lock_class_key * ) ;
49886#line 394
49887extern void class_destroy(struct class * ) ;
49888#line 743
49889extern struct device *device_create(struct class * , struct device * , dev_t  , void * ,
49890                                    char const   *  , ...) ;
49891#line 747
49892extern void device_destroy(struct class * , dev_t  ) ;
49893#line 891 "include/linux/fs.h"
49894__inline static unsigned int iminor(struct inode  const  *inode ) 
49895{ dev_t __cil_tmp2 ;
49896  unsigned int __cil_tmp3 ;
49897
49898  {
49899  {
49900#line 893
49901  __cil_tmp2 = inode->i_rdev;
49902#line 893
49903  __cil_tmp3 = (unsigned int )__cil_tmp2;
49904#line 893
49905  return (__cil_tmp3 & 1048575U);
49906  }
49907}
49908}
49909#line 2089
49910extern int __register_chrdev(unsigned int  , unsigned int  , unsigned int  , char const   * ,
49911                             struct file_operations  const  * ) ;
49912#line 2092
49913extern void __unregister_chrdev(unsigned int  , unsigned int  , unsigned int  , char const   * ) ;
49914#line 2097 "include/linux/fs.h"
49915__inline static int register_chrdev(unsigned int major , char const   *name , struct file_operations  const  *fops ) 
49916{ int tmp ;
49917
49918  {
49919  {
49920#line 2100
49921  tmp = __register_chrdev(major, 0U, 256U, name, fops);
49922  }
49923#line 2100
49924  return (tmp);
49925}
49926}
49927#line 2103 "include/linux/fs.h"
49928__inline static void unregister_chrdev(unsigned int major , char const   *name ) 
49929{ 
49930
49931  {
49932  {
49933#line 2105
49934  __unregister_chrdev(major, 0U, 256U, name);
49935  }
49936#line 2106
49937  return;
49938}
49939}
49940#line 2336
49941extern loff_t noop_llseek(struct file * , loff_t  , int  ) ;
49942#line 941 "include/linux/usb.h"
49943int usb_register_dev(struct usb_interface *intf , struct usb_class_driver *class_driver ) ;
49944#line 943
49945void usb_deregister_dev(struct usb_interface *intf , struct usb_class_driver *class_driver ) ;
49946#line 35 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
49947static struct file_operations  const  *usb_minors[256U]  ;
49948#line 36 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
49949static struct rw_semaphore minor_rwsem  =    {0L, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
49950                                                                           {(struct lock_class *)0,
49951                                                                            (struct lock_class *)0},
49952                                                                           "minor_rwsem.wait_lock",
49953                                                                           0, 0UL}}}},
49954    {& minor_rwsem.wait_list, & minor_rwsem.wait_list}, {(struct lock_class_key *)0,
49955                                                         {(struct lock_class *)0,
49956                                                          (struct lock_class *)0},
49957                                                         "minor_rwsem", 0, 0UL}};
49958#line 38 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
49959static int usb_open(struct inode *inode , struct file *file ) 
49960{ int minor ;
49961  unsigned int tmp ;
49962  struct file_operations  const  *c ;
49963  int err ;
49964  struct file_operations  const  *old_fops ;
49965  struct file_operations  const  *new_fops ;
49966  int tmp___1 ;
49967  int tmp___3 ;
49968  struct inode  const  *__cil_tmp11 ;
49969  struct file_operations  const  *__cil_tmp12 ;
49970  unsigned long __cil_tmp13 ;
49971  unsigned long __cil_tmp14 ;
49972  struct file_operations  const  *__cil_tmp15 ;
49973  unsigned long __cil_tmp16 ;
49974  unsigned long __cil_tmp17 ;
49975  struct module *__cil_tmp18 ;
49976  struct module *__cil_tmp19 ;
49977  struct file_operations  const  *__cil_tmp20 ;
49978  unsigned long __cil_tmp21 ;
49979  unsigned long __cil_tmp22 ;
49980  int (*__cil_tmp23)(struct inode * , struct file * ) ;
49981  unsigned long __cil_tmp24 ;
49982  struct file_operations  const  *__cil_tmp25 ;
49983  int (*__cil_tmp26)(struct inode * , struct file * ) ;
49984  unsigned long __cil_tmp27 ;
49985  struct file_operations  const  *__cil_tmp28 ;
49986  int (*__cil_tmp29)(struct inode * , struct file * ) ;
49987  struct file_operations  const  *__cil_tmp30 ;
49988  unsigned long __cil_tmp31 ;
49989  struct file_operations  const  *__cil_tmp32 ;
49990  unsigned long __cil_tmp33 ;
49991  struct file_operations  const  *__cil_tmp34 ;
49992  struct module *__cil_tmp35 ;
49993  struct module *__cil_tmp36 ;
49994  struct file_operations  const  *__cil_tmp37 ;
49995  unsigned long __cil_tmp38 ;
49996  unsigned long __cil_tmp39 ;
49997  struct module *__cil_tmp40 ;
49998  struct module *__cil_tmp41 ;
49999  struct file_operations  const  *__cil_tmp42 ;
50000  unsigned long __cil_tmp43 ;
50001  unsigned long __cil_tmp44 ;
50002  struct module *__cil_tmp45 ;
50003  struct module *__cil_tmp46 ;
50004
50005  {
50006  {
50007#line 40
50008  __cil_tmp11 = (struct inode  const  *)inode;
50009#line 40
50010  tmp = iminor(__cil_tmp11);
50011#line 40
50012  minor = (int )tmp;
50013#line 42
50014  err = -19;
50015#line 43
50016  new_fops = (struct file_operations  const  *)0;
50017#line 45
50018  down_read(& minor_rwsem);
50019#line 46
50020  c = __VERIFIER_nondet_int();
50021  }
50022  {
50023#line 48
50024  __cil_tmp12 = (struct file_operations  const  *)0;
50025#line 48
50026  __cil_tmp13 = (unsigned long )__cil_tmp12;
50027#line 48
50028  __cil_tmp14 = (unsigned long )c;
50029#line 48
50030  if (__cil_tmp14 == __cil_tmp13) {
50031#line 49
50032    goto done;
50033  } else {
50034    {
50035#line 48
50036    __cil_tmp15 = (struct file_operations  const  *)0;
50037#line 48
50038    __cil_tmp16 = (unsigned long )__cil_tmp15;
50039#line 48
50040    __cil_tmp17 = (unsigned long )c;
50041#line 48
50042    if (__cil_tmp17 != __cil_tmp16) {
50043      {
50044#line 48
50045      __cil_tmp18 = c->owner;
50046#line 48
50047      __cil_tmp19 = (struct module *)__cil_tmp18;
50048#line 48
50049      tmp___1 = ldv_try_module_get_1(__cil_tmp19);
50050      }
50051#line 48
50052      if (tmp___1 != 0) {
50053#line 48
50054        new_fops = c;
50055      } else {
50056#line 48
50057        new_fops = (struct file_operations  const  *)0;
50058      }
50059    } else {
50060#line 48
50061      new_fops = (struct file_operations  const  *)0;
50062    }
50063    }
50064    {
50065#line 48
50066    __cil_tmp20 = (struct file_operations  const  *)0;
50067#line 48
50068    __cil_tmp21 = (unsigned long )__cil_tmp20;
50069#line 48
50070    __cil_tmp22 = (unsigned long )new_fops;
50071#line 48
50072    if (__cil_tmp22 == __cil_tmp21) {
50073#line 49
50074      goto done;
50075    } else {
50076
50077    }
50078    }
50079  }
50080  }
50081#line 51
50082  old_fops = file->f_op;
50083#line 52
50084  file->f_op = new_fops;
50085  {
50086#line 54
50087  __cil_tmp23 = (int (* const  )(struct inode * , struct file * ))0;
50088#line 54
50089  __cil_tmp24 = (unsigned long )__cil_tmp23;
50090#line 54
50091  __cil_tmp25 = file->f_op;
50092#line 54
50093  __cil_tmp26 = __cil_tmp25->open;
50094#line 54
50095  __cil_tmp27 = (unsigned long )__cil_tmp26;
50096#line 54
50097  if (__cil_tmp27 != __cil_tmp24) {
50098    {
50099#line 55
50100    __cil_tmp28 = file->f_op;
50101#line 55
50102    __cil_tmp29 = __cil_tmp28->open;
50103#line 55
50104    err = (*__cil_tmp29)(inode, file);
50105    }
50106  } else {
50107
50108  }
50109  }
50110#line 56
50111  if (err != 0) {
50112    {
50113#line 57
50114    __cil_tmp30 = (struct file_operations  const  *)0;
50115#line 57
50116    __cil_tmp31 = (unsigned long )__cil_tmp30;
50117#line 57
50118    __cil_tmp32 = file->f_op;
50119#line 57
50120    __cil_tmp33 = (unsigned long )__cil_tmp32;
50121#line 57
50122    if (__cil_tmp33 != __cil_tmp31) {
50123      {
50124#line 57
50125      __cil_tmp34 = file->f_op;
50126#line 57
50127      __cil_tmp35 = __cil_tmp34->owner;
50128#line 57
50129      __cil_tmp36 = (struct module *)__cil_tmp35;
50130#line 57
50131      ldv_module_put_2(__cil_tmp36);
50132      }
50133    } else {
50134
50135    }
50136    }
50137    {
50138#line 58
50139    __cil_tmp37 = (struct file_operations  const  *)0;
50140#line 58
50141    __cil_tmp38 = (unsigned long )__cil_tmp37;
50142#line 58
50143    __cil_tmp39 = (unsigned long )old_fops;
50144#line 58
50145    if (__cil_tmp39 != __cil_tmp38) {
50146      {
50147#line 58
50148      __cil_tmp40 = old_fops->owner;
50149#line 58
50150      __cil_tmp41 = (struct module *)__cil_tmp40;
50151#line 58
50152      tmp___3 = ldv_try_module_get_1(__cil_tmp41);
50153      }
50154#line 58
50155      if (tmp___3 != 0) {
50156#line 58
50157        file->f_op = old_fops;
50158      } else {
50159#line 58
50160        file->f_op = (struct file_operations  const  *)0;
50161      }
50162    } else {
50163#line 58
50164      file->f_op = (struct file_operations  const  *)0;
50165    }
50166    }
50167  } else {
50168
50169  }
50170  {
50171#line 60
50172  __cil_tmp42 = (struct file_operations  const  *)0;
50173#line 60
50174  __cil_tmp43 = (unsigned long )__cil_tmp42;
50175#line 60
50176  __cil_tmp44 = (unsigned long )old_fops;
50177#line 60
50178  if (__cil_tmp44 != __cil_tmp43) {
50179    {
50180#line 60
50181    __cil_tmp45 = old_fops->owner;
50182#line 60
50183    __cil_tmp46 = (struct module *)__cil_tmp45;
50184#line 60
50185    ldv_module_put_4(__cil_tmp46);
50186    }
50187  } else {
50188
50189  }
50190  }
50191  done: 
50192  {
50193#line 62
50194  up_read(& minor_rwsem);
50195  }
50196#line 63
50197  return (err);
50198}
50199}
50200#line 66 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50201static struct file_operations  const  usb_fops  = 
50202#line 66
50203     {& __this_module, & noop_llseek, (ssize_t (*)(struct file * , char * , size_t  ,
50204                                                 loff_t * ))0, (ssize_t (*)(struct file * ,
50205                                                                            char const   * ,
50206                                                                            size_t  ,
50207                                                                            loff_t * ))0,
50208    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
50209    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
50210    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
50211                                              u64  , unsigned int  ) ))0, (unsigned int (*)(struct file * ,
50212                                                                                            struct poll_table_struct * ))0,
50213    (long (*)(struct file * , unsigned int  , unsigned long  ))0, (long (*)(struct file * ,
50214                                                                            unsigned int  ,
50215                                                                            unsigned long  ))0,
50216    (int (*)(struct file * , struct vm_area_struct * ))0, & usb_open, (int (*)(struct file * ,
50217                                                                               fl_owner_t  ))0,
50218    (int (*)(struct inode * , struct file * ))0, (int (*)(struct file * , int  ))0,
50219    (int (*)(struct kiocb * , int  ))0, (int (*)(int  , struct file * , int  ))0,
50220    (int (*)(struct file * , int  , struct file_lock * ))0, (ssize_t (*)(struct file * ,
50221                                                                         struct page * ,
50222                                                                         int  , size_t  ,
50223                                                                         loff_t * ,
50224                                                                         int  ))0,
50225    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
50226                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
50227                                                                       int  , struct file_lock * ))0,
50228    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
50229    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
50230    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file * ,
50231                                                                        int  , loff_t  ,
50232                                                                        loff_t  ))0};
50233#line 75 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50234static struct usb_class *usb_class  ;
50235#line 77 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50236static char *usb_devnode___0(struct device *dev , mode_t *mode ) 
50237{ struct usb_class_driver *drv ;
50238  void *tmp ;
50239  char *tmp___0 ;
50240  struct device  const  *__cil_tmp6 ;
50241  struct usb_class_driver *__cil_tmp7 ;
50242  unsigned long __cil_tmp8 ;
50243  unsigned long __cil_tmp9 ;
50244  char *(*__cil_tmp10)(struct device * , mode_t * ) ;
50245  unsigned long __cil_tmp11 ;
50246  char *(*__cil_tmp12)(struct device * , mode_t * ) ;
50247  unsigned long __cil_tmp13 ;
50248  char *(*__cil_tmp14)(struct device * , mode_t * ) ;
50249
50250  {
50251  {
50252#line 81
50253  __cil_tmp6 = (struct device  const  *)dev;
50254#line 81
50255  tmp = dev_get_drvdata(__cil_tmp6);
50256#line 81
50257  drv = (struct usb_class_driver *)tmp;
50258  }
50259  {
50260#line 82
50261  __cil_tmp7 = (struct usb_class_driver *)0;
50262#line 82
50263  __cil_tmp8 = (unsigned long )__cil_tmp7;
50264#line 82
50265  __cil_tmp9 = (unsigned long )drv;
50266#line 82
50267  if (__cil_tmp9 == __cil_tmp8) {
50268#line 83
50269    return ((char *)0);
50270  } else {
50271    {
50272#line 82
50273    __cil_tmp10 = (char *(*)(struct device * , mode_t * ))0;
50274#line 82
50275    __cil_tmp11 = (unsigned long )__cil_tmp10;
50276#line 82
50277    __cil_tmp12 = drv->devnode;
50278#line 82
50279    __cil_tmp13 = (unsigned long )__cil_tmp12;
50280#line 82
50281    if (__cil_tmp13 == __cil_tmp11) {
50282#line 83
50283      return ((char *)0);
50284    } else {
50285
50286    }
50287    }
50288  }
50289  }
50290  {
50291#line 84
50292  __cil_tmp14 = drv->devnode;
50293#line 84
50294  tmp___0 = (*__cil_tmp14)(dev, mode);
50295  }
50296#line 84
50297  return (tmp___0);
50298}
50299}
50300#line 87 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50301static int init_usb_class(void) 
50302{ int result ;
50303  void *tmp ;
50304  struct lock_class_key __key ;
50305  struct class *tmp___0 ;
50306  long tmp___1 ;
50307  long tmp___2 ;
50308  struct usb_class *__cil_tmp7 ;
50309  unsigned long __cil_tmp8 ;
50310  unsigned long __cil_tmp9 ;
50311  struct kref *__cil_tmp10 ;
50312  struct usb_class *__cil_tmp11 ;
50313  unsigned long __cil_tmp12 ;
50314  unsigned long __cil_tmp13 ;
50315  struct kref *__cil_tmp14 ;
50316  struct class *__cil_tmp15 ;
50317  void const   *__cil_tmp16 ;
50318  struct class *__cil_tmp17 ;
50319  void const   *__cil_tmp18 ;
50320  void const   *__cil_tmp19 ;
50321  struct class *__cil_tmp20 ;
50322
50323  {
50324#line 89
50325  result = 0;
50326  {
50327#line 91
50328  __cil_tmp7 = (struct usb_class *)0;
50329#line 91
50330  __cil_tmp8 = (unsigned long )__cil_tmp7;
50331#line 91
50332  __cil_tmp9 = (unsigned long )usb_class;
50333#line 91
50334  if (__cil_tmp9 != __cil_tmp8) {
50335    {
50336#line 92
50337    __cil_tmp10 = & usb_class->kref;
50338#line 92
50339    kref_get(__cil_tmp10);
50340    }
50341#line 93
50342    goto exit;
50343  } else {
50344
50345  }
50346  }
50347  {
50348#line 96
50349  tmp = kmalloc(16UL, 208U);
50350#line 96
50351  usb_class = (struct usb_class *)tmp;
50352  }
50353  {
50354#line 97
50355  __cil_tmp11 = (struct usb_class *)0;
50356#line 97
50357  __cil_tmp12 = (unsigned long )__cil_tmp11;
50358#line 97
50359  __cil_tmp13 = (unsigned long )usb_class;
50360#line 97
50361  if (__cil_tmp13 == __cil_tmp12) {
50362#line 98
50363    result = -12;
50364#line 99
50365    goto exit;
50366  } else {
50367
50368  }
50369  }
50370  {
50371#line 102
50372  __cil_tmp14 = & usb_class->kref;
50373#line 102
50374  kref_init(__cil_tmp14);
50375#line 103
50376  tmp___0 = __class_create(& __this_module, "usb", & __key);
50377#line 103
50378  usb_class->class = tmp___0;
50379#line 104
50380  __cil_tmp15 = usb_class->class;
50381#line 104
50382  __cil_tmp16 = (void const   *)__cil_tmp15;
50383#line 104
50384  tmp___2 = IS_ERR(__cil_tmp16);
50385  }
50386#line 104
50387  if (tmp___2 != 0L) {
50388    {
50389#line 105
50390    __cil_tmp17 = usb_class->class;
50391#line 105
50392    __cil_tmp18 = (void const   *)__cil_tmp17;
50393#line 105
50394    tmp___1 = IS_ERR(__cil_tmp18);
50395#line 105
50396    result = (int )tmp___1;
50397#line 106
50398    printk("<3>class_create failed for usb devices\n");
50399#line 107
50400    __cil_tmp19 = (void const   *)usb_class;
50401#line 107
50402    kfree(__cil_tmp19);
50403#line 108
50404    usb_class = (struct usb_class *)0;
50405    }
50406#line 109
50407    goto exit;
50408  } else {
50409
50410  }
50411#line 111
50412  __cil_tmp20 = usb_class->class;
50413#line 111
50414  __cil_tmp20->devnode = & usb_devnode___0;
50415  exit: ;
50416#line 114
50417  return (result);
50418}
50419}
50420#line 117 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50421static void release_usb_class(struct kref *kref ) 
50422{ struct class *__cil_tmp2 ;
50423  void const   *__cil_tmp3 ;
50424
50425  {
50426  {
50427#line 120
50428  __cil_tmp2 = usb_class->class;
50429#line 120
50430  class_destroy(__cil_tmp2);
50431#line 121
50432  __cil_tmp3 = (void const   *)usb_class;
50433#line 121
50434  kfree(__cil_tmp3);
50435#line 122
50436  usb_class = (struct usb_class *)0;
50437  }
50438#line 123
50439  return;
50440}
50441}
50442#line 125 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50443static void destroy_usb_class(void) 
50444{ struct usb_class *__cil_tmp1 ;
50445  unsigned long __cil_tmp2 ;
50446  unsigned long __cil_tmp3 ;
50447  struct kref *__cil_tmp4 ;
50448
50449  {
50450  {
50451#line 127
50452  __cil_tmp1 = (struct usb_class *)0;
50453#line 127
50454  __cil_tmp2 = (unsigned long )__cil_tmp1;
50455#line 127
50456  __cil_tmp3 = (unsigned long )usb_class;
50457#line 127
50458  if (__cil_tmp3 != __cil_tmp2) {
50459    {
50460#line 128
50461    __cil_tmp4 = & usb_class->kref;
50462#line 128
50463    kref_put(__cil_tmp4, & release_usb_class);
50464    }
50465  } else {
50466
50467  }
50468  }
50469#line 129
50470  return;
50471}
50472}
50473#line 131 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50474int usb_major_init(void) 
50475{ int error ;
50476
50477  {
50478  {
50479#line 135
50480  error = register_chrdev(180U, "usb", & usb_fops);
50481  }
50482#line 136
50483  if (error != 0) {
50484    {
50485#line 137
50486    printk("<3>Unable to get major %d for usb devices\n", 180);
50487    }
50488  } else {
50489
50490  }
50491#line 140
50492  return (error);
50493}
50494}
50495#line 143 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50496void usb_major_cleanup(void) 
50497{ 
50498
50499  {
50500  {
50501#line 145
50502  unregister_chrdev(180U, "usb");
50503  }
50504#line 146
50505  return;
50506}
50507}
50508#line 167 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50509int usb_register_dev(struct usb_interface *intf , struct usb_class_driver *class_driver ) 
50510{ int retval ;
50511  int minor_base ;
50512  int minor ;
50513  char name[20U] ;
50514  char *temp ;
50515  long tmp ;
50516  long tmp___0 ;
50517  struct file_operations  const  *__cil_tmp10 ;
50518  unsigned long __cil_tmp11 ;
50519  struct file_operations  const  *__cil_tmp12 ;
50520  unsigned long __cil_tmp13 ;
50521  int __cil_tmp14 ;
50522  struct device *__cil_tmp15 ;
50523  struct device  const  *__cil_tmp16 ;
50524  struct file_operations  const  *__cil_tmp17 ;
50525  unsigned long __cil_tmp18 ;
50526  unsigned long __cil_tmp19 ;
50527  int __cil_tmp20 ;
50528  char *__cil_tmp21 ;
50529  char *__cil_tmp22 ;
50530  char const   *__cil_tmp23 ;
50531  int __cil_tmp24 ;
50532  char const   *__cil_tmp25 ;
50533  char *__cil_tmp26 ;
50534  unsigned long __cil_tmp27 ;
50535  unsigned long __cil_tmp28 ;
50536  char *__cil_tmp29 ;
50537  char __cil_tmp30 ;
50538  signed char __cil_tmp31 ;
50539  int __cil_tmp32 ;
50540  struct class *__cil_tmp33 ;
50541  struct device *__cil_tmp34 ;
50542  int __cil_tmp35 ;
50543  dev_t __cil_tmp36 ;
50544  void *__cil_tmp37 ;
50545  struct device *__cil_tmp38 ;
50546  void const   *__cil_tmp39 ;
50547  struct device *__cil_tmp40 ;
50548  void const   *__cil_tmp41 ;
50549
50550  {
50551#line 171
50552  minor_base = class_driver->minor_base;
50553#line 182
50554  minor_base = 0;
50555  {
50556#line 185
50557  __cil_tmp10 = (struct file_operations  const  *)0;
50558#line 185
50559  __cil_tmp11 = (unsigned long )__cil_tmp10;
50560#line 185
50561  __cil_tmp12 = class_driver->fops;
50562#line 185
50563  __cil_tmp13 = (unsigned long )__cil_tmp12;
50564#line 185
50565  if (__cil_tmp13 == __cil_tmp11) {
50566#line 186
50567    return (-22);
50568  } else {
50569
50570  }
50571  }
50572  {
50573#line 187
50574  __cil_tmp14 = intf->minor;
50575#line 187
50576  if (__cil_tmp14 >= 0) {
50577#line 188
50578    return (-98);
50579  } else {
50580
50581  }
50582  }
50583  {
50584#line 190
50585  retval = init_usb_class();
50586  }
50587#line 191
50588  if (retval != 0) {
50589#line 192
50590    return (retval);
50591  } else {
50592
50593  }
50594  {
50595#line 194
50596  __cil_tmp15 = & intf->dev;
50597#line 194
50598  __cil_tmp16 = (struct device  const  *)__cil_tmp15;
50599#line 194
50600  dev_printk("<7>", __cil_tmp16, "looking for a minor, starting at %d", minor_base);
50601#line 196
50602  down_write(& minor_rwsem);
50603#line 197
50604  minor = minor_base;
50605  }
50606#line 197
50607  goto ldv_23916;
50608  ldv_23915: ;
50609  {
50610#line 198
50611  __cil_tmp17 = (struct file_operations  const  *)0;
50612#line 198
50613  __cil_tmp18 = (unsigned long )__cil_tmp17;
50614#line 198
50615  __cil_tmp19 = (unsigned long )usb_minors[minor];
50616#line 198
50617  if (__cil_tmp19 != __cil_tmp18) {
50618#line 199
50619    goto ldv_23913;
50620  } else {
50621
50622  }
50623  }
50624#line 201
50625  usb_minors[minor] = class_driver->fops;
50626#line 202
50627  intf->minor = minor;
50628#line 203
50629  goto ldv_23914;
50630  ldv_23913: 
50631#line 197
50632  minor = minor + 1;
50633  ldv_23916: ;
50634#line 197
50635  if (minor <= 255) {
50636#line 198
50637    goto ldv_23915;
50638  } else {
50639#line 200
50640    goto ldv_23914;
50641  }
50642  ldv_23914: 
50643  {
50644#line 205
50645  up_write(& minor_rwsem);
50646  }
50647  {
50648#line 206
50649  __cil_tmp20 = intf->minor;
50650#line 206
50651  if (__cil_tmp20 < 0) {
50652#line 207
50653    return (-54);
50654  } else {
50655
50656  }
50657  }
50658  {
50659#line 210
50660  __cil_tmp21 = (char *)(& name);
50661#line 210
50662  __cil_tmp22 = class_driver->name;
50663#line 210
50664  __cil_tmp23 = (char const   *)__cil_tmp22;
50665#line 210
50666  __cil_tmp24 = minor - minor_base;
50667#line 210
50668  snprintf(__cil_tmp21, 20UL, __cil_tmp23, __cil_tmp24);
50669#line 211
50670  __cil_tmp25 = (char const   *)(& name);
50671#line 211
50672  temp = strrchr(__cil_tmp25, 47);
50673  }
50674  {
50675#line 212
50676  __cil_tmp26 = (char *)0;
50677#line 212
50678  __cil_tmp27 = (unsigned long )__cil_tmp26;
50679#line 212
50680  __cil_tmp28 = (unsigned long )temp;
50681#line 212
50682  if (__cil_tmp28 != __cil_tmp27) {
50683    {
50684#line 212
50685    __cil_tmp29 = temp + 1UL;
50686#line 212
50687    __cil_tmp30 = *__cil_tmp29;
50688#line 212
50689    __cil_tmp31 = (signed char )__cil_tmp30;
50690#line 212
50691    __cil_tmp32 = (int )__cil_tmp31;
50692#line 212
50693    if (__cil_tmp32 != 0) {
50694#line 213
50695      temp = temp + 1;
50696    } else {
50697#line 215
50698      temp = (char *)(& name);
50699    }
50700    }
50701  } else {
50702#line 215
50703    temp = (char *)(& name);
50704  }
50705  }
50706  {
50707#line 216
50708  __cil_tmp33 = usb_class->class;
50709#line 216
50710  __cil_tmp34 = & intf->dev;
50711#line 216
50712  __cil_tmp35 = minor | 188743680;
50713#line 216
50714  __cil_tmp36 = (dev_t )__cil_tmp35;
50715#line 216
50716  __cil_tmp37 = (void *)class_driver;
50717#line 216
50718  intf->usb_dev = device_create(__cil_tmp33, __cil_tmp34, __cil_tmp36, __cil_tmp37,
50719                                "%s", temp);
50720#line 219
50721  __cil_tmp38 = intf->usb_dev;
50722#line 219
50723  __cil_tmp39 = (void const   *)__cil_tmp38;
50724#line 219
50725  tmp___0 = IS_ERR(__cil_tmp39);
50726  }
50727#line 219
50728  if (tmp___0 != 0L) {
50729    {
50730#line 220
50731    down_write(& minor_rwsem);
50732#line 221
50733    usb_minors[minor] = (struct file_operations  const  *)0;
50734#line 222
50735    intf->minor = -1;
50736#line 223
50737    up_write(& minor_rwsem);
50738#line 224
50739    __cil_tmp40 = intf->usb_dev;
50740#line 224
50741    __cil_tmp41 = (void const   *)__cil_tmp40;
50742#line 224
50743    tmp = PTR_ERR(__cil_tmp41);
50744#line 224
50745    retval = (int )tmp;
50746    }
50747  } else {
50748
50749  }
50750#line 226
50751  return (retval);
50752}
50753}
50754#line 244 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50755void usb_deregister_dev(struct usb_interface *intf , struct usb_class_driver *class_driver ) 
50756{ int __cil_tmp3 ;
50757  char *__cil_tmp4 ;
50758  int __cil_tmp5 ;
50759  struct class *__cil_tmp6 ;
50760  int __cil_tmp7 ;
50761  int __cil_tmp8 ;
50762  dev_t __cil_tmp9 ;
50763
50764  {
50765  {
50766#line 247
50767  __cil_tmp3 = intf->minor;
50768#line 247
50769  if (__cil_tmp3 == -1) {
50770#line 248
50771    return;
50772  } else {
50773
50774  }
50775  }
50776  {
50777#line 250
50778  __cil_tmp4 = (char *)"/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p";
50779#line 250
50780  __cil_tmp5 = intf->minor;
50781#line 250
50782  printk("<7>%s: removing %d minor\n", __cil_tmp4, __cil_tmp5);
50783#line 252
50784  down_write(& minor_rwsem);
50785#line 253
50786  usb_minors[intf->minor] = (struct file_operations  const  *)0;
50787#line 254
50788  up_write(& minor_rwsem);
50789#line 256
50790  __cil_tmp6 = usb_class->class;
50791#line 256
50792  __cil_tmp7 = intf->minor;
50793#line 256
50794  __cil_tmp8 = __cil_tmp7 | 188743680;
50795#line 256
50796  __cil_tmp9 = (dev_t )__cil_tmp8;
50797#line 256
50798  device_destroy(__cil_tmp6, __cil_tmp9);
50799#line 257
50800  intf->usb_dev = (struct device *)0;
50801#line 258
50802  intf->minor = -1;
50803#line 259
50804  destroy_usb_class();
50805  }
50806#line 260
50807  return;
50808}
50809}
50810#line 294 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50811void main(void) 
50812{ struct inode *var_group1 ;
50813  struct file *var_group2 ;
50814  int res_usb_open_0 ;
50815  int ldv_s_usb_fops_file_operations ;
50816  int tmp ;
50817  int tmp___0 ;
50818
50819  {
50820  {
50821#line 332
50822  ldv_s_usb_fops_file_operations = 0;
50823#line 322
50824  LDV_IN_INTERRUPT = 1;
50825#line 331
50826  ldv_initialize();
50827  }
50828#line 335
50829  goto ldv_23956;
50830  ldv_23955: 
50831  {
50832#line 339
50833  tmp = nondet_int();
50834  }
50835#line 341
50836  if (tmp == 0) {
50837#line 341
50838    goto case_0;
50839  } else {
50840#line 366
50841    goto switch_default;
50842#line 339
50843    if (0) {
50844      case_0: ;
50845#line 344
50846      if (ldv_s_usb_fops_file_operations == 0) {
50847        {
50848#line 351
50849        res_usb_open_0 = usb_open(var_group1, var_group2);
50850#line 352
50851        ldv_check_return_value(res_usb_open_0);
50852        }
50853#line 353
50854        if (res_usb_open_0 != 0) {
50855#line 354
50856          goto ldv_module_exit;
50857        } else {
50858
50859        }
50860#line 359
50861        ldv_s_usb_fops_file_operations = 0;
50862      } else {
50863
50864      }
50865#line 365
50866      goto ldv_23953;
50867      switch_default: ;
50868#line 366
50869      goto ldv_23953;
50870    } else {
50871
50872    }
50873  }
50874  ldv_23953: ;
50875  ldv_23956: 
50876  {
50877#line 335
50878  tmp___0 = nondet_int();
50879  }
50880#line 335
50881  if (tmp___0 != 0) {
50882#line 337
50883    goto ldv_23955;
50884  } else
50885#line 335
50886  if (ldv_s_usb_fops_file_operations != 0) {
50887#line 337
50888    goto ldv_23955;
50889  } else {
50890#line 339
50891    goto ldv_23957;
50892  }
50893  ldv_23957: ;
50894  ldv_module_exit: 
50895  {
50896#line 375
50897  ldv_check_final_state();
50898  }
50899#line 378
50900  return;
50901}
50902}
50903#line 382 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50904__inline static int ldv_try_module_get_1(struct module *module ) 
50905{ int tmp ;
50906
50907  {
50908  {
50909#line 387
50910  tmp = ldv_try_module_get(module);
50911  }
50912#line 387
50913  return (tmp);
50914}
50915}
50916#line 390 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50917void ldv_module_put_2(struct module *ldv_func_arg1 ) 
50918{ 
50919
50920  {
50921  {
50922#line 395
50923  ldv_module_put(ldv_func_arg1);
50924  }
50925#line 396
50926  return;
50927}
50928}
50929#line 406 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/file.c.p"
50930void ldv_module_put_4(struct module *ldv_func_arg1 ) 
50931{ 
50932
50933  {
50934  {
50935#line 411
50936  ldv_module_put(ldv_func_arg1);
50937  }
50938#line 412
50939  return;
50940}
50941}
50942#line 87 "include/linux/dma-mapping.h"
50943__inline static int is_device_dma_capable(struct device *dev ) 
50944{ int tmp ;
50945  u64 *__cil_tmp3 ;
50946  unsigned long __cil_tmp4 ;
50947  u64 *__cil_tmp5 ;
50948  unsigned long __cil_tmp6 ;
50949  u64 *__cil_tmp7 ;
50950  u64 __cil_tmp8 ;
50951
50952  {
50953  {
50954#line 89
50955  __cil_tmp3 = (u64 *)0;
50956#line 89
50957  __cil_tmp4 = (unsigned long )__cil_tmp3;
50958#line 89
50959  __cil_tmp5 = dev->dma_mask;
50960#line 89
50961  __cil_tmp6 = (unsigned long )__cil_tmp5;
50962#line 89
50963  if (__cil_tmp6 != __cil_tmp4) {
50964    {
50965#line 89
50966    __cil_tmp7 = dev->dma_mask;
50967#line 89
50968    __cil_tmp8 = *__cil_tmp7;
50969#line 89
50970    if (__cil_tmp8 != 0ULL) {
50971#line 89
50972      tmp = 1;
50973    } else {
50974#line 89
50975      tmp = 0;
50976    }
50977    }
50978  } else {
50979#line 89
50980    tmp = 0;
50981  }
50982  }
50983#line 89
50984  return (tmp);
50985}
50986}
50987#line 51 "include/linux/dma-debug.h"
50988extern void debug_dma_alloc_coherent(struct device * , size_t  , dma_addr_t  , void * ) ;
50989#line 54
50990extern void debug_dma_free_coherent(struct device * , size_t  , void * , dma_addr_t  ) ;
50991#line 26 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
50992extern struct device x86_dma_fallback_dev ;
50993#line 89 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
50994__inline static unsigned long dma_alloc_coherent_mask(struct device *dev , gfp_t gfp ) 
50995{ unsigned long dma_mask ;
50996  u64 __cil_tmp4 ;
50997  int __cil_tmp5 ;
50998
50999  {
51000#line 92
51001  dma_mask = 0UL;
51002#line 94
51003  __cil_tmp4 = dev->coherent_dma_mask;
51004#line 94
51005  dma_mask = (unsigned long )__cil_tmp4;
51006#line 95
51007  if (dma_mask == 0UL) {
51008    {
51009#line 96
51010    __cil_tmp5 = (int )gfp;
51011#line 96
51012    if (__cil_tmp5 & 1) {
51013#line 96
51014      dma_mask = 16777215UL;
51015    } else {
51016#line 96
51017      dma_mask = 4294967295UL;
51018    }
51019    }
51020  } else {
51021
51022  }
51023#line 98
51024  return (dma_mask);
51025}
51026}
51027#line 101 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
51028__inline static gfp_t dma_alloc_coherent_gfp_flags(struct device *dev , gfp_t gfp ) 
51029{ unsigned long dma_mask ;
51030  unsigned long tmp ;
51031  unsigned long long __cil_tmp5 ;
51032  unsigned long long __cil_tmp6 ;
51033  unsigned int __cil_tmp7 ;
51034
51035  {
51036  {
51037#line 103
51038  tmp = dma_alloc_coherent_mask(dev, gfp);
51039#line 103
51040  dma_mask = tmp;
51041  }
51042  {
51043#line 105
51044  __cil_tmp5 = (unsigned long long )dma_mask;
51045#line 105
51046  if (__cil_tmp5 <= 16777215ULL) {
51047#line 106
51048    gfp = gfp | 1U;
51049  } else {
51050
51051  }
51052  }
51053  {
51054#line 108
51055  __cil_tmp6 = (unsigned long long )dma_mask;
51056#line 108
51057  if (__cil_tmp6 <= 4294967295ULL) {
51058    {
51059#line 108
51060    __cil_tmp7 = gfp & 1U;
51061#line 108
51062    if (__cil_tmp7 == 0U) {
51063#line 109
51064      gfp = gfp | 4U;
51065    } else {
51066
51067    }
51068    }
51069  } else {
51070
51071  }
51072  }
51073#line 111
51074  return (gfp);
51075}
51076}
51077#line 115 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
51078__inline static void *dma_alloc_coherent(struct device *dev , size_t size , dma_addr_t *dma_handle ,
51079                                         gfp_t gfp ) 
51080{ struct dma_map_ops *ops ;
51081  struct dma_map_ops *tmp ;
51082  void *memory ;
51083  int tmp___0 ;
51084  gfp_t tmp___1 ;
51085  struct device *__cil_tmp10 ;
51086  unsigned long __cil_tmp11 ;
51087  unsigned long __cil_tmp12 ;
51088  void *(*__cil_tmp13)(struct device * , size_t  , dma_addr_t * , gfp_t  ) ;
51089  unsigned long __cil_tmp14 ;
51090  void *(*__cil_tmp15)(struct device * , size_t  , dma_addr_t * , gfp_t  ) ;
51091  unsigned long __cil_tmp16 ;
51092  void *(*__cil_tmp17)(struct device * , size_t  , dma_addr_t * , gfp_t  ) ;
51093  dma_addr_t __cil_tmp18 ;
51094
51095  {
51096  {
51097#line 118
51098  tmp = get_dma_ops(dev);
51099#line 118
51100  ops = tmp;
51101#line 121
51102  gfp = gfp & 4294967288U;
51103  }
51104  {
51105#line 126
51106  __cil_tmp10 = (struct device *)0;
51107#line 126
51108  __cil_tmp11 = (unsigned long )__cil_tmp10;
51109#line 126
51110  __cil_tmp12 = (unsigned long )dev;
51111#line 126
51112  if (__cil_tmp12 == __cil_tmp11) {
51113#line 127
51114    dev = & x86_dma_fallback_dev;
51115  } else {
51116
51117  }
51118  }
51119  {
51120#line 129
51121  tmp___0 = is_device_dma_capable(dev);
51122  }
51123#line 129
51124  if (tmp___0 == 0) {
51125#line 130
51126    return ((void *)0);
51127  } else {
51128
51129  }
51130  {
51131#line 132
51132  __cil_tmp13 = (void *(*)(struct device * , size_t  , dma_addr_t * , gfp_t  ))0;
51133#line 132
51134  __cil_tmp14 = (unsigned long )__cil_tmp13;
51135#line 132
51136  __cil_tmp15 = ops->alloc_coherent;
51137#line 132
51138  __cil_tmp16 = (unsigned long )__cil_tmp15;
51139#line 132
51140  if (__cil_tmp16 == __cil_tmp14) {
51141#line 133
51142    return ((void *)0);
51143  } else {
51144
51145  }
51146  }
51147  {
51148#line 135
51149  tmp___1 = dma_alloc_coherent_gfp_flags(dev, gfp);
51150#line 135
51151  __cil_tmp17 = ops->alloc_coherent;
51152#line 135
51153  memory = (*__cil_tmp17)(dev, size, dma_handle, tmp___1);
51154#line 137
51155  __cil_tmp18 = *dma_handle;
51156#line 137
51157  debug_dma_alloc_coherent(dev, size, __cil_tmp18, memory);
51158  }
51159#line 139
51160  return (memory);
51161}
51162}
51163#line 142 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
51164__inline static void dma_free_coherent(struct device *dev , size_t size , void *vaddr ,
51165                                       dma_addr_t bus ) 
51166{ struct dma_map_ops *ops ;
51167  struct dma_map_ops *tmp ;
51168  int __ret_warn_on ;
51169  unsigned long _flags ;
51170  int tmp___0 ;
51171  long tmp___1 ;
51172  int __cil_tmp11 ;
51173  long __cil_tmp12 ;
51174  int __cil_tmp13 ;
51175  int __cil_tmp14 ;
51176  int __cil_tmp15 ;
51177  long __cil_tmp16 ;
51178  void (*__cil_tmp17)(struct device * , size_t  , void * , dma_addr_t  ) ;
51179  unsigned long __cil_tmp18 ;
51180  void (*__cil_tmp19)(struct device * , size_t  , void * , dma_addr_t  ) ;
51181  unsigned long __cil_tmp20 ;
51182  void (*__cil_tmp21)(struct device * , size_t  , void * , dma_addr_t  ) ;
51183
51184  {
51185  {
51186#line 145
51187  tmp = get_dma_ops(dev);
51188#line 145
51189  ops = tmp;
51190#line 147
51191  _flags = arch_local_save_flags();
51192#line 147
51193  tmp___0 = arch_irqs_disabled_flags(_flags);
51194#line 147
51195  __ret_warn_on = tmp___0 != 0;
51196#line 147
51197  __cil_tmp11 = __ret_warn_on != 0;
51198#line 147
51199  __cil_tmp12 = (long )__cil_tmp11;
51200#line 147
51201  tmp___1 = __builtin_expect(__cil_tmp12, 0L);
51202  }
51203#line 147
51204  if (tmp___1 != 0L) {
51205    {
51206#line 147
51207    __cil_tmp13 = (int const   )147;
51208#line 147
51209    __cil_tmp14 = (int )__cil_tmp13;
51210#line 147
51211    warn_slowpath_null("/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h",
51212                       __cil_tmp14);
51213    }
51214  } else {
51215
51216  }
51217  {
51218#line 147
51219  __cil_tmp15 = __ret_warn_on != 0;
51220#line 147
51221  __cil_tmp16 = (long )__cil_tmp15;
51222#line 147
51223  __builtin_expect(__cil_tmp16, 0L);
51224#line 152
51225  debug_dma_free_coherent(dev, size, vaddr, bus);
51226  }
51227  {
51228#line 153
51229  __cil_tmp17 = (void (*)(struct device * , size_t  , void * , dma_addr_t  ))0;
51230#line 153
51231  __cil_tmp18 = (unsigned long )__cil_tmp17;
51232#line 153
51233  __cil_tmp19 = ops->free_coherent;
51234#line 153
51235  __cil_tmp20 = (unsigned long )__cil_tmp19;
51236#line 153
51237  if (__cil_tmp20 != __cil_tmp18) {
51238    {
51239#line 154
51240    __cil_tmp21 = ops->free_coherent;
51241#line 154
51242    (*__cil_tmp21)(dev, size, vaddr, bus);
51243    }
51244  } else {
51245
51246  }
51247  }
51248#line 155
51249  return;
51250}
51251}
51252#line 17 "include/linux/dmapool.h"
51253extern struct dma_pool *dma_pool_create(char const   * , struct device * , size_t  ,
51254                                        size_t  , size_t  ) ;
51255#line 20
51256extern void dma_pool_destroy(struct dma_pool * ) ;
51257#line 22
51258extern void *dma_pool_alloc(struct dma_pool * , gfp_t  , dma_addr_t * ) ;
51259#line 25
51260extern void dma_pool_free(struct dma_pool * , void * , dma_addr_t  ) ;
51261#line 32 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/buffer.c.p"
51262static size_t const   pool_max[4U]  = {      (size_t const   )32UL,      (size_t const   )128UL,      (size_t const   )512UL,      (size_t const   )2048UL};
51263#line 58 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/buffer.c.p"
51264int hcd_buffer_create(struct usb_hcd *hcd ) 
51265{ char name[16U] ;
51266  int i ;
51267  int size ;
51268  u64 *__cil_tmp5 ;
51269  unsigned long __cil_tmp6 ;
51270  struct device *__cil_tmp7 ;
51271  u64 *__cil_tmp8 ;
51272  unsigned long __cil_tmp9 ;
51273  struct hc_driver  const  *__cil_tmp10 ;
51274  int __cil_tmp11 ;
51275  int __cil_tmp12 ;
51276  int __cil_tmp13 ;
51277  char *__cil_tmp14 ;
51278  char const   *__cil_tmp15 ;
51279  struct device *__cil_tmp16 ;
51280  size_t __cil_tmp17 ;
51281  size_t __cil_tmp18 ;
51282  struct dma_pool *__cil_tmp19 ;
51283  unsigned long __cil_tmp20 ;
51284  struct dma_pool *__cil_tmp21 ;
51285  unsigned long __cil_tmp22 ;
51286
51287  {
51288  {
51289#line 63
51290  __cil_tmp5 = (u64 *)0;
51291#line 63
51292  __cil_tmp6 = (unsigned long )__cil_tmp5;
51293#line 63
51294  __cil_tmp7 = hcd->self.controller;
51295#line 63
51296  __cil_tmp8 = __cil_tmp7->dma_mask;
51297#line 63
51298  __cil_tmp9 = (unsigned long )__cil_tmp8;
51299#line 63
51300  if (__cil_tmp9 == __cil_tmp6) {
51301    {
51302#line 63
51303    __cil_tmp10 = hcd->driver;
51304#line 63
51305    __cil_tmp11 = __cil_tmp10->flags;
51306#line 63
51307    __cil_tmp12 = (int )__cil_tmp11;
51308#line 63
51309    __cil_tmp13 = __cil_tmp12 & 2;
51310#line 63
51311    if (__cil_tmp13 == 0) {
51312#line 65
51313      return (0);
51314    } else {
51315
51316    }
51317    }
51318  } else {
51319
51320  }
51321  }
51322#line 67
51323  i = 0;
51324#line 67
51325  goto ldv_27250;
51326  ldv_27249: 
51327#line 68
51328  size = (int )pool_max[i];
51329#line 69
51330  if (size == 0) {
51331#line 70
51332    goto ldv_27248;
51333  } else {
51334
51335  }
51336  {
51337#line 71
51338  __cil_tmp14 = (char *)(& name);
51339#line 71
51340  snprintf(__cil_tmp14, 16UL, "buffer-%d", size);
51341#line 72
51342  __cil_tmp15 = (char const   *)(& name);
51343#line 72
51344  __cil_tmp16 = hcd->self.controller;
51345#line 72
51346  __cil_tmp17 = (size_t )size;
51347#line 72
51348  __cil_tmp18 = (size_t )size;
51349#line 72
51350  hcd->pool[i] = dma_pool_create(__cil_tmp15, __cil_tmp16, __cil_tmp17, __cil_tmp18,
51351                                 0UL);
51352  }
51353  {
51354#line 74
51355  __cil_tmp19 = (struct dma_pool *)0;
51356#line 74
51357  __cil_tmp20 = (unsigned long )__cil_tmp19;
51358#line 74
51359  __cil_tmp21 = hcd->pool[i];
51360#line 74
51361  __cil_tmp22 = (unsigned long )__cil_tmp21;
51362#line 74
51363  if (__cil_tmp22 == __cil_tmp20) {
51364    {
51365#line 75
51366    hcd_buffer_destroy(hcd);
51367    }
51368#line 76
51369    return (-12);
51370  } else {
51371
51372  }
51373  }
51374  ldv_27248: 
51375#line 67
51376  i = i + 1;
51377  ldv_27250: ;
51378#line 67
51379  if (i <= 3) {
51380#line 68
51381    goto ldv_27249;
51382  } else {
51383#line 70
51384    goto ldv_27251;
51385  }
51386  ldv_27251: ;
51387#line 79
51388  return (0);
51389}
51390}
51391#line 90 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/buffer.c.p"
51392void hcd_buffer_destroy(struct usb_hcd *hcd ) 
51393{ int i ;
51394  struct dma_pool *pool ;
51395  struct dma_pool *__cil_tmp4 ;
51396  unsigned long __cil_tmp5 ;
51397  unsigned long __cil_tmp6 ;
51398
51399  {
51400#line 94
51401  i = 0;
51402#line 94
51403  goto ldv_27258;
51404  ldv_27257: 
51405#line 95
51406  pool = hcd->pool[i];
51407  {
51408#line 96
51409  __cil_tmp4 = (struct dma_pool *)0;
51410#line 96
51411  __cil_tmp5 = (unsigned long )__cil_tmp4;
51412#line 96
51413  __cil_tmp6 = (unsigned long )pool;
51414#line 96
51415  if (__cil_tmp6 != __cil_tmp5) {
51416    {
51417#line 97
51418    dma_pool_destroy(pool);
51419#line 98
51420    hcd->pool[i] = (struct dma_pool *)0;
51421    }
51422  } else {
51423
51424  }
51425  }
51426#line 94
51427  i = i + 1;
51428  ldv_27258: ;
51429#line 94
51430  if (i <= 3) {
51431#line 95
51432    goto ldv_27257;
51433  } else {
51434#line 97
51435    goto ldv_27259;
51436  }
51437  ldv_27259: ;
51438#line 99
51439  return;
51440}
51441}
51442#line 108 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/buffer.c.p"
51443void *hcd_buffer_alloc(struct usb_bus *bus , size_t size , gfp_t mem_flags , dma_addr_t *dma ) 
51444{ struct usb_hcd *hcd ;
51445  struct usb_hcd *tmp ;
51446  int i ;
51447  void *tmp___0 ;
51448  void *tmp___1 ;
51449  void *tmp___2 ;
51450  u64 *__cil_tmp11 ;
51451  unsigned long __cil_tmp12 ;
51452  struct device *__cil_tmp13 ;
51453  u64 *__cil_tmp14 ;
51454  unsigned long __cil_tmp15 ;
51455  struct hc_driver  const  *__cil_tmp16 ;
51456  int __cil_tmp17 ;
51457  int __cil_tmp18 ;
51458  int __cil_tmp19 ;
51459  unsigned long __cil_tmp20 ;
51460  struct dma_pool *__cil_tmp21 ;
51461  struct device *__cil_tmp22 ;
51462
51463  {
51464  {
51465#line 115
51466  tmp = bus_to_hcd(bus);
51467#line 115
51468  hcd = tmp;
51469  }
51470  {
51471#line 119
51472  __cil_tmp11 = (u64 *)0;
51473#line 119
51474  __cil_tmp12 = (unsigned long )__cil_tmp11;
51475#line 119
51476  __cil_tmp13 = bus->controller;
51477#line 119
51478  __cil_tmp14 = __cil_tmp13->dma_mask;
51479#line 119
51480  __cil_tmp15 = (unsigned long )__cil_tmp14;
51481#line 119
51482  if (__cil_tmp15 == __cil_tmp12) {
51483    {
51484#line 119
51485    __cil_tmp16 = hcd->driver;
51486#line 119
51487    __cil_tmp17 = __cil_tmp16->flags;
51488#line 119
51489    __cil_tmp18 = (int )__cil_tmp17;
51490#line 119
51491    __cil_tmp19 = __cil_tmp18 & 2;
51492#line 119
51493    if (__cil_tmp19 == 0) {
51494      {
51495#line 121
51496      *dma = 1152921504606846975ULL;
51497#line 122
51498      tmp___0 = kmalloc(size, mem_flags);
51499      }
51500#line 122
51501      return (tmp___0);
51502    } else {
51503
51504    }
51505    }
51506  } else {
51507
51508  }
51509  }
51510#line 125
51511  i = 0;
51512#line 125
51513  goto ldv_27269;
51514  ldv_27268: ;
51515  {
51516#line 126
51517  __cil_tmp20 = (unsigned long )pool_max[i];
51518#line 126
51519  if (__cil_tmp20 >= size) {
51520    {
51521#line 127
51522    __cil_tmp21 = hcd->pool[i];
51523#line 127
51524    tmp___1 = dma_pool_alloc(__cil_tmp21, mem_flags, dma);
51525    }
51526#line 127
51527    return (tmp___1);
51528  } else {
51529
51530  }
51531  }
51532#line 125
51533  i = i + 1;
51534  ldv_27269: ;
51535#line 125
51536  if (i <= 3) {
51537#line 126
51538    goto ldv_27268;
51539  } else {
51540#line 128
51541    goto ldv_27270;
51542  }
51543  ldv_27270: 
51544  {
51545#line 129
51546  __cil_tmp22 = hcd->self.controller;
51547#line 129
51548  tmp___2 = dma_alloc_coherent(__cil_tmp22, size, dma, mem_flags);
51549  }
51550#line 129
51551  return (tmp___2);
51552}
51553}
51554#line 132 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/buffer.c.p"
51555void hcd_buffer_free(struct usb_bus *bus , size_t size , void *addr , dma_addr_t dma ) 
51556{ struct usb_hcd *hcd ;
51557  struct usb_hcd *tmp ;
51558  int i ;
51559  void *__cil_tmp8 ;
51560  unsigned long __cil_tmp9 ;
51561  unsigned long __cil_tmp10 ;
51562  u64 *__cil_tmp11 ;
51563  unsigned long __cil_tmp12 ;
51564  struct device *__cil_tmp13 ;
51565  u64 *__cil_tmp14 ;
51566  unsigned long __cil_tmp15 ;
51567  struct hc_driver  const  *__cil_tmp16 ;
51568  int __cil_tmp17 ;
51569  int __cil_tmp18 ;
51570  int __cil_tmp19 ;
51571  void const   *__cil_tmp20 ;
51572  unsigned long __cil_tmp21 ;
51573  struct dma_pool *__cil_tmp22 ;
51574  struct device *__cil_tmp23 ;
51575
51576  {
51577  {
51578#line 139
51579  tmp = bus_to_hcd(bus);
51580#line 139
51581  hcd = tmp;
51582  }
51583  {
51584#line 142
51585  __cil_tmp8 = (void *)0;
51586#line 142
51587  __cil_tmp9 = (unsigned long )__cil_tmp8;
51588#line 142
51589  __cil_tmp10 = (unsigned long )addr;
51590#line 142
51591  if (__cil_tmp10 == __cil_tmp9) {
51592#line 143
51593    return;
51594  } else {
51595
51596  }
51597  }
51598  {
51599#line 145
51600  __cil_tmp11 = (u64 *)0;
51601#line 145
51602  __cil_tmp12 = (unsigned long )__cil_tmp11;
51603#line 145
51604  __cil_tmp13 = bus->controller;
51605#line 145
51606  __cil_tmp14 = __cil_tmp13->dma_mask;
51607#line 145
51608  __cil_tmp15 = (unsigned long )__cil_tmp14;
51609#line 145
51610  if (__cil_tmp15 == __cil_tmp12) {
51611    {
51612#line 145
51613    __cil_tmp16 = hcd->driver;
51614#line 145
51615    __cil_tmp17 = __cil_tmp16->flags;
51616#line 145
51617    __cil_tmp18 = (int )__cil_tmp17;
51618#line 145
51619    __cil_tmp19 = __cil_tmp18 & 2;
51620#line 145
51621    if (__cil_tmp19 == 0) {
51622      {
51623#line 147
51624      __cil_tmp20 = (void const   *)addr;
51625#line 147
51626      kfree(__cil_tmp20);
51627      }
51628#line 148
51629      return;
51630    } else {
51631
51632    }
51633    }
51634  } else {
51635
51636  }
51637  }
51638#line 151
51639  i = 0;
51640#line 151
51641  goto ldv_27280;
51642  ldv_27279: ;
51643  {
51644#line 152
51645  __cil_tmp21 = (unsigned long )pool_max[i];
51646#line 152
51647  if (__cil_tmp21 >= size) {
51648    {
51649#line 153
51650    __cil_tmp22 = hcd->pool[i];
51651#line 153
51652    dma_pool_free(__cil_tmp22, addr, dma);
51653    }
51654#line 154
51655    return;
51656  } else {
51657
51658  }
51659  }
51660#line 151
51661  i = i + 1;
51662  ldv_27280: ;
51663#line 151
51664  if (i <= 3) {
51665#line 152
51666    goto ldv_27279;
51667  } else {
51668#line 154
51669    goto ldv_27281;
51670  }
51671  ldv_27281: 
51672  {
51673#line 157
51674  __cil_tmp23 = hcd->self.controller;
51675#line 157
51676  dma_free_coherent(__cil_tmp23, size, addr, dma);
51677  }
51678#line 158
51679  return;
51680}
51681}
51682#line 291 "include/linux/kernel.h"
51683extern int sprintf(char * , char const   *  , ...) ;
51684#line 45 "include/linux/string.h"
51685extern int strncmp(char const   * , char const   * , __kernel_size_t  ) ;
51686#line 115
51687extern void *memchr(void const   * , int  , __kernel_size_t  ) ;
51688#line 296 "include/linux/jiffies.h"
51689extern unsigned int jiffies_to_msecs(unsigned long  ) ;
51690#line 45 "include/linux/pm.h"
51691extern char const   power_group_name[] ;
51692#line 163 "include/linux/sysfs.h"
51693extern int sysfs_add_file_to_group(struct kobject * , struct attribute  const  * ,
51694                                   char const   * ) ;
51695#line 165
51696extern void sysfs_remove_file_from_group(struct kobject * , struct attribute  const  * ,
51697                                         char const   * ) ;
51698#line 167
51699extern int sysfs_merge_group(struct kobject * , struct attribute_group  const  * ) ;
51700#line 169
51701extern void sysfs_unmerge_group(struct kobject * , struct attribute_group  const  * ) ;
51702#line 435 "include/linux/device.h"
51703extern int device_create_file(struct device * , struct device_attribute  const  * ) ;
51704#line 437
51705extern void device_remove_file(struct device * , struct device_attribute  const  * ) ;
51706#line 439
51707extern int device_create_bin_file(struct device * , struct bin_attribute  const  * ) ;
51708#line 441
51709extern void device_remove_bin_file(struct device * , struct bin_attribute  const  * ) ;
51710#line 48 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
51711static ssize_t show_bNumInterfaces(struct device *dev , struct device_attribute *attr ,
51712                                   char *buf ) 
51713{ struct usb_device *udev ;
51714  struct usb_host_config *actconfig ;
51715  struct device  const  *__mptr ;
51716  int tmp ;
51717  struct usb_device *__cil_tmp8 ;
51718  struct usb_host_config *__cil_tmp9 ;
51719  unsigned long __cil_tmp10 ;
51720  unsigned long __cil_tmp11 ;
51721  __u8 __cil_tmp12 ;
51722  int __cil_tmp13 ;
51723
51724  {
51725#line 48
51726  __mptr = (struct device  const  *)dev;
51727#line 48
51728  __cil_tmp8 = (struct usb_device *)__mptr;
51729#line 48
51730  udev = __cil_tmp8 + 1152921504606846840UL;
51731#line 48
51732  actconfig = udev->actconfig;
51733  {
51734#line 48
51735  __cil_tmp9 = (struct usb_host_config *)0;
51736#line 48
51737  __cil_tmp10 = (unsigned long )__cil_tmp9;
51738#line 48
51739  __cil_tmp11 = (unsigned long )actconfig;
51740#line 48
51741  if (__cil_tmp11 != __cil_tmp10) {
51742    {
51743#line 48
51744    __cil_tmp12 = actconfig->desc.bNumInterfaces;
51745#line 48
51746    __cil_tmp13 = (int )__cil_tmp12;
51747#line 48
51748    tmp = sprintf(buf, "%2d\n", __cil_tmp13);
51749    }
51750#line 48
51751    return ((ssize_t )tmp);
51752  } else {
51753#line 48
51754    return (0L);
51755  }
51756  }
51757}
51758}
51759#line 48 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
51760static struct device_attribute dev_attr_bNumInterfaces  =    {{"bNumInterfaces", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
51761                                                           {(char)0}, {(char)0}, {(char)0},
51762                                                           {(char)0}, {(char)0}}}},
51763    & show_bNumInterfaces, (ssize_t (*)(struct device * , struct device_attribute * ,
51764                                        char const   * , size_t  ))0};
51765#line 49 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
51766static ssize_t show_bmAttributes(struct device *dev , struct device_attribute *attr ,
51767                                 char *buf ) 
51768{ struct usb_device *udev ;
51769  struct usb_host_config *actconfig ;
51770  struct device  const  *__mptr ;
51771  int tmp ;
51772  struct usb_device *__cil_tmp8 ;
51773  struct usb_host_config *__cil_tmp9 ;
51774  unsigned long __cil_tmp10 ;
51775  unsigned long __cil_tmp11 ;
51776  __u8 __cil_tmp12 ;
51777  int __cil_tmp13 ;
51778
51779  {
51780#line 49
51781  __mptr = (struct device  const  *)dev;
51782#line 49
51783  __cil_tmp8 = (struct usb_device *)__mptr;
51784#line 49
51785  udev = __cil_tmp8 + 1152921504606846840UL;
51786#line 49
51787  actconfig = udev->actconfig;
51788  {
51789#line 49
51790  __cil_tmp9 = (struct usb_host_config *)0;
51791#line 49
51792  __cil_tmp10 = (unsigned long )__cil_tmp9;
51793#line 49
51794  __cil_tmp11 = (unsigned long )actconfig;
51795#line 49
51796  if (__cil_tmp11 != __cil_tmp10) {
51797    {
51798#line 49
51799    __cil_tmp12 = actconfig->desc.bmAttributes;
51800#line 49
51801    __cil_tmp13 = (int )__cil_tmp12;
51802#line 49
51803    tmp = sprintf(buf, "%2x\n", __cil_tmp13);
51804    }
51805#line 49
51806    return ((ssize_t )tmp);
51807  } else {
51808#line 49
51809    return (0L);
51810  }
51811  }
51812}
51813}
51814#line 49 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
51815static struct device_attribute dev_attr_bmAttributes  =    {{"bmAttributes", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
51816                                                         {(char)0}, {(char)0}, {(char)0},
51817                                                         {(char)0}, {(char)0}}}},
51818    & show_bmAttributes, (ssize_t (*)(struct device * , struct device_attribute * ,
51819                                      char const   * , size_t  ))0};
51820#line 50 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
51821static ssize_t show_bMaxPower(struct device *dev , struct device_attribute *attr ,
51822                              char *buf ) 
51823{ struct usb_device *udev ;
51824  struct usb_host_config *actconfig ;
51825  struct device  const  *__mptr ;
51826  int tmp ;
51827  struct usb_device *__cil_tmp8 ;
51828  struct usb_host_config *__cil_tmp9 ;
51829  unsigned long __cil_tmp10 ;
51830  unsigned long __cil_tmp11 ;
51831  __u8 __cil_tmp12 ;
51832  int __cil_tmp13 ;
51833  int __cil_tmp14 ;
51834
51835  {
51836#line 50
51837  __mptr = (struct device  const  *)dev;
51838#line 50
51839  __cil_tmp8 = (struct usb_device *)__mptr;
51840#line 50
51841  udev = __cil_tmp8 + 1152921504606846840UL;
51842#line 50
51843  actconfig = udev->actconfig;
51844  {
51845#line 50
51846  __cil_tmp9 = (struct usb_host_config *)0;
51847#line 50
51848  __cil_tmp10 = (unsigned long )__cil_tmp9;
51849#line 50
51850  __cil_tmp11 = (unsigned long )actconfig;
51851#line 50
51852  if (__cil_tmp11 != __cil_tmp10) {
51853    {
51854#line 50
51855    __cil_tmp12 = actconfig->desc.bMaxPower;
51856#line 50
51857    __cil_tmp13 = (int )__cil_tmp12;
51858#line 50
51859    __cil_tmp14 = __cil_tmp13 * 2;
51860#line 50
51861    tmp = sprintf(buf, "%3dmA\n", __cil_tmp14);
51862    }
51863#line 50
51864    return ((ssize_t )tmp);
51865  } else {
51866#line 50
51867    return (0L);
51868  }
51869  }
51870}
51871}
51872#line 50 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
51873static struct device_attribute dev_attr_bMaxPower  =    {{"bMaxPower", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
51874                                                      {(char)0}, {(char)0}, {(char)0},
51875                                                      {(char)0}, {(char)0}}}}, & show_bMaxPower,
51876    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
51877#line 52 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
51878static ssize_t show_configuration_string(struct device *dev , struct device_attribute *attr ,
51879                                         char *buf ) 
51880{ struct usb_device *udev ;
51881  struct usb_host_config *actconfig ;
51882  struct device  const  *__mptr ;
51883  int tmp ;
51884  struct usb_device *__cil_tmp8 ;
51885  struct usb_host_config *__cil_tmp9 ;
51886  unsigned long __cil_tmp10 ;
51887  unsigned long __cil_tmp11 ;
51888  char *__cil_tmp12 ;
51889  unsigned long __cil_tmp13 ;
51890  char *__cil_tmp14 ;
51891  unsigned long __cil_tmp15 ;
51892  char *__cil_tmp16 ;
51893
51894  {
51895#line 58
51896  __mptr = (struct device  const  *)dev;
51897#line 58
51898  __cil_tmp8 = (struct usb_device *)__mptr;
51899#line 58
51900  udev = __cil_tmp8 + 1152921504606846840UL;
51901#line 59
51902  actconfig = udev->actconfig;
51903  {
51904#line 60
51905  __cil_tmp9 = (struct usb_host_config *)0;
51906#line 60
51907  __cil_tmp10 = (unsigned long )__cil_tmp9;
51908#line 60
51909  __cil_tmp11 = (unsigned long )actconfig;
51910#line 60
51911  if (__cil_tmp11 == __cil_tmp10) {
51912#line 61
51913    return (0L);
51914  } else {
51915    {
51916#line 60
51917    __cil_tmp12 = (char *)0;
51918#line 60
51919    __cil_tmp13 = (unsigned long )__cil_tmp12;
51920#line 60
51921    __cil_tmp14 = actconfig->string;
51922#line 60
51923    __cil_tmp15 = (unsigned long )__cil_tmp14;
51924#line 60
51925    if (__cil_tmp15 == __cil_tmp13) {
51926#line 61
51927      return (0L);
51928    } else {
51929
51930    }
51931    }
51932  }
51933  }
51934  {
51935#line 62
51936  __cil_tmp16 = actconfig->string;
51937#line 62
51938  tmp = sprintf(buf, "%s\n", __cil_tmp16);
51939  }
51940#line 62
51941  return ((ssize_t )tmp);
51942}
51943}
51944#line 64 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
51945static struct device_attribute dev_attr_configuration  =    {{"configuration", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
51946                                                          {(char)0}, {(char)0}, {(char)0},
51947                                                          {(char)0}, {(char)0}}}},
51948    & show_configuration_string, (ssize_t (*)(struct device * , struct device_attribute * ,
51949                                              char const   * , size_t  ))0};
51950#line 67 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
51951static ssize_t show_bConfigurationValue(struct device *dev , struct device_attribute *attr ,
51952                                        char *buf ) 
51953{ struct usb_device *udev ;
51954  struct usb_host_config *actconfig ;
51955  struct device  const  *__mptr ;
51956  int tmp ;
51957  struct usb_device *__cil_tmp8 ;
51958  struct usb_host_config *__cil_tmp9 ;
51959  unsigned long __cil_tmp10 ;
51960  unsigned long __cil_tmp11 ;
51961  __u8 __cil_tmp12 ;
51962  int __cil_tmp13 ;
51963
51964  {
51965#line 67
51966  __mptr = (struct device  const  *)dev;
51967#line 67
51968  __cil_tmp8 = (struct usb_device *)__mptr;
51969#line 67
51970  udev = __cil_tmp8 + 1152921504606846840UL;
51971#line 67
51972  actconfig = udev->actconfig;
51973  {
51974#line 67
51975  __cil_tmp9 = (struct usb_host_config *)0;
51976#line 67
51977  __cil_tmp10 = (unsigned long )__cil_tmp9;
51978#line 67
51979  __cil_tmp11 = (unsigned long )actconfig;
51980#line 67
51981  if (__cil_tmp11 != __cil_tmp10) {
51982    {
51983#line 67
51984    __cil_tmp12 = actconfig->desc.bConfigurationValue;
51985#line 67
51986    __cil_tmp13 = (int )__cil_tmp12;
51987#line 67
51988    tmp = sprintf(buf, "%u\n", __cil_tmp13);
51989    }
51990#line 67
51991    return ((ssize_t )tmp);
51992  } else {
51993#line 67
51994    return (0L);
51995  }
51996  }
51997}
51998}
51999#line 70 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52000static ssize_t set_bConfigurationValue(struct device *dev , struct device_attribute *attr ,
52001                                       char const   *buf , size_t count ) 
52002{ struct usb_device *udev ;
52003  struct device  const  *__mptr ;
52004  int config ;
52005  int value ;
52006  int tmp ;
52007  size_t tmp___0 ;
52008  struct usb_device *__cil_tmp11 ;
52009  struct device *__cil_tmp12 ;
52010  struct device *__cil_tmp13 ;
52011
52012  {
52013  {
52014#line 73
52015  __mptr = (struct device  const  *)dev;
52016#line 73
52017  __cil_tmp11 = (struct usb_device *)__mptr;
52018#line 73
52019  udev = __cil_tmp11 + 1152921504606846840UL;
52020#line 76
52021  tmp = sscanf(buf, "%d", & config);
52022  }
52023#line 76
52024  if (tmp != 1) {
52025#line 77
52026    return (-22L);
52027  } else
52028#line 76
52029  if (config < -1) {
52030#line 77
52031    return (-22L);
52032  } else
52033#line 76
52034  if (config > 255) {
52035#line 77
52036    return (-22L);
52037  } else {
52038
52039  }
52040  {
52041#line 78
52042  __cil_tmp12 = & udev->dev;
52043#line 78
52044  device_lock(__cil_tmp12);
52045#line 79
52046  value = usb_set_configuration(udev, config);
52047#line 80
52048  __cil_tmp13 = & udev->dev;
52049#line 80
52050  device_unlock(__cil_tmp13);
52051  }
52052#line 81
52053  if (value < 0) {
52054#line 81
52055    tmp___0 = (size_t )value;
52056  } else {
52057#line 81
52058    tmp___0 = count;
52059  }
52060#line 81
52061  return ((ssize_t )tmp___0);
52062}
52063}
52064#line 85 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52065static struct device_attribute dev_attr_bConfigurationValue  =    {{"bConfigurationValue", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
52066                                                                {(char)0}, {(char)0},
52067                                                                {(char)0}, {(char)0},
52068                                                                {(char)0}, {(char)0}}}},
52069    & show_bConfigurationValue, & set_bConfigurationValue};
52070#line 103 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52071static ssize_t show_product(struct device *dev , struct device_attribute *attr , char *buf ) 
52072{ struct usb_device *udev ;
52073  int retval ;
52074  struct device  const  *__mptr ;
52075  struct usb_device *__cil_tmp7 ;
52076  struct device *__cil_tmp8 ;
52077  char *__cil_tmp9 ;
52078  struct device *__cil_tmp10 ;
52079
52080  {
52081  {
52082#line 103
52083  __mptr = (struct device  const  *)dev;
52084#line 103
52085  __cil_tmp7 = (struct usb_device *)__mptr;
52086#line 103
52087  udev = __cil_tmp7 + 1152921504606846840UL;
52088#line 103
52089  __cil_tmp8 = & udev->dev;
52090#line 103
52091  device_lock(__cil_tmp8);
52092#line 103
52093  __cil_tmp9 = udev->product;
52094#line 103
52095  retval = sprintf(buf, "%s\n", __cil_tmp9);
52096#line 103
52097  __cil_tmp10 = & udev->dev;
52098#line 103
52099  device_unlock(__cil_tmp10);
52100  }
52101#line 103
52102  return ((ssize_t )retval);
52103}
52104}
52105#line 103 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52106static struct device_attribute dev_attr_product  =    {{"product", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52107                                                    {(char)0}, {(char)0}, {(char)0},
52108                                                    {(char)0}, {(char)0}}}}, & show_product,
52109    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52110#line 104 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52111static ssize_t show_manufacturer(struct device *dev , struct device_attribute *attr ,
52112                                 char *buf ) 
52113{ struct usb_device *udev ;
52114  int retval ;
52115  struct device  const  *__mptr ;
52116  struct usb_device *__cil_tmp7 ;
52117  struct device *__cil_tmp8 ;
52118  char *__cil_tmp9 ;
52119  struct device *__cil_tmp10 ;
52120
52121  {
52122  {
52123#line 104
52124  __mptr = (struct device  const  *)dev;
52125#line 104
52126  __cil_tmp7 = (struct usb_device *)__mptr;
52127#line 104
52128  udev = __cil_tmp7 + 1152921504606846840UL;
52129#line 104
52130  __cil_tmp8 = & udev->dev;
52131#line 104
52132  device_lock(__cil_tmp8);
52133#line 104
52134  __cil_tmp9 = udev->manufacturer;
52135#line 104
52136  retval = sprintf(buf, "%s\n", __cil_tmp9);
52137#line 104
52138  __cil_tmp10 = & udev->dev;
52139#line 104
52140  device_unlock(__cil_tmp10);
52141  }
52142#line 104
52143  return ((ssize_t )retval);
52144}
52145}
52146#line 104 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52147static struct device_attribute dev_attr_manufacturer  =    {{"manufacturer", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52148                                                         {(char)0}, {(char)0}, {(char)0},
52149                                                         {(char)0}, {(char)0}}}},
52150    & show_manufacturer, (ssize_t (*)(struct device * , struct device_attribute * ,
52151                                      char const   * , size_t  ))0};
52152#line 105 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52153static ssize_t show_serial(struct device *dev , struct device_attribute *attr , char *buf ) 
52154{ struct usb_device *udev ;
52155  int retval ;
52156  struct device  const  *__mptr ;
52157  struct usb_device *__cil_tmp7 ;
52158  struct device *__cil_tmp8 ;
52159  char *__cil_tmp9 ;
52160  struct device *__cil_tmp10 ;
52161
52162  {
52163  {
52164#line 105
52165  __mptr = (struct device  const  *)dev;
52166#line 105
52167  __cil_tmp7 = (struct usb_device *)__mptr;
52168#line 105
52169  udev = __cil_tmp7 + 1152921504606846840UL;
52170#line 105
52171  __cil_tmp8 = & udev->dev;
52172#line 105
52173  device_lock(__cil_tmp8);
52174#line 105
52175  __cil_tmp9 = udev->serial;
52176#line 105
52177  retval = sprintf(buf, "%s\n", __cil_tmp9);
52178#line 105
52179  __cil_tmp10 = & udev->dev;
52180#line 105
52181  device_unlock(__cil_tmp10);
52182  }
52183#line 105
52184  return ((ssize_t )retval);
52185}
52186}
52187#line 105 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52188static struct device_attribute dev_attr_serial  =    {{"serial", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52189                                                   {(char)0}, {(char)0}, {(char)0},
52190                                                   {(char)0}, {(char)0}}}}, & show_serial,
52191    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52192#line 108 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52193static ssize_t show_speed(struct device *dev , struct device_attribute *attr , char *buf ) 
52194{ struct usb_device *udev ;
52195  char *speed ;
52196  struct device  const  *__mptr ;
52197  int tmp ;
52198  struct usb_device *__cil_tmp8 ;
52199  enum usb_device_speed __cil_tmp9 ;
52200  unsigned int __cil_tmp10 ;
52201  int __cil_tmp11 ;
52202  enum usb_device_speed __cil_tmp12 ;
52203  unsigned int __cil_tmp13 ;
52204  int __cil_tmp14 ;
52205  enum usb_device_speed __cil_tmp15 ;
52206  unsigned int __cil_tmp16 ;
52207  int __cil_tmp17 ;
52208  enum usb_device_speed __cil_tmp18 ;
52209  unsigned int __cil_tmp19 ;
52210  int __cil_tmp20 ;
52211  enum usb_device_speed __cil_tmp21 ;
52212  unsigned int __cil_tmp22 ;
52213  int __cil_tmp23 ;
52214  enum usb_device_speed __cil_tmp24 ;
52215  unsigned int __cil_tmp25 ;
52216  int __cil_tmp26 ;
52217
52218  {
52219#line 113
52220  __mptr = (struct device  const  *)dev;
52221#line 113
52222  __cil_tmp8 = (struct usb_device *)__mptr;
52223#line 113
52224  udev = __cil_tmp8 + 1152921504606846840UL;
52225  {
52226#line 116
52227  __cil_tmp9 = udev->speed;
52228#line 116
52229  __cil_tmp10 = (unsigned int )__cil_tmp9;
52230#line 116
52231  __cil_tmp11 = (int )__cil_tmp10;
52232#line 116
52233  if (__cil_tmp11 == 1) {
52234#line 116
52235    goto case_1;
52236  } else {
52237    {
52238#line 119
52239    __cil_tmp12 = udev->speed;
52240#line 119
52241    __cil_tmp13 = (unsigned int )__cil_tmp12;
52242#line 119
52243    __cil_tmp14 = (int )__cil_tmp13;
52244#line 119
52245    if (__cil_tmp14 == 0) {
52246#line 119
52247      goto case_0;
52248    } else {
52249      {
52250#line 120
52251      __cil_tmp15 = udev->speed;
52252#line 120
52253      __cil_tmp16 = (unsigned int )__cil_tmp15;
52254#line 120
52255      __cil_tmp17 = (int )__cil_tmp16;
52256#line 120
52257      if (__cil_tmp17 == 2) {
52258#line 120
52259        goto case_2;
52260      } else {
52261        {
52262#line 123
52263        __cil_tmp18 = udev->speed;
52264#line 123
52265        __cil_tmp19 = (unsigned int )__cil_tmp18;
52266#line 123
52267        __cil_tmp20 = (int )__cil_tmp19;
52268#line 123
52269        if (__cil_tmp20 == 3) {
52270#line 123
52271          goto case_3;
52272        } else {
52273          {
52274#line 126
52275          __cil_tmp21 = udev->speed;
52276#line 126
52277          __cil_tmp22 = (unsigned int )__cil_tmp21;
52278#line 126
52279          __cil_tmp23 = (int )__cil_tmp22;
52280#line 126
52281          if (__cil_tmp23 == 4) {
52282#line 126
52283            goto case_4;
52284          } else {
52285            {
52286#line 129
52287            __cil_tmp24 = udev->speed;
52288#line 129
52289            __cil_tmp25 = (unsigned int )__cil_tmp24;
52290#line 129
52291            __cil_tmp26 = (int )__cil_tmp25;
52292#line 129
52293            if (__cil_tmp26 == 5) {
52294#line 129
52295              goto case_5;
52296            } else {
52297#line 132
52298              goto switch_default;
52299#line 115
52300              if (0) {
52301                case_1: 
52302#line 117
52303                speed = (char *)"1.5";
52304#line 118
52305                goto ldv_23722;
52306                case_0: ;
52307                case_2: 
52308#line 121
52309                speed = (char *)"12";
52310#line 122
52311                goto ldv_23722;
52312                case_3: 
52313#line 124
52314                speed = (char *)"480";
52315#line 125
52316                goto ldv_23722;
52317                case_4: 
52318#line 127
52319                speed = (char *)"480";
52320#line 128
52321                goto ldv_23722;
52322                case_5: 
52323#line 130
52324                speed = (char *)"5000";
52325#line 131
52326                goto ldv_23722;
52327                switch_default: 
52328#line 133
52329                speed = (char *)"unknown";
52330              } else {
52331
52332              }
52333            }
52334            }
52335          }
52336          }
52337        }
52338        }
52339      }
52340      }
52341    }
52342    }
52343  }
52344  }
52345  ldv_23722: 
52346  {
52347#line 135
52348  tmp = sprintf(buf, "%s\n", speed);
52349  }
52350#line 135
52351  return ((ssize_t )tmp);
52352}
52353}
52354#line 137 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52355static struct device_attribute dev_attr_speed  =    {{"speed", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52356                                                  {(char)0}, {(char)0}, {(char)0},
52357                                                  {(char)0}, {(char)0}}}}, & show_speed,
52358    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52359#line 140 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52360static ssize_t show_busnum(struct device *dev , struct device_attribute *attr , char *buf ) 
52361{ struct usb_device *udev ;
52362  struct device  const  *__mptr ;
52363  int tmp ;
52364  struct usb_device *__cil_tmp7 ;
52365  struct usb_bus *__cil_tmp8 ;
52366  int __cil_tmp9 ;
52367
52368  {
52369  {
52370#line 144
52371  __mptr = (struct device  const  *)dev;
52372#line 144
52373  __cil_tmp7 = (struct usb_device *)__mptr;
52374#line 144
52375  udev = __cil_tmp7 + 1152921504606846840UL;
52376#line 145
52377  __cil_tmp8 = udev->bus;
52378#line 145
52379  __cil_tmp9 = __cil_tmp8->busnum;
52380#line 145
52381  tmp = sprintf(buf, "%d\n", __cil_tmp9);
52382  }
52383#line 145
52384  return ((ssize_t )tmp);
52385}
52386}
52387#line 147 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52388static struct device_attribute dev_attr_busnum  =    {{"busnum", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52389                                                   {(char)0}, {(char)0}, {(char)0},
52390                                                   {(char)0}, {(char)0}}}}, & show_busnum,
52391    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52392#line 150 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52393static ssize_t show_devnum(struct device *dev , struct device_attribute *attr , char *buf ) 
52394{ struct usb_device *udev ;
52395  struct device  const  *__mptr ;
52396  int tmp ;
52397  struct usb_device *__cil_tmp7 ;
52398  int __cil_tmp8 ;
52399
52400  {
52401  {
52402#line 154
52403  __mptr = (struct device  const  *)dev;
52404#line 154
52405  __cil_tmp7 = (struct usb_device *)__mptr;
52406#line 154
52407  udev = __cil_tmp7 + 1152921504606846840UL;
52408#line 155
52409  __cil_tmp8 = udev->devnum;
52410#line 155
52411  tmp = sprintf(buf, "%d\n", __cil_tmp8);
52412  }
52413#line 155
52414  return ((ssize_t )tmp);
52415}
52416}
52417#line 157 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52418static struct device_attribute dev_attr_devnum  =    {{"devnum", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52419                                                   {(char)0}, {(char)0}, {(char)0},
52420                                                   {(char)0}, {(char)0}}}}, & show_devnum,
52421    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52422#line 160 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52423static ssize_t show_devpath(struct device *dev , struct device_attribute *attr , char *buf ) 
52424{ struct usb_device *udev ;
52425  struct device  const  *__mptr ;
52426  int tmp ;
52427  struct usb_device *__cil_tmp7 ;
52428  char (*__cil_tmp8)[16U] ;
52429  char *__cil_tmp9 ;
52430
52431  {
52432  {
52433#line 164
52434  __mptr = (struct device  const  *)dev;
52435#line 164
52436  __cil_tmp7 = (struct usb_device *)__mptr;
52437#line 164
52438  udev = __cil_tmp7 + 1152921504606846840UL;
52439#line 165
52440  __cil_tmp8 = & udev->devpath;
52441#line 165
52442  __cil_tmp9 = (char *)__cil_tmp8;
52443#line 165
52444  tmp = sprintf(buf, "%s\n", __cil_tmp9);
52445  }
52446#line 165
52447  return ((ssize_t )tmp);
52448}
52449}
52450#line 167 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52451static struct device_attribute dev_attr_devpath  =    {{"devpath", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52452                                                    {(char)0}, {(char)0}, {(char)0},
52453                                                    {(char)0}, {(char)0}}}}, & show_devpath,
52454    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52455#line 170 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52456static ssize_t show_version(struct device *dev , struct device_attribute *attr , char *buf ) 
52457{ struct usb_device *udev ;
52458  u16 bcdUSB ;
52459  struct device  const  *__mptr ;
52460  int tmp ;
52461  struct usb_device *__cil_tmp8 ;
52462  int __cil_tmp9 ;
52463  int __cil_tmp10 ;
52464  int __cil_tmp11 ;
52465  int __cil_tmp12 ;
52466
52467  {
52468  {
52469#line 175
52470  __mptr = (struct device  const  *)dev;
52471#line 175
52472  __cil_tmp8 = (struct usb_device *)__mptr;
52473#line 175
52474  udev = __cil_tmp8 + 1152921504606846840UL;
52475#line 176
52476  bcdUSB = udev->descriptor.bcdUSB;
52477#line 177
52478  __cil_tmp9 = (int )bcdUSB;
52479#line 177
52480  __cil_tmp10 = __cil_tmp9 >> 8;
52481#line 177
52482  __cil_tmp11 = (int )bcdUSB;
52483#line 177
52484  __cil_tmp12 = __cil_tmp11 & 255;
52485#line 177
52486  tmp = sprintf(buf, "%2x.%02x\n", __cil_tmp10, __cil_tmp12);
52487  }
52488#line 177
52489  return ((ssize_t )tmp);
52490}
52491}
52492#line 179 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52493static struct device_attribute dev_attr_version  =    {{"version", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52494                                                    {(char)0}, {(char)0}, {(char)0},
52495                                                    {(char)0}, {(char)0}}}}, & show_version,
52496    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52497#line 182 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52498static ssize_t show_maxchild(struct device *dev , struct device_attribute *attr ,
52499                             char *buf ) 
52500{ struct usb_device *udev ;
52501  struct device  const  *__mptr ;
52502  int tmp ;
52503  struct usb_device *__cil_tmp7 ;
52504  int __cil_tmp8 ;
52505
52506  {
52507  {
52508#line 186
52509  __mptr = (struct device  const  *)dev;
52510#line 186
52511  __cil_tmp7 = (struct usb_device *)__mptr;
52512#line 186
52513  udev = __cil_tmp7 + 1152921504606846840UL;
52514#line 187
52515  __cil_tmp8 = udev->maxchild;
52516#line 187
52517  tmp = sprintf(buf, "%d\n", __cil_tmp8);
52518  }
52519#line 187
52520  return ((ssize_t )tmp);
52521}
52522}
52523#line 189 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52524static struct device_attribute dev_attr_maxchild  =    {{"maxchild", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52525                                                     {(char)0}, {(char)0}, {(char)0},
52526                                                     {(char)0}, {(char)0}}}}, & show_maxchild,
52527    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52528#line 192 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52529static ssize_t show_quirks(struct device *dev , struct device_attribute *attr , char *buf ) 
52530{ struct usb_device *udev ;
52531  struct device  const  *__mptr ;
52532  int tmp ;
52533  struct usb_device *__cil_tmp7 ;
52534  u32 __cil_tmp8 ;
52535
52536  {
52537  {
52538#line 196
52539  __mptr = (struct device  const  *)dev;
52540#line 196
52541  __cil_tmp7 = (struct usb_device *)__mptr;
52542#line 196
52543  udev = __cil_tmp7 + 1152921504606846840UL;
52544#line 197
52545  __cil_tmp8 = udev->quirks;
52546#line 197
52547  tmp = sprintf(buf, "0x%x\n", __cil_tmp8);
52548  }
52549#line 197
52550  return ((ssize_t )tmp);
52551}
52552}
52553#line 199 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52554static struct device_attribute dev_attr_quirks  =    {{"quirks", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52555                                                   {(char)0}, {(char)0}, {(char)0},
52556                                                   {(char)0}, {(char)0}}}}, & show_quirks,
52557    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52558#line 202 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52559static ssize_t show_avoid_reset_quirk(struct device *dev , struct device_attribute *attr ,
52560                                      char *buf ) 
52561{ struct usb_device *udev ;
52562  struct device  const  *__mptr ;
52563  int tmp ;
52564  struct usb_device *__cil_tmp7 ;
52565  u32 __cil_tmp8 ;
52566  unsigned int __cil_tmp9 ;
52567  int __cil_tmp10 ;
52568
52569  {
52570  {
52571#line 206
52572  __mptr = (struct device  const  *)dev;
52573#line 206
52574  __cil_tmp7 = (struct usb_device *)__mptr;
52575#line 206
52576  udev = __cil_tmp7 + 1152921504606846840UL;
52577#line 207
52578  __cil_tmp8 = udev->quirks;
52579#line 207
52580  __cil_tmp9 = __cil_tmp8 & 16U;
52581#line 207
52582  __cil_tmp10 = __cil_tmp9 != 0U;
52583#line 207
52584  tmp = sprintf(buf, "%d\n", __cil_tmp10);
52585  }
52586#line 207
52587  return ((ssize_t )tmp);
52588}
52589}
52590#line 211 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52591static ssize_t set_avoid_reset_quirk(struct device *dev , struct device_attribute *attr ,
52592                                     char const   *buf , size_t count ) 
52593{ struct usb_device *udev ;
52594  struct device  const  *__mptr ;
52595  int config ;
52596  int tmp ;
52597  struct usb_device *__cil_tmp9 ;
52598  struct device *__cil_tmp10 ;
52599  u32 __cil_tmp11 ;
52600  u32 __cil_tmp12 ;
52601  struct device *__cil_tmp13 ;
52602
52603  {
52604  {
52605#line 214
52606  __mptr = (struct device  const  *)dev;
52607#line 214
52608  __cil_tmp9 = (struct usb_device *)__mptr;
52609#line 214
52610  udev = __cil_tmp9 + 1152921504606846840UL;
52611#line 217
52612  tmp = sscanf(buf, "%d", & config);
52613  }
52614#line 217
52615  if (tmp != 1) {
52616#line 218
52617    return (-22L);
52618  } else
52619#line 217
52620  if (config < 0) {
52621#line 218
52622    return (-22L);
52623  } else
52624#line 217
52625  if (config > 1) {
52626#line 218
52627    return (-22L);
52628  } else {
52629
52630  }
52631  {
52632#line 219
52633  __cil_tmp10 = & udev->dev;
52634#line 219
52635  device_lock(__cil_tmp10);
52636  }
52637#line 220
52638  if (config != 0) {
52639#line 221
52640    __cil_tmp11 = udev->quirks;
52641#line 221
52642    udev->quirks = __cil_tmp11 | 16U;
52643  } else {
52644#line 223
52645    __cil_tmp12 = udev->quirks;
52646#line 223
52647    udev->quirks = __cil_tmp12 & 4294967279U;
52648  }
52649  {
52650#line 224
52651  __cil_tmp13 = & udev->dev;
52652#line 224
52653  device_unlock(__cil_tmp13);
52654  }
52655#line 225
52656  return ((ssize_t )count);
52657}
52658}
52659#line 229 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52660static struct device_attribute dev_attr_avoid_reset_quirk  =    {{"avoid_reset_quirk", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
52661                                                              {(char)0}, {(char)0},
52662                                                              {(char)0}, {(char)0},
52663                                                              {(char)0}, {(char)0}}}},
52664    & show_avoid_reset_quirk, & set_avoid_reset_quirk};
52665#line 232 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52666static ssize_t show_urbnum(struct device *dev , struct device_attribute *attr , char *buf ) 
52667{ struct usb_device *udev ;
52668  struct device  const  *__mptr ;
52669  int tmp ;
52670  int tmp___0 ;
52671  struct usb_device *__cil_tmp8 ;
52672  atomic_t *__cil_tmp9 ;
52673  atomic_t const   *__cil_tmp10 ;
52674
52675  {
52676  {
52677#line 236
52678  __mptr = (struct device  const  *)dev;
52679#line 236
52680  __cil_tmp8 = (struct usb_device *)__mptr;
52681#line 236
52682  udev = __cil_tmp8 + 1152921504606846840UL;
52683#line 237
52684  __cil_tmp9 = & udev->urbnum;
52685#line 237
52686  __cil_tmp10 = (atomic_t const   *)__cil_tmp9;
52687#line 237
52688  tmp = atomic_read(__cil_tmp10);
52689#line 237
52690  tmp___0 = sprintf(buf, "%d\n", tmp);
52691  }
52692#line 237
52693  return ((ssize_t )tmp___0);
52694}
52695}
52696#line 239 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52697static struct device_attribute dev_attr_urbnum  =    {{"urbnum", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52698                                                   {(char)0}, {(char)0}, {(char)0},
52699                                                   {(char)0}, {(char)0}}}}, & show_urbnum,
52700    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52701#line 245 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52702static ssize_t show_persist(struct device *dev , struct device_attribute *attr , char *buf ) 
52703{ struct usb_device *udev ;
52704  struct device  const  *__mptr ;
52705  int tmp ;
52706  struct usb_device *__cil_tmp7 ;
52707  unsigned char __cil_tmp8 ;
52708  int __cil_tmp9 ;
52709
52710  {
52711  {
52712#line 247
52713  __mptr = (struct device  const  *)dev;
52714#line 247
52715  __cil_tmp7 = (struct usb_device *)__mptr;
52716#line 247
52717  udev = __cil_tmp7 + 1152921504606846840UL;
52718#line 249
52719  __cil_tmp8 = udev->persist_enabled;
52720#line 249
52721  __cil_tmp9 = (int )__cil_tmp8;
52722#line 249
52723  tmp = sprintf(buf, "%d\n", __cil_tmp9);
52724  }
52725#line 249
52726  return ((ssize_t )tmp);
52727}
52728}
52729#line 253 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52730static ssize_t set_persist(struct device *dev , struct device_attribute *attr , char const   *buf ,
52731                           size_t count ) 
52732{ struct usb_device *udev ;
52733  struct device  const  *__mptr ;
52734  int value ;
52735  int tmp ;
52736  struct usb_device *__cil_tmp9 ;
52737  __u8 __cil_tmp10 ;
52738  unsigned int __cil_tmp11 ;
52739  struct device *__cil_tmp12 ;
52740  int __cil_tmp13 ;
52741  struct device *__cil_tmp14 ;
52742
52743  {
52744#line 256
52745  __mptr = (struct device  const  *)dev;
52746#line 256
52747  __cil_tmp9 = (struct usb_device *)__mptr;
52748#line 256
52749  udev = __cil_tmp9 + 1152921504606846840UL;
52750  {
52751#line 260
52752  __cil_tmp10 = udev->descriptor.bDeviceClass;
52753#line 260
52754  __cil_tmp11 = (unsigned int )__cil_tmp10;
52755#line 260
52756  if (__cil_tmp11 == 9U) {
52757#line 261
52758    return (-1L);
52759  } else {
52760
52761  }
52762  }
52763  {
52764#line 263
52765  tmp = sscanf(buf, "%d", & value);
52766  }
52767#line 263
52768  if (tmp != 1) {
52769#line 264
52770    return (-22L);
52771  } else {
52772
52773  }
52774  {
52775#line 266
52776  __cil_tmp12 = & udev->dev;
52777#line 266
52778  device_lock(__cil_tmp12);
52779#line 267
52780  __cil_tmp13 = value != 0;
52781#line 267
52782  udev->persist_enabled = (unsigned char )__cil_tmp13;
52783#line 268
52784  __cil_tmp14 = & udev->dev;
52785#line 268
52786  device_unlock(__cil_tmp14);
52787  }
52788#line 269
52789  return ((ssize_t )count);
52790}
52791}
52792#line 272 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52793static struct device_attribute dev_attr_persist  =    {{"persist", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52794                                                    {(char)0}, {(char)0}, {(char)0},
52795                                                    {(char)0}, {(char)0}}}}, & show_persist,
52796    & set_persist};
52797#line 274 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52798static int add_persist_attributes(struct device *dev ) 
52799{ int rc ;
52800  struct usb_device *udev ;
52801  struct device  const  *__mptr ;
52802  int tmp ;
52803  struct device  const  *__cil_tmp6 ;
52804  struct usb_device *__cil_tmp7 ;
52805  __u8 __cil_tmp8 ;
52806  unsigned int __cil_tmp9 ;
52807  struct kobject *__cil_tmp10 ;
52808  struct attribute *__cil_tmp11 ;
52809  struct attribute  const  *__cil_tmp12 ;
52810  char const   *__cil_tmp13 ;
52811
52812  {
52813  {
52814#line 276
52815  rc = 0;
52816#line 278
52817  __cil_tmp6 = (struct device  const  *)dev;
52818#line 278
52819  tmp = is_usb_device(__cil_tmp6);
52820  }
52821#line 278
52822  if (tmp != 0) {
52823#line 279
52824    __mptr = (struct device  const  *)dev;
52825#line 279
52826    __cil_tmp7 = (struct usb_device *)__mptr;
52827#line 279
52828    udev = __cil_tmp7 + 1152921504606846840UL;
52829    {
52830#line 284
52831    __cil_tmp8 = udev->descriptor.bDeviceClass;
52832#line 284
52833    __cil_tmp9 = (unsigned int )__cil_tmp8;
52834#line 284
52835    if (__cil_tmp9 != 9U) {
52836      {
52837#line 285
52838      __cil_tmp10 = & dev->kobj;
52839#line 285
52840      __cil_tmp11 = & dev_attr_persist.attr;
52841#line 285
52842      __cil_tmp12 = (struct attribute  const  *)__cil_tmp11;
52843#line 285
52844      __cil_tmp13 = (char const   *)(& power_group_name);
52845#line 285
52846      rc = sysfs_add_file_to_group(__cil_tmp10, __cil_tmp12, __cil_tmp13);
52847      }
52848    } else {
52849
52850    }
52851    }
52852  } else {
52853
52854  }
52855#line 289
52856  return (rc);
52857}
52858}
52859#line 292 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52860static void remove_persist_attributes(struct device *dev ) 
52861{ struct kobject *__cil_tmp2 ;
52862  struct attribute *__cil_tmp3 ;
52863  struct attribute  const  *__cil_tmp4 ;
52864  char const   *__cil_tmp5 ;
52865
52866  {
52867  {
52868#line 294
52869  __cil_tmp2 = & dev->kobj;
52870#line 294
52871  __cil_tmp3 = & dev_attr_persist.attr;
52872#line 294
52873  __cil_tmp4 = (struct attribute  const  *)__cil_tmp3;
52874#line 294
52875  __cil_tmp5 = (char const   *)(& power_group_name);
52876#line 294
52877  sysfs_remove_file_from_group(__cil_tmp2, __cil_tmp4, __cil_tmp5);
52878  }
52879#line 297
52880  return;
52881}
52882}
52883#line 308 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52884static ssize_t show_connected_duration(struct device *dev , struct device_attribute *attr ,
52885                                       char *buf ) 
52886{ struct usb_device *udev ;
52887  struct device  const  *__mptr ;
52888  unsigned int tmp ;
52889  int tmp___0 ;
52890  struct usb_device *__cil_tmp8 ;
52891  unsigned long __cil_tmp9 ;
52892  unsigned long __cil_tmp10 ;
52893  unsigned long __cil_tmp11 ;
52894  unsigned long __cil_tmp12 ;
52895  unsigned long __cil_tmp13 ;
52896
52897  {
52898  {
52899#line 311
52900  __mptr = (struct device  const  *)dev;
52901#line 311
52902  __cil_tmp8 = (struct usb_device *)__mptr;
52903#line 311
52904  udev = __cil_tmp8 + 1152921504606846840UL;
52905#line 313
52906  __cil_tmp9 = udev->connect_time;
52907#line 313
52908  __cil_tmp10 = (unsigned long )jiffies;
52909#line 313
52910  __cil_tmp11 = __cil_tmp10 - __cil_tmp9;
52911#line 313
52912  __cil_tmp12 = (unsigned long const   )__cil_tmp11;
52913#line 313
52914  __cil_tmp13 = (unsigned long )__cil_tmp12;
52915#line 313
52916  tmp = jiffies_to_msecs(__cil_tmp13);
52917#line 313
52918  tmp___0 = sprintf(buf, "%u\n", tmp);
52919  }
52920#line 313
52921  return ((ssize_t )tmp___0);
52922}
52923}
52924#line 317 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52925static struct device_attribute dev_attr_connected_duration  =    {{"connected_duration", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
52926                                                               {(char)0}, {(char)0},
52927                                                               {(char)0}, {(char)0},
52928                                                               {(char)0}, {(char)0}}}},
52929    & show_connected_duration, (ssize_t (*)(struct device * , struct device_attribute * ,
52930                                            char const   * , size_t  ))0};
52931#line 327 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
52932static ssize_t show_active_duration(struct device *dev , struct device_attribute *attr ,
52933                                    char *buf ) 
52934{ struct usb_device *udev ;
52935  struct device  const  *__mptr ;
52936  int duration ;
52937  unsigned int tmp ;
52938  unsigned int tmp___0 ;
52939  int tmp___1 ;
52940  struct usb_device *__cil_tmp10 ;
52941  enum usb_device_state __cil_tmp11 ;
52942  unsigned int __cil_tmp12 ;
52943  unsigned long __cil_tmp13 ;
52944  unsigned long __cil_tmp14 ;
52945  unsigned long __cil_tmp15 ;
52946  unsigned long __cil_tmp16 ;
52947  unsigned long __cil_tmp17 ;
52948  unsigned long __cil_tmp18 ;
52949  unsigned long __cil_tmp19 ;
52950  unsigned long __cil_tmp20 ;
52951
52952  {
52953#line 330
52954  __mptr = (struct device  const  *)dev;
52955#line 330
52956  __cil_tmp10 = (struct usb_device *)__mptr;
52957#line 330
52958  udev = __cil_tmp10 + 1152921504606846840UL;
52959  {
52960#line 333
52961  __cil_tmp11 = udev->state;
52962#line 333
52963  __cil_tmp12 = (unsigned int )__cil_tmp11;
52964#line 333
52965  if (__cil_tmp12 != 8U) {
52966    {
52967#line 334
52968    __cil_tmp13 = (unsigned long )jiffies;
52969#line 334
52970    __cil_tmp14 = udev->active_duration;
52971#line 334
52972    __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
52973#line 334
52974    __cil_tmp16 = (unsigned long const   )__cil_tmp15;
52975#line 334
52976    __cil_tmp17 = (unsigned long )__cil_tmp16;
52977#line 334
52978    tmp = jiffies_to_msecs(__cil_tmp17);
52979#line 334
52980    duration = (int )tmp;
52981    }
52982  } else {
52983    {
52984#line 336
52985    __cil_tmp18 = udev->active_duration;
52986#line 336
52987    __cil_tmp19 = (unsigned long const   )__cil_tmp18;
52988#line 336
52989    __cil_tmp20 = (unsigned long )__cil_tmp19;
52990#line 336
52991    tmp___0 = jiffies_to_msecs(__cil_tmp20);
52992#line 336
52993    duration = (int )tmp___0;
52994    }
52995  }
52996  }
52997  {
52998#line 337
52999  tmp___1 = sprintf(buf, "%u\n", duration);
53000  }
53001#line 337
53002  return ((ssize_t )tmp___1);
53003}
53004}
53005#line 340 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53006static struct device_attribute dev_attr_active_duration  =    {{"active_duration", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53007                                                            {(char)0}, {(char)0},
53008                                                            {(char)0}, {(char)0},
53009                                                            {(char)0}, {(char)0}}}},
53010    & show_active_duration, (ssize_t (*)(struct device * , struct device_attribute * ,
53011                                         char const   * , size_t  ))0};
53012#line 343 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53013static ssize_t show_autosuspend(struct device *dev , struct device_attribute *attr ,
53014                                char *buf ) 
53015{ int tmp ;
53016  int __cil_tmp5 ;
53017  int __cil_tmp6 ;
53018
53019  {
53020  {
53021#line 345
53022  __cil_tmp5 = dev->power.autosuspend_delay;
53023#line 345
53024  __cil_tmp6 = __cil_tmp5 / 1000;
53025#line 345
53026  tmp = sprintf(buf, "%d\n", __cil_tmp6);
53027  }
53028#line 345
53029  return ((ssize_t )tmp);
53030}
53031}
53032#line 349 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53033static ssize_t set_autosuspend(struct device *dev , struct device_attribute *attr ,
53034                               char const   *buf , size_t count ) 
53035{ int value ;
53036  int tmp ;
53037  int __cil_tmp7 ;
53038
53039  {
53040  {
53041#line 354
53042  tmp = sscanf(buf, "%d", & value);
53043  }
53044#line 354
53045  if (tmp != 1) {
53046#line 356
53047    return (-22L);
53048  } else
53049#line 354
53050  if (value > 2147482) {
53051#line 356
53052    return (-22L);
53053  } else
53054#line 354
53055  if (value < -2147482) {
53056#line 356
53057    return (-22L);
53058  } else {
53059
53060  }
53061  {
53062#line 358
53063  __cil_tmp7 = value * 1000;
53064#line 358
53065  pm_runtime_set_autosuspend_delay(dev, __cil_tmp7);
53066  }
53067#line 359
53068  return ((ssize_t )count);
53069}
53070}
53071#line 363 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53072static struct device_attribute dev_attr_autosuspend  =    {{"autosuspend", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53073                                                        {(char)0}, {(char)0}, {(char)0},
53074                                                        {(char)0}, {(char)0}}}}, & show_autosuspend,
53075    & set_autosuspend};
53076#line 365 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53077static char const   on_string[3U]  = {      (char const   )'o',      (char const   )'n',      (char const   )'\000'};
53078#line 366 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53079static char const   auto_string[5U]  = {      (char const   )'a',      (char const   )'u',      (char const   )'t',      (char const   )'o', 
53080        (char const   )'\000'};
53081#line 368 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53082static void warn_level(void) 
53083{ int level_warned ;
53084
53085  {
53086#line 371
53087  if (level_warned == 0) {
53088    {
53089#line 372
53090    level_warned = 1;
53091#line 373
53092    printk("<4>WARNING! power/level is deprecated; use power/control instead\n");
53093    }
53094  } else {
53095
53096  }
53097#line 375
53098  return;
53099}
53100}
53101#line 379 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53102static ssize_t show_level(struct device *dev , struct device_attribute *attr , char *buf ) 
53103{ struct usb_device *udev ;
53104  struct device  const  *__mptr ;
53105  char const   *p ;
53106  int tmp ;
53107  struct usb_device *__cil_tmp8 ;
53108  enum usb_device_state __cil_tmp9 ;
53109  unsigned int __cil_tmp10 ;
53110  unsigned char *__cil_tmp11 ;
53111  unsigned char *__cil_tmp12 ;
53112  unsigned char __cil_tmp13 ;
53113  unsigned int __cil_tmp14 ;
53114
53115  {
53116  {
53117#line 381
53118  __mptr = (struct device  const  *)dev;
53119#line 381
53120  __cil_tmp8 = (struct usb_device *)__mptr;
53121#line 381
53122  udev = __cil_tmp8 + 1152921504606846840UL;
53123#line 382
53124  p = (char const   *)(& auto_string);
53125#line 384
53126  warn_level();
53127  }
53128  {
53129#line 385
53130  __cil_tmp9 = udev->state;
53131#line 385
53132  __cil_tmp10 = (unsigned int )__cil_tmp9;
53133#line 385
53134  if (__cil_tmp10 != 8U) {
53135    {
53136#line 385
53137    __cil_tmp11 = (unsigned char *)udev;
53138#line 385
53139    __cil_tmp12 = __cil_tmp11 + 937UL;
53140#line 385
53141    __cil_tmp13 = *__cil_tmp12;
53142#line 385
53143    __cil_tmp14 = (unsigned int )__cil_tmp13;
53144#line 385
53145    if (__cil_tmp14 == 0U) {
53146#line 386
53147      p = (char const   *)(& on_string);
53148    } else {
53149
53150    }
53151    }
53152  } else {
53153
53154  }
53155  }
53156  {
53157#line 387
53158  tmp = sprintf(buf, "%s\n", p);
53159  }
53160#line 387
53161  return ((ssize_t )tmp);
53162}
53163}
53164#line 391 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53165static ssize_t set_level(struct device *dev , struct device_attribute *attr , char const   *buf ,
53166                         size_t count ) 
53167{ struct usb_device *udev ;
53168  struct device  const  *__mptr ;
53169  int len ;
53170  char *cp ;
53171  int rc ;
53172  void *tmp ;
53173  int tmp___0 ;
53174  int tmp___1 ;
53175  struct usb_device *__cil_tmp13 ;
53176  void const   *__cil_tmp14 ;
53177  char *__cil_tmp15 ;
53178  unsigned long __cil_tmp16 ;
53179  unsigned long __cil_tmp17 ;
53180  long __cil_tmp18 ;
53181  unsigned int __cil_tmp19 ;
53182  long __cil_tmp20 ;
53183  unsigned int __cil_tmp21 ;
53184  unsigned int __cil_tmp22 ;
53185  struct device *__cil_tmp23 ;
53186  char const   *__cil_tmp24 ;
53187  __kernel_size_t __cil_tmp25 ;
53188  char const   *__cil_tmp26 ;
53189  __kernel_size_t __cil_tmp27 ;
53190  struct device *__cil_tmp28 ;
53191
53192  {
53193  {
53194#line 394
53195  __mptr = (struct device  const  *)dev;
53196#line 394
53197  __cil_tmp13 = (struct usb_device *)__mptr;
53198#line 394
53199  udev = __cil_tmp13 + 1152921504606846840UL;
53200#line 395
53201  len = (int )count;
53202#line 397
53203  rc = (int )count;
53204#line 399
53205  warn_level();
53206#line 400
53207  __cil_tmp14 = (void const   *)buf;
53208#line 400
53209  tmp = memchr(__cil_tmp14, 10, count);
53210#line 400
53211  cp = (char *)tmp;
53212  }
53213  {
53214#line 401
53215  __cil_tmp15 = (char *)0;
53216#line 401
53217  __cil_tmp16 = (unsigned long )__cil_tmp15;
53218#line 401
53219  __cil_tmp17 = (unsigned long )cp;
53220#line 401
53221  if (__cil_tmp17 != __cil_tmp16) {
53222#line 402
53223    __cil_tmp18 = (long )buf;
53224#line 402
53225    __cil_tmp19 = (unsigned int )__cil_tmp18;
53226#line 402
53227    __cil_tmp20 = (long )cp;
53228#line 402
53229    __cil_tmp21 = (unsigned int )__cil_tmp20;
53230#line 402
53231    __cil_tmp22 = __cil_tmp21 - __cil_tmp19;
53232#line 402
53233    len = (int )__cil_tmp22;
53234  } else {
53235
53236  }
53237  }
53238  {
53239#line 404
53240  __cil_tmp23 = & udev->dev;
53241#line 404
53242  device_lock(__cil_tmp23);
53243  }
53244#line 406
53245  if (len == 2) {
53246    {
53247#line 406
53248    __cil_tmp24 = (char const   *)(& on_string);
53249#line 406
53250    __cil_tmp25 = (__kernel_size_t )len;
53251#line 406
53252    tmp___1 = strncmp(buf, __cil_tmp24, __cil_tmp25);
53253    }
53254#line 406
53255    if (tmp___1 == 0) {
53256      {
53257#line 408
53258      usb_disable_autosuspend(udev);
53259      }
53260    } else {
53261#line 406
53262      goto _L;
53263    }
53264  } else
53265  _L: 
53266#line 410
53267  if (len == 4) {
53268    {
53269#line 410
53270    __cil_tmp26 = (char const   *)(& auto_string);
53271#line 410
53272    __cil_tmp27 = (__kernel_size_t )len;
53273#line 410
53274    tmp___0 = strncmp(buf, __cil_tmp26, __cil_tmp27);
53275    }
53276#line 410
53277    if (tmp___0 == 0) {
53278      {
53279#line 412
53280      usb_enable_autosuspend(udev);
53281      }
53282    } else {
53283#line 415
53284      rc = -22;
53285    }
53286  } else {
53287#line 415
53288    rc = -22;
53289  }
53290  {
53291#line 417
53292  __cil_tmp28 = & udev->dev;
53293#line 417
53294  device_unlock(__cil_tmp28);
53295  }
53296#line 418
53297  return ((ssize_t )rc);
53298}
53299}
53300#line 421 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53301static struct device_attribute dev_attr_level  =    {{"level", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53302                                                  {(char)0}, {(char)0}, {(char)0},
53303                                                  {(char)0}, {(char)0}}}}, & show_level,
53304    & set_level};
53305#line 423 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53306static struct attribute *power_attrs[5U]  = {      & dev_attr_autosuspend.attr,      & dev_attr_level.attr,      & dev_attr_connected_duration.attr,      & dev_attr_active_duration.attr, 
53307        (struct attribute *)0};
53308#line 430 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53309static struct attribute_group power_attr_group  =    {(char const   *)(& power_group_name), (mode_t (*)(struct kobject * , struct attribute * ,
53310                                                      int  ))0, (struct attribute **)(& power_attrs)};
53311#line 435 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53312static int add_power_attributes(struct device *dev ) 
53313{ int rc ;
53314  int tmp ;
53315  struct device  const  *__cil_tmp4 ;
53316  struct kobject *__cil_tmp5 ;
53317  struct attribute_group  const  *__cil_tmp6 ;
53318
53319  {
53320  {
53321#line 437
53322  rc = 0;
53323#line 439
53324  __cil_tmp4 = (struct device  const  *)dev;
53325#line 439
53326  tmp = is_usb_device(__cil_tmp4);
53327  }
53328#line 439
53329  if (tmp != 0) {
53330    {
53331#line 440
53332    __cil_tmp5 = & dev->kobj;
53333#line 440
53334    __cil_tmp6 = (struct attribute_group  const  *)(& power_attr_group);
53335#line 440
53336    rc = sysfs_merge_group(__cil_tmp5, __cil_tmp6);
53337    }
53338  } else {
53339
53340  }
53341#line 441
53342  return (rc);
53343}
53344}
53345#line 444 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53346static void remove_power_attributes(struct device *dev ) 
53347{ struct kobject *__cil_tmp2 ;
53348  struct attribute_group  const  *__cil_tmp3 ;
53349
53350  {
53351  {
53352#line 446
53353  __cil_tmp2 = & dev->kobj;
53354#line 446
53355  __cil_tmp3 = (struct attribute_group  const  *)(& power_attr_group);
53356#line 446
53357  sysfs_unmerge_group(__cil_tmp2, __cil_tmp3);
53358  }
53359#line 447
53360  return;
53361}
53362}
53363#line 471 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53364static ssize_t show_idVendor(struct device *dev , struct device_attribute *attr ,
53365                             char *buf ) 
53366{ struct usb_device *udev ;
53367  struct device  const  *__mptr ;
53368  int tmp ;
53369  struct usb_device *__cil_tmp7 ;
53370  __le16 __cil_tmp8 ;
53371  int __cil_tmp9 ;
53372
53373  {
53374  {
53375#line 471
53376  __mptr = (struct device  const  *)dev;
53377#line 471
53378  __cil_tmp7 = (struct usb_device *)__mptr;
53379#line 471
53380  udev = __cil_tmp7 + 1152921504606846840UL;
53381#line 471
53382  __cil_tmp8 = udev->descriptor.idVendor;
53383#line 471
53384  __cil_tmp9 = (int )__cil_tmp8;
53385#line 471
53386  tmp = sprintf(buf, "%04x\n", __cil_tmp9);
53387  }
53388#line 471
53389  return ((ssize_t )tmp);
53390}
53391}
53392#line 471 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53393static struct device_attribute dev_attr_idVendor  =    {{"idVendor", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53394                                                     {(char)0}, {(char)0}, {(char)0},
53395                                                     {(char)0}, {(char)0}}}}, & show_idVendor,
53396    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
53397#line 472 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53398static ssize_t show_idProduct(struct device *dev , struct device_attribute *attr ,
53399                              char *buf ) 
53400{ struct usb_device *udev ;
53401  struct device  const  *__mptr ;
53402  int tmp ;
53403  struct usb_device *__cil_tmp7 ;
53404  __le16 __cil_tmp8 ;
53405  int __cil_tmp9 ;
53406
53407  {
53408  {
53409#line 472
53410  __mptr = (struct device  const  *)dev;
53411#line 472
53412  __cil_tmp7 = (struct usb_device *)__mptr;
53413#line 472
53414  udev = __cil_tmp7 + 1152921504606846840UL;
53415#line 472
53416  __cil_tmp8 = udev->descriptor.idProduct;
53417#line 472
53418  __cil_tmp9 = (int )__cil_tmp8;
53419#line 472
53420  tmp = sprintf(buf, "%04x\n", __cil_tmp9);
53421  }
53422#line 472
53423  return ((ssize_t )tmp);
53424}
53425}
53426#line 472 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53427static struct device_attribute dev_attr_idProduct  =    {{"idProduct", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53428                                                      {(char)0}, {(char)0}, {(char)0},
53429                                                      {(char)0}, {(char)0}}}}, & show_idProduct,
53430    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
53431#line 473 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53432static ssize_t show_bcdDevice(struct device *dev , struct device_attribute *attr ,
53433                              char *buf ) 
53434{ struct usb_device *udev ;
53435  struct device  const  *__mptr ;
53436  int tmp ;
53437  struct usb_device *__cil_tmp7 ;
53438  __le16 __cil_tmp8 ;
53439  int __cil_tmp9 ;
53440
53441  {
53442  {
53443#line 473
53444  __mptr = (struct device  const  *)dev;
53445#line 473
53446  __cil_tmp7 = (struct usb_device *)__mptr;
53447#line 473
53448  udev = __cil_tmp7 + 1152921504606846840UL;
53449#line 473
53450  __cil_tmp8 = udev->descriptor.bcdDevice;
53451#line 473
53452  __cil_tmp9 = (int )__cil_tmp8;
53453#line 473
53454  tmp = sprintf(buf, "%04x\n", __cil_tmp9);
53455  }
53456#line 473
53457  return ((ssize_t )tmp);
53458}
53459}
53460#line 473 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53461static struct device_attribute dev_attr_bcdDevice  =    {{"bcdDevice", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53462                                                      {(char)0}, {(char)0}, {(char)0},
53463                                                      {(char)0}, {(char)0}}}}, & show_bcdDevice,
53464    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
53465#line 487 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53466static ssize_t show_bDeviceClass(struct device *dev , struct device_attribute *attr ,
53467                                 char *buf ) 
53468{ struct usb_device *udev ;
53469  struct device  const  *__mptr ;
53470  int tmp ;
53471  struct usb_device *__cil_tmp7 ;
53472  __u8 __cil_tmp8 ;
53473  int __cil_tmp9 ;
53474
53475  {
53476  {
53477#line 487
53478  __mptr = (struct device  const  *)dev;
53479#line 487
53480  __cil_tmp7 = (struct usb_device *)__mptr;
53481#line 487
53482  udev = __cil_tmp7 + 1152921504606846840UL;
53483#line 487
53484  __cil_tmp8 = udev->descriptor.bDeviceClass;
53485#line 487
53486  __cil_tmp9 = (int )__cil_tmp8;
53487#line 487
53488  tmp = sprintf(buf, "%02x\n", __cil_tmp9);
53489  }
53490#line 487
53491  return ((ssize_t )tmp);
53492}
53493}
53494#line 487 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53495static struct device_attribute dev_attr_bDeviceClass  =    {{"bDeviceClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53496                                                         {(char)0}, {(char)0}, {(char)0},
53497                                                         {(char)0}, {(char)0}}}},
53498    & show_bDeviceClass, (ssize_t (*)(struct device * , struct device_attribute * ,
53499                                      char const   * , size_t  ))0};
53500#line 488 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53501static ssize_t show_bDeviceSubClass(struct device *dev , struct device_attribute *attr ,
53502                                    char *buf ) 
53503{ struct usb_device *udev ;
53504  struct device  const  *__mptr ;
53505  int tmp ;
53506  struct usb_device *__cil_tmp7 ;
53507  __u8 __cil_tmp8 ;
53508  int __cil_tmp9 ;
53509
53510  {
53511  {
53512#line 488
53513  __mptr = (struct device  const  *)dev;
53514#line 488
53515  __cil_tmp7 = (struct usb_device *)__mptr;
53516#line 488
53517  udev = __cil_tmp7 + 1152921504606846840UL;
53518#line 488
53519  __cil_tmp8 = udev->descriptor.bDeviceSubClass;
53520#line 488
53521  __cil_tmp9 = (int )__cil_tmp8;
53522#line 488
53523  tmp = sprintf(buf, "%02x\n", __cil_tmp9);
53524  }
53525#line 488
53526  return ((ssize_t )tmp);
53527}
53528}
53529#line 488 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53530static struct device_attribute dev_attr_bDeviceSubClass  =    {{"bDeviceSubClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53531                                                            {(char)0}, {(char)0},
53532                                                            {(char)0}, {(char)0},
53533                                                            {(char)0}, {(char)0}}}},
53534    & show_bDeviceSubClass, (ssize_t (*)(struct device * , struct device_attribute * ,
53535                                         char const   * , size_t  ))0};
53536#line 489 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53537static ssize_t show_bDeviceProtocol(struct device *dev , struct device_attribute *attr ,
53538                                    char *buf ) 
53539{ struct usb_device *udev ;
53540  struct device  const  *__mptr ;
53541  int tmp ;
53542  struct usb_device *__cil_tmp7 ;
53543  __u8 __cil_tmp8 ;
53544  int __cil_tmp9 ;
53545
53546  {
53547  {
53548#line 489
53549  __mptr = (struct device  const  *)dev;
53550#line 489
53551  __cil_tmp7 = (struct usb_device *)__mptr;
53552#line 489
53553  udev = __cil_tmp7 + 1152921504606846840UL;
53554#line 489
53555  __cil_tmp8 = udev->descriptor.bDeviceProtocol;
53556#line 489
53557  __cil_tmp9 = (int )__cil_tmp8;
53558#line 489
53559  tmp = sprintf(buf, "%02x\n", __cil_tmp9);
53560  }
53561#line 489
53562  return ((ssize_t )tmp);
53563}
53564}
53565#line 489 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53566static struct device_attribute dev_attr_bDeviceProtocol  =    {{"bDeviceProtocol", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53567                                                            {(char)0}, {(char)0},
53568                                                            {(char)0}, {(char)0},
53569                                                            {(char)0}, {(char)0}}}},
53570    & show_bDeviceProtocol, (ssize_t (*)(struct device * , struct device_attribute * ,
53571                                         char const   * , size_t  ))0};
53572#line 490 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53573static ssize_t show_bNumConfigurations(struct device *dev , struct device_attribute *attr ,
53574                                       char *buf ) 
53575{ struct usb_device *udev ;
53576  struct device  const  *__mptr ;
53577  int tmp ;
53578  struct usb_device *__cil_tmp7 ;
53579  __u8 __cil_tmp8 ;
53580  int __cil_tmp9 ;
53581
53582  {
53583  {
53584#line 490
53585  __mptr = (struct device  const  *)dev;
53586#line 490
53587  __cil_tmp7 = (struct usb_device *)__mptr;
53588#line 490
53589  udev = __cil_tmp7 + 1152921504606846840UL;
53590#line 490
53591  __cil_tmp8 = udev->descriptor.bNumConfigurations;
53592#line 490
53593  __cil_tmp9 = (int )__cil_tmp8;
53594#line 490
53595  tmp = sprintf(buf, "%d\n", __cil_tmp9);
53596  }
53597#line 490
53598  return ((ssize_t )tmp);
53599}
53600}
53601#line 490 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53602static struct device_attribute dev_attr_bNumConfigurations  =    {{"bNumConfigurations", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53603                                                               {(char)0}, {(char)0},
53604                                                               {(char)0}, {(char)0},
53605                                                               {(char)0}, {(char)0}}}},
53606    & show_bNumConfigurations, (ssize_t (*)(struct device * , struct device_attribute * ,
53607                                            char const   * , size_t  ))0};
53608#line 491 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53609static ssize_t show_bMaxPacketSize0(struct device *dev , struct device_attribute *attr ,
53610                                    char *buf ) 
53611{ struct usb_device *udev ;
53612  struct device  const  *__mptr ;
53613  int tmp ;
53614  struct usb_device *__cil_tmp7 ;
53615  __u8 __cil_tmp8 ;
53616  int __cil_tmp9 ;
53617
53618  {
53619  {
53620#line 491
53621  __mptr = (struct device  const  *)dev;
53622#line 491
53623  __cil_tmp7 = (struct usb_device *)__mptr;
53624#line 491
53625  udev = __cil_tmp7 + 1152921504606846840UL;
53626#line 491
53627  __cil_tmp8 = udev->descriptor.bMaxPacketSize0;
53628#line 491
53629  __cil_tmp9 = (int )__cil_tmp8;
53630#line 491
53631  tmp = sprintf(buf, "%d\n", __cil_tmp9);
53632  }
53633#line 491
53634  return ((ssize_t )tmp);
53635}
53636}
53637#line 491 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53638static struct device_attribute dev_attr_bMaxPacketSize0  =    {{"bMaxPacketSize0", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53639                                                            {(char)0}, {(char)0},
53640                                                            {(char)0}, {(char)0},
53641                                                            {(char)0}, {(char)0}}}},
53642    & show_bMaxPacketSize0, (ssize_t (*)(struct device * , struct device_attribute * ,
53643                                         char const   * , size_t  ))0};
53644#line 496 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53645static ssize_t usb_dev_authorized_show(struct device *dev , struct device_attribute *attr ,
53646                                       char *buf ) 
53647{ struct usb_device *usb_dev ;
53648  struct device  const  *__mptr ;
53649  int tmp ;
53650  struct usb_device *__cil_tmp7 ;
53651  unsigned char __cil_tmp8 ;
53652  int __cil_tmp9 ;
53653
53654  {
53655  {
53656#line 500
53657  __mptr = (struct device  const  *)dev;
53658#line 500
53659  __cil_tmp7 = (struct usb_device *)__mptr;
53660#line 500
53661  usb_dev = __cil_tmp7 + 1152921504606846840UL;
53662#line 501
53663  __cil_tmp8 = usb_dev->authorized;
53664#line 501
53665  __cil_tmp9 = (int )__cil_tmp8;
53666#line 501
53667  tmp = snprintf(buf, 4096UL, "%u\n", __cil_tmp9);
53668  }
53669#line 501
53670  return ((ssize_t )tmp);
53671}
53672}
53673#line 510 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53674static ssize_t usb_dev_authorized_store(struct device *dev , struct device_attribute *attr ,
53675                                        char const   *buf , size_t size ) 
53676{ ssize_t result ;
53677  struct usb_device *usb_dev ;
53678  struct device  const  *__mptr ;
53679  unsigned int val ;
53680  int tmp ;
53681  int tmp___0 ;
53682  int tmp___1 ;
53683  ssize_t tmp___2 ;
53684  struct usb_device *__cil_tmp13 ;
53685
53686  {
53687  {
53688#line 515
53689  __mptr = (struct device  const  *)dev;
53690#line 515
53691  __cil_tmp13 = (struct usb_device *)__mptr;
53692#line 515
53693  usb_dev = __cil_tmp13 + 1152921504606846840UL;
53694#line 517
53695  tmp = sscanf(buf, "%u\n", & val);
53696#line 517
53697  result = (ssize_t )tmp;
53698  }
53699#line 518
53700  if (result != 1L) {
53701#line 519
53702    result = -22L;
53703  } else
53704#line 520
53705  if (val == 0U) {
53706    {
53707#line 521
53708    tmp___0 = usb_deauthorize_device(usb_dev);
53709#line 521
53710    result = (ssize_t )tmp___0;
53711    }
53712  } else {
53713    {
53714#line 523
53715    tmp___1 = usb_authorize_device(usb_dev);
53716#line 523
53717    result = (ssize_t )tmp___1;
53718    }
53719  }
53720#line 524
53721  if (result >= 0L) {
53722#line 524
53723    tmp___2 = (ssize_t )size;
53724  } else {
53725#line 524
53726    tmp___2 = result;
53727  }
53728#line 524
53729  return (tmp___2);
53730}
53731}
53732#line 528 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53733static struct device_attribute dev_attr_authorized  =    {{"authorized", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53734                                                       {(char)0}, {(char)0}, {(char)0},
53735                                                       {(char)0}, {(char)0}}}}, & usb_dev_authorized_show,
53736    & usb_dev_authorized_store};
53737#line 531 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53738static ssize_t usb_remove_store(struct device *dev , struct device_attribute *attr ,
53739                                char const   *buf , size_t count ) 
53740{ struct usb_device *udev ;
53741  struct device  const  *__mptr ;
53742  int rc ;
53743  struct usb_device *__cil_tmp8 ;
53744  struct device *__cil_tmp9 ;
53745  enum usb_device_state __cil_tmp10 ;
53746  unsigned int __cil_tmp11 ;
53747  struct device *__cil_tmp12 ;
53748
53749  {
53750  {
53751#line 535
53752  __mptr = (struct device  const  *)dev;
53753#line 535
53754  __cil_tmp8 = (struct usb_device *)__mptr;
53755#line 535
53756  udev = __cil_tmp8 + 1152921504606846840UL;
53757#line 536
53758  rc = 0;
53759#line 538
53760  __cil_tmp9 = & udev->dev;
53761#line 538
53762  device_lock(__cil_tmp9);
53763  }
53764  {
53765#line 539
53766  __cil_tmp10 = udev->state;
53767#line 539
53768  __cil_tmp11 = (unsigned int )__cil_tmp10;
53769#line 539
53770  if (__cil_tmp11 != 0U) {
53771    {
53772#line 542
53773    usb_set_configuration(udev, -1);
53774#line 543
53775    rc = usb_remove_device(udev);
53776    }
53777  } else {
53778
53779  }
53780  }
53781#line 545
53782  if (rc == 0) {
53783#line 546
53784    rc = (int )count;
53785  } else {
53786
53787  }
53788  {
53789#line 547
53790  __cil_tmp12 = & udev->dev;
53791#line 547
53792  device_unlock(__cil_tmp12);
53793  }
53794#line 548
53795  return ((ssize_t )rc);
53796}
53797}
53798#line 550 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53799static struct device_attribute dev_attr_remove  =    {{"remove", 128U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53800                                                   {(char)0}, {(char)0}, {(char)0},
53801                                                   {(char)0}, {(char)0}}}}, (ssize_t (*)(struct device * ,
53802                                                                                         struct device_attribute * ,
53803                                                                                         char * ))0,
53804    & usb_remove_store};
53805#line 553 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53806static struct attribute *dev_attrs[25U]  = 
53807#line 553
53808  {      & dev_attr_configuration.attr,      & dev_attr_bNumInterfaces.attr,      & dev_attr_bConfigurationValue.attr,      & dev_attr_bmAttributes.attr, 
53809        & dev_attr_bMaxPower.attr,      & dev_attr_urbnum.attr,      & dev_attr_idVendor.attr,      & dev_attr_idProduct.attr, 
53810        & dev_attr_bcdDevice.attr,      & dev_attr_bDeviceClass.attr,      & dev_attr_bDeviceSubClass.attr,      & dev_attr_bDeviceProtocol.attr, 
53811        & dev_attr_bNumConfigurations.attr,      & dev_attr_bMaxPacketSize0.attr,      & dev_attr_speed.attr,      & dev_attr_busnum.attr, 
53812        & dev_attr_devnum.attr,      & dev_attr_devpath.attr,      & dev_attr_version.attr,      & dev_attr_maxchild.attr, 
53813        & dev_attr_quirks.attr,      & dev_attr_avoid_reset_quirk.attr,      & dev_attr_authorized.attr,      & dev_attr_remove.attr, 
53814        (struct attribute *)0};
53815#line 582 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53816static struct attribute_group dev_attr_grp  =    {(char const   *)0, (mode_t (*)(struct kobject * , struct attribute * , int  ))0,
53817    (struct attribute **)(& dev_attrs)};
53818#line 589 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53819static struct attribute *dev_string_attrs[4U]  = {      & dev_attr_manufacturer.attr,      & dev_attr_product.attr,      & dev_attr_serial.attr,      (struct attribute *)0};
53820#line 596 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53821static mode_t dev_string_attrs_are_visible(struct kobject *kobj , struct attribute *a ,
53822                                           int n ) 
53823{ struct device *dev ;
53824  struct kobject  const  *__mptr ;
53825  struct usb_device *udev ;
53826  struct device  const  *__mptr___0 ;
53827  struct device *__cil_tmp8 ;
53828  struct usb_device *__cil_tmp9 ;
53829  struct attribute *__cil_tmp10 ;
53830  unsigned long __cil_tmp11 ;
53831  unsigned long __cil_tmp12 ;
53832  char *__cil_tmp13 ;
53833  unsigned long __cil_tmp14 ;
53834  char *__cil_tmp15 ;
53835  unsigned long __cil_tmp16 ;
53836  struct attribute *__cil_tmp17 ;
53837  unsigned long __cil_tmp18 ;
53838  unsigned long __cil_tmp19 ;
53839  char *__cil_tmp20 ;
53840  unsigned long __cil_tmp21 ;
53841  char *__cil_tmp22 ;
53842  unsigned long __cil_tmp23 ;
53843  struct attribute *__cil_tmp24 ;
53844  unsigned long __cil_tmp25 ;
53845  unsigned long __cil_tmp26 ;
53846  char *__cil_tmp27 ;
53847  unsigned long __cil_tmp28 ;
53848  char *__cil_tmp29 ;
53849  unsigned long __cil_tmp30 ;
53850
53851  {
53852#line 599
53853  __mptr = (struct kobject  const  *)kobj;
53854#line 599
53855  __cil_tmp8 = (struct device *)__mptr;
53856#line 599
53857  dev = __cil_tmp8 + 1152921504606846960UL;
53858#line 600
53859  __mptr___0 = (struct device  const  *)dev;
53860#line 600
53861  __cil_tmp9 = (struct usb_device *)__mptr___0;
53862#line 600
53863  udev = __cil_tmp9 + 1152921504606846840UL;
53864  {
53865#line 602
53866  __cil_tmp10 = & dev_attr_manufacturer.attr;
53867#line 602
53868  __cil_tmp11 = (unsigned long )__cil_tmp10;
53869#line 602
53870  __cil_tmp12 = (unsigned long )a;
53871#line 602
53872  if (__cil_tmp12 == __cil_tmp11) {
53873    {
53874#line 603
53875    __cil_tmp13 = (char *)0;
53876#line 603
53877    __cil_tmp14 = (unsigned long )__cil_tmp13;
53878#line 603
53879    __cil_tmp15 = udev->manufacturer;
53880#line 603
53881    __cil_tmp16 = (unsigned long )__cil_tmp15;
53882#line 603
53883    if (__cil_tmp16 == __cil_tmp14) {
53884#line 604
53885      return (0U);
53886    } else {
53887      {
53888#line 605
53889      __cil_tmp17 = & dev_attr_product.attr;
53890#line 605
53891      __cil_tmp18 = (unsigned long )__cil_tmp17;
53892#line 605
53893      __cil_tmp19 = (unsigned long )a;
53894#line 605
53895      if (__cil_tmp19 == __cil_tmp18) {
53896        {
53897#line 606
53898        __cil_tmp20 = (char *)0;
53899#line 606
53900        __cil_tmp21 = (unsigned long )__cil_tmp20;
53901#line 606
53902        __cil_tmp22 = udev->product;
53903#line 606
53904        __cil_tmp23 = (unsigned long )__cil_tmp22;
53905#line 606
53906        if (__cil_tmp23 == __cil_tmp21) {
53907#line 607
53908          return (0U);
53909        } else {
53910          {
53911#line 608
53912          __cil_tmp24 = & dev_attr_serial.attr;
53913#line 608
53914          __cil_tmp25 = (unsigned long )__cil_tmp24;
53915#line 608
53916          __cil_tmp26 = (unsigned long )a;
53917#line 608
53918          if (__cil_tmp26 == __cil_tmp25) {
53919            {
53920#line 609
53921            __cil_tmp27 = (char *)0;
53922#line 609
53923            __cil_tmp28 = (unsigned long )__cil_tmp27;
53924#line 609
53925            __cil_tmp29 = udev->serial;
53926#line 609
53927            __cil_tmp30 = (unsigned long )__cil_tmp29;
53928#line 609
53929            if (__cil_tmp30 == __cil_tmp28) {
53930#line 610
53931              return (0U);
53932            } else {
53933
53934            }
53935            }
53936          } else {
53937
53938          }
53939          }
53940        }
53941        }
53942      } else {
53943
53944      }
53945      }
53946    }
53947    }
53948  } else {
53949
53950  }
53951  }
53952#line 612
53953  return (a->mode);
53954}
53955}
53956#line 615 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53957static struct attribute_group dev_string_attr_grp  =    {(char const   *)0, & dev_string_attrs_are_visible, (struct attribute **)(& dev_string_attrs)};
53958#line 620 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53959struct attribute_group  const  *usb_device_groups[3U]  = {      (struct attribute_group  const  *)(& dev_attr_grp),      (struct attribute_group  const  *)(& dev_string_attr_grp),      (struct attribute_group  const  *)0};
53960#line 629 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
53961static ssize_t read_descriptors(struct file *filp , struct kobject *kobj , struct bin_attribute *attr ,
53962                                char *buf , loff_t off , size_t count ) 
53963{ struct device *dev ;
53964  struct kobject  const  *__mptr ;
53965  struct usb_device *udev ;
53966  struct device  const  *__mptr___0 ;
53967  size_t nleft ;
53968  size_t srclen ;
53969  size_t n ;
53970  int cfgno ;
53971  void *src ;
53972  size_t _min1 ;
53973  unsigned long _min2 ;
53974  unsigned long tmp ;
53975  size_t __len ;
53976  void *__ret ;
53977  struct device *__cil_tmp21 ;
53978  struct usb_device *__cil_tmp22 ;
53979  struct usb_device_descriptor *__cil_tmp23 ;
53980  unsigned long __cil_tmp24 ;
53981  char **__cil_tmp25 ;
53982  char **__cil_tmp26 ;
53983  char *__cil_tmp27 ;
53984  unsigned long __cil_tmp28 ;
53985  struct usb_host_config *__cil_tmp29 ;
53986  struct usb_host_config *__cil_tmp30 ;
53987  __le16 __cil_tmp31 ;
53988  unsigned long long __cil_tmp32 ;
53989  unsigned long long __cil_tmp33 ;
53990  unsigned long __cil_tmp34 ;
53991  void *__cil_tmp35 ;
53992  unsigned long __cil_tmp36 ;
53993  void const   *__cil_tmp37 ;
53994  void const   *__cil_tmp38 ;
53995  unsigned long long __cil_tmp39 ;
53996  unsigned long long __cil_tmp40 ;
53997  unsigned long long __cil_tmp41 ;
53998  __u8 __cil_tmp42 ;
53999  int __cil_tmp43 ;
54000  size_t __cil_tmp44 ;
54001
54002  {
54003#line 633
54004  __mptr = (struct kobject  const  *)kobj;
54005#line 633
54006  __cil_tmp21 = (struct device *)__mptr;
54007#line 633
54008  dev = __cil_tmp21 + 1152921504606846960UL;
54009#line 634
54010  __mptr___0 = (struct device  const  *)dev;
54011#line 634
54012  __cil_tmp22 = (struct usb_device *)__mptr___0;
54013#line 634
54014  udev = __cil_tmp22 + 1152921504606846840UL;
54015#line 635
54016  nleft = count;
54017#line 644
54018  cfgno = -1;
54019#line 644
54020  goto ldv_24056;
54021  ldv_24055: ;
54022#line 646
54023  if (cfgno < 0) {
54024#line 647
54025    __cil_tmp23 = & udev->descriptor;
54026#line 647
54027    src = (void *)__cil_tmp23;
54028#line 648
54029    srclen = 18UL;
54030  } else {
54031#line 650
54032    __cil_tmp24 = (unsigned long )cfgno;
54033#line 650
54034    __cil_tmp25 = udev->rawdescriptors;
54035#line 650
54036    __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
54037#line 650
54038    __cil_tmp27 = *__cil_tmp26;
54039#line 650
54040    src = (void *)__cil_tmp27;
54041#line 651
54042    __cil_tmp28 = (unsigned long )cfgno;
54043#line 651
54044    __cil_tmp29 = udev->config;
54045#line 651
54046    __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
54047#line 651
54048    __cil_tmp31 = __cil_tmp30->desc.wTotalLength;
54049#line 651
54050    srclen = (size_t )__cil_tmp31;
54051  }
54052  {
54053#line 654
54054  __cil_tmp32 = (unsigned long long )srclen;
54055#line 654
54056  __cil_tmp33 = (unsigned long long )off;
54057#line 654
54058  if (__cil_tmp33 < __cil_tmp32) {
54059#line 655
54060    _min1 = nleft;
54061#line 655
54062    __cil_tmp34 = (unsigned long )off;
54063#line 655
54064    _min2 = srclen - __cil_tmp34;
54065#line 655
54066    if (_min1 < _min2) {
54067#line 655
54068      tmp = _min1;
54069    } else {
54070#line 655
54071      tmp = _min2;
54072    }
54073    {
54074#line 655
54075    n = tmp;
54076#line 656
54077    __len = n;
54078#line 656
54079    __cil_tmp35 = (void *)buf;
54080#line 656
54081    __cil_tmp36 = (unsigned long )off;
54082#line 656
54083    __cil_tmp37 = (void const   *)src;
54084#line 656
54085    __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
54086#line 656
54087    __ret = __builtin_memcpy(__cil_tmp35, __cil_tmp38, __len);
54088#line 657
54089    nleft = nleft - n;
54090#line 658
54091    buf = buf + n;
54092#line 659
54093    off = 0LL;
54094    }
54095  } else {
54096#line 661
54097    __cil_tmp39 = (unsigned long long )srclen;
54098#line 661
54099    __cil_tmp40 = (unsigned long long )off;
54100#line 661
54101    __cil_tmp41 = __cil_tmp40 - __cil_tmp39;
54102#line 661
54103    off = (loff_t )__cil_tmp41;
54104  }
54105  }
54106#line 645
54107  cfgno = cfgno + 1;
54108  ldv_24056: ;
54109  {
54110#line 644
54111  __cil_tmp42 = udev->descriptor.bNumConfigurations;
54112#line 644
54113  __cil_tmp43 = (int )__cil_tmp42;
54114#line 644
54115  if (__cil_tmp43 > cfgno) {
54116#line 644
54117    if (nleft != 0UL) {
54118#line 646
54119      goto ldv_24055;
54120    } else {
54121#line 648
54122      goto ldv_24057;
54123    }
54124  } else {
54125#line 648
54126    goto ldv_24057;
54127  }
54128  }
54129  ldv_24057: ;
54130  {
54131#line 664
54132  __cil_tmp44 = count - nleft;
54133#line 664
54134  return ((ssize_t )__cil_tmp44);
54135  }
54136}
54137}
54138#line 667 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54139static struct bin_attribute dev_bin_attr_descriptors  =    {{"descriptors", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
54140                                                        {(char)0}, {(char)0}, {(char)0},
54141                                                        {(char)0}, {(char)0}}}}, 65553UL,
54142    (void *)0, & read_descriptors, (ssize_t (*)(struct file * , struct kobject * ,
54143                                                struct bin_attribute * , char * ,
54144                                                loff_t  , size_t  ))0, (int (*)(struct file * ,
54145                                                                                struct kobject * ,
54146                                                                                struct bin_attribute * ,
54147                                                                                struct vm_area_struct * ))0};
54148#line 673 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54149int usb_create_sysfs_dev_files(struct usb_device *udev ) 
54150{ struct device *dev ;
54151  int retval ;
54152  struct bin_attribute  const  *__cil_tmp4 ;
54153
54154  {
54155  {
54156#line 675
54157  dev = & udev->dev;
54158#line 678
54159  __cil_tmp4 = (struct bin_attribute  const  *)(& dev_bin_attr_descriptors);
54160#line 678
54161  retval = device_create_bin_file(dev, __cil_tmp4);
54162  }
54163#line 679
54164  if (retval != 0) {
54165#line 680
54166    goto error;
54167  } else {
54168
54169  }
54170  {
54171#line 682
54172  retval = add_persist_attributes(dev);
54173  }
54174#line 683
54175  if (retval != 0) {
54176#line 684
54177    goto error;
54178  } else {
54179
54180  }
54181  {
54182#line 686
54183  retval = add_power_attributes(dev);
54184  }
54185#line 687
54186  if (retval != 0) {
54187#line 688
54188    goto error;
54189  } else {
54190
54191  }
54192#line 689
54193  return (retval);
54194  error: 
54195  {
54196#line 691
54197  usb_remove_sysfs_dev_files(udev);
54198  }
54199#line 692
54200  return (retval);
54201}
54202}
54203#line 695 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54204void usb_remove_sysfs_dev_files(struct usb_device *udev ) 
54205{ struct device *dev ;
54206  struct bin_attribute  const  *__cil_tmp3 ;
54207
54208  {
54209  {
54210#line 697
54211  dev = & udev->dev;
54212#line 699
54213  remove_power_attributes(dev);
54214#line 700
54215  remove_persist_attributes(dev);
54216#line 701
54217  __cil_tmp3 = (struct bin_attribute  const  *)(& dev_bin_attr_descriptors);
54218#line 701
54219  device_remove_bin_file(dev, __cil_tmp3);
54220  }
54221#line 702
54222  return;
54223}
54224}
54225#line 717 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54226static ssize_t show_iad_bFirstInterface(struct device *dev , struct device_attribute *attr ,
54227                                        char *buf ) 
54228{ struct usb_interface *intf ;
54229  struct device  const  *__mptr ;
54230  int tmp ;
54231  struct usb_interface *__cil_tmp7 ;
54232  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54233  __u8 __cil_tmp9 ;
54234  int __cil_tmp10 ;
54235
54236  {
54237  {
54238#line 717
54239  __mptr = (struct device  const  *)dev;
54240#line 717
54241  __cil_tmp7 = (struct usb_interface *)__mptr;
54242#line 717
54243  intf = __cil_tmp7 + 1152921504606846928UL;
54244#line 717
54245  __cil_tmp8 = intf->intf_assoc;
54246#line 717
54247  __cil_tmp9 = __cil_tmp8->bFirstInterface;
54248#line 717
54249  __cil_tmp10 = (int )__cil_tmp9;
54250#line 717
54251  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54252  }
54253#line 717
54254  return ((ssize_t )tmp);
54255}
54256}
54257#line 717 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54258static struct device_attribute dev_attr_iad_bFirstInterface  =    {{"iad_bFirstInterface", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54259                                                                {(char)0}, {(char)0},
54260                                                                {(char)0}, {(char)0},
54261                                                                {(char)0}, {(char)0}}}},
54262    & show_iad_bFirstInterface, (ssize_t (*)(struct device * , struct device_attribute * ,
54263                                             char const   * , size_t  ))0};
54264#line 718 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54265static ssize_t show_iad_bInterfaceCount(struct device *dev , struct device_attribute *attr ,
54266                                        char *buf ) 
54267{ struct usb_interface *intf ;
54268  struct device  const  *__mptr ;
54269  int tmp ;
54270  struct usb_interface *__cil_tmp7 ;
54271  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54272  __u8 __cil_tmp9 ;
54273  int __cil_tmp10 ;
54274
54275  {
54276  {
54277#line 718
54278  __mptr = (struct device  const  *)dev;
54279#line 718
54280  __cil_tmp7 = (struct usb_interface *)__mptr;
54281#line 718
54282  intf = __cil_tmp7 + 1152921504606846928UL;
54283#line 718
54284  __cil_tmp8 = intf->intf_assoc;
54285#line 718
54286  __cil_tmp9 = __cil_tmp8->bInterfaceCount;
54287#line 718
54288  __cil_tmp10 = (int )__cil_tmp9;
54289#line 718
54290  tmp = sprintf(buf, "%02d\n", __cil_tmp10);
54291  }
54292#line 718
54293  return ((ssize_t )tmp);
54294}
54295}
54296#line 718 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54297static struct device_attribute dev_attr_iad_bInterfaceCount  =    {{"iad_bInterfaceCount", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54298                                                                {(char)0}, {(char)0},
54299                                                                {(char)0}, {(char)0},
54300                                                                {(char)0}, {(char)0}}}},
54301    & show_iad_bInterfaceCount, (ssize_t (*)(struct device * , struct device_attribute * ,
54302                                             char const   * , size_t  ))0};
54303#line 719 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54304static ssize_t show_iad_bFunctionClass(struct device *dev , struct device_attribute *attr ,
54305                                       char *buf ) 
54306{ struct usb_interface *intf ;
54307  struct device  const  *__mptr ;
54308  int tmp ;
54309  struct usb_interface *__cil_tmp7 ;
54310  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54311  __u8 __cil_tmp9 ;
54312  int __cil_tmp10 ;
54313
54314  {
54315  {
54316#line 719
54317  __mptr = (struct device  const  *)dev;
54318#line 719
54319  __cil_tmp7 = (struct usb_interface *)__mptr;
54320#line 719
54321  intf = __cil_tmp7 + 1152921504606846928UL;
54322#line 719
54323  __cil_tmp8 = intf->intf_assoc;
54324#line 719
54325  __cil_tmp9 = __cil_tmp8->bFunctionClass;
54326#line 719
54327  __cil_tmp10 = (int )__cil_tmp9;
54328#line 719
54329  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54330  }
54331#line 719
54332  return ((ssize_t )tmp);
54333}
54334}
54335#line 719 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54336static struct device_attribute dev_attr_iad_bFunctionClass  =    {{"iad_bFunctionClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54337                                                               {(char)0}, {(char)0},
54338                                                               {(char)0}, {(char)0},
54339                                                               {(char)0}, {(char)0}}}},
54340    & show_iad_bFunctionClass, (ssize_t (*)(struct device * , struct device_attribute * ,
54341                                            char const   * , size_t  ))0};
54342#line 720 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54343static ssize_t show_iad_bFunctionSubClass(struct device *dev , struct device_attribute *attr ,
54344                                          char *buf ) 
54345{ struct usb_interface *intf ;
54346  struct device  const  *__mptr ;
54347  int tmp ;
54348  struct usb_interface *__cil_tmp7 ;
54349  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54350  __u8 __cil_tmp9 ;
54351  int __cil_tmp10 ;
54352
54353  {
54354  {
54355#line 720
54356  __mptr = (struct device  const  *)dev;
54357#line 720
54358  __cil_tmp7 = (struct usb_interface *)__mptr;
54359#line 720
54360  intf = __cil_tmp7 + 1152921504606846928UL;
54361#line 720
54362  __cil_tmp8 = intf->intf_assoc;
54363#line 720
54364  __cil_tmp9 = __cil_tmp8->bFunctionSubClass;
54365#line 720
54366  __cil_tmp10 = (int )__cil_tmp9;
54367#line 720
54368  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54369  }
54370#line 720
54371  return ((ssize_t )tmp);
54372}
54373}
54374#line 720 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54375static struct device_attribute dev_attr_iad_bFunctionSubClass  =    {{"iad_bFunctionSubClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54376                                                                  {(char)0}, {(char)0},
54377                                                                  {(char)0}, {(char)0},
54378                                                                  {(char)0}, {(char)0}}}},
54379    & show_iad_bFunctionSubClass, (ssize_t (*)(struct device * , struct device_attribute * ,
54380                                               char const   * , size_t  ))0};
54381#line 721 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54382static ssize_t show_iad_bFunctionProtocol(struct device *dev , struct device_attribute *attr ,
54383                                          char *buf ) 
54384{ struct usb_interface *intf ;
54385  struct device  const  *__mptr ;
54386  int tmp ;
54387  struct usb_interface *__cil_tmp7 ;
54388  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54389  __u8 __cil_tmp9 ;
54390  int __cil_tmp10 ;
54391
54392  {
54393  {
54394#line 721
54395  __mptr = (struct device  const  *)dev;
54396#line 721
54397  __cil_tmp7 = (struct usb_interface *)__mptr;
54398#line 721
54399  intf = __cil_tmp7 + 1152921504606846928UL;
54400#line 721
54401  __cil_tmp8 = intf->intf_assoc;
54402#line 721
54403  __cil_tmp9 = __cil_tmp8->bFunctionProtocol;
54404#line 721
54405  __cil_tmp10 = (int )__cil_tmp9;
54406#line 721
54407  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54408  }
54409#line 721
54410  return ((ssize_t )tmp);
54411}
54412}
54413#line 721 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54414static struct device_attribute dev_attr_iad_bFunctionProtocol  =    {{"iad_bFunctionProtocol", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54415                                                                  {(char)0}, {(char)0},
54416                                                                  {(char)0}, {(char)0},
54417                                                                  {(char)0}, {(char)0}}}},
54418    & show_iad_bFunctionProtocol, (ssize_t (*)(struct device * , struct device_attribute * ,
54419                                               char const   * , size_t  ))0};
54420#line 736 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54421static ssize_t show_bInterfaceNumber(struct device *dev , struct device_attribute *attr ,
54422                                     char *buf ) 
54423{ struct usb_interface *intf ;
54424  struct device  const  *__mptr ;
54425  int tmp ;
54426  struct usb_interface *__cil_tmp7 ;
54427  struct usb_host_interface *__cil_tmp8 ;
54428  __u8 __cil_tmp9 ;
54429  int __cil_tmp10 ;
54430
54431  {
54432  {
54433#line 736
54434  __mptr = (struct device  const  *)dev;
54435#line 736
54436  __cil_tmp7 = (struct usb_interface *)__mptr;
54437#line 736
54438  intf = __cil_tmp7 + 1152921504606846928UL;
54439#line 736
54440  __cil_tmp8 = intf->cur_altsetting;
54441#line 736
54442  __cil_tmp9 = __cil_tmp8->desc.bInterfaceNumber;
54443#line 736
54444  __cil_tmp10 = (int )__cil_tmp9;
54445#line 736
54446  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54447  }
54448#line 736
54449  return ((ssize_t )tmp);
54450}
54451}
54452#line 736 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54453static struct device_attribute dev_attr_bInterfaceNumber  =    {{"bInterfaceNumber", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54454                                                             {(char)0}, {(char)0},
54455                                                             {(char)0}, {(char)0},
54456                                                             {(char)0}, {(char)0}}}},
54457    & show_bInterfaceNumber, (ssize_t (*)(struct device * , struct device_attribute * ,
54458                                          char const   * , size_t  ))0};
54459#line 737 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54460static ssize_t show_bAlternateSetting(struct device *dev , struct device_attribute *attr ,
54461                                      char *buf ) 
54462{ struct usb_interface *intf ;
54463  struct device  const  *__mptr ;
54464  int tmp ;
54465  struct usb_interface *__cil_tmp7 ;
54466  struct usb_host_interface *__cil_tmp8 ;
54467  __u8 __cil_tmp9 ;
54468  int __cil_tmp10 ;
54469
54470  {
54471  {
54472#line 737
54473  __mptr = (struct device  const  *)dev;
54474#line 737
54475  __cil_tmp7 = (struct usb_interface *)__mptr;
54476#line 737
54477  intf = __cil_tmp7 + 1152921504606846928UL;
54478#line 737
54479  __cil_tmp8 = intf->cur_altsetting;
54480#line 737
54481  __cil_tmp9 = __cil_tmp8->desc.bAlternateSetting;
54482#line 737
54483  __cil_tmp10 = (int )__cil_tmp9;
54484#line 737
54485  tmp = sprintf(buf, "%2d\n", __cil_tmp10);
54486  }
54487#line 737
54488  return ((ssize_t )tmp);
54489}
54490}
54491#line 737 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54492static struct device_attribute dev_attr_bAlternateSetting  =    {{"bAlternateSetting", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54493                                                              {(char)0}, {(char)0},
54494                                                              {(char)0}, {(char)0},
54495                                                              {(char)0}, {(char)0}}}},
54496    & show_bAlternateSetting, (ssize_t (*)(struct device * , struct device_attribute * ,
54497                                           char const   * , size_t  ))0};
54498#line 738 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54499static ssize_t show_bNumEndpoints(struct device *dev , struct device_attribute *attr ,
54500                                  char *buf ) 
54501{ struct usb_interface *intf ;
54502  struct device  const  *__mptr ;
54503  int tmp ;
54504  struct usb_interface *__cil_tmp7 ;
54505  struct usb_host_interface *__cil_tmp8 ;
54506  __u8 __cil_tmp9 ;
54507  int __cil_tmp10 ;
54508
54509  {
54510  {
54511#line 738
54512  __mptr = (struct device  const  *)dev;
54513#line 738
54514  __cil_tmp7 = (struct usb_interface *)__mptr;
54515#line 738
54516  intf = __cil_tmp7 + 1152921504606846928UL;
54517#line 738
54518  __cil_tmp8 = intf->cur_altsetting;
54519#line 738
54520  __cil_tmp9 = __cil_tmp8->desc.bNumEndpoints;
54521#line 738
54522  __cil_tmp10 = (int )__cil_tmp9;
54523#line 738
54524  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54525  }
54526#line 738
54527  return ((ssize_t )tmp);
54528}
54529}
54530#line 738 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54531static struct device_attribute dev_attr_bNumEndpoints  =    {{"bNumEndpoints", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
54532                                                          {(char)0}, {(char)0}, {(char)0},
54533                                                          {(char)0}, {(char)0}}}},
54534    & show_bNumEndpoints, (ssize_t (*)(struct device * , struct device_attribute * ,
54535                                       char const   * , size_t  ))0};
54536#line 739 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54537static ssize_t show_bInterfaceClass(struct device *dev , struct device_attribute *attr ,
54538                                    char *buf ) 
54539{ struct usb_interface *intf ;
54540  struct device  const  *__mptr ;
54541  int tmp ;
54542  struct usb_interface *__cil_tmp7 ;
54543  struct usb_host_interface *__cil_tmp8 ;
54544  __u8 __cil_tmp9 ;
54545  int __cil_tmp10 ;
54546
54547  {
54548  {
54549#line 739
54550  __mptr = (struct device  const  *)dev;
54551#line 739
54552  __cil_tmp7 = (struct usb_interface *)__mptr;
54553#line 739
54554  intf = __cil_tmp7 + 1152921504606846928UL;
54555#line 739
54556  __cil_tmp8 = intf->cur_altsetting;
54557#line 739
54558  __cil_tmp9 = __cil_tmp8->desc.bInterfaceClass;
54559#line 739
54560  __cil_tmp10 = (int )__cil_tmp9;
54561#line 739
54562  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54563  }
54564#line 739
54565  return ((ssize_t )tmp);
54566}
54567}
54568#line 739 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54569static struct device_attribute dev_attr_bInterfaceClass  =    {{"bInterfaceClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54570                                                            {(char)0}, {(char)0},
54571                                                            {(char)0}, {(char)0},
54572                                                            {(char)0}, {(char)0}}}},
54573    & show_bInterfaceClass, (ssize_t (*)(struct device * , struct device_attribute * ,
54574                                         char const   * , size_t  ))0};
54575#line 740 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54576static ssize_t show_bInterfaceSubClass(struct device *dev , struct device_attribute *attr ,
54577                                       char *buf ) 
54578{ struct usb_interface *intf ;
54579  struct device  const  *__mptr ;
54580  int tmp ;
54581  struct usb_interface *__cil_tmp7 ;
54582  struct usb_host_interface *__cil_tmp8 ;
54583  __u8 __cil_tmp9 ;
54584  int __cil_tmp10 ;
54585
54586  {
54587  {
54588#line 740
54589  __mptr = (struct device  const  *)dev;
54590#line 740
54591  __cil_tmp7 = (struct usb_interface *)__mptr;
54592#line 740
54593  intf = __cil_tmp7 + 1152921504606846928UL;
54594#line 740
54595  __cil_tmp8 = intf->cur_altsetting;
54596#line 740
54597  __cil_tmp9 = __cil_tmp8->desc.bInterfaceSubClass;
54598#line 740
54599  __cil_tmp10 = (int )__cil_tmp9;
54600#line 740
54601  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54602  }
54603#line 740
54604  return ((ssize_t )tmp);
54605}
54606}
54607#line 740 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54608static struct device_attribute dev_attr_bInterfaceSubClass  =    {{"bInterfaceSubClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54609                                                               {(char)0}, {(char)0},
54610                                                               {(char)0}, {(char)0},
54611                                                               {(char)0}, {(char)0}}}},
54612    & show_bInterfaceSubClass, (ssize_t (*)(struct device * , struct device_attribute * ,
54613                                            char const   * , size_t  ))0};
54614#line 741 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54615static ssize_t show_bInterfaceProtocol(struct device *dev , struct device_attribute *attr ,
54616                                       char *buf ) 
54617{ struct usb_interface *intf ;
54618  struct device  const  *__mptr ;
54619  int tmp ;
54620  struct usb_interface *__cil_tmp7 ;
54621  struct usb_host_interface *__cil_tmp8 ;
54622  __u8 __cil_tmp9 ;
54623  int __cil_tmp10 ;
54624
54625  {
54626  {
54627#line 741
54628  __mptr = (struct device  const  *)dev;
54629#line 741
54630  __cil_tmp7 = (struct usb_interface *)__mptr;
54631#line 741
54632  intf = __cil_tmp7 + 1152921504606846928UL;
54633#line 741
54634  __cil_tmp8 = intf->cur_altsetting;
54635#line 741
54636  __cil_tmp9 = __cil_tmp8->desc.bInterfaceProtocol;
54637#line 741
54638  __cil_tmp10 = (int )__cil_tmp9;
54639#line 741
54640  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54641  }
54642#line 741
54643  return ((ssize_t )tmp);
54644}
54645}
54646#line 741 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54647static struct device_attribute dev_attr_bInterfaceProtocol  =    {{"bInterfaceProtocol", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54648                                                               {(char)0}, {(char)0},
54649                                                               {(char)0}, {(char)0},
54650                                                               {(char)0}, {(char)0}}}},
54651    & show_bInterfaceProtocol, (ssize_t (*)(struct device * , struct device_attribute * ,
54652                                            char const   * , size_t  ))0};
54653#line 743 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54654static ssize_t show_interface_string(struct device *dev , struct device_attribute *attr ,
54655                                     char *buf ) 
54656{ struct usb_interface *intf ;
54657  char *string ;
54658  struct device  const  *__mptr ;
54659  int tmp ;
54660  struct usb_interface *__cil_tmp8 ;
54661  struct usb_host_interface *__cil_tmp9 ;
54662  char *__cil_tmp10 ;
54663  unsigned long __cil_tmp11 ;
54664  unsigned long __cil_tmp12 ;
54665
54666  {
54667#line 749
54668  __mptr = (struct device  const  *)dev;
54669#line 749
54670  __cil_tmp8 = (struct usb_interface *)__mptr;
54671#line 749
54672  intf = __cil_tmp8 + 1152921504606846928UL;
54673#line 750
54674  __cil_tmp9 = intf->cur_altsetting;
54675#line 750
54676  string = __cil_tmp9->string;
54677#line 751
54678  __asm__  volatile   ("": : : "memory");
54679  {
54680#line 753
54681  __cil_tmp10 = (char *)0;
54682#line 753
54683  __cil_tmp11 = (unsigned long )__cil_tmp10;
54684#line 753
54685  __cil_tmp12 = (unsigned long )string;
54686#line 753
54687  if (__cil_tmp12 == __cil_tmp11) {
54688#line 754
54689    return (0L);
54690  } else {
54691
54692  }
54693  }
54694  {
54695#line 755
54696  tmp = sprintf(buf, "%s\n", string);
54697  }
54698#line 755
54699  return ((ssize_t )tmp);
54700}
54701}
54702#line 757 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54703static struct device_attribute dev_attr_interface  =    {{"interface", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
54704                                                      {(char)0}, {(char)0}, {(char)0},
54705                                                      {(char)0}, {(char)0}}}}, & show_interface_string,
54706    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
54707#line 759 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54708static ssize_t show_modalias(struct device *dev , struct device_attribute *attr ,
54709                             char *buf ) 
54710{ struct usb_interface *intf ;
54711  struct usb_device *udev ;
54712  struct usb_host_interface *alt ;
54713  struct device  const  *__mptr ;
54714  int tmp ;
54715  struct usb_interface *__cil_tmp9 ;
54716  __le16 __cil_tmp10 ;
54717  int __cil_tmp11 ;
54718  __le16 __cil_tmp12 ;
54719  int __cil_tmp13 ;
54720  __le16 __cil_tmp14 ;
54721  int __cil_tmp15 ;
54722  __u8 __cil_tmp16 ;
54723  int __cil_tmp17 ;
54724  __u8 __cil_tmp18 ;
54725  int __cil_tmp19 ;
54726  __u8 __cil_tmp20 ;
54727  int __cil_tmp21 ;
54728  __u8 __cil_tmp22 ;
54729  int __cil_tmp23 ;
54730  __u8 __cil_tmp24 ;
54731  int __cil_tmp25 ;
54732  __u8 __cil_tmp26 ;
54733  int __cil_tmp27 ;
54734
54735  {
54736  {
54737#line 766
54738  __mptr = (struct device  const  *)dev;
54739#line 766
54740  __cil_tmp9 = (struct usb_interface *)__mptr;
54741#line 766
54742  intf = __cil_tmp9 + 1152921504606846928UL;
54743#line 767
54744  udev = interface_to_usbdev(intf);
54745#line 768
54746  alt = intf->cur_altsetting;
54747#line 770
54748  __cil_tmp10 = udev->descriptor.idVendor;
54749#line 770
54750  __cil_tmp11 = (int )__cil_tmp10;
54751#line 770
54752  __cil_tmp12 = udev->descriptor.idProduct;
54753#line 770
54754  __cil_tmp13 = (int )__cil_tmp12;
54755#line 770
54756  __cil_tmp14 = udev->descriptor.bcdDevice;
54757#line 770
54758  __cil_tmp15 = (int )__cil_tmp14;
54759#line 770
54760  __cil_tmp16 = udev->descriptor.bDeviceClass;
54761#line 770
54762  __cil_tmp17 = (int )__cil_tmp16;
54763#line 770
54764  __cil_tmp18 = udev->descriptor.bDeviceSubClass;
54765#line 770
54766  __cil_tmp19 = (int )__cil_tmp18;
54767#line 770
54768  __cil_tmp20 = udev->descriptor.bDeviceProtocol;
54769#line 770
54770  __cil_tmp21 = (int )__cil_tmp20;
54771#line 770
54772  __cil_tmp22 = alt->desc.bInterfaceClass;
54773#line 770
54774  __cil_tmp23 = (int )__cil_tmp22;
54775#line 770
54776  __cil_tmp24 = alt->desc.bInterfaceSubClass;
54777#line 770
54778  __cil_tmp25 = (int )__cil_tmp24;
54779#line 770
54780  __cil_tmp26 = alt->desc.bInterfaceProtocol;
54781#line 770
54782  __cil_tmp27 = (int )__cil_tmp26;
54783#line 770
54784  tmp = sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02X\n",
54785                __cil_tmp11, __cil_tmp13, __cil_tmp15, __cil_tmp17, __cil_tmp19, __cil_tmp21,
54786                __cil_tmp23, __cil_tmp25, __cil_tmp27);
54787  }
54788#line 770
54789  return ((ssize_t )tmp);
54790}
54791}
54792#line 782 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54793static struct device_attribute dev_attr_modalias  =    {{"modalias", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
54794                                                     {(char)0}, {(char)0}, {(char)0},
54795                                                     {(char)0}, {(char)0}}}}, & show_modalias,
54796    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
54797#line 784 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54798static ssize_t show_supports_autosuspend(struct device *dev , struct device_attribute *attr ,
54799                                         char *buf ) 
54800{ struct usb_interface *intf ;
54801  struct usb_device *udev ;
54802  int ret ;
54803  struct device  const  *__mptr ;
54804  struct device_driver  const  *__mptr___0 ;
54805  struct usb_interface *__cil_tmp9 ;
54806  struct device *__cil_tmp10 ;
54807  struct device_driver *__cil_tmp11 ;
54808  unsigned long __cil_tmp12 ;
54809  struct device_driver *__cil_tmp13 ;
54810  unsigned long __cil_tmp14 ;
54811  struct device_driver *__cil_tmp15 ;
54812  struct usb_driver *__cil_tmp16 ;
54813  struct usb_driver *__cil_tmp17 ;
54814  unsigned char *__cil_tmp18 ;
54815  unsigned char *__cil_tmp19 ;
54816  unsigned char __cil_tmp20 ;
54817  unsigned int __cil_tmp21 ;
54818  struct device *__cil_tmp22 ;
54819
54820  {
54821  {
54822#line 791
54823  __mptr = (struct device  const  *)dev;
54824#line 791
54825  __cil_tmp9 = (struct usb_interface *)__mptr;
54826#line 791
54827  intf = __cil_tmp9 + 1152921504606846928UL;
54828#line 792
54829  udev = interface_to_usbdev(intf);
54830#line 794
54831  __cil_tmp10 = & udev->dev;
54832#line 794
54833  device_lock(__cil_tmp10);
54834  }
54835  {
54836#line 797
54837  __cil_tmp11 = (struct device_driver *)0;
54838#line 797
54839  __cil_tmp12 = (unsigned long )__cil_tmp11;
54840#line 797
54841  __cil_tmp13 = intf->dev.driver;
54842#line 797
54843  __cil_tmp14 = (unsigned long )__cil_tmp13;
54844#line 797
54845  if (__cil_tmp14 == __cil_tmp12) {
54846    {
54847#line 798
54848    ret = sprintf(buf, "%u\n", 1);
54849    }
54850  } else {
54851#line 797
54852    __cil_tmp15 = intf->dev.driver;
54853#line 797
54854    __mptr___0 = (struct device_driver  const  *)__cil_tmp15;
54855    {
54856#line 797
54857    __cil_tmp16 = (struct usb_driver *)__mptr___0;
54858#line 797
54859    __cil_tmp17 = __cil_tmp16 + 1152921504606846808UL;
54860#line 797
54861    __cil_tmp18 = (unsigned char *)__cil_tmp17;
54862#line 797
54863    __cil_tmp19 = __cil_tmp18 + 288UL;
54864#line 797
54865    __cil_tmp20 = *__cil_tmp19;
54866#line 797
54867    __cil_tmp21 = (unsigned int )__cil_tmp20;
54868#line 797
54869    if (__cil_tmp21 != 0U) {
54870      {
54871#line 798
54872      ret = sprintf(buf, "%u\n", 1);
54873      }
54874    } else {
54875      {
54876#line 800
54877      ret = sprintf(buf, "%u\n", 0);
54878      }
54879    }
54880    }
54881  }
54882  }
54883  {
54884#line 801
54885  __cil_tmp22 = & udev->dev;
54886#line 801
54887  device_unlock(__cil_tmp22);
54888  }
54889#line 803
54890  return ((ssize_t )ret);
54891}
54892}
54893#line 805 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54894static struct device_attribute dev_attr_supports_autosuspend  =    {{"supports_autosuspend", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54895                                                                 {(char)0}, {(char)0},
54896                                                                 {(char)0}, {(char)0},
54897                                                                 {(char)0}, {(char)0}}}},
54898    & show_supports_autosuspend, (ssize_t (*)(struct device * , struct device_attribute * ,
54899                                              char const   * , size_t  ))0};
54900#line 807 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54901static struct attribute *intf_attrs[9U]  = 
54902#line 807
54903  {      & dev_attr_bInterfaceNumber.attr,      & dev_attr_bAlternateSetting.attr,      & dev_attr_bNumEndpoints.attr,      & dev_attr_bInterfaceClass.attr, 
54904        & dev_attr_bInterfaceSubClass.attr,      & dev_attr_bInterfaceProtocol.attr,      & dev_attr_modalias.attr,      & dev_attr_supports_autosuspend.attr, 
54905        (struct attribute *)0};
54906#line 818 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54907static struct attribute_group intf_attr_grp  =    {(char const   *)0, (mode_t (*)(struct kobject * , struct attribute * , int  ))0,
54908    (struct attribute **)(& intf_attrs)};
54909#line 822 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54910static struct attribute *intf_assoc_attrs[6U]  = {      & dev_attr_iad_bFirstInterface.attr,      & dev_attr_iad_bInterfaceCount.attr,      & dev_attr_iad_bFunctionClass.attr,      & dev_attr_iad_bFunctionSubClass.attr, 
54911        & dev_attr_iad_bFunctionProtocol.attr,      (struct attribute *)0};
54912#line 831 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54913static mode_t intf_assoc_attrs_are_visible(struct kobject *kobj , struct attribute *a ,
54914                                           int n ) 
54915{ struct device *dev ;
54916  struct kobject  const  *__mptr ;
54917  struct usb_interface *intf ;
54918  struct device  const  *__mptr___0 ;
54919  struct device *__cil_tmp8 ;
54920  struct usb_interface *__cil_tmp9 ;
54921  struct usb_interface_assoc_descriptor *__cil_tmp10 ;
54922  unsigned long __cil_tmp11 ;
54923  struct usb_interface_assoc_descriptor *__cil_tmp12 ;
54924  unsigned long __cil_tmp13 ;
54925
54926  {
54927#line 834
54928  __mptr = (struct kobject  const  *)kobj;
54929#line 834
54930  __cil_tmp8 = (struct device *)__mptr;
54931#line 834
54932  dev = __cil_tmp8 + 1152921504606846960UL;
54933#line 835
54934  __mptr___0 = (struct device  const  *)dev;
54935#line 835
54936  __cil_tmp9 = (struct usb_interface *)__mptr___0;
54937#line 835
54938  intf = __cil_tmp9 + 1152921504606846928UL;
54939  {
54940#line 837
54941  __cil_tmp10 = (struct usb_interface_assoc_descriptor *)0;
54942#line 837
54943  __cil_tmp11 = (unsigned long )__cil_tmp10;
54944#line 837
54945  __cil_tmp12 = intf->intf_assoc;
54946#line 837
54947  __cil_tmp13 = (unsigned long )__cil_tmp12;
54948#line 837
54949  if (__cil_tmp13 == __cil_tmp11) {
54950#line 838
54951    return (0U);
54952  } else {
54953
54954  }
54955  }
54956#line 839
54957  return (a->mode);
54958}
54959}
54960#line 842 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54961static struct attribute_group intf_assoc_attr_grp  =    {(char const   *)0, & intf_assoc_attrs_are_visible, (struct attribute **)(& intf_assoc_attrs)};
54962#line 847 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54963struct attribute_group  const  *usb_interface_groups[3U]  = {      (struct attribute_group  const  *)(& intf_attr_grp),      (struct attribute_group  const  *)(& intf_assoc_attr_grp),      (struct attribute_group  const  *)0};
54964#line 853 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
54965void usb_create_sysfs_intf_files(struct usb_interface *intf ) 
54966{ struct usb_device *udev ;
54967  struct usb_device *tmp ;
54968  struct usb_host_interface *alt ;
54969  int tmp___0 ;
54970  int tmp___1 ;
54971  unsigned char *__cil_tmp7 ;
54972  unsigned char *__cil_tmp8 ;
54973  unsigned char __cil_tmp9 ;
54974  unsigned int __cil_tmp10 ;
54975  unsigned char *__cil_tmp11 ;
54976  unsigned char *__cil_tmp12 ;
54977  unsigned char __cil_tmp13 ;
54978  unsigned int __cil_tmp14 ;
54979  char *__cil_tmp15 ;
54980  unsigned long __cil_tmp16 ;
54981  char *__cil_tmp17 ;
54982  unsigned long __cil_tmp18 ;
54983  u32 __cil_tmp19 ;
54984  unsigned int __cil_tmp20 ;
54985  __u8 __cil_tmp21 ;
54986  int __cil_tmp22 ;
54987  char *__cil_tmp23 ;
54988  unsigned long __cil_tmp24 ;
54989  char *__cil_tmp25 ;
54990  unsigned long __cil_tmp26 ;
54991  struct device *__cil_tmp27 ;
54992  struct device_attribute  const  *__cil_tmp28 ;
54993
54994  {
54995  {
54996#line 855
54997  tmp = interface_to_usbdev(intf);
54998#line 855
54999  udev = tmp;
55000#line 856
55001  alt = intf->cur_altsetting;
55002  }
55003  {
55004#line 858
55005  __cil_tmp7 = (unsigned char *)intf;
55006#line 858
55007  __cil_tmp8 = __cil_tmp7 + 40UL;
55008#line 858
55009  __cil_tmp9 = *__cil_tmp8;
55010#line 858
55011  __cil_tmp10 = (unsigned int )__cil_tmp9;
55012#line 858
55013  if (__cil_tmp10 != 0U) {
55014#line 859
55015    return;
55016  } else {
55017    {
55018#line 858
55019    __cil_tmp11 = (unsigned char *)intf;
55020#line 858
55021    __cil_tmp12 = __cil_tmp11 + 40UL;
55022#line 858
55023    __cil_tmp13 = *__cil_tmp12;
55024#line 858
55025    __cil_tmp14 = (unsigned int )__cil_tmp13;
55026#line 858
55027    if (__cil_tmp14 != 0U) {
55028#line 859
55029      return;
55030    } else {
55031
55032    }
55033    }
55034  }
55035  }
55036  {
55037#line 861
55038  __cil_tmp15 = (char *)0;
55039#line 861
55040  __cil_tmp16 = (unsigned long )__cil_tmp15;
55041#line 861
55042  __cil_tmp17 = alt->string;
55043#line 861
55044  __cil_tmp18 = (unsigned long )__cil_tmp17;
55045#line 861
55046  if (__cil_tmp18 == __cil_tmp16) {
55047    {
55048#line 861
55049    __cil_tmp19 = udev->quirks;
55050#line 861
55051    __cil_tmp20 = __cil_tmp19 & 8U;
55052#line 861
55053    if (__cil_tmp20 == 0U) {
55054      {
55055#line 862
55056      __cil_tmp21 = alt->desc.iInterface;
55057#line 862
55058      __cil_tmp22 = (int )__cil_tmp21;
55059#line 862
55060      alt->string = usb_cache_string(udev, __cil_tmp22);
55061      }
55062    } else {
55063
55064    }
55065    }
55066  } else {
55067
55068  }
55069  }
55070  {
55071#line 863
55072  __cil_tmp23 = (char *)0;
55073#line 863
55074  __cil_tmp24 = (unsigned long )__cil_tmp23;
55075#line 863
55076  __cil_tmp25 = alt->string;
55077#line 863
55078  __cil_tmp26 = (unsigned long )__cil_tmp25;
55079#line 863
55080  if (__cil_tmp26 != __cil_tmp24) {
55081    {
55082#line 863
55083    __cil_tmp27 = & intf->dev;
55084#line 863
55085    __cil_tmp28 = (struct device_attribute  const  *)(& dev_attr_interface);
55086#line 863
55087    tmp___0 = device_create_file(__cil_tmp27, __cil_tmp28);
55088    }
55089#line 863
55090    if (tmp___0 != 0) {
55091#line 863
55092      tmp___1 = 1;
55093    } else {
55094#line 863
55095      tmp___1 = 0;
55096    }
55097  } else {
55098#line 863
55099    tmp___1 = 0;
55100  }
55101  }
55102#line 865
55103  intf->sysfs_files_created = (unsigned char)1;
55104#line 866
55105  return;
55106}
55107}
55108#line 868 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/sysfs.c.p"
55109void usb_remove_sysfs_intf_files(struct usb_interface *intf ) 
55110{ unsigned char *__cil_tmp2 ;
55111  unsigned char *__cil_tmp3 ;
55112  unsigned char __cil_tmp4 ;
55113  unsigned int __cil_tmp5 ;
55114  struct device *__cil_tmp6 ;
55115  struct device_attribute  const  *__cil_tmp7 ;
55116
55117  {
55118  {
55119#line 870
55120  __cil_tmp2 = (unsigned char *)intf;
55121#line 870
55122  __cil_tmp3 = __cil_tmp2 + 40UL;
55123#line 870
55124  __cil_tmp4 = *__cil_tmp3;
55125#line 870
55126  __cil_tmp5 = (unsigned int )__cil_tmp4;
55127#line 870
55128  if (__cil_tmp5 == 0U) {
55129#line 871
55130    return;
55131  } else {
55132
55133  }
55134  }
55135  {
55136#line 873
55137  __cil_tmp6 = & intf->dev;
55138#line 873
55139  __cil_tmp7 = (struct device_attribute  const  *)(& dev_attr_interface);
55140#line 873
55141  device_remove_file(__cil_tmp6, __cil_tmp7);
55142#line 874
55143  intf->sysfs_files_created = (unsigned char)0;
55144  }
55145#line 875
55146  return;
55147}
55148}
55149#line 691 "include/linux/device.h"
55150extern int device_register(struct device * ) ;
55151#line 692
55152extern void device_unregister(struct device * ) ;
55153#line 102 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
55154struct device_type usb_ep_device_type ;
55155#line 35 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55156struct device_type usb_ep_device_type  =    {"usb_endpoint", (struct attribute_group  const  **)0, (int (*)(struct device * ,
55157                                                                   struct kobj_uevent_env * ))0,
55158    (char *(*)(struct device * , mode_t * ))0, (void (*)(struct device * ))0, (struct dev_pm_ops  const  *)0};
55159#line 57 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55160static ssize_t show_ep_bLength(struct device *dev , struct device_attribute *attr ,
55161                               char *buf ) 
55162{ struct ep_device *ep ;
55163  struct device  const  *__mptr ;
55164  int tmp ;
55165  struct ep_device *__cil_tmp7 ;
55166  struct usb_endpoint_descriptor *__cil_tmp8 ;
55167  __u8 __cil_tmp9 ;
55168  int __cil_tmp10 ;
55169
55170  {
55171  {
55172#line 57
55173  __mptr = (struct device  const  *)dev;
55174#line 57
55175  __cil_tmp7 = (struct ep_device *)__mptr;
55176#line 57
55177  ep = __cil_tmp7 + 1152921504606846960UL;
55178#line 57
55179  __cil_tmp8 = ep->desc;
55180#line 57
55181  __cil_tmp9 = __cil_tmp8->bLength;
55182#line 57
55183  __cil_tmp10 = (int )__cil_tmp9;
55184#line 57
55185  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
55186  }
55187#line 57
55188  return ((ssize_t )tmp);
55189}
55190}
55191#line 57 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55192static struct device_attribute dev_attr_bLength  =    {{"bLength", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55193                                                    {(char)0}, {(char)0}, {(char)0},
55194                                                    {(char)0}, {(char)0}}}}, & show_ep_bLength,
55195    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55196#line 58 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55197static ssize_t show_ep_bEndpointAddress(struct device *dev , struct device_attribute *attr ,
55198                                        char *buf ) 
55199{ struct ep_device *ep ;
55200  struct device  const  *__mptr ;
55201  int tmp ;
55202  struct ep_device *__cil_tmp7 ;
55203  struct usb_endpoint_descriptor *__cil_tmp8 ;
55204  __u8 __cil_tmp9 ;
55205  int __cil_tmp10 ;
55206
55207  {
55208  {
55209#line 58
55210  __mptr = (struct device  const  *)dev;
55211#line 58
55212  __cil_tmp7 = (struct ep_device *)__mptr;
55213#line 58
55214  ep = __cil_tmp7 + 1152921504606846960UL;
55215#line 58
55216  __cil_tmp8 = ep->desc;
55217#line 58
55218  __cil_tmp9 = __cil_tmp8->bEndpointAddress;
55219#line 58
55220  __cil_tmp10 = (int )__cil_tmp9;
55221#line 58
55222  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
55223  }
55224#line 58
55225  return ((ssize_t )tmp);
55226}
55227}
55228#line 58 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55229static struct device_attribute dev_attr_bEndpointAddress  =    {{"bEndpointAddress", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
55230                                                             {(char)0}, {(char)0},
55231                                                             {(char)0}, {(char)0},
55232                                                             {(char)0}, {(char)0}}}},
55233    & show_ep_bEndpointAddress, (ssize_t (*)(struct device * , struct device_attribute * ,
55234                                             char const   * , size_t  ))0};
55235#line 59 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55236static ssize_t show_ep_bmAttributes(struct device *dev , struct device_attribute *attr ,
55237                                    char *buf ) 
55238{ struct ep_device *ep ;
55239  struct device  const  *__mptr ;
55240  int tmp ;
55241  struct ep_device *__cil_tmp7 ;
55242  struct usb_endpoint_descriptor *__cil_tmp8 ;
55243  __u8 __cil_tmp9 ;
55244  int __cil_tmp10 ;
55245
55246  {
55247  {
55248#line 59
55249  __mptr = (struct device  const  *)dev;
55250#line 59
55251  __cil_tmp7 = (struct ep_device *)__mptr;
55252#line 59
55253  ep = __cil_tmp7 + 1152921504606846960UL;
55254#line 59
55255  __cil_tmp8 = ep->desc;
55256#line 59
55257  __cil_tmp9 = __cil_tmp8->bmAttributes;
55258#line 59
55259  __cil_tmp10 = (int )__cil_tmp9;
55260#line 59
55261  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
55262  }
55263#line 59
55264  return ((ssize_t )tmp);
55265}
55266}
55267#line 59 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55268static struct device_attribute dev_attr_bmAttributes___0  =    {{"bmAttributes", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55269                                                         {(char)0}, {(char)0}, {(char)0},
55270                                                         {(char)0}, {(char)0}}}},
55271    & show_ep_bmAttributes, (ssize_t (*)(struct device * , struct device_attribute * ,
55272                                         char const   * , size_t  ))0};
55273#line 60 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55274static ssize_t show_ep_bInterval(struct device *dev , struct device_attribute *attr ,
55275                                 char *buf ) 
55276{ struct ep_device *ep ;
55277  struct device  const  *__mptr ;
55278  int tmp ;
55279  struct ep_device *__cil_tmp7 ;
55280  struct usb_endpoint_descriptor *__cil_tmp8 ;
55281  __u8 __cil_tmp9 ;
55282  int __cil_tmp10 ;
55283
55284  {
55285  {
55286#line 60
55287  __mptr = (struct device  const  *)dev;
55288#line 60
55289  __cil_tmp7 = (struct ep_device *)__mptr;
55290#line 60
55291  ep = __cil_tmp7 + 1152921504606846960UL;
55292#line 60
55293  __cil_tmp8 = ep->desc;
55294#line 60
55295  __cil_tmp9 = __cil_tmp8->bInterval;
55296#line 60
55297  __cil_tmp10 = (int )__cil_tmp9;
55298#line 60
55299  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
55300  }
55301#line 60
55302  return ((ssize_t )tmp);
55303}
55304}
55305#line 60 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55306static struct device_attribute dev_attr_bInterval  =    {{"bInterval", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55307                                                      {(char)0}, {(char)0}, {(char)0},
55308                                                      {(char)0}, {(char)0}}}}, & show_ep_bInterval,
55309    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55310#line 62 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55311static ssize_t show_ep_wMaxPacketSize(struct device *dev , struct device_attribute *attr ,
55312                                      char *buf ) 
55313{ struct ep_device *ep ;
55314  struct device  const  *__mptr ;
55315  int tmp ;
55316  struct ep_device *__cil_tmp7 ;
55317  struct usb_endpoint_descriptor *__cil_tmp8 ;
55318  __le16 __cil_tmp9 ;
55319  int __cil_tmp10 ;
55320  int __cil_tmp11 ;
55321
55322  {
55323  {
55324#line 65
55325  __mptr = (struct device  const  *)dev;
55326#line 65
55327  __cil_tmp7 = (struct ep_device *)__mptr;
55328#line 65
55329  ep = __cil_tmp7 + 1152921504606846960UL;
55330#line 66
55331  __cil_tmp8 = ep->desc;
55332#line 66
55333  __cil_tmp9 = __cil_tmp8->wMaxPacketSize;
55334#line 66
55335  __cil_tmp10 = (int )__cil_tmp9;
55336#line 66
55337  __cil_tmp11 = __cil_tmp10 & 2047;
55338#line 66
55339  tmp = sprintf(buf, "%04x\n", __cil_tmp11);
55340  }
55341#line 66
55342  return ((ssize_t )tmp);
55343}
55344}
55345#line 69 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55346static struct device_attribute dev_attr_wMaxPacketSize  =    {{"wMaxPacketSize", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55347                                                           {(char)0}, {(char)0}, {(char)0},
55348                                                           {(char)0}, {(char)0}}}},
55349    & show_ep_wMaxPacketSize, (ssize_t (*)(struct device * , struct device_attribute * ,
55350                                           char const   * , size_t  ))0};
55351#line 71 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55352static ssize_t show_ep_type(struct device *dev , struct device_attribute *attr , char *buf ) 
55353{ struct ep_device *ep ;
55354  struct device  const  *__mptr ;
55355  char *type ;
55356  int tmp ;
55357  int tmp___0 ;
55358  struct ep_device *__cil_tmp9 ;
55359  struct usb_endpoint_descriptor *__cil_tmp10 ;
55360  struct usb_endpoint_descriptor  const  *__cil_tmp11 ;
55361
55362  {
55363  {
55364#line 74
55365  __mptr = (struct device  const  *)dev;
55366#line 74
55367  __cil_tmp9 = (struct ep_device *)__mptr;
55368#line 74
55369  ep = __cil_tmp9 + 1152921504606846960UL;
55370#line 75
55371  type = (char *)"unknown";
55372#line 77
55373  __cil_tmp10 = ep->desc;
55374#line 77
55375  __cil_tmp11 = (struct usb_endpoint_descriptor  const  *)__cil_tmp10;
55376#line 77
55377  tmp = usb_endpoint_type(__cil_tmp11);
55378  }
55379#line 78
55380  if (tmp == 0) {
55381#line 78
55382    goto case_0;
55383  } else
55384#line 81
55385  if (tmp == 1) {
55386#line 81
55387    goto case_1;
55388  } else
55389#line 84
55390  if (tmp == 2) {
55391#line 84
55392    goto case_2;
55393  } else
55394#line 87
55395  if (tmp == 3) {
55396#line 87
55397    goto case_3;
55398  } else
55399#line 77
55400  if (0) {
55401    case_0: 
55402#line 79
55403    type = (char *)"Control";
55404#line 80
55405    goto ldv_23983;
55406    case_1: 
55407#line 82
55408    type = (char *)"Isoc";
55409#line 83
55410    goto ldv_23983;
55411    case_2: 
55412#line 85
55413    type = (char *)"Bulk";
55414#line 86
55415    goto ldv_23983;
55416    case_3: 
55417#line 88
55418    type = (char *)"Interrupt";
55419#line 89
55420    goto ldv_23983;
55421  } else {
55422
55423  }
55424  ldv_23983: 
55425  {
55426#line 91
55427  tmp___0 = sprintf(buf, "%s\n", type);
55428  }
55429#line 91
55430  return ((ssize_t )tmp___0);
55431}
55432}
55433#line 93 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55434static struct device_attribute dev_attr_type  =    {{"type", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55435                                                 {(char)0}, {(char)0}, {(char)0},
55436                                                 {(char)0}, {(char)0}}}}, & show_ep_type,
55437    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55438#line 95 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55439static ssize_t show_ep_interval(struct device *dev , struct device_attribute *attr ,
55440                                char *buf ) 
55441{ struct ep_device *ep ;
55442  struct device  const  *__mptr ;
55443  char unit ;
55444  unsigned int interval ;
55445  unsigned int in ;
55446  int tmp ;
55447  unsigned int tmp___0 ;
55448  int tmp___1 ;
55449  struct ep_device *__cil_tmp12 ;
55450  struct usb_endpoint_descriptor *__cil_tmp13 ;
55451  __u8 __cil_tmp14 ;
55452  unsigned int __cil_tmp15 ;
55453  struct usb_endpoint_descriptor *__cil_tmp16 ;
55454  struct usb_endpoint_descriptor  const  *__cil_tmp17 ;
55455  struct usb_device *__cil_tmp18 ;
55456  enum usb_device_speed __cil_tmp19 ;
55457  unsigned int __cil_tmp20 ;
55458  struct usb_endpoint_descriptor *__cil_tmp21 ;
55459  __u8 __cil_tmp22 ;
55460  struct usb_endpoint_descriptor *__cil_tmp23 ;
55461  __u8 __cil_tmp24 ;
55462  int __cil_tmp25 ;
55463  int __cil_tmp26 ;
55464  int __cil_tmp27 ;
55465  struct usb_device *__cil_tmp28 ;
55466  enum usb_device_speed __cil_tmp29 ;
55467  unsigned int __cil_tmp30 ;
55468  struct usb_endpoint_descriptor *__cil_tmp31 ;
55469  __u8 __cil_tmp32 ;
55470  struct usb_device *__cil_tmp33 ;
55471  enum usb_device_speed __cil_tmp34 ;
55472  unsigned int __cil_tmp35 ;
55473  struct usb_endpoint_descriptor *__cil_tmp36 ;
55474  __u8 __cil_tmp37 ;
55475  int __cil_tmp38 ;
55476  int __cil_tmp39 ;
55477  int __cil_tmp40 ;
55478  struct usb_endpoint_descriptor *__cil_tmp41 ;
55479  __u8 __cil_tmp42 ;
55480  struct usb_device *__cil_tmp43 ;
55481  enum usb_device_speed __cil_tmp44 ;
55482  unsigned int __cil_tmp45 ;
55483  unsigned int __cil_tmp46 ;
55484  int __cil_tmp47 ;
55485
55486  {
55487  {
55488#line 98
55489  __mptr = (struct device  const  *)dev;
55490#line 98
55491  __cil_tmp12 = (struct ep_device *)__mptr;
55492#line 98
55493  ep = __cil_tmp12 + 1152921504606846960UL;
55494#line 100
55495  interval = 0U;
55496#line 103
55497  __cil_tmp13 = ep->desc;
55498#line 103
55499  __cil_tmp14 = __cil_tmp13->bEndpointAddress;
55500#line 103
55501  __cil_tmp15 = (unsigned int )__cil_tmp14;
55502#line 103
55503  in = __cil_tmp15 & 128U;
55504#line 105
55505  __cil_tmp16 = ep->desc;
55506#line 105
55507  __cil_tmp17 = (struct usb_endpoint_descriptor  const  *)__cil_tmp16;
55508#line 105
55509  tmp = usb_endpoint_type(__cil_tmp17);
55510  }
55511#line 106
55512  if (tmp == 0) {
55513#line 106
55514    goto case_0;
55515  } else
55516#line 112
55517  if (tmp == 1) {
55518#line 112
55519    goto case_1;
55520  } else
55521#line 116
55522  if (tmp == 2) {
55523#line 116
55524    goto case_2;
55525  } else
55526#line 122
55527  if (tmp == 3) {
55528#line 122
55529    goto case_3;
55530  } else
55531#line 105
55532  if (0) {
55533    case_0: ;
55534    {
55535#line 107
55536    __cil_tmp18 = ep->udev;
55537#line 107
55538    __cil_tmp19 = __cil_tmp18->speed;
55539#line 107
55540    __cil_tmp20 = (unsigned int )__cil_tmp19;
55541#line 107
55542    if (__cil_tmp20 == 3U) {
55543#line 109
55544      __cil_tmp21 = ep->desc;
55545#line 109
55546      __cil_tmp22 = __cil_tmp21->bInterval;
55547#line 109
55548      interval = (unsigned int )__cil_tmp22;
55549    } else {
55550
55551    }
55552    }
55553#line 110
55554    goto ldv_24000;
55555    case_1: 
55556#line 113
55557    __cil_tmp23 = ep->desc;
55558#line 113
55559    __cil_tmp24 = __cil_tmp23->bInterval;
55560#line 113
55561    __cil_tmp25 = (int )__cil_tmp24;
55562#line 113
55563    __cil_tmp26 = __cil_tmp25 + -1;
55564#line 113
55565    __cil_tmp27 = 1 << __cil_tmp26;
55566#line 113
55567    interval = (unsigned int )__cil_tmp27;
55568#line 114
55569    goto ldv_24000;
55570    case_2: ;
55571    {
55572#line 117
55573    __cil_tmp28 = ep->udev;
55574#line 117
55575    __cil_tmp29 = __cil_tmp28->speed;
55576#line 117
55577    __cil_tmp30 = (unsigned int )__cil_tmp29;
55578#line 117
55579    if (__cil_tmp30 == 3U) {
55580#line 117
55581      if (in == 0U) {
55582#line 119
55583        __cil_tmp31 = ep->desc;
55584#line 119
55585        __cil_tmp32 = __cil_tmp31->bInterval;
55586#line 119
55587        interval = (unsigned int )__cil_tmp32;
55588      } else {
55589
55590      }
55591    } else {
55592
55593    }
55594    }
55595#line 120
55596    goto ldv_24000;
55597    case_3: ;
55598    {
55599#line 123
55600    __cil_tmp33 = ep->udev;
55601#line 123
55602    __cil_tmp34 = __cil_tmp33->speed;
55603#line 123
55604    __cil_tmp35 = (unsigned int )__cil_tmp34;
55605#line 123
55606    if (__cil_tmp35 == 3U) {
55607#line 124
55608      __cil_tmp36 = ep->desc;
55609#line 124
55610      __cil_tmp37 = __cil_tmp36->bInterval;
55611#line 124
55612      __cil_tmp38 = (int )__cil_tmp37;
55613#line 124
55614      __cil_tmp39 = __cil_tmp38 + -1;
55615#line 124
55616      __cil_tmp40 = 1 << __cil_tmp39;
55617#line 124
55618      interval = (unsigned int )__cil_tmp40;
55619    } else {
55620#line 126
55621      __cil_tmp41 = ep->desc;
55622#line 126
55623      __cil_tmp42 = __cil_tmp41->bInterval;
55624#line 126
55625      interval = (unsigned int )__cil_tmp42;
55626    }
55627    }
55628#line 127
55629    goto ldv_24000;
55630  } else {
55631
55632  }
55633  ldv_24000: ;
55634  {
55635#line 129
55636  __cil_tmp43 = ep->udev;
55637#line 129
55638  __cil_tmp44 = __cil_tmp43->speed;
55639#line 129
55640  __cil_tmp45 = (unsigned int )__cil_tmp44;
55641#line 129
55642  if (__cil_tmp45 == 3U) {
55643#line 129
55644    tmp___0 = 125U;
55645  } else {
55646#line 129
55647    tmp___0 = 1000U;
55648  }
55649  }
55650#line 129
55651  interval = tmp___0 * interval;
55652  {
55653#line 130
55654  __cil_tmp46 = interval % 1000U;
55655#line 130
55656  if (__cil_tmp46 != 0U) {
55657#line 131
55658    unit = (char)117;
55659  } else {
55660#line 133
55661    unit = (char)109;
55662#line 134
55663    interval = interval / 1000U;
55664  }
55665  }
55666  {
55667#line 137
55668  __cil_tmp47 = (int )unit;
55669#line 137
55670  tmp___1 = sprintf(buf, "%d%cs\n", interval, __cil_tmp47);
55671  }
55672#line 137
55673  return ((ssize_t )tmp___1);
55674}
55675}
55676#line 139 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55677static struct device_attribute dev_attr_interval  =    {{"interval", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55678                                                     {(char)0}, {(char)0}, {(char)0},
55679                                                     {(char)0}, {(char)0}}}}, & show_ep_interval,
55680    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55681#line 141 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55682static ssize_t show_ep_direction(struct device *dev , struct device_attribute *attr ,
55683                                 char *buf ) 
55684{ struct ep_device *ep ;
55685  struct device  const  *__mptr ;
55686  char *direction ;
55687  int tmp ;
55688  int tmp___0 ;
55689  int tmp___1 ;
55690  struct ep_device *__cil_tmp10 ;
55691  struct usb_endpoint_descriptor *__cil_tmp11 ;
55692  struct usb_endpoint_descriptor  const  *__cil_tmp12 ;
55693  struct usb_endpoint_descriptor *__cil_tmp13 ;
55694  struct usb_endpoint_descriptor  const  *__cil_tmp14 ;
55695
55696  {
55697  {
55698#line 144
55699  __mptr = (struct device  const  *)dev;
55700#line 144
55701  __cil_tmp10 = (struct ep_device *)__mptr;
55702#line 144
55703  ep = __cil_tmp10 + 1152921504606846960UL;
55704#line 147
55705  __cil_tmp11 = ep->desc;
55706#line 147
55707  __cil_tmp12 = (struct usb_endpoint_descriptor  const  *)__cil_tmp11;
55708#line 147
55709  tmp___0 = usb_endpoint_xfer_control(__cil_tmp12);
55710  }
55711#line 147
55712  if (tmp___0 != 0) {
55713#line 148
55714    direction = (char *)"both";
55715  } else {
55716    {
55717#line 149
55718    __cil_tmp13 = ep->desc;
55719#line 149
55720    __cil_tmp14 = (struct usb_endpoint_descriptor  const  *)__cil_tmp13;
55721#line 149
55722    tmp = usb_endpoint_dir_in(__cil_tmp14);
55723    }
55724#line 149
55725    if (tmp != 0) {
55726#line 150
55727      direction = (char *)"in";
55728    } else {
55729#line 152
55730      direction = (char *)"out";
55731    }
55732  }
55733  {
55734#line 153
55735  tmp___1 = sprintf(buf, "%s\n", direction);
55736  }
55737#line 153
55738  return ((ssize_t )tmp___1);
55739}
55740}
55741#line 155 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55742static struct device_attribute dev_attr_direction  =    {{"direction", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55743                                                      {(char)0}, {(char)0}, {(char)0},
55744                                                      {(char)0}, {(char)0}}}}, & show_ep_direction,
55745    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55746#line 157 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55747static struct attribute *ep_dev_attrs[9U]  = 
55748#line 157
55749  {      & dev_attr_bLength.attr,      & dev_attr_bEndpointAddress.attr,      & dev_attr_bmAttributes___0.attr,      & dev_attr_bInterval.attr, 
55750        & dev_attr_wMaxPacketSize.attr,      & dev_attr_interval.attr,      & dev_attr_type.attr,      & dev_attr_direction.attr, 
55751        (struct attribute *)0};
55752#line 168 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55753static struct attribute_group ep_dev_attr_grp  =    {(char const   *)0, (mode_t (*)(struct kobject * , struct attribute * , int  ))0,
55754    (struct attribute **)(& ep_dev_attrs)};
55755#line 171 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55756static struct attribute_group  const  *ep_dev_groups[2U]  = {      (struct attribute_group  const  *)(& ep_dev_attr_grp),      (struct attribute_group  const  *)0};
55757#line 176 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55758static void ep_device_release(struct device *dev ) 
55759{ struct ep_device *ep_dev ;
55760  struct device  const  *__mptr ;
55761  struct ep_device *__cil_tmp4 ;
55762  void const   *__cil_tmp5 ;
55763
55764  {
55765  {
55766#line 178
55767  __mptr = (struct device  const  *)dev;
55768#line 178
55769  __cil_tmp4 = (struct ep_device *)__mptr;
55770#line 178
55771  ep_dev = __cil_tmp4 + 1152921504606846960UL;
55772#line 180
55773  __cil_tmp5 = (void const   *)ep_dev;
55774#line 180
55775  kfree(__cil_tmp5);
55776  }
55777#line 181
55778  return;
55779}
55780}
55781#line 183 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55782int usb_create_ep_devs(struct device *parent , struct usb_host_endpoint *endpoint ,
55783                       struct usb_device *udev ) 
55784{ struct ep_device *ep_dev ;
55785  int retval ;
55786  void *tmp ;
55787  struct ep_device *__cil_tmp7 ;
55788  unsigned long __cil_tmp8 ;
55789  unsigned long __cil_tmp9 ;
55790  struct device *__cil_tmp10 ;
55791  __u8 __cil_tmp11 ;
55792  int __cil_tmp12 ;
55793  struct device *__cil_tmp13 ;
55794  struct device *__cil_tmp14 ;
55795  struct device *__cil_tmp15 ;
55796
55797  {
55798  {
55799#line 190
55800  tmp = kzalloc(1128UL, 208U);
55801#line 190
55802  ep_dev = (struct ep_device *)tmp;
55803  }
55804  {
55805#line 191
55806  __cil_tmp7 = (struct ep_device *)0;
55807#line 191
55808  __cil_tmp8 = (unsigned long )__cil_tmp7;
55809#line 191
55810  __cil_tmp9 = (unsigned long )ep_dev;
55811#line 191
55812  if (__cil_tmp9 == __cil_tmp8) {
55813#line 192
55814    retval = -12;
55815#line 193
55816    goto exit;
55817  } else {
55818
55819  }
55820  }
55821  {
55822#line 196
55823  ep_dev->desc = & endpoint->desc;
55824#line 197
55825  ep_dev->udev = udev;
55826#line 198
55827  ep_dev->dev.groups = (struct attribute_group  const  **)(& ep_dev_groups);
55828#line 199
55829  ep_dev->dev.type = (struct device_type  const  *)(& usb_ep_device_type);
55830#line 200
55831  ep_dev->dev.parent = parent;
55832#line 201
55833  ep_dev->dev.release = & ep_device_release;
55834#line 202
55835  __cil_tmp10 = & ep_dev->dev;
55836#line 202
55837  __cil_tmp11 = endpoint->desc.bEndpointAddress;
55838#line 202
55839  __cil_tmp12 = (int )__cil_tmp11;
55840#line 202
55841  dev_set_name(__cil_tmp10, "ep_%02x", __cil_tmp12);
55842#line 204
55843  __cil_tmp13 = & ep_dev->dev;
55844#line 204
55845  retval = device_register(__cil_tmp13);
55846  }
55847#line 205
55848  if (retval != 0) {
55849#line 206
55850    goto error_register;
55851  } else {
55852
55853  }
55854  {
55855#line 208
55856  __cil_tmp14 = & ep_dev->dev;
55857#line 208
55858  device_enable_async_suspend(__cil_tmp14);
55859#line 209
55860  endpoint->ep_dev = ep_dev;
55861  }
55862#line 210
55863  return (retval);
55864  error_register: 
55865  {
55866#line 213
55867  __cil_tmp15 = & ep_dev->dev;
55868#line 213
55869  put_device(__cil_tmp15);
55870  }
55871  exit: ;
55872#line 215
55873  return (retval);
55874}
55875}
55876#line 218 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/endpoint.c.p"
55877void usb_remove_ep_devs(struct usb_host_endpoint *endpoint ) 
55878{ struct ep_device *ep_dev ;
55879  struct ep_device *__cil_tmp3 ;
55880  unsigned long __cil_tmp4 ;
55881  unsigned long __cil_tmp5 ;
55882  struct device *__cil_tmp6 ;
55883
55884  {
55885#line 220
55886  ep_dev = endpoint->ep_dev;
55887  {
55888#line 222
55889  __cil_tmp3 = (struct ep_device *)0;
55890#line 222
55891  __cil_tmp4 = (unsigned long )__cil_tmp3;
55892#line 222
55893  __cil_tmp5 = (unsigned long )ep_dev;
55894#line 222
55895  if (__cil_tmp5 != __cil_tmp4) {
55896    {
55897#line 223
55898    __cil_tmp6 = & ep_dev->dev;
55899#line 223
55900    device_unregister(__cil_tmp6);
55901#line 224
55902    endpoint->ep_dev = (struct ep_device *)0;
55903    }
55904  } else {
55905
55906  }
55907  }
55908#line 226
55909  return;
55910}
55911}
55912#line 164 "include/linux/list.h"
55913__inline static void list_move_tail(struct list_head *list , struct list_head *head ) 
55914{ 
55915
55916  {
55917  {
55918#line 167
55919  __list_del_entry(list);
55920#line 168
55921  list_add_tail(list, head);
55922  }
55923#line 169
55924  return;
55925}
55926}
55927#line 63 "include/linux/byteorder/little_endian.h"
55928__inline static __u16 __le16_to_cpup(__le16 const   *p ) 
55929{ __le16 __cil_tmp2 ;
55930
55931  {
55932  {
55933#line 65
55934  __cil_tmp2 = *p;
55935#line 65
55936  return ((__u16 )__cil_tmp2);
55937  }
55938}
55939}
55940#line 291 "include/linux/printk.h"
55941extern void print_hex_dump(char const   * , char const   * , int  , int  , int  ,
55942                           void const   * , size_t  , bool  ) ;
55943#line 64 "include/asm-generic/bug.h"
55944extern void warn_slowpath_fmt(char const   * , int  , char const   *  , ...) ;
55945#line 170 "include/linux/kernel.h"
55946extern void might_fault(void) ;
55947#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/cmpxchg_64.h"
55948extern void __xchg_wrong_size(void) ;
55949#line 27 "include/linux/string.h"
55950extern char *strncpy(char * , char const   * , __kernel_size_t  ) ;
55951#line 217 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
55952extern unsigned long kernel_stack ;
55953#line 219 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
55954__inline static struct thread_info *current_thread_info(void) 
55955{ struct thread_info *ti ;
55956  unsigned long pfo_ret__ ;
55957  unsigned long __cil_tmp3 ;
55958
55959  {
55960#line 222
55961  if (1) {
55962#line 222
55963    goto case_8;
55964  } else {
55965#line 222
55966    goto switch_default;
55967#line 222
55968    if (0) {
55969#line 222
55970      __asm__  ("movb %%gs:%P1,%0": "=q" (pfo_ret__): "p" (& kernel_stack));
55971#line 222
55972      goto ldv_5782;
55973#line 222
55974      __asm__  ("movw %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack));
55975#line 222
55976      goto ldv_5782;
55977#line 222
55978      __asm__  ("movl %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack));
55979#line 222
55980      goto ldv_5782;
55981      case_8: 
55982#line 222
55983      __asm__  ("movq %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack));
55984#line 222
55985      goto ldv_5782;
55986      switch_default: 
55987      {
55988#line 222
55989      __bad_percpu_size();
55990      }
55991    } else {
55992
55993    }
55994  }
55995  ldv_5782: 
55996#line 222
55997  __cil_tmp3 = pfo_ret__ - 8152UL;
55998#line 222
55999  ti = (struct thread_info *)__cil_tmp3;
56000#line 224
56001  return (ti);
56002}
56003}
56004#line 124 "include/linux/time.h"
56005extern struct timespec current_kernel_time(void) ;
56006#line 30 "include/linux/wait.h"
56007extern int default_wake_function(wait_queue_t * , unsigned int  , int  , void * ) ;
56008#line 118
56009extern void add_wait_queue(wait_queue_head_t * , wait_queue_t * ) ;
56010#line 120
56011extern void remove_wait_queue(wait_queue_head_t * , wait_queue_t * ) ;
56012#line 344 "include/linux/gfp.h"
56013extern unsigned long __get_free_pages(gfp_t  , unsigned int  ) ;
56014#line 359
56015extern void free_pages(unsigned long  , unsigned int  ) ;
56016#line 75 "include/linux/pid.h"
56017__inline static struct pid *get_pid(struct pid *pid ) 
56018{ struct pid *__cil_tmp2 ;
56019  unsigned long __cil_tmp3 ;
56020  unsigned long __cil_tmp4 ;
56021  atomic_t *__cil_tmp5 ;
56022
56023  {
56024  {
56025#line 77
56026  __cil_tmp2 = (struct pid *)0;
56027#line 77
56028  __cil_tmp3 = (unsigned long )__cil_tmp2;
56029#line 77
56030  __cil_tmp4 = (unsigned long )pid;
56031#line 77
56032  if (__cil_tmp4 != __cil_tmp3) {
56033    {
56034#line 78
56035    __cil_tmp5 = & pid->count;
56036#line 78
56037    atomic_inc(__cil_tmp5);
56038    }
56039  } else {
56040
56041  }
56042  }
56043#line 79
56044  return (pid);
56045}
56046}
56047#line 82
56048extern void put_pid(struct pid * ) ;
56049#line 896 "include/linux/fs.h"
56050__inline static unsigned int imajor(struct inode  const  *inode ) 
56051{ dev_t __cil_tmp2 ;
56052  dev_t __cil_tmp3 ;
56053
56054  {
56055  {
56056#line 898
56057  __cil_tmp2 = inode->i_rdev;
56058#line 898
56059  __cil_tmp3 = __cil_tmp2 >> 20;
56060#line 898
56061  return ((unsigned int )__cil_tmp3);
56062  }
56063}
56064}
56065#line 2088
56066extern int register_chrdev_region(dev_t  , unsigned int  , char const   * ) ;
56067#line 2094
56068extern void unregister_chrdev_region(dev_t  , unsigned int  ) ;
56069#line 119 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
56070extern int __get_user_bad(void) ;
56071#line 40 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
56072extern unsigned long _copy_to_user(void * , void const   * , unsigned int  ) ;
56073#line 42
56074extern unsigned long _copy_from_user(void * , void const   * , unsigned int  ) ;
56075#line 44
56076extern unsigned long copy_in_user(void * , void const   * , unsigned int  ) ;
56077#line 46 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
56078__inline static unsigned long copy_from_user(void *to , void const   *from , unsigned long n ) 
56079{ int sz ;
56080  unsigned long tmp ;
56081  int __ret_warn_on ;
56082  long tmp___0 ;
56083  long tmp___1 ;
56084  long tmp___2 ;
56085  void const   *__cil_tmp10 ;
56086  void *__cil_tmp11 ;
56087  int __cil_tmp12 ;
56088  long __cil_tmp13 ;
56089  unsigned int __cil_tmp14 ;
56090  unsigned long __cil_tmp15 ;
56091  int __cil_tmp16 ;
56092  long __cil_tmp17 ;
56093  unsigned int __cil_tmp18 ;
56094  int __cil_tmp19 ;
56095  long __cil_tmp20 ;
56096  int __cil_tmp21 ;
56097  int __cil_tmp22 ;
56098  int __cil_tmp23 ;
56099  long __cil_tmp24 ;
56100
56101  {
56102  {
56103#line 50
56104  __cil_tmp10 = (void const   *)to;
56105#line 50
56106  __cil_tmp11 = (void *)__cil_tmp10;
56107#line 50
56108  tmp = __builtin_object_size(__cil_tmp11, 0);
56109#line 50
56110  sz = (int )tmp;
56111#line 52
56112  might_fault();
56113#line 53
56114  __cil_tmp12 = sz == -1;
56115#line 53
56116  __cil_tmp13 = (long )__cil_tmp12;
56117#line 53
56118  tmp___1 = __builtin_expect(__cil_tmp13, 1L);
56119  }
56120#line 53
56121  if (tmp___1 != 0L) {
56122    {
56123#line 54
56124    __cil_tmp14 = (unsigned int )n;
56125#line 54
56126    n = _copy_from_user(to, from, __cil_tmp14);
56127    }
56128  } else {
56129    {
56130#line 53
56131    __cil_tmp15 = (unsigned long )sz;
56132#line 53
56133    __cil_tmp16 = __cil_tmp15 >= n;
56134#line 53
56135    __cil_tmp17 = (long )__cil_tmp16;
56136#line 53
56137    tmp___2 = __builtin_expect(__cil_tmp17, 1L);
56138    }
56139#line 53
56140    if (tmp___2 != 0L) {
56141      {
56142#line 54
56143      __cil_tmp18 = (unsigned int )n;
56144#line 54
56145      n = _copy_from_user(to, from, __cil_tmp18);
56146      }
56147    } else {
56148      {
56149#line 57
56150      __ret_warn_on = 1;
56151#line 57
56152      __cil_tmp19 = __ret_warn_on != 0;
56153#line 57
56154      __cil_tmp20 = (long )__cil_tmp19;
56155#line 57
56156      tmp___0 = __builtin_expect(__cil_tmp20, 0L);
56157      }
56158#line 57
56159      if (tmp___0 != 0L) {
56160        {
56161#line 57
56162        __cil_tmp21 = (int const   )57;
56163#line 57
56164        __cil_tmp22 = (int )__cil_tmp21;
56165#line 57
56166        warn_slowpath_fmt("/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h",
56167                          __cil_tmp22, "Buffer overflow detected!\n");
56168        }
56169      } else {
56170
56171      }
56172      {
56173#line 57
56174      __cil_tmp23 = __ret_warn_on != 0;
56175#line 57
56176      __cil_tmp24 = (long )__cil_tmp23;
56177#line 57
56178      __builtin_expect(__cil_tmp24, 0L);
56179      }
56180    }
56181  }
56182#line 59
56183  return (n);
56184}
56185}
56186#line 63 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
56187__inline static int copy_to_user(void *dst , void const   *src , unsigned int size ) 
56188{ unsigned long tmp ;
56189
56190  {
56191  {
56192#line 65
56193  might_fault();
56194#line 67
56195  tmp = _copy_to_user(dst, src, size);
56196  }
56197#line 67
56198  return ((int )tmp);
56199}
56200}
56201#line 40 "include/linux/poll.h"
56202__inline static void poll_wait(struct file *filp , wait_queue_head_t *wait_address ,
56203                               poll_table *p ) 
56204{ poll_table *__cil_tmp4 ;
56205  unsigned long __cil_tmp5 ;
56206  unsigned long __cil_tmp6 ;
56207  wait_queue_head_t *__cil_tmp7 ;
56208  unsigned long __cil_tmp8 ;
56209  unsigned long __cil_tmp9 ;
56210  void (*__cil_tmp10)(struct file * , wait_queue_head_t * , struct poll_table_struct * ) ;
56211
56212  {
56213  {
56214#line 42
56215  __cil_tmp4 = (poll_table *)0;
56216#line 42
56217  __cil_tmp5 = (unsigned long )__cil_tmp4;
56218#line 42
56219  __cil_tmp6 = (unsigned long )p;
56220#line 42
56221  if (__cil_tmp6 != __cil_tmp5) {
56222    {
56223#line 42
56224    __cil_tmp7 = (wait_queue_head_t *)0;
56225#line 42
56226    __cil_tmp8 = (unsigned long )__cil_tmp7;
56227#line 42
56228    __cil_tmp9 = (unsigned long )wait_address;
56229#line 42
56230    if (__cil_tmp9 != __cil_tmp8) {
56231      {
56232#line 43
56233      __cil_tmp10 = p->qproc;
56234#line 43
56235      (*__cil_tmp10)(filp, wait_address, p);
56236      }
56237    } else {
56238
56239    }
56240    }
56241  } else {
56242
56243  }
56244  }
56245#line 44
56246  return;
56247}
56248}
56249#line 1609 "include/linux/sched.h"
56250__inline static struct pid *task_pid(struct task_struct *task ) 
56251{ 
56252
56253  {
56254#line 1611
56255  return (task->pids[0].pid);
56256}
56257}
56258#line 1652 "include/linux/sched.h"
56259__inline static pid_t task_pid_nr(struct task_struct *tsk ) 
56260{ 
56261
56262  {
56263#line 1654
56264  return (tsk->pid);
56265}
56266}
56267#line 2150
56268extern int kill_pid_info_as_uid(int  , struct siginfo * , struct pid * , uid_t  ,
56269                                uid_t  , u32  ) ;
56270#line 589 "include/linux/usb.h"
56271__inline static int usb_interface_claimed(struct usb_interface *iface ) 
56272{ struct device_driver *__cil_tmp2 ;
56273  unsigned long __cil_tmp3 ;
56274  struct device_driver *__cil_tmp4 ;
56275  unsigned long __cil_tmp5 ;
56276
56277  {
56278  {
56279#line 591
56280  __cil_tmp2 = (struct device_driver *)0;
56281#line 591
56282  __cil_tmp3 = (unsigned long )__cil_tmp2;
56283#line 591
56284  __cil_tmp4 = iface->dev.driver;
56285#line 591
56286  __cil_tmp5 = (unsigned long )__cil_tmp4;
56287#line 591
56288  return (__cil_tmp5 != __cil_tmp3);
56289  }
56290}
56291}
56292#line 1587
56293void usb_register_notify(struct notifier_block *nb ) ;
56294#line 1588
56295void usb_unregister_notify(struct notifier_block *nb ) ;
56296#line 198 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
56297__inline static void *compat_ptr(compat_uptr_t uptr ) 
56298{ unsigned long __cil_tmp2 ;
56299
56300  {
56301  {
56302#line 200
56303  __cil_tmp2 = (unsigned long )uptr;
56304#line 200
56305  return ((void *)__cil_tmp2);
56306  }
56307}
56308}
56309#line 203 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
56310__inline static compat_uptr_t ptr_to_compat(void *uptr ) 
56311{ long __cil_tmp2 ;
56312
56313  {
56314  {
56315#line 205
56316  __cil_tmp2 = (long )uptr;
56317#line 205
56318  return ((compat_uptr_t )__cil_tmp2);
56319  }
56320}
56321}
56322#line 562 "include/linux/compat.h"
56323extern void *compat_alloc_user_space(unsigned long  ) ;
56324#line 21 "include/linux/cdev.h"
56325extern void cdev_init(struct cdev * , struct file_operations  const  * ) ;
56326#line 27
56327extern int cdev_add(struct cdev * , dev_t  , unsigned int  ) ;
56328#line 29
56329extern void cdev_del(struct cdev * ) ;
56330#line 1768 "include/linux/security.h"
56331extern void security_task_getsecid(struct task_struct * , u32 * ) ;
56332#line 150 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
56333struct mutex usbfs_mutex ;
56334#line 153
56335struct file_operations  const  usbdev_file_operations ;
56336#line 67 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
56337struct mutex usbfs_mutex  =    {{1}, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
56338                                                                            {(struct lock_class *)0,
56339                                                                             (struct lock_class *)0},
56340                                                                            "usbfs_mutex.wait_lock",
56341                                                                            0, 0UL}}}},
56342    {& usbfs_mutex.wait_list, & usbfs_mutex.wait_list}, (struct task_struct *)0, (char const   *)0,
56343    (void *)(& usbfs_mutex), {(struct lock_class_key *)0, {(struct lock_class *)0,
56344                                                           (struct lock_class *)0},
56345                              "usbfs_mutex", 0, 0UL}};
56346#line 102 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
56347static int usbfs_snoop  ;
56348#line 121 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
56349static int connected(struct dev_state *ps ) 
56350{ int tmp ;
56351  int tmp___0 ;
56352  struct list_head *__cil_tmp4 ;
56353  struct list_head  const  *__cil_tmp5 ;
56354  struct usb_device *__cil_tmp6 ;
56355  enum usb_device_state __cil_tmp7 ;
56356  unsigned int __cil_tmp8 ;
56357
56358  {
56359  {
56360#line 123
56361  __cil_tmp4 = & ps->list;
56362#line 123
56363  __cil_tmp5 = (struct list_head  const  *)__cil_tmp4;
56364#line 123
56365  tmp = list_empty(__cil_tmp5);
56366  }
56367#line 123
56368  if (tmp == 0) {
56369    {
56370#line 123
56371    __cil_tmp6 = ps->dev;
56372#line 123
56373    __cil_tmp7 = __cil_tmp6->state;
56374#line 123
56375    __cil_tmp8 = (unsigned int )__cil_tmp7;
56376#line 123
56377    if (__cil_tmp8 != 0U) {
56378#line 123
56379      tmp___0 = 1;
56380    } else {
56381#line 123
56382      tmp___0 = 0;
56383    }
56384    }
56385  } else {
56386#line 123
56387    tmp___0 = 0;
56388  }
56389#line 123
56390  return (tmp___0);
56391}
56392}
56393#line 127 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
56394static loff_t usbdev_lseek(struct file *file , loff_t offset , int orig ) 
56395{ loff_t ret ;
56396  struct dentry *__cil_tmp5 ;
56397  struct inode *__cil_tmp6 ;
56398  struct mutex *__cil_tmp7 ;
56399  loff_t __cil_tmp8 ;
56400  struct dentry *__cil_tmp9 ;
56401  struct inode *__cil_tmp10 ;
56402  struct mutex *__cil_tmp11 ;
56403
56404  {
56405  {
56406#line 131
56407  __cil_tmp5 = file->f_path.dentry;
56408#line 131
56409  __cil_tmp6 = __cil_tmp5->d_inode;
56410#line 131
56411  __cil_tmp7 = & __cil_tmp6->i_mutex;
56412#line 131
56413  mutex_lock_nested(__cil_tmp7, 0U);
56414  }
56415#line 134
56416  if (orig == 0) {
56417#line 134
56418    goto case_0;
56419  } else
56420#line 138
56421  if (orig == 1) {
56422#line 138
56423    goto case_1;
56424  } else
56425#line 142
56426  if (orig == 2) {
56427#line 142
56428    goto case_2;
56429  } else {
56430#line 143
56431    goto switch_default;
56432#line 133
56433    if (0) {
56434      case_0: 
56435#line 135
56436      file->f_pos = offset;
56437#line 136
56438      ret = file->f_pos;
56439#line 137
56440      goto ldv_30592;
56441      case_1: 
56442#line 139
56443      __cil_tmp8 = file->f_pos;
56444#line 139
56445      file->f_pos = __cil_tmp8 + offset;
56446#line 140
56447      ret = file->f_pos;
56448#line 141
56449      goto ldv_30592;
56450      case_2: ;
56451      switch_default: 
56452#line 144
56453      ret = -22LL;
56454    } else {
56455
56456    }
56457  }
56458  ldv_30592: 
56459  {
56460#line 147
56461  __cil_tmp9 = file->f_path.dentry;
56462#line 147
56463  __cil_tmp10 = __cil_tmp9->d_inode;
56464#line 147
56465  __cil_tmp11 = & __cil_tmp10->i_mutex;
56466#line 147
56467  mutex_unlock(__cil_tmp11);
56468  }
56469#line 148
56470  return (ret);
56471}
56472}
56473#line 151 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
56474static ssize_t usbdev_read(struct file *file , char *buf , size_t nbytes , loff_t *ppos ) 
56475{ struct dev_state *ps ;
56476  struct usb_device *dev ;
56477  ssize_t ret ;
56478  unsigned int len ;
56479  loff_t pos ;
56480  int i ;
56481  int tmp ;
56482  struct usb_device_descriptor temp_desc ;
56483  size_t __len ;
56484  void *__ret ;
56485  int tmp___0 ;
56486  struct usb_config_descriptor *config ;
56487  unsigned int length ;
56488  unsigned int alloclen ;
56489  unsigned int _min1 ;
56490  unsigned int _min2 ;
56491  unsigned int tmp___1 ;
56492  int tmp___2 ;
56493  void *__cil_tmp23 ;
56494  struct device *__cil_tmp24 ;
56495  unsigned long long __cil_tmp25 ;
56496  void *__cil_tmp26 ;
56497  struct usb_device_descriptor *__cil_tmp27 ;
56498  void const   *__cil_tmp28 ;
56499  void *__cil_tmp29 ;
56500  struct usb_device_descriptor *__cil_tmp30 ;
56501  void const   *__cil_tmp31 ;
56502  unsigned int __cil_tmp32 ;
56503  size_t __cil_tmp33 ;
56504  void *__cil_tmp34 ;
56505  unsigned long __cil_tmp35 ;
56506  void const   *__cil_tmp36 ;
56507  void const   *__cil_tmp37 ;
56508  loff_t __cil_tmp38 ;
56509  loff_t __cil_tmp39 ;
56510  unsigned long __cil_tmp40 ;
56511  size_t __cil_tmp41 ;
56512  ssize_t __cil_tmp42 ;
56513  unsigned long __cil_tmp43 ;
56514  char **__cil_tmp44 ;
56515  char **__cil_tmp45 ;
56516  char *__cil_tmp46 ;
56517  __le16 __cil_tmp47 ;
56518  loff_t __cil_tmp48 ;
56519  loff_t __cil_tmp49 ;
56520  loff_t __cil_tmp50 ;
56521  unsigned long __cil_tmp51 ;
56522  struct usb_host_config *__cil_tmp52 ;
56523  struct usb_host_config *__cil_tmp53 ;
56524  __le16 __cil_tmp54 ;
56525  loff_t __cil_tmp55 ;
56526  unsigned int __cil_tmp56 ;
56527  unsigned int __cil_tmp57 ;
56528  unsigned int __cil_tmp58 ;
56529  size_t __cil_tmp59 ;
56530  loff_t __cil_tmp60 ;
56531  loff_t __cil_tmp61 ;
56532  loff_t __cil_tmp62 ;
56533  loff_t __cil_tmp63 ;
56534  unsigned int __cil_tmp64 ;
56535  unsigned int __cil_tmp65 ;
56536  unsigned int __cil_tmp66 ;
56537  void *__cil_tmp67 ;
56538  loff_t __cil_tmp68 ;
56539  loff_t __cil_tmp69 ;
56540  unsigned long __cil_tmp70 ;
56541  unsigned long __cil_tmp71 ;
56542  char **__cil_tmp72 ;
56543  char **__cil_tmp73 ;
56544  char *__cil_tmp74 ;
56545  void const   *__cil_tmp75 ;
56546  void const   *__cil_tmp76 ;
56547  loff_t __cil_tmp77 ;
56548  loff_t __cil_tmp78 ;
56549  unsigned long __cil_tmp79 ;
56550  size_t __cil_tmp80 ;
56551  ssize_t __cil_tmp81 ;
56552  loff_t __cil_tmp82 ;
56553  __u8 __cil_tmp83 ;
56554  int __cil_tmp84 ;
56555  struct device *__cil_tmp85 ;
56556
56557  {
56558  {
56559#line 154
56560  __cil_tmp23 = file->private_data;
56561#line 154
56562  ps = (struct dev_state *)__cil_tmp23;
56563#line 155
56564  dev = ps->dev;
56565#line 156
56566  ret = 0L;
56567#line 161
56568  pos = *ppos;
56569#line 162
56570  __cil_tmp24 = & dev->dev;
56571#line 162
56572  device_lock(__cil_tmp24);
56573#line 163
56574  tmp = connected(ps);
56575  }
56576#line 163
56577  if (tmp == 0) {
56578#line 164
56579    ret = -19L;
56580#line 165
56581    goto err;
56582  } else
56583#line 166
56584  if (pos < 0LL) {
56585#line 167
56586    ret = -22L;
56587#line 168
56588    goto err;
56589  } else {
56590
56591  }
56592  {
56593#line 171
56594  __cil_tmp25 = (unsigned long long )pos;
56595#line 171
56596  if (__cil_tmp25 <= 17ULL) {
56597#line 175
56598    __len = 18UL;
56599#line 175
56600    if (__len > 63UL) {
56601      {
56602#line 175
56603      __cil_tmp26 = (void *)(& temp_desc);
56604#line 175
56605      __cil_tmp27 = & dev->descriptor;
56606#line 175
56607      __cil_tmp28 = (void const   *)__cil_tmp27;
56608#line 175
56609      __ret = __memcpy(__cil_tmp26, __cil_tmp28, __len);
56610      }
56611    } else {
56612      {
56613#line 175
56614      __cil_tmp29 = (void *)(& temp_desc);
56615#line 175
56616      __cil_tmp30 = & dev->descriptor;
56617#line 175
56618      __cil_tmp31 = (void const   *)__cil_tmp30;
56619#line 175
56620      __ret = __builtin_memcpy(__cil_tmp29, __cil_tmp31, __len);
56621      }
56622    }
56623#line 181
56624    __cil_tmp32 = (unsigned int )pos;
56625#line 181
56626    len = 18U - __cil_tmp32;
56627    {
56628#line 182
56629    __cil_tmp33 = (size_t )len;
56630#line 182
56631    if (__cil_tmp33 > nbytes) {
56632#line 183
56633      len = (unsigned int )nbytes;
56634    } else {
56635
56636    }
56637    }
56638    {
56639#line 184
56640    __cil_tmp34 = (void *)buf;
56641#line 184
56642    __cil_tmp35 = (unsigned long )pos;
56643#line 184
56644    __cil_tmp36 = (void const   *)(& temp_desc);
56645#line 184
56646    __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
56647#line 184
56648    tmp___0 = copy_to_user(__cil_tmp34, __cil_tmp37, len);
56649    }
56650#line 184
56651    if (tmp___0 != 0) {
56652#line 185
56653      ret = -14L;
56654#line 186
56655      goto err;
56656    } else {
56657
56658    }
56659#line 189
56660    __cil_tmp38 = (loff_t )len;
56661#line 189
56662    __cil_tmp39 = *ppos;
56663#line 189
56664    *ppos = __cil_tmp39 + __cil_tmp38;
56665#line 190
56666    __cil_tmp40 = (unsigned long )len;
56667#line 190
56668    buf = buf + __cil_tmp40;
56669#line 191
56670    __cil_tmp41 = (size_t )len;
56671#line 191
56672    nbytes = nbytes - __cil_tmp41;
56673#line 192
56674    __cil_tmp42 = (ssize_t )len;
56675#line 192
56676    ret = __cil_tmp42 + ret;
56677  } else {
56678
56679  }
56680  }
56681#line 195
56682  pos = 18LL;
56683#line 196
56684  i = 0;
56685#line 196
56686  goto ldv_30620;
56687  ldv_30619: 
56688#line 197
56689  __cil_tmp43 = (unsigned long )i;
56690#line 197
56691  __cil_tmp44 = dev->rawdescriptors;
56692#line 197
56693  __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
56694#line 197
56695  __cil_tmp46 = *__cil_tmp45;
56696#line 197
56697  config = (struct usb_config_descriptor *)__cil_tmp46;
56698#line 199
56699  __cil_tmp47 = config->wTotalLength;
56700#line 199
56701  length = (unsigned int )__cil_tmp47;
56702  {
56703#line 201
56704  __cil_tmp48 = (loff_t )length;
56705#line 201
56706  __cil_tmp49 = __cil_tmp48 + pos;
56707#line 201
56708  __cil_tmp50 = *ppos;
56709#line 201
56710  if (__cil_tmp50 < __cil_tmp49) {
56711#line 205
56712    __cil_tmp51 = (unsigned long )i;
56713#line 205
56714    __cil_tmp52 = dev->config;
56715#line 205
56716    __cil_tmp53 = __cil_tmp52 + __cil_tmp51;
56717#line 205
56718    __cil_tmp54 = __cil_tmp53->desc.wTotalLength;
56719#line 205
56720    alloclen = (unsigned int )__cil_tmp54;
56721#line 208
56722    __cil_tmp55 = *ppos;
56723#line 208
56724    __cil_tmp56 = (unsigned int )__cil_tmp55;
56725#line 208
56726    __cil_tmp57 = (unsigned int )pos;
56727#line 208
56728    __cil_tmp58 = __cil_tmp57 - __cil_tmp56;
56729#line 208
56730    len = __cil_tmp58 + length;
56731    {
56732#line 209
56733    __cil_tmp59 = (size_t )len;
56734#line 209
56735    if (__cil_tmp59 > nbytes) {
56736#line 210
56737      len = (unsigned int )nbytes;
56738    } else {
56739
56740    }
56741    }
56742    {
56743#line 213
56744    __cil_tmp60 = *ppos;
56745#line 213
56746    __cil_tmp61 = __cil_tmp60 - pos;
56747#line 213
56748    __cil_tmp62 = (loff_t )alloclen;
56749#line 213
56750    if (__cil_tmp62 > __cil_tmp61) {
56751#line 214
56752      __cil_tmp63 = *ppos;
56753#line 214
56754      __cil_tmp64 = (unsigned int )__cil_tmp63;
56755#line 214
56756      __cil_tmp65 = (unsigned int )pos;
56757#line 214
56758      __cil_tmp66 = __cil_tmp65 - __cil_tmp64;
56759#line 214
56760      alloclen = __cil_tmp66 + alloclen;
56761#line 217
56762      _min1 = len;
56763#line 217
56764      _min2 = alloclen;
56765#line 217
56766      if (_min1 < _min2) {
56767#line 217
56768        tmp___1 = _min1;
56769      } else {
56770#line 217
56771        tmp___1 = _min2;
56772      }
56773      {
56774#line 217
56775      __cil_tmp67 = (void *)buf;
56776#line 217
56777      __cil_tmp68 = *ppos;
56778#line 217
56779      __cil_tmp69 = __cil_tmp68 - pos;
56780#line 217
56781      __cil_tmp70 = (unsigned long )__cil_tmp69;
56782#line 217
56783      __cil_tmp71 = (unsigned long )i;
56784#line 217
56785      __cil_tmp72 = dev->rawdescriptors;
56786#line 217
56787      __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
56788#line 217
56789      __cil_tmp74 = *__cil_tmp73;
56790#line 217
56791      __cil_tmp75 = (void const   *)__cil_tmp74;
56792#line 217
56793      __cil_tmp76 = __cil_tmp75 + __cil_tmp70;
56794#line 217
56795      tmp___2 = copy_to_user(__cil_tmp67, __cil_tmp76, tmp___1);
56796      }
56797#line 217
56798      if (tmp___2 != 0) {
56799#line 218
56800        ret = -14L;
56801#line 219
56802        goto err;
56803      } else {
56804
56805      }
56806    } else {
56807
56808    }
56809    }
56810#line 223
56811    __cil_tmp77 = (loff_t )len;
56812#line 223
56813    __cil_tmp78 = *ppos;
56814#line 223
56815    *ppos = __cil_tmp78 + __cil_tmp77;
56816#line 224
56817    __cil_tmp79 = (unsigned long )len;
56818#line 224
56819    buf = buf + __cil_tmp79;
56820#line 225
56821    __cil_tmp80 = (size_t )len;
56822#line 225
56823    nbytes = nbytes - __cil_tmp80;
56824#line 226
56825    __cil_tmp81 = (ssize_t )len;
56826#line 226
56827    ret = __cil_tmp81 + ret;
56828  } else {
56829
56830  }
56831  }
56832#line 229
56833  __cil_tmp82 = (loff_t )length;
56834#line 229
56835  pos = __cil_tmp82 + pos;
56836#line 196
56837  i = i + 1;
56838  ldv_30620: ;
56839#line 196
56840  if (nbytes != 0UL) {
56841    {
56842#line 196
56843    __cil_tmp83 = dev->descriptor.bNumConfigurations;
56844#line 196
56845    __cil_tmp84 = (int )__cil_tmp83;
56846#line 196
56847    if (__cil_tmp84 > i) {
56848#line 197
56849      goto ldv_30619;
56850    } else {
56851#line 199
56852      goto ldv_30621;
56853    }
56854    }
56855  } else {
56856#line 199
56857    goto ldv_30621;
56858  }
56859  ldv_30621: ;
56860  err: 
56861  {
56862#line 233
56863  __cil_tmp85 = & dev->dev;
56864#line 233
56865  device_unlock(__cil_tmp85);
56866  }
56867#line 234
56868  return (ret);
56869}
56870}
56871#line 241 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
56872static struct async *alloc_async(unsigned int numisoframes ) 
56873{ struct async *as ;
56874  void *tmp ;
56875  struct async *__cil_tmp4 ;
56876  unsigned long __cil_tmp5 ;
56877  unsigned long __cil_tmp6 ;
56878  int __cil_tmp7 ;
56879  struct urb *__cil_tmp8 ;
56880  unsigned long __cil_tmp9 ;
56881  struct urb *__cil_tmp10 ;
56882  unsigned long __cil_tmp11 ;
56883  void const   *__cil_tmp12 ;
56884
56885  {
56886  {
56887#line 245
56888  tmp = kzalloc(88UL, 208U);
56889#line 245
56890  as = (struct async *)tmp;
56891  }
56892  {
56893#line 246
56894  __cil_tmp4 = (struct async *)0;
56895#line 246
56896  __cil_tmp5 = (unsigned long )__cil_tmp4;
56897#line 246
56898  __cil_tmp6 = (unsigned long )as;
56899#line 246
56900  if (__cil_tmp6 == __cil_tmp5) {
56901#line 247
56902    return ((struct async *)0);
56903  } else {
56904
56905  }
56906  }
56907  {
56908#line 248
56909  __cil_tmp7 = (int )numisoframes;
56910#line 248
56911  as->urb = usb_alloc_urb(__cil_tmp7, 208U);
56912  }
56913  {
56914#line 249
56915  __cil_tmp8 = (struct urb *)0;
56916#line 249
56917  __cil_tmp9 = (unsigned long )__cil_tmp8;
56918#line 249
56919  __cil_tmp10 = as->urb;
56920#line 249
56921  __cil_tmp11 = (unsigned long )__cil_tmp10;
56922#line 249
56923  if (__cil_tmp11 == __cil_tmp9) {
56924    {
56925#line 250
56926    __cil_tmp12 = (void const   *)as;
56927#line 250
56928    kfree(__cil_tmp12);
56929    }
56930#line 251
56931    return ((struct async *)0);
56932  } else {
56933
56934  }
56935  }
56936#line 253
56937  return (as);
56938}
56939}
56940#line 256 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
56941static void free_async(struct async *as ) 
56942{ struct pid *__cil_tmp2 ;
56943  struct urb *__cil_tmp3 ;
56944  void *__cil_tmp4 ;
56945  void const   *__cil_tmp5 ;
56946  struct urb *__cil_tmp6 ;
56947  unsigned char *__cil_tmp7 ;
56948  void const   *__cil_tmp8 ;
56949  struct urb *__cil_tmp9 ;
56950  void const   *__cil_tmp10 ;
56951
56952  {
56953  {
56954#line 258
56955  __cil_tmp2 = as->pid;
56956#line 258
56957  put_pid(__cil_tmp2);
56958#line 259
56959  __cil_tmp3 = as->urb;
56960#line 259
56961  __cil_tmp4 = __cil_tmp3->transfer_buffer;
56962#line 259
56963  __cil_tmp5 = (void const   *)__cil_tmp4;
56964#line 259
56965  kfree(__cil_tmp5);
56966#line 260
56967  __cil_tmp6 = as->urb;
56968#line 260
56969  __cil_tmp7 = __cil_tmp6->setup_packet;
56970#line 260
56971  __cil_tmp8 = (void const   *)__cil_tmp7;
56972#line 260
56973  kfree(__cil_tmp8);
56974#line 261
56975  __cil_tmp9 = as->urb;
56976#line 261
56977  usb_free_urb(__cil_tmp9);
56978#line 262
56979  __cil_tmp10 = (void const   *)as;
56980#line 262
56981  kfree(__cil_tmp10);
56982  }
56983#line 263
56984  return;
56985}
56986}
56987#line 265 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
56988static void async_newpending(struct async *as ) 
56989{ struct dev_state *ps ;
56990  unsigned long flags ;
56991  raw_spinlock_t *tmp ;
56992  spinlock_t *__cil_tmp5 ;
56993  struct list_head *__cil_tmp6 ;
56994  struct list_head *__cil_tmp7 ;
56995  spinlock_t *__cil_tmp8 ;
56996
56997  {
56998  {
56999#line 267
57000  ps = as->ps;
57001#line 270
57002  __cil_tmp5 = & ps->lock;
57003#line 270
57004  tmp = spinlock_check(__cil_tmp5);
57005#line 270
57006  flags = _raw_spin_lock_irqsave(tmp);
57007#line 271
57008  __cil_tmp6 = & as->asynclist;
57009#line 271
57010  __cil_tmp7 = & ps->async_pending;
57011#line 271
57012  list_add_tail(__cil_tmp6, __cil_tmp7);
57013#line 272
57014  __cil_tmp8 = & ps->lock;
57015#line 272
57016  spin_unlock_irqrestore(__cil_tmp8, flags);
57017  }
57018#line 273
57019  return;
57020}
57021}
57022#line 275 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57023static void async_removepending(struct async *as ) 
57024{ struct dev_state *ps ;
57025  unsigned long flags ;
57026  raw_spinlock_t *tmp ;
57027  spinlock_t *__cil_tmp5 ;
57028  struct list_head *__cil_tmp6 ;
57029  spinlock_t *__cil_tmp7 ;
57030
57031  {
57032  {
57033#line 277
57034  ps = as->ps;
57035#line 280
57036  __cil_tmp5 = & ps->lock;
57037#line 280
57038  tmp = spinlock_check(__cil_tmp5);
57039#line 280
57040  flags = _raw_spin_lock_irqsave(tmp);
57041#line 281
57042  __cil_tmp6 = & as->asynclist;
57043#line 281
57044  list_del_init(__cil_tmp6);
57045#line 282
57046  __cil_tmp7 = & ps->lock;
57047#line 282
57048  spin_unlock_irqrestore(__cil_tmp7, flags);
57049  }
57050#line 283
57051  return;
57052}
57053}
57054#line 285 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57055static struct async *async_getcompleted(struct dev_state *ps ) 
57056{ unsigned long flags ;
57057  struct async *as ;
57058  raw_spinlock_t *tmp ;
57059  struct list_head  const  *__mptr ;
57060  int tmp___0 ;
57061  spinlock_t *__cil_tmp7 ;
57062  struct list_head *__cil_tmp8 ;
57063  struct list_head  const  *__cil_tmp9 ;
57064  struct list_head *__cil_tmp10 ;
57065  struct list_head *__cil_tmp11 ;
57066  spinlock_t *__cil_tmp12 ;
57067
57068  {
57069  {
57070#line 288
57071  as = (struct async *)0;
57072#line 290
57073  __cil_tmp7 = & ps->lock;
57074#line 290
57075  tmp = spinlock_check(__cil_tmp7);
57076#line 290
57077  flags = _raw_spin_lock_irqsave(tmp);
57078#line 291
57079  __cil_tmp8 = & ps->async_completed;
57080#line 291
57081  __cil_tmp9 = (struct list_head  const  *)__cil_tmp8;
57082#line 291
57083  tmp___0 = list_empty(__cil_tmp9);
57084  }
57085#line 291
57086  if (tmp___0 == 0) {
57087    {
57088#line 292
57089    __cil_tmp10 = ps->async_completed.next;
57090#line 292
57091    __mptr = (struct list_head  const  *)__cil_tmp10;
57092#line 292
57093    as = (struct async *)__mptr;
57094#line 294
57095    __cil_tmp11 = & as->asynclist;
57096#line 294
57097    list_del_init(__cil_tmp11);
57098    }
57099  } else {
57100
57101  }
57102  {
57103#line 296
57104  __cil_tmp12 = & ps->lock;
57105#line 296
57106  spin_unlock_irqrestore(__cil_tmp12, flags);
57107  }
57108#line 297
57109  return (as);
57110}
57111}
57112#line 300 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57113static struct async *async_getpending(struct dev_state *ps , void *userurb ) 
57114{ unsigned long flags ;
57115  struct async *as ;
57116  raw_spinlock_t *tmp ;
57117  struct list_head  const  *__mptr ;
57118  struct list_head  const  *__mptr___0 ;
57119  spinlock_t *__cil_tmp8 ;
57120  struct list_head *__cil_tmp9 ;
57121  unsigned long __cil_tmp10 ;
57122  void *__cil_tmp11 ;
57123  unsigned long __cil_tmp12 ;
57124  struct list_head *__cil_tmp13 ;
57125  spinlock_t *__cil_tmp14 ;
57126  struct list_head *__cil_tmp15 ;
57127  struct list_head *__cil_tmp16 ;
57128  unsigned long __cil_tmp17 ;
57129  struct list_head *__cil_tmp18 ;
57130  unsigned long __cil_tmp19 ;
57131  spinlock_t *__cil_tmp20 ;
57132
57133  {
57134  {
57135#line 306
57136  __cil_tmp8 = & ps->lock;
57137#line 306
57138  tmp = spinlock_check(__cil_tmp8);
57139#line 306
57140  flags = _raw_spin_lock_irqsave(tmp);
57141#line 307
57142  __cil_tmp9 = ps->async_pending.next;
57143#line 307
57144  __mptr = (struct list_head  const  *)__cil_tmp9;
57145#line 307
57146  as = (struct async *)__mptr;
57147  }
57148#line 307
57149  goto ldv_30669;
57150  ldv_30668: ;
57151  {
57152#line 308
57153  __cil_tmp10 = (unsigned long )userurb;
57154#line 308
57155  __cil_tmp11 = as->userurb;
57156#line 308
57157  __cil_tmp12 = (unsigned long )__cil_tmp11;
57158#line 308
57159  if (__cil_tmp12 == __cil_tmp10) {
57160    {
57161#line 309
57162    __cil_tmp13 = & as->asynclist;
57163#line 309
57164    list_del_init(__cil_tmp13);
57165#line 310
57166    __cil_tmp14 = & ps->lock;
57167#line 310
57168    spin_unlock_irqrestore(__cil_tmp14, flags);
57169    }
57170#line 311
57171    return (as);
57172  } else {
57173
57174  }
57175  }
57176#line 307
57177  __cil_tmp15 = as->asynclist.next;
57178#line 307
57179  __mptr___0 = (struct list_head  const  *)__cil_tmp15;
57180#line 307
57181  as = (struct async *)__mptr___0;
57182  ldv_30669: ;
57183  {
57184#line 307
57185  __cil_tmp16 = & ps->async_pending;
57186#line 307
57187  __cil_tmp17 = (unsigned long )__cil_tmp16;
57188#line 307
57189  __cil_tmp18 = & as->asynclist;
57190#line 307
57191  __cil_tmp19 = (unsigned long )__cil_tmp18;
57192#line 307
57193  if (__cil_tmp19 != __cil_tmp17) {
57194#line 308
57195    goto ldv_30668;
57196  } else {
57197#line 310
57198    goto ldv_30670;
57199  }
57200  }
57201  ldv_30670: 
57202  {
57203#line 313
57204  __cil_tmp20 = & ps->lock;
57205#line 313
57206  spin_unlock_irqrestore(__cil_tmp20, flags);
57207  }
57208#line 314
57209  return ((struct async *)0);
57210}
57211}
57212#line 317 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57213static void snoop_urb(struct usb_device *udev , void *userurb , int pipe , unsigned int length ,
57214                      int timeout_or_status , enum snoop_when when , unsigned char *data ,
57215                      unsigned int data_len ) 
57216{ char const   *types[4U] ;
57217  char const   *dirs[2U] ;
57218  int ep ;
57219  char const   *t ;
57220  char const   *d ;
57221  int __cil_tmp14 ;
57222  void *__cil_tmp15 ;
57223  unsigned long __cil_tmp16 ;
57224  unsigned long __cil_tmp17 ;
57225  unsigned int __cil_tmp18 ;
57226  struct device *__cil_tmp19 ;
57227  struct device  const  *__cil_tmp20 ;
57228  struct device *__cil_tmp21 ;
57229  struct device  const  *__cil_tmp22 ;
57230  unsigned int __cil_tmp23 ;
57231  struct device *__cil_tmp24 ;
57232  struct device  const  *__cil_tmp25 ;
57233  struct device *__cil_tmp26 ;
57234  struct device  const  *__cil_tmp27 ;
57235  unsigned char *__cil_tmp28 ;
57236  unsigned long __cil_tmp29 ;
57237  unsigned long __cil_tmp30 ;
57238  void const   *__cil_tmp31 ;
57239  size_t __cil_tmp32 ;
57240  bool __cil_tmp33 ;
57241
57242  {
57243#line 322
57244  types[0] = "isoc";
57245#line 322
57246  types[1] = "int";
57247#line 322
57248  types[2] = "ctrl";
57249#line 322
57250  types[3] = "bulk";
57251#line 323
57252  dirs[0] = "out";
57253#line 323
57254  dirs[1] = "in";
57255#line 327
57256  if (usbfs_snoop == 0) {
57257#line 328
57258    return;
57259  } else {
57260
57261  }
57262#line 330
57263  __cil_tmp14 = pipe >> 15;
57264#line 330
57265  ep = __cil_tmp14 & 15;
57266#line 331
57267  t = types[(int )((unsigned int )pipe >> 30)];
57268#line 332
57269  d = dirs[(pipe & 128) != 0];
57270  {
57271#line 334
57272  __cil_tmp15 = (void *)0;
57273#line 334
57274  __cil_tmp16 = (unsigned long )__cil_tmp15;
57275#line 334
57276  __cil_tmp17 = (unsigned long )userurb;
57277#line 334
57278  if (__cil_tmp17 != __cil_tmp16) {
57279    {
57280#line 335
57281    __cil_tmp18 = (unsigned int )when;
57282#line 335
57283    if (__cil_tmp18 == 0U) {
57284      {
57285#line 336
57286      __cil_tmp19 = & udev->dev;
57287#line 336
57288      __cil_tmp20 = (struct device  const  *)__cil_tmp19;
57289#line 336
57290      _dev_info(__cil_tmp20, "userurb %p, ep%d %s-%s, length %u\n", userurb, ep, t,
57291                d, length);
57292      }
57293    } else {
57294      {
57295#line 340
57296      __cil_tmp21 = & udev->dev;
57297#line 340
57298      __cil_tmp22 = (struct device  const  *)__cil_tmp21;
57299#line 340
57300      _dev_info(__cil_tmp22, "userurb %p, ep%d %s-%s, actual_length %u status %d\n",
57301                userurb, ep, t, d, length, timeout_or_status);
57302      }
57303    }
57304    }
57305  } else {
57306    {
57307#line 345
57308    __cil_tmp23 = (unsigned int )when;
57309#line 345
57310    if (__cil_tmp23 == 0U) {
57311      {
57312#line 346
57313      __cil_tmp24 = & udev->dev;
57314#line 346
57315      __cil_tmp25 = (struct device  const  *)__cil_tmp24;
57316#line 346
57317      _dev_info(__cil_tmp25, "ep%d %s-%s, length %u, timeout %d\n", ep, t, d, length,
57318                timeout_or_status);
57319      }
57320    } else {
57321      {
57322#line 350
57323      __cil_tmp26 = & udev->dev;
57324#line 350
57325      __cil_tmp27 = (struct device  const  *)__cil_tmp26;
57326#line 350
57327      _dev_info(__cil_tmp27, "ep%d %s-%s, actual_length %u, status %d\n", ep, t, d,
57328                length, timeout_or_status);
57329      }
57330    }
57331    }
57332  }
57333  }
57334  {
57335#line 355
57336  __cil_tmp28 = (unsigned char *)0;
57337#line 355
57338  __cil_tmp29 = (unsigned long )__cil_tmp28;
57339#line 355
57340  __cil_tmp30 = (unsigned long )data;
57341#line 355
57342  if (__cil_tmp30 != __cil_tmp29) {
57343#line 355
57344    if (data_len != 0U) {
57345      {
57346#line 356
57347      __cil_tmp31 = (void const   *)data;
57348#line 356
57349      __cil_tmp32 = (size_t )data_len;
57350#line 356
57351      __cil_tmp33 = (bool )1;
57352#line 356
57353      print_hex_dump("<7>", "data: ", 0, 32, 1, __cil_tmp31, __cil_tmp32, __cil_tmp33);
57354      }
57355    } else {
57356
57357    }
57358  } else {
57359
57360  }
57361  }
57362#line 357
57363  return;
57364}
57365}
57366#line 364 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57367static void cancel_bulk_urbs(struct dev_state *ps , unsigned int bulk_addr ) 
57368{ struct async *as ;
57369  struct list_head  const  *__mptr ;
57370  struct list_head  const  *__mptr___0 ;
57371  struct list_head  const  *__mptr___1 ;
57372  struct list_head  const  *__mptr___2 ;
57373  struct list_head *__cil_tmp8 ;
57374  u8 __cil_tmp9 ;
57375  unsigned int __cil_tmp10 ;
57376  u8 __cil_tmp11 ;
57377  unsigned int __cil_tmp12 ;
57378  struct list_head *__cil_tmp13 ;
57379  struct list_head *__cil_tmp14 ;
57380  unsigned long __cil_tmp15 ;
57381  struct list_head *__cil_tmp16 ;
57382  unsigned long __cil_tmp17 ;
57383  int __cil_tmp18 ;
57384  int __cil_tmp19 ;
57385  u32 __cil_tmp20 ;
57386  u32 __cil_tmp21 ;
57387  struct list_head *__cil_tmp22 ;
57388  u8 __cil_tmp23 ;
57389  unsigned int __cil_tmp24 ;
57390  spinlock_t *__cil_tmp25 ;
57391  struct urb *__cil_tmp26 ;
57392  spinlock_t *__cil_tmp27 ;
57393  struct list_head *__cil_tmp28 ;
57394  struct list_head *__cil_tmp29 ;
57395  unsigned long __cil_tmp30 ;
57396  struct list_head *__cil_tmp31 ;
57397  unsigned long __cil_tmp32 ;
57398
57399  {
57400#line 375
57401  __cil_tmp8 = ps->async_pending.next;
57402#line 375
57403  __mptr = (struct list_head  const  *)__cil_tmp8;
57404#line 375
57405  as = (struct async *)__mptr;
57406#line 375
57407  goto ldv_30697;
57408  ldv_30696: ;
57409  {
57410#line 376
57411  __cil_tmp9 = as->bulk_addr;
57412#line 376
57413  __cil_tmp10 = (unsigned int )__cil_tmp9;
57414#line 376
57415  if (__cil_tmp10 == bulk_addr) {
57416    {
57417#line 377
57418    __cil_tmp11 = as->bulk_status;
57419#line 377
57420    __cil_tmp12 = (unsigned int )__cil_tmp11;
57421#line 377
57422    if (__cil_tmp12 != 1U) {
57423#line 378
57424      goto rescan;
57425    } else {
57426
57427    }
57428    }
57429#line 379
57430    as->bulk_status = (u8 )2U;
57431#line 380
57432    as->bulk_addr = (u8 )0U;
57433  } else {
57434
57435  }
57436  }
57437#line 375
57438  __cil_tmp13 = as->asynclist.next;
57439#line 375
57440  __mptr___0 = (struct list_head  const  *)__cil_tmp13;
57441#line 375
57442  as = (struct async *)__mptr___0;
57443  ldv_30697: ;
57444  {
57445#line 375
57446  __cil_tmp14 = & ps->async_pending;
57447#line 375
57448  __cil_tmp15 = (unsigned long )__cil_tmp14;
57449#line 375
57450  __cil_tmp16 = & as->asynclist;
57451#line 375
57452  __cil_tmp17 = (unsigned long )__cil_tmp16;
57453#line 375
57454  if (__cil_tmp17 != __cil_tmp15) {
57455#line 376
57456    goto ldv_30696;
57457  } else {
57458#line 378
57459    goto ldv_30698;
57460  }
57461  }
57462  ldv_30698: 
57463#line 383
57464  __cil_tmp18 = (int )bulk_addr;
57465#line 383
57466  __cil_tmp19 = 1 << __cil_tmp18;
57467#line 383
57468  __cil_tmp20 = (u32 )__cil_tmp19;
57469#line 383
57470  __cil_tmp21 = ps->disabled_bulk_eps;
57471#line 383
57472  ps->disabled_bulk_eps = __cil_tmp21 | __cil_tmp20;
57473  rescan: 
57474#line 387
57475  __cil_tmp22 = ps->async_pending.next;
57476#line 387
57477  __mptr___1 = (struct list_head  const  *)__cil_tmp22;
57478#line 387
57479  as = (struct async *)__mptr___1;
57480#line 387
57481  goto ldv_30704;
57482  ldv_30703: ;
57483  {
57484#line 388
57485  __cil_tmp23 = as->bulk_status;
57486#line 388
57487  __cil_tmp24 = (unsigned int )__cil_tmp23;
57488#line 388
57489  if (__cil_tmp24 == 2U) {
57490    {
57491#line 389
57492    as->bulk_status = (u8 )0U;
57493#line 390
57494    __cil_tmp25 = & ps->lock;
57495#line 390
57496    spin_unlock(__cil_tmp25);
57497#line 391
57498    __cil_tmp26 = as->urb;
57499#line 391
57500    usb_unlink_urb(__cil_tmp26);
57501#line 392
57502    __cil_tmp27 = & ps->lock;
57503#line 392
57504    spin_lock(__cil_tmp27);
57505    }
57506#line 393
57507    goto rescan;
57508  } else {
57509
57510  }
57511  }
57512#line 387
57513  __cil_tmp28 = as->asynclist.next;
57514#line 387
57515  __mptr___2 = (struct list_head  const  *)__cil_tmp28;
57516#line 387
57517  as = (struct async *)__mptr___2;
57518  ldv_30704: ;
57519  {
57520#line 387
57521  __cil_tmp29 = & ps->async_pending;
57522#line 387
57523  __cil_tmp30 = (unsigned long )__cil_tmp29;
57524#line 387
57525  __cil_tmp31 = & as->asynclist;
57526#line 387
57527  __cil_tmp32 = (unsigned long )__cil_tmp31;
57528#line 387
57529  if (__cil_tmp32 != __cil_tmp30) {
57530#line 388
57531    goto ldv_30703;
57532  } else {
57533#line 390
57534    goto ldv_30705;
57535  }
57536  }
57537  ldv_30705: ;
57538#line 392
57539  return;
57540}
57541}
57542#line 398 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57543static void async_completed(struct urb *urb ) 
57544{ struct async *as ;
57545  struct dev_state *ps ;
57546  struct siginfo sinfo ;
57547  struct pid *pid ;
57548  uid_t uid ;
57549  uid_t euid ;
57550  u32 secid ;
57551  int signr ;
57552  unsigned char *tmp ;
57553  void *__cil_tmp11 ;
57554  spinlock_t *__cil_tmp12 ;
57555  struct list_head *__cil_tmp13 ;
57556  struct list_head *__cil_tmp14 ;
57557  unsigned int __cil_tmp15 ;
57558  unsigned int __cil_tmp16 ;
57559  struct usb_device *__cil_tmp17 ;
57560  struct device *__cil_tmp18 ;
57561  struct device  const  *__cil_tmp19 ;
57562  unsigned int __cil_tmp20 ;
57563  unsigned int __cil_tmp21 ;
57564  void *__cil_tmp22 ;
57565  struct usb_device *__cil_tmp23 ;
57566  void *__cil_tmp24 ;
57567  unsigned int __cil_tmp25 ;
57568  int __cil_tmp26 ;
57569  u32 __cil_tmp27 ;
57570  int __cil_tmp28 ;
57571  enum snoop_when __cil_tmp29 ;
57572  u32 __cil_tmp30 ;
57573  int __cil_tmp31 ;
57574  u8 __cil_tmp32 ;
57575  unsigned int __cil_tmp33 ;
57576  int __cil_tmp34 ;
57577  int __cil_tmp35 ;
57578  u8 __cil_tmp36 ;
57579  unsigned int __cil_tmp37 ;
57580  spinlock_t *__cil_tmp38 ;
57581  wait_queue_head_t *__cil_tmp39 ;
57582  void *__cil_tmp40 ;
57583
57584  {
57585  {
57586#line 400
57587  __cil_tmp11 = urb->context;
57588#line 400
57589  as = (struct async *)__cil_tmp11;
57590#line 401
57591  ps = as->ps;
57592#line 403
57593  pid = (struct pid *)0;
57594#line 404
57595  uid = 0U;
57596#line 405
57597  euid = 0U;
57598#line 406
57599  secid = 0U;
57600#line 409
57601  __cil_tmp12 = & ps->lock;
57602#line 409
57603  spin_lock(__cil_tmp12);
57604#line 410
57605  __cil_tmp13 = & as->asynclist;
57606#line 410
57607  __cil_tmp14 = & ps->async_completed;
57608#line 410
57609  list_move_tail(__cil_tmp13, __cil_tmp14);
57610#line 411
57611  as->status = urb->status;
57612#line 412
57613  __cil_tmp15 = as->signr;
57614#line 412
57615  signr = (int )__cil_tmp15;
57616  }
57617#line 413
57618  if (signr != 0) {
57619#line 414
57620    __cil_tmp16 = as->signr;
57621#line 414
57622    sinfo.si_signo = (int )__cil_tmp16;
57623#line 415
57624    sinfo.si_errno = as->status;
57625#line 416
57626    sinfo.si_code = -4;
57627#line 417
57628    sinfo._sifields._sigfault._addr = as->userurb;
57629#line 418
57630    pid = as->pid;
57631#line 419
57632    uid = as->uid;
57633#line 420
57634    euid = as->euid;
57635#line 421
57636    secid = as->secid;
57637  } else {
57638
57639  }
57640#line 423
57641  if (usbfs_snoop != 0) {
57642    {
57643#line 423
57644    __cil_tmp17 = urb->dev;
57645#line 423
57646    __cil_tmp18 = & __cil_tmp17->dev;
57647#line 423
57648    __cil_tmp19 = (struct device  const  *)__cil_tmp18;
57649#line 423
57650    _dev_info(__cil_tmp19, "urb complete\n");
57651    }
57652  } else {
57653
57654  }
57655  {
57656#line 424
57657  __cil_tmp20 = urb->transfer_flags;
57658#line 424
57659  __cil_tmp21 = __cil_tmp20 & 512U;
57660#line 424
57661  if (__cil_tmp21 != 0U) {
57662#line 424
57663    __cil_tmp22 = urb->transfer_buffer;
57664#line 424
57665    tmp = (unsigned char *)__cil_tmp22;
57666  } else {
57667#line 424
57668    tmp = (unsigned char *)0;
57669  }
57670  }
57671  {
57672#line 424
57673  __cil_tmp23 = urb->dev;
57674#line 424
57675  __cil_tmp24 = as->userurb;
57676#line 424
57677  __cil_tmp25 = urb->pipe;
57678#line 424
57679  __cil_tmp26 = (int )__cil_tmp25;
57680#line 424
57681  __cil_tmp27 = urb->actual_length;
57682#line 424
57683  __cil_tmp28 = as->status;
57684#line 424
57685  __cil_tmp29 = (enum snoop_when )1;
57686#line 424
57687  __cil_tmp30 = urb->actual_length;
57688#line 424
57689  snoop_urb(__cil_tmp23, __cil_tmp24, __cil_tmp26, __cil_tmp27, __cil_tmp28, __cil_tmp29,
57690            tmp, __cil_tmp30);
57691  }
57692  {
57693#line 428
57694  __cil_tmp31 = as->status;
57695#line 428
57696  if (__cil_tmp31 < 0) {
57697    {
57698#line 428
57699    __cil_tmp32 = as->bulk_addr;
57700#line 428
57701    __cil_tmp33 = (unsigned int )__cil_tmp32;
57702#line 428
57703    if (__cil_tmp33 != 0U) {
57704      {
57705#line 428
57706      __cil_tmp34 = as->status;
57707#line 428
57708      if (__cil_tmp34 != -104) {
57709        {
57710#line 428
57711        __cil_tmp35 = as->status;
57712#line 428
57713        if (__cil_tmp35 != -2) {
57714          {
57715#line 430
57716          __cil_tmp36 = as->bulk_addr;
57717#line 430
57718          __cil_tmp37 = (unsigned int )__cil_tmp36;
57719#line 430
57720          cancel_bulk_urbs(ps, __cil_tmp37);
57721          }
57722        } else {
57723
57724        }
57725        }
57726      } else {
57727
57728      }
57729      }
57730    } else {
57731
57732    }
57733    }
57734  } else {
57735
57736  }
57737  }
57738  {
57739#line 431
57740  __cil_tmp38 = & ps->lock;
57741#line 431
57742  spin_unlock(__cil_tmp38);
57743  }
57744#line 433
57745  if (signr != 0) {
57746    {
57747#line 434
57748    kill_pid_info_as_uid(sinfo.si_signo, & sinfo, pid, uid, euid, secid);
57749    }
57750  } else {
57751
57752  }
57753  {
57754#line 437
57755  __cil_tmp39 = & ps->wait;
57756#line 437
57757  __cil_tmp40 = (void *)0;
57758#line 437
57759  __wake_up(__cil_tmp39, 3U, 1, __cil_tmp40);
57760  }
57761#line 438
57762  return;
57763}
57764}
57765#line 440 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57766static void destroy_async(struct dev_state *ps , struct list_head *list ) 
57767{ struct async *as ;
57768  unsigned long flags ;
57769  raw_spinlock_t *tmp ;
57770  struct list_head  const  *__mptr ;
57771  raw_spinlock_t *tmp___0 ;
57772  int tmp___1 ;
57773  spinlock_t *__cil_tmp9 ;
57774  struct list_head *__cil_tmp10 ;
57775  struct list_head *__cil_tmp11 ;
57776  spinlock_t *__cil_tmp12 ;
57777  struct urb *__cil_tmp13 ;
57778  spinlock_t *__cil_tmp14 ;
57779  struct list_head  const  *__cil_tmp15 ;
57780  spinlock_t *__cil_tmp16 ;
57781
57782  {
57783  {
57784#line 445
57785  __cil_tmp9 = & ps->lock;
57786#line 445
57787  tmp = spinlock_check(__cil_tmp9);
57788#line 445
57789  flags = _raw_spin_lock_irqsave(tmp);
57790  }
57791#line 446
57792  goto ldv_30732;
57793  ldv_30731: 
57794  {
57795#line 447
57796  __cil_tmp10 = list->next;
57797#line 447
57798  __mptr = (struct list_head  const  *)__cil_tmp10;
57799#line 447
57800  as = (struct async *)__mptr;
57801#line 448
57802  __cil_tmp11 = & as->asynclist;
57803#line 448
57804  list_del_init(__cil_tmp11);
57805#line 451
57806  __cil_tmp12 = & ps->lock;
57807#line 451
57808  spin_unlock_irqrestore(__cil_tmp12, flags);
57809#line 452
57810  __cil_tmp13 = as->urb;
57811#line 452
57812  usb_kill_urb(__cil_tmp13);
57813#line 453
57814  __cil_tmp14 = & ps->lock;
57815#line 453
57816  tmp___0 = spinlock_check(__cil_tmp14);
57817#line 453
57818  flags = _raw_spin_lock_irqsave(tmp___0);
57819  }
57820  ldv_30732: 
57821  {
57822#line 446
57823  __cil_tmp15 = (struct list_head  const  *)list;
57824#line 446
57825  tmp___1 = list_empty(__cil_tmp15);
57826  }
57827#line 446
57828  if (tmp___1 == 0) {
57829#line 447
57830    goto ldv_30731;
57831  } else {
57832#line 449
57833    goto ldv_30733;
57834  }
57835  ldv_30733: 
57836  {
57837#line 455
57838  __cil_tmp16 = & ps->lock;
57839#line 455
57840  spin_unlock_irqrestore(__cil_tmp16, flags);
57841  }
57842#line 456
57843  return;
57844}
57845}
57846#line 458 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57847static void destroy_async_on_interface(struct dev_state *ps , unsigned int ifnum ) 
57848{ struct list_head *p ;
57849  struct list_head *q ;
57850  struct list_head hitlist ;
57851  unsigned long flags ;
57852  raw_spinlock_t *tmp ;
57853  struct list_head  const  *__mptr ;
57854  spinlock_t *__cil_tmp9 ;
57855  struct async *__cil_tmp10 ;
57856  unsigned int __cil_tmp11 ;
57857  unsigned long __cil_tmp12 ;
57858  struct list_head *__cil_tmp13 ;
57859  unsigned long __cil_tmp14 ;
57860  spinlock_t *__cil_tmp15 ;
57861
57862  {
57863  {
57864#line 464
57865  INIT_LIST_HEAD(& hitlist);
57866#line 465
57867  __cil_tmp9 = & ps->lock;
57868#line 465
57869  tmp = spinlock_check(__cil_tmp9);
57870#line 465
57871  flags = _raw_spin_lock_irqsave(tmp);
57872#line 466
57873  p = ps->async_pending.next;
57874#line 466
57875  q = p->next;
57876  }
57877#line 466
57878  goto ldv_30748;
57879  ldv_30747: 
57880#line 467
57881  __mptr = (struct list_head  const  *)p;
57882  {
57883#line 467
57884  __cil_tmp10 = (struct async *)__mptr;
57885#line 467
57886  __cil_tmp11 = __cil_tmp10->ifnum;
57887#line 467
57888  if (__cil_tmp11 == ifnum) {
57889    {
57890#line 468
57891    list_move_tail(p, & hitlist);
57892    }
57893  } else {
57894
57895  }
57896  }
57897#line 466
57898  p = q;
57899#line 466
57900  q = p->next;
57901  ldv_30748: ;
57902  {
57903#line 466
57904  __cil_tmp12 = (unsigned long )p;
57905#line 466
57906  __cil_tmp13 = & ps->async_pending;
57907#line 466
57908  __cil_tmp14 = (unsigned long )__cil_tmp13;
57909#line 466
57910  if (__cil_tmp14 != __cil_tmp12) {
57911#line 467
57912    goto ldv_30747;
57913  } else {
57914#line 469
57915    goto ldv_30749;
57916  }
57917  }
57918  ldv_30749: 
57919  {
57920#line 469
57921  __cil_tmp15 = & ps->lock;
57922#line 469
57923  spin_unlock_irqrestore(__cil_tmp15, flags);
57924#line 470
57925  destroy_async(ps, & hitlist);
57926  }
57927#line 471
57928  return;
57929}
57930}
57931#line 473 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57932static void destroy_all_async(struct dev_state *ps ) 
57933{ struct list_head *__cil_tmp2 ;
57934
57935  {
57936  {
57937#line 475
57938  __cil_tmp2 = & ps->async_pending;
57939#line 475
57940  destroy_async(ps, __cil_tmp2);
57941  }
57942#line 476
57943  return;
57944}
57945}
57946#line 484 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57947static int driver_probe(struct usb_interface *intf , struct usb_device_id  const  *id ) 
57948{ 
57949
57950  {
57951#line 487
57952  return (-19);
57953}
57954}
57955#line 490 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
57956static void driver_disconnect(struct usb_interface *intf ) 
57957{ struct dev_state *ps ;
57958  void *tmp ;
57959  unsigned int ifnum ;
57960  long tmp___0 ;
57961  struct usb_host_interface *__cil_tmp6 ;
57962  __u8 __cil_tmp7 ;
57963  struct dev_state *__cil_tmp8 ;
57964  unsigned long __cil_tmp9 ;
57965  unsigned long __cil_tmp10 ;
57966  int __cil_tmp11 ;
57967  long __cil_tmp12 ;
57968  int __cil_tmp13 ;
57969  unsigned long *__cil_tmp14 ;
57970  unsigned long volatile   *__cil_tmp15 ;
57971  struct device *__cil_tmp16 ;
57972  struct device  const  *__cil_tmp17 ;
57973  void *__cil_tmp18 ;
57974
57975  {
57976  {
57977#line 492
57978  tmp = usb_get_intfdata(intf);
57979#line 492
57980  ps = (struct dev_state *)tmp;
57981#line 493
57982  __cil_tmp6 = intf->altsetting;
57983#line 493
57984  __cil_tmp7 = __cil_tmp6->desc.bInterfaceNumber;
57985#line 493
57986  ifnum = (unsigned int )__cil_tmp7;
57987  }
57988  {
57989#line 495
57990  __cil_tmp8 = (struct dev_state *)0;
57991#line 495
57992  __cil_tmp9 = (unsigned long )__cil_tmp8;
57993#line 495
57994  __cil_tmp10 = (unsigned long )ps;
57995#line 495
57996  if (__cil_tmp10 == __cil_tmp9) {
57997#line 496
57998    return;
57999  } else {
58000
58001  }
58002  }
58003  {
58004#line 502
58005  __cil_tmp11 = ifnum <= 63U;
58006#line 502
58007  __cil_tmp12 = (long )__cil_tmp11;
58008#line 502
58009  tmp___0 = __builtin_expect(__cil_tmp12, 1L);
58010  }
58011#line 502
58012  if (tmp___0 != 0L) {
58013    {
58014#line 503
58015    __cil_tmp13 = (int )ifnum;
58016#line 503
58017    __cil_tmp14 = & ps->ifclaimed;
58018#line 503
58019    __cil_tmp15 = (unsigned long volatile   *)__cil_tmp14;
58020#line 503
58021    clear_bit(__cil_tmp13, __cil_tmp15);
58022    }
58023  } else {
58024    {
58025#line 505
58026    __cil_tmp16 = & intf->dev;
58027#line 505
58028    __cil_tmp17 = (struct device  const  *)__cil_tmp16;
58029#line 505
58030    dev_warn(__cil_tmp17, "interface number %u out of range\n", ifnum);
58031    }
58032  }
58033  {
58034#line 508
58035  __cil_tmp18 = (void *)0;
58036#line 508
58037  usb_set_intfdata(intf, __cil_tmp18);
58038#line 511
58039  destroy_async_on_interface(ps, ifnum);
58040  }
58041#line 512
58042  return;
58043}
58044}
58045#line 517 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58046static int driver_suspend(struct usb_interface *intf , pm_message_t msg ) 
58047{ 
58048
58049  {
58050#line 519
58051  return (0);
58052}
58053}
58054#line 522 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58055static int driver_resume(struct usb_interface *intf ) 
58056{ 
58057
58058  {
58059#line 524
58060  return (0);
58061}
58062}
58063#line 527 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58064struct usb_driver usbfs_driver  = 
58065#line 527
58066     {"usbfs", & driver_probe, & driver_disconnect, (int (*)(struct usb_interface * ,
58067                                                           unsigned int  , void * ))0,
58068    & driver_suspend, & driver_resume, (int (*)(struct usb_interface * ))0, (int (*)(struct usb_interface * ))0,
58069    (int (*)(struct usb_interface * ))0, (struct usb_device_id  const  *)0, {{{{{0U},
58070                                                                                0U,
58071                                                                                0U,
58072                                                                                (void *)0,
58073                                                                                {(struct lock_class_key *)0,
58074                                                                                 {(struct lock_class *)0,
58075                                                                                  (struct lock_class *)0},
58076                                                                                 (char const   *)0,
58077                                                                                 0,
58078                                                                                 0UL}}}},
58079                                                                             {(struct list_head *)0,
58080                                                                              (struct list_head *)0}},
58081    {{(char const   *)0, (struct bus_type *)0, (struct module *)0, (char const   *)0,
58082      (_Bool)0, (struct of_device_id  const  *)0, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
58083      (void (*)(struct device * ))0, (int (*)(struct device * , pm_message_t  ))0,
58084      (int (*)(struct device * ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
58085      (struct driver_private *)0}, 0}, (unsigned char)0, (unsigned char)0, (unsigned char)0};
58086#line 535 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58087static int claimintf(struct dev_state *ps , unsigned int ifnum ) 
58088{ struct usb_device *dev ;
58089  struct usb_interface *intf ;
58090  int err ;
58091  int tmp ;
58092  int __cil_tmp7 ;
58093  unsigned long *__cil_tmp8 ;
58094  unsigned long const volatile   *__cil_tmp9 ;
58095  struct usb_device  const  *__cil_tmp10 ;
58096  struct usb_interface *__cil_tmp11 ;
58097  unsigned long __cil_tmp12 ;
58098  unsigned long __cil_tmp13 ;
58099  void *__cil_tmp14 ;
58100  unsigned long *__cil_tmp15 ;
58101  unsigned long volatile   *__cil_tmp16 ;
58102
58103  {
58104#line 537
58105  dev = ps->dev;
58106#line 541
58107  if (ifnum > 63U) {
58108#line 542
58109    return (-22);
58110  } else {
58111
58112  }
58113  {
58114#line 544
58115  __cil_tmp7 = (int )ifnum;
58116#line 544
58117  __cil_tmp8 = & ps->ifclaimed;
58118#line 544
58119  __cil_tmp9 = (unsigned long const volatile   *)__cil_tmp8;
58120#line 544
58121  tmp = variable_test_bit(__cil_tmp7, __cil_tmp9);
58122  }
58123#line 544
58124  if (tmp != 0) {
58125#line 545
58126    return (0);
58127  } else {
58128
58129  }
58130  {
58131#line 547
58132  __cil_tmp10 = (struct usb_device  const  *)dev;
58133#line 547
58134  intf = usb_ifnum_to_if(__cil_tmp10, ifnum);
58135  }
58136  {
58137#line 548
58138  __cil_tmp11 = (struct usb_interface *)0;
58139#line 548
58140  __cil_tmp12 = (unsigned long )__cil_tmp11;
58141#line 548
58142  __cil_tmp13 = (unsigned long )intf;
58143#line 548
58144  if (__cil_tmp13 == __cil_tmp12) {
58145#line 549
58146    err = -2;
58147  } else {
58148    {
58149#line 551
58150    __cil_tmp14 = (void *)ps;
58151#line 551
58152    err = usb_driver_claim_interface(& usbfs_driver, intf, __cil_tmp14);
58153    }
58154  }
58155  }
58156#line 552
58157  if (err == 0) {
58158    {
58159#line 553
58160    __cil_tmp15 = & ps->ifclaimed;
58161#line 553
58162    __cil_tmp16 = (unsigned long volatile   *)__cil_tmp15;
58163#line 553
58164    set_bit(ifnum, __cil_tmp16);
58165    }
58166  } else {
58167
58168  }
58169#line 554
58170  return (err);
58171}
58172}
58173#line 557 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58174static int releaseintf(struct dev_state *ps , unsigned int ifnum ) 
58175{ struct usb_device *dev ;
58176  struct usb_interface *intf ;
58177  int err ;
58178  int tmp ;
58179  struct usb_device  const  *__cil_tmp7 ;
58180  struct usb_interface *__cil_tmp8 ;
58181  unsigned long __cil_tmp9 ;
58182  unsigned long __cil_tmp10 ;
58183  int __cil_tmp11 ;
58184  unsigned long *__cil_tmp12 ;
58185  unsigned long volatile   *__cil_tmp13 ;
58186
58187  {
58188#line 563
58189  err = -22;
58190#line 564
58191  if (ifnum > 63U) {
58192#line 565
58193    return (err);
58194  } else {
58195
58196  }
58197  {
58198#line 566
58199  dev = ps->dev;
58200#line 567
58201  __cil_tmp7 = (struct usb_device  const  *)dev;
58202#line 567
58203  intf = usb_ifnum_to_if(__cil_tmp7, ifnum);
58204  }
58205  {
58206#line 568
58207  __cil_tmp8 = (struct usb_interface *)0;
58208#line 568
58209  __cil_tmp9 = (unsigned long )__cil_tmp8;
58210#line 568
58211  __cil_tmp10 = (unsigned long )intf;
58212#line 568
58213  if (__cil_tmp10 == __cil_tmp9) {
58214#line 569
58215    err = -2;
58216  } else {
58217    {
58218#line 570
58219    __cil_tmp11 = (int )ifnum;
58220#line 570
58221    __cil_tmp12 = & ps->ifclaimed;
58222#line 570
58223    __cil_tmp13 = (unsigned long volatile   *)__cil_tmp12;
58224#line 570
58225    tmp = test_and_clear_bit(__cil_tmp11, __cil_tmp13);
58226    }
58227#line 570
58228    if (tmp != 0) {
58229      {
58230#line 571
58231      usb_driver_release_interface(& usbfs_driver, intf);
58232#line 572
58233      err = 0;
58234      }
58235    } else {
58236
58237    }
58238  }
58239  }
58240#line 574
58241  return (err);
58242}
58243}
58244#line 577 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58245static int checkintf(struct dev_state *ps , unsigned int ifnum ) 
58246{ int tmp ;
58247  struct task_struct *tmp___0 ;
58248  struct task_struct *tmp___1 ;
58249  pid_t tmp___2 ;
58250  int tmp___3 ;
58251  struct usb_device *__cil_tmp8 ;
58252  enum usb_device_state __cil_tmp9 ;
58253  unsigned int __cil_tmp10 ;
58254  int __cil_tmp11 ;
58255  unsigned long *__cil_tmp12 ;
58256  unsigned long const volatile   *__cil_tmp13 ;
58257  struct usb_device *__cil_tmp14 ;
58258  struct device *__cil_tmp15 ;
58259  struct device  const  *__cil_tmp16 ;
58260  char (*__cil_tmp17)[16U] ;
58261  char *__cil_tmp18 ;
58262
58263  {
58264  {
58265#line 579
58266  __cil_tmp8 = ps->dev;
58267#line 579
58268  __cil_tmp9 = __cil_tmp8->state;
58269#line 579
58270  __cil_tmp10 = (unsigned int )__cil_tmp9;
58271#line 579
58272  if (__cil_tmp10 != 7U) {
58273#line 580
58274    return (-113);
58275  } else {
58276
58277  }
58278  }
58279#line 581
58280  if (ifnum > 63U) {
58281#line 582
58282    return (-22);
58283  } else {
58284
58285  }
58286  {
58287#line 583
58288  __cil_tmp11 = (int )ifnum;
58289#line 583
58290  __cil_tmp12 = & ps->ifclaimed;
58291#line 583
58292  __cil_tmp13 = (unsigned long const volatile   *)__cil_tmp12;
58293#line 583
58294  tmp = variable_test_bit(__cil_tmp11, __cil_tmp13);
58295  }
58296#line 583
58297  if (tmp != 0) {
58298#line 584
58299    return (0);
58300  } else {
58301
58302  }
58303  {
58304#line 586
58305  tmp___0 = get_current();
58306#line 586
58307  tmp___1 = get_current();
58308#line 586
58309  tmp___2 = task_pid_nr(tmp___1);
58310#line 586
58311  __cil_tmp14 = ps->dev;
58312#line 586
58313  __cil_tmp15 = & __cil_tmp14->dev;
58314#line 586
58315  __cil_tmp16 = (struct device  const  *)__cil_tmp15;
58316#line 586
58317  __cil_tmp17 = & tmp___0->comm;
58318#line 586
58319  __cil_tmp18 = (char *)__cil_tmp17;
58320#line 586
58321  dev_warn(__cil_tmp16, "usbfs: process %d (%s) did not claim interface %u before use\n",
58322           tmp___2, __cil_tmp18, ifnum);
58323#line 589
58324  tmp___3 = claimintf(ps, ifnum);
58325  }
58326#line 589
58327  return (tmp___3);
58328}
58329}
58330#line 592 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58331static int findintfep(struct usb_device *dev , unsigned int ep ) 
58332{ unsigned int i ;
58333  unsigned int j ;
58334  unsigned int e ;
58335  struct usb_interface *intf ;
58336  struct usb_host_interface *alts ;
58337  struct usb_endpoint_descriptor *endpt ;
58338  unsigned int __cil_tmp9 ;
58339  struct usb_host_config *__cil_tmp10 ;
58340  unsigned long __cil_tmp11 ;
58341  struct usb_host_config *__cil_tmp12 ;
58342  unsigned long __cil_tmp13 ;
58343  struct usb_host_config *__cil_tmp14 ;
58344  unsigned long __cil_tmp15 ;
58345  struct usb_host_interface *__cil_tmp16 ;
58346  unsigned long __cil_tmp17 ;
58347  struct usb_host_endpoint *__cil_tmp18 ;
58348  struct usb_host_endpoint *__cil_tmp19 ;
58349  __u8 __cil_tmp20 ;
58350  unsigned int __cil_tmp21 ;
58351  __u8 __cil_tmp22 ;
58352  __u8 __cil_tmp23 ;
58353  unsigned int __cil_tmp24 ;
58354  unsigned int __cil_tmp25 ;
58355  struct usb_host_config *__cil_tmp26 ;
58356  __u8 __cil_tmp27 ;
58357  unsigned int __cil_tmp28 ;
58358
58359  {
58360  {
58361#line 599
58362  __cil_tmp9 = ep & 4294967152U;
58363#line 599
58364  if (__cil_tmp9 != 0U) {
58365#line 600
58366    return (-22);
58367  } else {
58368
58369  }
58370  }
58371  {
58372#line 601
58373  __cil_tmp10 = (struct usb_host_config *)0;
58374#line 601
58375  __cil_tmp11 = (unsigned long )__cil_tmp10;
58376#line 601
58377  __cil_tmp12 = dev->actconfig;
58378#line 601
58379  __cil_tmp13 = (unsigned long )__cil_tmp12;
58380#line 601
58381  if (__cil_tmp13 == __cil_tmp11) {
58382#line 602
58383    return (-3);
58384  } else {
58385
58386  }
58387  }
58388#line 603
58389  i = 0U;
58390#line 603
58391  goto ldv_30805;
58392  ldv_30804: 
58393#line 604
58394  __cil_tmp14 = dev->actconfig;
58395#line 604
58396  intf = __cil_tmp14->interface[i];
58397#line 605
58398  j = 0U;
58399#line 605
58400  goto ldv_30802;
58401  ldv_30801: 
58402#line 606
58403  __cil_tmp15 = (unsigned long )j;
58404#line 606
58405  __cil_tmp16 = intf->altsetting;
58406#line 606
58407  alts = __cil_tmp16 + __cil_tmp15;
58408#line 607
58409  e = 0U;
58410#line 607
58411  goto ldv_30799;
58412  ldv_30798: 
58413#line 608
58414  __cil_tmp17 = (unsigned long )e;
58415#line 608
58416  __cil_tmp18 = alts->endpoint;
58417#line 608
58418  __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
58419#line 608
58420  endpt = & __cil_tmp19->desc;
58421  {
58422#line 609
58423  __cil_tmp20 = endpt->bEndpointAddress;
58424#line 609
58425  __cil_tmp21 = (unsigned int )__cil_tmp20;
58426#line 609
58427  if (__cil_tmp21 == ep) {
58428    {
58429#line 610
58430    __cil_tmp22 = alts->desc.bInterfaceNumber;
58431#line 610
58432    return ((int )__cil_tmp22);
58433    }
58434  } else {
58435
58436  }
58437  }
58438#line 607
58439  e = e + 1U;
58440  ldv_30799: ;
58441  {
58442#line 607
58443  __cil_tmp23 = alts->desc.bNumEndpoints;
58444#line 607
58445  __cil_tmp24 = (unsigned int )__cil_tmp23;
58446#line 607
58447  if (__cil_tmp24 > e) {
58448#line 608
58449    goto ldv_30798;
58450  } else {
58451#line 610
58452    goto ldv_30800;
58453  }
58454  }
58455  ldv_30800: 
58456#line 605
58457  j = j + 1U;
58458  ldv_30802: ;
58459  {
58460#line 605
58461  __cil_tmp25 = intf->num_altsetting;
58462#line 605
58463  if (__cil_tmp25 > j) {
58464#line 606
58465    goto ldv_30801;
58466  } else {
58467#line 608
58468    goto ldv_30803;
58469  }
58470  }
58471  ldv_30803: 
58472#line 603
58473  i = i + 1U;
58474  ldv_30805: ;
58475  {
58476#line 603
58477  __cil_tmp26 = dev->actconfig;
58478#line 603
58479  __cil_tmp27 = __cil_tmp26->desc.bNumInterfaces;
58480#line 603
58481  __cil_tmp28 = (unsigned int )__cil_tmp27;
58482#line 603
58483  if (__cil_tmp28 > i) {
58484#line 604
58485    goto ldv_30804;
58486  } else {
58487#line 606
58488    goto ldv_30806;
58489  }
58490  }
58491  ldv_30806: ;
58492#line 614
58493  return (-2);
58494}
58495}
58496#line 617 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58497static int check_ctrlrecip(struct dev_state *ps , unsigned int requesttype , unsigned int index ) 
58498{ int ret ;
58499  struct usb_device *__cil_tmp5 ;
58500  enum usb_device_state __cil_tmp6 ;
58501  unsigned int __cil_tmp7 ;
58502  struct usb_device *__cil_tmp8 ;
58503  enum usb_device_state __cil_tmp9 ;
58504  unsigned int __cil_tmp10 ;
58505  struct usb_device *__cil_tmp11 ;
58506  enum usb_device_state __cil_tmp12 ;
58507  unsigned int __cil_tmp13 ;
58508  unsigned int __cil_tmp14 ;
58509  unsigned int __cil_tmp15 ;
58510  int __cil_tmp16 ;
58511  unsigned int __cil_tmp17 ;
58512  int __cil_tmp18 ;
58513  struct usb_device *__cil_tmp19 ;
58514  unsigned int __cil_tmp20 ;
58515
58516  {
58517#line 620
58518  ret = 0;
58519  {
58520#line 622
58521  __cil_tmp5 = ps->dev;
58522#line 622
58523  __cil_tmp6 = __cil_tmp5->state;
58524#line 622
58525  __cil_tmp7 = (unsigned int )__cil_tmp6;
58526#line 622
58527  if (__cil_tmp7 != 4U) {
58528    {
58529#line 622
58530    __cil_tmp8 = ps->dev;
58531#line 622
58532    __cil_tmp9 = __cil_tmp8->state;
58533#line 622
58534    __cil_tmp10 = (unsigned int )__cil_tmp9;
58535#line 622
58536    if (__cil_tmp10 != 6U) {
58537      {
58538#line 622
58539      __cil_tmp11 = ps->dev;
58540#line 622
58541      __cil_tmp12 = __cil_tmp11->state;
58542#line 622
58543      __cil_tmp13 = (unsigned int )__cil_tmp12;
58544#line 622
58545      if (__cil_tmp13 != 7U) {
58546#line 625
58547        return (-113);
58548      } else {
58549
58550      }
58551      }
58552    } else {
58553
58554    }
58555    }
58556  } else {
58557
58558  }
58559  }
58560  {
58561#line 626
58562  __cil_tmp14 = requesttype & 96U;
58563#line 626
58564  if (__cil_tmp14 == 64U) {
58565#line 627
58566    return (0);
58567  } else {
58568
58569  }
58570  }
58571#line 629
58572  index = index & 255U;
58573  {
58574#line 631
58575  __cil_tmp15 = requesttype & 31U;
58576#line 631
58577  __cil_tmp16 = (int )__cil_tmp15;
58578#line 631
58579  if (__cil_tmp16 == 2) {
58580#line 631
58581    goto case_2;
58582  } else {
58583    {
58584#line 637
58585    __cil_tmp17 = requesttype & 31U;
58586#line 637
58587    __cil_tmp18 = (int )__cil_tmp17;
58588#line 637
58589    if (__cil_tmp18 == 1) {
58590#line 637
58591      goto case_1;
58592    } else
58593#line 630
58594    if (0) {
58595      case_2: 
58596      {
58597#line 632
58598      __cil_tmp19 = ps->dev;
58599#line 632
58600      ret = findintfep(__cil_tmp19, index);
58601      }
58602#line 633
58603      if (ret >= 0) {
58604        {
58605#line 634
58606        __cil_tmp20 = (unsigned int )ret;
58607#line 634
58608        ret = checkintf(ps, __cil_tmp20);
58609        }
58610      } else {
58611
58612      }
58613#line 635
58614      goto ldv_30814;
58615      case_1: 
58616      {
58617#line 638
58618      ret = checkintf(ps, index);
58619      }
58620#line 639
58621      goto ldv_30814;
58622    } else {
58623
58624    }
58625    }
58626  }
58627  }
58628  ldv_30814: ;
58629#line 641
58630  return (ret);
58631}
58632}
58633#line 644 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58634static int match_devt(struct device *dev , void *data ) 
58635{ long __cil_tmp3 ;
58636  dev_t __cil_tmp4 ;
58637  dev_t __cil_tmp5 ;
58638
58639  {
58640  {
58641#line 646
58642  __cil_tmp3 = (long )data;
58643#line 646
58644  __cil_tmp4 = (dev_t )__cil_tmp3;
58645#line 646
58646  __cil_tmp5 = dev->devt;
58647#line 646
58648  return (__cil_tmp5 == __cil_tmp4);
58649  }
58650}
58651}
58652#line 649 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58653static struct usb_device *usbdev_lookup_by_devt(dev_t devt ) 
58654{ struct device *dev ;
58655  struct device  const  *__mptr ;
58656  struct device *__cil_tmp4 ;
58657  unsigned long __cil_tmp5 ;
58658  void *__cil_tmp6 ;
58659  struct device *__cil_tmp7 ;
58660  unsigned long __cil_tmp8 ;
58661  unsigned long __cil_tmp9 ;
58662  struct usb_device *__cil_tmp10 ;
58663
58664  {
58665  {
58666#line 653
58667  __cil_tmp4 = (struct device *)0;
58668#line 653
58669  __cil_tmp5 = (unsigned long )devt;
58670#line 653
58671  __cil_tmp6 = (void *)__cil_tmp5;
58672#line 653
58673  dev = bus_find_device(& usb_bus_type, __cil_tmp4, __cil_tmp6, & match_devt);
58674  }
58675  {
58676#line 655
58677  __cil_tmp7 = (struct device *)0;
58678#line 655
58679  __cil_tmp8 = (unsigned long )__cil_tmp7;
58680#line 655
58681  __cil_tmp9 = (unsigned long )dev;
58682#line 655
58683  if (__cil_tmp9 == __cil_tmp8) {
58684#line 656
58685    return ((struct usb_device *)0);
58686  } else {
58687
58688  }
58689  }
58690#line 657
58691  __mptr = (struct device  const  *)dev;
58692  {
58693#line 657
58694  __cil_tmp10 = (struct usb_device *)__mptr;
58695#line 657
58696  return (__cil_tmp10 + 1152921504606846840UL);
58697  }
58698}
58699}
58700#line 663 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
58701static int usbdev_open(struct inode *inode , struct file *file ) 
58702{ struct usb_device *dev ;
58703  struct dev_state *ps ;
58704  struct cred  const  *cred ;
58705  struct task_struct *tmp ;
58706  int ret ;
58707  void *tmp___0 ;
58708  unsigned int tmp___1 ;
58709  struct lock_class_key __key ;
58710  struct lock_class_key __key___0 ;
58711  struct task_struct *tmp___2 ;
58712  struct pid *tmp___3 ;
58713  struct task_struct *tmp___4 ;
58714  struct task_struct *tmp___5 ;
58715  struct task_struct *tmp___6 ;
58716  pid_t tmp___7 ;
58717  struct dev_state *__cil_tmp18 ;
58718  unsigned long __cil_tmp19 ;
58719  unsigned long __cil_tmp20 ;
58720  struct inode  const  *__cil_tmp21 ;
58721  dev_t __cil_tmp22 ;
58722  struct usb_device *__cil_tmp23 ;
58723  unsigned long __cil_tmp24 ;
58724  unsigned long __cil_tmp25 ;
58725  void *__cil_tmp26 ;
58726  struct usb_device *__cil_tmp27 ;
58727  unsigned long __cil_tmp28 ;
58728  unsigned long __cil_tmp29 ;
58729  struct dentry *__cil_tmp30 ;
58730  unsigned long __cil_tmp31 ;
58731  struct dentry *__cil_tmp32 ;
58732  unsigned long __cil_tmp33 ;
58733  unsigned long __cil_tmp34 ;
58734  struct dentry *__cil_tmp35 ;
58735  struct inode *__cil_tmp36 ;
58736  unsigned long __cil_tmp37 ;
58737  struct usb_device *__cil_tmp38 ;
58738  unsigned long __cil_tmp39 ;
58739  unsigned long __cil_tmp40 ;
58740  struct device *__cil_tmp41 ;
58741  enum usb_device_state __cil_tmp42 ;
58742  unsigned int __cil_tmp43 ;
58743  spinlock_t *__cil_tmp44 ;
58744  struct raw_spinlock *__cil_tmp45 ;
58745  struct list_head *__cil_tmp46 ;
58746  struct list_head *__cil_tmp47 ;
58747  struct list_head *__cil_tmp48 ;
58748  wait_queue_head_t *__cil_tmp49 ;
58749  uid_t __cil_tmp50 ;
58750  uid_t __cil_tmp51 ;
58751  u32 *__cil_tmp52 ;
58752  struct list_head *__cil_tmp53 ;
58753  struct list_head *__cil_tmp54 ;
58754  struct device *__cil_tmp55 ;
58755  struct device *__cil_tmp56 ;
58756  struct device  const  *__cil_tmp57 ;
58757  char (*__cil_tmp58)[16U] ;
58758  char *__cil_tmp59 ;
58759  struct device *__cil_tmp60 ;
58760  void const   *__cil_tmp61 ;
58761
58762  {
58763  {
58764#line 665
58765  dev = (struct usb_device *)0;
58766#line 667
58767  tmp = get_current();
58768#line 667
58769  cred = tmp->cred;
58770#line 670
58771  ret = -12;
58772#line 671
58773  tmp___0 = kmalloc(272UL, 208U);
58774#line 671
58775  ps = (struct dev_state *)tmp___0;
58776  }
58777  {
58778#line 672
58779  __cil_tmp18 = (struct dev_state *)0;
58780#line 672
58781  __cil_tmp19 = (unsigned long )__cil_tmp18;
58782#line 672
58783  __cil_tmp20 = (unsigned long )ps;
58784#line 672
58785  if (__cil_tmp20 == __cil_tmp19) {
58786#line 673
58787    goto out_free_ps;
58788  } else {
58789
58790  }
58791  }
58792  {
58793#line 675
58794  ret = -19;
58795#line 678
58796  mutex_lock_nested(& usbfs_mutex, 0U);
58797#line 681
58798  __cil_tmp21 = (struct inode  const  *)inode;
58799#line 681
58800  tmp___1 = imajor(__cil_tmp21);
58801  }
58802#line 681
58803  if (tmp___1 == 189U) {
58804    {
58805#line 682
58806    __cil_tmp22 = inode->i_rdev;
58807#line 682
58808    dev = usbdev_lookup_by_devt(__cil_tmp22);
58809    }
58810  } else {
58811
58812  }
58813  {
58814#line 686
58815  __cil_tmp23 = (struct usb_device *)0;
58816#line 686
58817  __cil_tmp24 = (unsigned long )__cil_tmp23;
58818#line 686
58819  __cil_tmp25 = (unsigned long )dev;
58820#line 686
58821  if (__cil_tmp25 == __cil_tmp24) {
58822#line 687
58823    __cil_tmp26 = inode->i_private;
58824#line 687
58825    dev = (struct usb_device *)__cil_tmp26;
58826    {
58827#line 688
58828    __cil_tmp27 = (struct usb_device *)0;
58829#line 688
58830    __cil_tmp28 = (unsigned long )__cil_tmp27;
58831#line 688
58832    __cil_tmp29 = (unsigned long )dev;
58833#line 688
58834    if (__cil_tmp29 != __cil_tmp28) {
58835      {
58836#line 688
58837      __cil_tmp30 = (struct dentry *)0;
58838#line 688
58839      __cil_tmp31 = (unsigned long )__cil_tmp30;
58840#line 688
58841      __cil_tmp32 = dev->usbfs_dentry;
58842#line 688
58843      __cil_tmp33 = (unsigned long )__cil_tmp32;
58844#line 688
58845      if (__cil_tmp33 != __cil_tmp31) {
58846        {
58847#line 688
58848        __cil_tmp34 = (unsigned long )inode;
58849#line 688
58850        __cil_tmp35 = dev->usbfs_dentry;
58851#line 688
58852        __cil_tmp36 = __cil_tmp35->d_inode;
58853#line 688
58854        __cil_tmp37 = (unsigned long )__cil_tmp36;
58855#line 688
58856        if (__cil_tmp37 == __cil_tmp34) {
58857          {
58858#line 690
58859          usb_get_dev(dev);
58860          }
58861        } else {
58862#line 692
58863          dev = (struct usb_device *)0;
58864        }
58865        }
58866      } else {
58867#line 692
58868        dev = (struct usb_device *)0;
58869      }
58870      }
58871    } else {
58872#line 692
58873      dev = (struct usb_device *)0;
58874    }
58875    }
58876  } else {
58877
58878  }
58879  }
58880  {
58881#line 695
58882  mutex_unlock(& usbfs_mutex);
58883  }
58884  {
58885#line 697
58886  __cil_tmp38 = (struct usb_device *)0;
58887#line 697
58888  __cil_tmp39 = (unsigned long )__cil_tmp38;
58889#line 697
58890  __cil_tmp40 = (unsigned long )dev;
58891#line 697
58892  if (__cil_tmp40 == __cil_tmp39) {
58893#line 698
58894    goto out_free_ps;
58895  } else {
58896
58897  }
58898  }
58899  {
58900#line 700
58901  __cil_tmp41 = & dev->dev;
58902#line 700
58903  device_lock(__cil_tmp41);
58904  }
58905  {
58906#line 701
58907  __cil_tmp42 = dev->state;
58908#line 701
58909  __cil_tmp43 = (unsigned int )__cil_tmp42;
58910#line 701
58911  if (__cil_tmp43 == 0U) {
58912#line 702
58913    goto out_unlock_device;
58914  } else {
58915
58916  }
58917  }
58918  {
58919#line 704
58920  ret = usb_autoresume_device(dev);
58921  }
58922#line 705
58923  if (ret != 0) {
58924#line 706
58925    goto out_unlock_device;
58926  } else {
58927
58928  }
58929  {
58930#line 708
58931  ps->dev = dev;
58932#line 709
58933  ps->file = file;
58934#line 710
58935  __cil_tmp44 = & ps->lock;
58936#line 710
58937  spinlock_check(__cil_tmp44);
58938#line 710
58939  __cil_tmp45 = & ps->lock.ldv_6060.rlock;
58940#line 710
58941  __raw_spin_lock_init(__cil_tmp45, "&(&ps->lock)->rlock", & __key);
58942#line 711
58943  __cil_tmp46 = & ps->list;
58944#line 711
58945  INIT_LIST_HEAD(__cil_tmp46);
58946#line 712
58947  __cil_tmp47 = & ps->async_pending;
58948#line 712
58949  INIT_LIST_HEAD(__cil_tmp47);
58950#line 713
58951  __cil_tmp48 = & ps->async_completed;
58952#line 713
58953  INIT_LIST_HEAD(__cil_tmp48);
58954#line 714
58955  __cil_tmp49 = & ps->wait;
58956#line 714
58957  __init_waitqueue_head(__cil_tmp49, & __key___0);
58958#line 715
58959  ps->discsignr = 0U;
58960#line 716
58961  tmp___2 = get_current();
58962#line 716
58963  tmp___3 = task_pid(tmp___2);
58964#line 716
58965  ps->disc_pid = get_pid(tmp___3);
58966#line 717
58967  __cil_tmp50 = cred->uid;
58968#line 717
58969  ps->disc_uid = (uid_t )__cil_tmp50;
58970#line 718
58971  __cil_tmp51 = cred->euid;
58972#line 718
58973  ps->disc_euid = (uid_t )__cil_tmp51;
58974#line 719
58975  ps->disccontext = (void *)0;
58976#line 720
58977  ps->ifclaimed = 0UL;
58978#line 721
58979  tmp___4 = get_current();
58980#line 721
58981  __cil_tmp52 = & ps->secid;
58982#line 721
58983  security_task_getsecid(tmp___4, __cil_tmp52);
58984#line 722
58985  __asm__  volatile   ("": : : "memory");
58986#line 723
58987  __cil_tmp53 = & ps->list;
58988#line 723
58989  __cil_tmp54 = & dev->filelist;
58990#line 723
58991  list_add_tail(__cil_tmp53, __cil_tmp54);
58992#line 724
58993  file->private_data = (void *)ps;
58994#line 725
58995  __cil_tmp55 = & dev->dev;
58996#line 725
58997  device_unlock(__cil_tmp55);
58998  }
58999#line 726
59000  if (usbfs_snoop != 0) {
59001    {
59002#line 726
59003    tmp___5 = get_current();
59004#line 726
59005    tmp___6 = get_current();
59006#line 726
59007    tmp___7 = task_pid_nr(tmp___6);
59008#line 726
59009    __cil_tmp56 = & dev->dev;
59010#line 726
59011    __cil_tmp57 = (struct device  const  *)__cil_tmp56;
59012#line 726
59013    __cil_tmp58 = & tmp___5->comm;
59014#line 726
59015    __cil_tmp59 = (char *)__cil_tmp58;
59016#line 726
59017    _dev_info(__cil_tmp57, "opened by process %d: %s\n", tmp___7, __cil_tmp59);
59018    }
59019  } else {
59020
59021  }
59022#line 728
59023  return (ret);
59024  out_unlock_device: 
59025  {
59026#line 731
59027  __cil_tmp60 = & dev->dev;
59028#line 731
59029  device_unlock(__cil_tmp60);
59030#line 732
59031  usb_put_dev(dev);
59032  }
59033  out_free_ps: 
59034  {
59035#line 734
59036  __cil_tmp61 = (void const   *)ps;
59037#line 734
59038  kfree(__cil_tmp61);
59039  }
59040#line 735
59041  return (ret);
59042}
59043}
59044#line 738 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
59045static int usbdev_release(struct inode *inode , struct file *file ) 
59046{ struct dev_state *ps ;
59047  struct usb_device *dev ;
59048  unsigned int ifnum ;
59049  struct async *as ;
59050  int tmp ;
59051  void *__cil_tmp8 ;
59052  struct device *__cil_tmp9 ;
59053  void *__cil_tmp10 ;
59054  struct list_head *__cil_tmp11 ;
59055  int __cil_tmp12 ;
59056  unsigned long *__cil_tmp13 ;
59057  unsigned long const volatile   *__cil_tmp14 ;
59058  unsigned long __cil_tmp15 ;
59059  struct device *__cil_tmp16 ;
59060  struct pid *__cil_tmp17 ;
59061  struct async *__cil_tmp18 ;
59062  unsigned long __cil_tmp19 ;
59063  unsigned long __cil_tmp20 ;
59064  void const   *__cil_tmp21 ;
59065
59066  {
59067  {
59068#line 740
59069  __cil_tmp8 = file->private_data;
59070#line 740
59071  ps = (struct dev_state *)__cil_tmp8;
59072#line 741
59073  dev = ps->dev;
59074#line 745
59075  __cil_tmp9 = & dev->dev;
59076#line 745
59077  device_lock(__cil_tmp9);
59078#line 746
59079  __cil_tmp10 = (void *)ps;
59080#line 746
59081  usb_hub_release_all_ports(dev, __cil_tmp10);
59082#line 748
59083  __cil_tmp11 = & ps->list;
59084#line 748
59085  list_del_init(__cil_tmp11);
59086#line 750
59087  ifnum = 0U;
59088  }
59089#line 750
59090  goto ldv_30847;
59091  ldv_30846: 
59092  {
59093#line 752
59094  __cil_tmp12 = (int )ifnum;
59095#line 752
59096  __cil_tmp13 = & ps->ifclaimed;
59097#line 752
59098  __cil_tmp14 = (unsigned long const volatile   *)__cil_tmp13;
59099#line 752
59100  tmp = variable_test_bit(__cil_tmp12, __cil_tmp14);
59101  }
59102#line 752
59103  if (tmp != 0) {
59104    {
59105#line 753
59106    releaseintf(ps, ifnum);
59107    }
59108  } else {
59109
59110  }
59111#line 751
59112  ifnum = ifnum + 1U;
59113  ldv_30847: ;
59114  {
59115#line 750
59116  __cil_tmp15 = ps->ifclaimed;
59117#line 750
59118  if (__cil_tmp15 != 0UL) {
59119#line 750
59120    if (ifnum <= 63U) {
59121#line 751
59122      goto ldv_30846;
59123    } else {
59124#line 753
59125      goto ldv_30848;
59126    }
59127  } else {
59128#line 753
59129    goto ldv_30848;
59130  }
59131  }
59132  ldv_30848: 
59133  {
59134#line 755
59135  destroy_all_async(ps);
59136#line 756
59137  usb_autosuspend_device(dev);
59138#line 757
59139  __cil_tmp16 = & dev->dev;
59140#line 757
59141  device_unlock(__cil_tmp16);
59142#line 758
59143  usb_put_dev(dev);
59144#line 759
59145  __cil_tmp17 = ps->disc_pid;
59146#line 759
59147  put_pid(__cil_tmp17);
59148#line 761
59149  as = async_getcompleted(ps);
59150  }
59151#line 762
59152  goto ldv_30850;
59153  ldv_30849: 
59154  {
59155#line 763
59156  free_async(as);
59157#line 764
59158  as = async_getcompleted(ps);
59159  }
59160  ldv_30850: ;
59161  {
59162#line 762
59163  __cil_tmp18 = (struct async *)0;
59164#line 762
59165  __cil_tmp19 = (unsigned long )__cil_tmp18;
59166#line 762
59167  __cil_tmp20 = (unsigned long )as;
59168#line 762
59169  if (__cil_tmp20 != __cil_tmp19) {
59170#line 763
59171    goto ldv_30849;
59172  } else {
59173#line 765
59174    goto ldv_30851;
59175  }
59176  }
59177  ldv_30851: 
59178  {
59179#line 766
59180  __cil_tmp21 = (void const   *)ps;
59181#line 766
59182  kfree(__cil_tmp21);
59183  }
59184#line 767
59185  return (0);
59186}
59187}
59188#line 770 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
59189static int proc_control(struct dev_state *ps , void *arg ) 
59190{ struct usb_device *dev ;
59191  struct usbdevfs_ctrltransfer ctrl ;
59192  unsigned int tmo ;
59193  unsigned char *tbuf ;
59194  unsigned int wLength ;
59195  int i ;
59196  int pipe ;
59197  int ret ;
59198  unsigned long tmp ;
59199  unsigned long tmp___0 ;
59200  __u16 tmp___1 ;
59201  __u16 tmp___2 ;
59202  __u16 tmp___3 ;
59203  unsigned long flag ;
59204  unsigned long roksum ;
59205  struct thread_info *tmp___4 ;
59206  long tmp___5 ;
59207  unsigned int tmp___6 ;
59208  int _max1 ;
59209  int _max2 ;
59210  int tmp___7 ;
59211  int _min1 ;
59212  int _min2 ;
59213  int tmp___8 ;
59214  int _max1___0 ;
59215  int _max2___0 ;
59216  int tmp___9 ;
59217  int tmp___10 ;
59218  unsigned long tmp___11 ;
59219  unsigned int tmp___12 ;
59220  unsigned int tmp___13 ;
59221  int _min1___0 ;
59222  int _min2___0 ;
59223  int tmp___14 ;
59224  int _max1___1 ;
59225  int _max2___1 ;
59226  int tmp___15 ;
59227  struct task_struct *tmp___16 ;
59228  void *__cil_tmp41 ;
59229  void const   *__cil_tmp42 ;
59230  unsigned int __cil_tmp43 ;
59231  unsigned int __cil_tmp44 ;
59232  unsigned char *__cil_tmp45 ;
59233  unsigned long __cil_tmp46 ;
59234  unsigned long __cil_tmp47 ;
59235  __u16 *__cil_tmp48 ;
59236  __le16 const   *__cil_tmp49 ;
59237  __u16 *__cil_tmp50 ;
59238  __le16 const   *__cil_tmp51 ;
59239  __u16 *__cil_tmp52 ;
59240  __le16 const   *__cil_tmp53 ;
59241  struct device *__cil_tmp54 ;
59242  struct device  const  *__cil_tmp55 ;
59243  int __cil_tmp56 ;
59244  int __cil_tmp57 ;
59245  int __cil_tmp58 ;
59246  int __cil_tmp59 ;
59247  int __cil_tmp60 ;
59248  signed char __cil_tmp61 ;
59249  int __cil_tmp62 ;
59250  unsigned int __cil_tmp63 ;
59251  int __cil_tmp64 ;
59252  long __cil_tmp65 ;
59253  unsigned long __cil_tmp66 ;
59254  unsigned int __cil_tmp67 ;
59255  void *__cil_tmp68 ;
59256  unsigned int __cil_tmp69 ;
59257  int __cil_tmp70 ;
59258  enum snoop_when __cil_tmp71 ;
59259  unsigned char *__cil_tmp72 ;
59260  struct device *__cil_tmp73 ;
59261  unsigned int __cil_tmp74 ;
59262  int __cil_tmp75 ;
59263  __u8 __cil_tmp76 ;
59264  int __cil_tmp77 ;
59265  __u8 __cil_tmp78 ;
59266  int __cil_tmp79 ;
59267  __u16 __cil_tmp80 ;
59268  int __cil_tmp81 ;
59269  __u16 __cil_tmp82 ;
59270  void *__cil_tmp83 ;
59271  int __cil_tmp84 ;
59272  __u16 __cil_tmp85 ;
59273  int __cil_tmp86 ;
59274  struct device *__cil_tmp87 ;
59275  void *__cil_tmp88 ;
59276  unsigned int __cil_tmp89 ;
59277  enum snoop_when __cil_tmp90 ;
59278  unsigned int __cil_tmp91 ;
59279  unsigned int __cil_tmp92 ;
59280  void const   *__cil_tmp93 ;
59281  unsigned int __cil_tmp94 ;
59282  unsigned long __cil_tmp95 ;
59283  unsigned int __cil_tmp96 ;
59284  void *__cil_tmp97 ;
59285  void const   *__cil_tmp98 ;
59286  unsigned long __cil_tmp99 ;
59287  unsigned long __cil_tmp100 ;
59288  unsigned int __cil_tmp101 ;
59289  void *__cil_tmp102 ;
59290  unsigned int __cil_tmp103 ;
59291  int __cil_tmp104 ;
59292  enum snoop_when __cil_tmp105 ;
59293  unsigned int __cil_tmp106 ;
59294  struct device *__cil_tmp107 ;
59295  unsigned int __cil_tmp108 ;
59296  int __cil_tmp109 ;
59297  __u8 __cil_tmp110 ;
59298  int __cil_tmp111 ;
59299  __u8 __cil_tmp112 ;
59300  int __cil_tmp113 ;
59301  __u16 __cil_tmp114 ;
59302  int __cil_tmp115 ;
59303  __u16 __cil_tmp116 ;
59304  void *__cil_tmp117 ;
59305  int __cil_tmp118 ;
59306  __u16 __cil_tmp119 ;
59307  int __cil_tmp120 ;
59308  struct device *__cil_tmp121 ;
59309  void *__cil_tmp122 ;
59310  unsigned int __cil_tmp123 ;
59311  enum snoop_when __cil_tmp124 ;
59312  unsigned char *__cil_tmp125 ;
59313  unsigned long __cil_tmp126 ;
59314  struct device *__cil_tmp127 ;
59315  struct device  const  *__cil_tmp128 ;
59316  char (*__cil_tmp129)[16U] ;
59317  char *__cil_tmp130 ;
59318  int __cil_tmp131 ;
59319  int __cil_tmp132 ;
59320  int __cil_tmp133 ;
59321
59322  {
59323  {
59324#line 772
59325  dev = ps->dev;
59326#line 779
59327  __cil_tmp41 = (void *)(& ctrl);
59328#line 779
59329  __cil_tmp42 = (void const   *)arg;
59330#line 779
59331  tmp = copy_from_user(__cil_tmp41, __cil_tmp42, 24UL);
59332  }
59333#line 779
59334  if (tmp != 0UL) {
59335#line 780
59336    return (-14);
59337  } else {
59338
59339  }
59340  {
59341#line 781
59342  __cil_tmp43 = (unsigned int )ctrl.bRequestType;
59343#line 781
59344  __cil_tmp44 = (unsigned int )ctrl.wIndex;
59345#line 781
59346  ret = check_ctrlrecip(ps, __cil_tmp43, __cil_tmp44);
59347  }
59348#line 782
59349  if (ret != 0) {
59350#line 783
59351    return (ret);
59352  } else {
59353
59354  }
59355#line 784
59356  wLength = (unsigned int )ctrl.wLength;
59357#line 785
59358  if (wLength > 4096U) {
59359#line 786
59360    return (-22);
59361  } else {
59362
59363  }
59364  {
59365#line 787
59366  tmp___0 = __get_free_pages(208U, 0U);
59367#line 787
59368  tbuf = (unsigned char *)tmp___0;
59369  }
59370  {
59371#line 788
59372  __cil_tmp45 = (unsigned char *)0;
59373#line 788
59374  __cil_tmp46 = (unsigned long )__cil_tmp45;
59375#line 788
59376  __cil_tmp47 = (unsigned long )tbuf;
59377#line 788
59378  if (__cil_tmp47 == __cil_tmp46) {
59379#line 789
59380    return (-12);
59381  } else {
59382
59383  }
59384  }
59385#line 790
59386  tmo = ctrl.timeout;
59387#line 791
59388  if (usbfs_snoop != 0) {
59389    {
59390#line 791
59391    __cil_tmp48 = & ctrl.wLength;
59392#line 791
59393    __cil_tmp49 = (__le16 const   *)__cil_tmp48;
59394#line 791
59395    tmp___1 = __le16_to_cpup(__cil_tmp49);
59396#line 791
59397    __cil_tmp50 = & ctrl.wIndex;
59398#line 791
59399    __cil_tmp51 = (__le16 const   *)__cil_tmp50;
59400#line 791
59401    tmp___2 = __le16_to_cpup(__cil_tmp51);
59402#line 791
59403    __cil_tmp52 = & ctrl.wValue;
59404#line 791
59405    __cil_tmp53 = (__le16 const   *)__cil_tmp52;
59406#line 791
59407    tmp___3 = __le16_to_cpup(__cil_tmp53);
59408#line 791
59409    __cil_tmp54 = & dev->dev;
59410#line 791
59411    __cil_tmp55 = (struct device  const  *)__cil_tmp54;
59412#line 791
59413    __cil_tmp56 = (int )ctrl.bRequestType;
59414#line 791
59415    __cil_tmp57 = (int )ctrl.bRequest;
59416#line 791
59417    __cil_tmp58 = (int )tmp___3;
59418#line 791
59419    __cil_tmp59 = (int )tmp___2;
59420#line 791
59421    __cil_tmp60 = (int )tmp___1;
59422#line 791
59423    _dev_info(__cil_tmp55, "control urb: bRequestType=%02x bRequest=%02x wValue=%04x wIndex=%04x wLength=%04x\n",
59424              __cil_tmp56, __cil_tmp57, __cil_tmp58, __cil_tmp59, __cil_tmp60);
59425    }
59426  } else {
59427
59428  }
59429  {
59430#line 798
59431  __cil_tmp61 = (signed char )ctrl.bRequestType;
59432#line 798
59433  __cil_tmp62 = (int )__cil_tmp61;
59434#line 798
59435  if (__cil_tmp62 < 0) {
59436    {
59437#line 799
59438    __cil_tmp63 = (unsigned int )ctrl.wLength;
59439#line 799
59440    if (__cil_tmp63 != 0U) {
59441      {
59442#line 799
59443      tmp___4 = current_thread_info();
59444#line 799
59445      __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (ctrl.data),
59446                "g" ((long )ctrl.wLength), "rm" (tmp___4->addr_limit.seg));
59447#line 799
59448      __cil_tmp64 = flag == 0UL;
59449#line 799
59450      __cil_tmp65 = (long )__cil_tmp64;
59451#line 799
59452      tmp___5 = __builtin_expect(__cil_tmp65, 1L);
59453      }
59454#line 799
59455      if (tmp___5 == 0L) {
59456        {
59457#line 801
59458        __cil_tmp66 = (unsigned long )tbuf;
59459#line 801
59460        free_pages(__cil_tmp66, 0U);
59461        }
59462#line 802
59463        return (-22);
59464      } else {
59465
59466      }
59467    } else {
59468
59469    }
59470    }
59471    {
59472#line 804
59473    tmp___6 = __create_pipe(dev, 0U);
59474#line 804
59475    __cil_tmp67 = tmp___6 | 2147483776U;
59476#line 804
59477    pipe = (int )__cil_tmp67;
59478#line 805
59479    __cil_tmp68 = (void *)0;
59480#line 805
59481    __cil_tmp69 = (unsigned int )ctrl.wLength;
59482#line 805
59483    __cil_tmp70 = (int )tmo;
59484#line 805
59485    __cil_tmp71 = (enum snoop_when )0;
59486#line 805
59487    __cil_tmp72 = (unsigned char *)0;
59488#line 805
59489    snoop_urb(dev, __cil_tmp68, pipe, __cil_tmp69, __cil_tmp70, __cil_tmp71, __cil_tmp72,
59490              0U);
59491#line 807
59492    __cil_tmp73 = & dev->dev;
59493#line 807
59494    device_unlock(__cil_tmp73);
59495#line 808
59496    __cil_tmp74 = (unsigned int )pipe;
59497#line 808
59498    __cil_tmp75 = (int )ctrl.bRequest;
59499#line 808
59500    __cil_tmp76 = (__u8 )__cil_tmp75;
59501#line 808
59502    __cil_tmp77 = (int )ctrl.bRequestType;
59503#line 808
59504    __cil_tmp78 = (__u8 )__cil_tmp77;
59505#line 808
59506    __cil_tmp79 = (int )ctrl.wValue;
59507#line 808
59508    __cil_tmp80 = (__u16 )__cil_tmp79;
59509#line 808
59510    __cil_tmp81 = (int )ctrl.wIndex;
59511#line 808
59512    __cil_tmp82 = (__u16 )__cil_tmp81;
59513#line 808
59514    __cil_tmp83 = (void *)tbuf;
59515#line 808
59516    __cil_tmp84 = (int )ctrl.wLength;
59517#line 808
59518    __cil_tmp85 = (__u16 )__cil_tmp84;
59519#line 808
59520    __cil_tmp86 = (int )tmo;
59521#line 808
59522    i = usb_control_msg(dev, __cil_tmp74, __cil_tmp76, __cil_tmp78, __cil_tmp80, __cil_tmp82,
59523                        __cil_tmp83, __cil_tmp85, __cil_tmp86);
59524#line 811
59525    __cil_tmp87 = & dev->dev;
59526#line 811
59527    device_lock(__cil_tmp87);
59528#line 813
59529    _max1 = i;
59530#line 813
59531    _max2 = 0;
59532    }
59533#line 813
59534    if (_max1 > _max2) {
59535#line 813
59536      tmp___7 = _max1;
59537    } else {
59538#line 813
59539      tmp___7 = _max2;
59540    }
59541#line 812
59542    _min1 = i;
59543#line 812
59544    _min2 = 0;
59545#line 812
59546    if (_min1 < _min2) {
59547#line 812
59548      tmp___8 = _min1;
59549    } else {
59550#line 812
59551      tmp___8 = _min2;
59552    }
59553#line 812
59554    _max1___0 = i;
59555#line 812
59556    _max2___0 = 0;
59557#line 812
59558    if (_max1___0 > _max2___0) {
59559#line 812
59560      tmp___9 = _max1___0;
59561    } else {
59562#line 812
59563      tmp___9 = _max2___0;
59564    }
59565    {
59566#line 812
59567    __cil_tmp88 = (void *)0;
59568#line 812
59569    __cil_tmp89 = (unsigned int )tmp___9;
59570#line 812
59571    __cil_tmp90 = (enum snoop_when )1;
59572#line 812
59573    __cil_tmp91 = (unsigned int )tmp___7;
59574#line 812
59575    snoop_urb(dev, __cil_tmp88, pipe, __cil_tmp89, tmp___8, __cil_tmp90, tbuf, __cil_tmp91);
59576    }
59577#line 814
59578    if (i > 0) {
59579      {
59580#line 814
59581      __cil_tmp92 = (unsigned int )ctrl.wLength;
59582#line 814
59583      if (__cil_tmp92 != 0U) {
59584        {
59585#line 815
59586        __cil_tmp93 = (void const   *)tbuf;
59587#line 815
59588        __cil_tmp94 = (unsigned int )i;
59589#line 815
59590        tmp___10 = copy_to_user(ctrl.data, __cil_tmp93, __cil_tmp94);
59591        }
59592#line 815
59593        if (tmp___10 != 0) {
59594          {
59595#line 816
59596          __cil_tmp95 = (unsigned long )tbuf;
59597#line 816
59598          free_pages(__cil_tmp95, 0U);
59599          }
59600#line 817
59601          return (-14);
59602        } else {
59603
59604        }
59605      } else {
59606
59607      }
59608      }
59609    } else {
59610
59611    }
59612  } else {
59613    {
59614#line 821
59615    __cil_tmp96 = (unsigned int )ctrl.wLength;
59616#line 821
59617    if (__cil_tmp96 != 0U) {
59618      {
59619#line 822
59620      __cil_tmp97 = (void *)tbuf;
59621#line 822
59622      __cil_tmp98 = (void const   *)ctrl.data;
59623#line 822
59624      __cil_tmp99 = (unsigned long )ctrl.wLength;
59625#line 822
59626      tmp___11 = copy_from_user(__cil_tmp97, __cil_tmp98, __cil_tmp99);
59627      }
59628#line 822
59629      if (tmp___11 != 0UL) {
59630        {
59631#line 823
59632        __cil_tmp100 = (unsigned long )tbuf;
59633#line 823
59634        free_pages(__cil_tmp100, 0U);
59635        }
59636#line 824
59637        return (-14);
59638      } else {
59639
59640      }
59641    } else {
59642
59643    }
59644    }
59645    {
59646#line 827
59647    tmp___12 = __create_pipe(dev, 0U);
59648#line 827
59649    __cil_tmp101 = tmp___12 | 2147483648U;
59650#line 827
59651    pipe = (int )__cil_tmp101;
59652#line 828
59653    __cil_tmp102 = (void *)0;
59654#line 828
59655    __cil_tmp103 = (unsigned int )ctrl.wLength;
59656#line 828
59657    __cil_tmp104 = (int )tmo;
59658#line 828
59659    __cil_tmp105 = (enum snoop_when )0;
59660#line 828
59661    __cil_tmp106 = (unsigned int )ctrl.wLength;
59662#line 828
59663    snoop_urb(dev, __cil_tmp102, pipe, __cil_tmp103, __cil_tmp104, __cil_tmp105, tbuf,
59664              __cil_tmp106);
59665#line 831
59666    __cil_tmp107 = & dev->dev;
59667#line 831
59668    device_unlock(__cil_tmp107);
59669#line 832
59670    tmp___13 = __create_pipe(dev, 0U);
59671#line 832
59672    __cil_tmp108 = tmp___13 | 2147483648U;
59673#line 832
59674    __cil_tmp109 = (int )ctrl.bRequest;
59675#line 832
59676    __cil_tmp110 = (__u8 )__cil_tmp109;
59677#line 832
59678    __cil_tmp111 = (int )ctrl.bRequestType;
59679#line 832
59680    __cil_tmp112 = (__u8 )__cil_tmp111;
59681#line 832
59682    __cil_tmp113 = (int )ctrl.wValue;
59683#line 832
59684    __cil_tmp114 = (__u16 )__cil_tmp113;
59685#line 832
59686    __cil_tmp115 = (int )ctrl.wIndex;
59687#line 832
59688    __cil_tmp116 = (__u16 )__cil_tmp115;
59689#line 832
59690    __cil_tmp117 = (void *)tbuf;
59691#line 832
59692    __cil_tmp118 = (int )ctrl.wLength;
59693#line 832
59694    __cil_tmp119 = (__u16 )__cil_tmp118;
59695#line 832
59696    __cil_tmp120 = (int )tmo;
59697#line 832
59698    i = usb_control_msg(dev, __cil_tmp108, __cil_tmp110, __cil_tmp112, __cil_tmp114,
59699                        __cil_tmp116, __cil_tmp117, __cil_tmp119, __cil_tmp120);
59700#line 835
59701    __cil_tmp121 = & dev->dev;
59702#line 835
59703    device_lock(__cil_tmp121);
59704#line 836
59705    _min1___0 = i;
59706#line 836
59707    _min2___0 = 0;
59708    }
59709#line 836
59710    if (_min1___0 < _min2___0) {
59711#line 836
59712      tmp___14 = _min1___0;
59713    } else {
59714#line 836
59715      tmp___14 = _min2___0;
59716    }
59717#line 836
59718    _max1___1 = i;
59719#line 836
59720    _max2___1 = 0;
59721#line 836
59722    if (_max1___1 > _max2___1) {
59723#line 836
59724      tmp___15 = _max1___1;
59725    } else {
59726#line 836
59727      tmp___15 = _max2___1;
59728    }
59729    {
59730#line 836
59731    __cil_tmp122 = (void *)0;
59732#line 836
59733    __cil_tmp123 = (unsigned int )tmp___15;
59734#line 836
59735    __cil_tmp124 = (enum snoop_when )1;
59736#line 836
59737    __cil_tmp125 = (unsigned char *)0;
59738#line 836
59739    snoop_urb(dev, __cil_tmp122, pipe, __cil_tmp123, tmp___14, __cil_tmp124, __cil_tmp125,
59740              0U);
59741    }
59742  }
59743  }
59744  {
59745#line 838
59746  __cil_tmp126 = (unsigned long )tbuf;
59747#line 838
59748  free_pages(__cil_tmp126, 0U);
59749  }
59750#line 839
59751  if (i < 0) {
59752#line 839
59753    if (i != -32) {
59754      {
59755#line 840
59756      tmp___16 = get_current();
59757#line 840
59758      __cil_tmp127 = & dev->dev;
59759#line 840
59760      __cil_tmp128 = (struct device  const  *)__cil_tmp127;
59761#line 840
59762      __cil_tmp129 = & tmp___16->comm;
59763#line 840
59764      __cil_tmp130 = (char *)__cil_tmp129;
59765#line 840
59766      __cil_tmp131 = (int )ctrl.bRequestType;
59767#line 840
59768      __cil_tmp132 = (int )ctrl.bRequest;
59769#line 840
59770      __cil_tmp133 = (int )ctrl.wLength;
59771#line 840
59772      dev_printk("<7>", __cil_tmp128, "usbfs: USBDEVFS_CONTROL failed cmd %s rqt %u rq %u len %u ret %d\n",
59773                 __cil_tmp130, __cil_tmp131, __cil_tmp132, __cil_tmp133, i);
59774      }
59775    } else {
59776
59777    }
59778  } else {
59779
59780  }
59781#line 845
59782  return (i);
59783}
59784}
59785#line 848 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
59786static int proc_bulk(struct dev_state *ps , void *arg ) 
59787{ struct usb_device *dev ;
59788  struct usbdevfs_bulktransfer bulk ;
59789  unsigned int tmo ;
59790  unsigned int len1 ;
59791  unsigned int pipe ;
59792  int len2 ;
59793  unsigned char *tbuf ;
59794  int i ;
59795  int ret ;
59796  unsigned long tmp ;
59797  unsigned int tmp___0 ;
59798  unsigned int tmp___1 ;
59799  __u16 tmp___2 ;
59800  void *tmp___3 ;
59801  unsigned long flag ;
59802  unsigned long roksum ;
59803  struct thread_info *tmp___4 ;
59804  long tmp___5 ;
59805  int tmp___6 ;
59806  unsigned long tmp___7 ;
59807  void *__cil_tmp23 ;
59808  void const   *__cil_tmp24 ;
59809  struct usb_device *__cil_tmp25 ;
59810  unsigned int __cil_tmp26 ;
59811  unsigned int __cil_tmp27 ;
59812  unsigned int __cil_tmp28 ;
59813  unsigned int __cil_tmp29 ;
59814  int __cil_tmp30 ;
59815  unsigned int __cil_tmp31 ;
59816  int __cil_tmp32 ;
59817  unsigned int __cil_tmp33 ;
59818  size_t __cil_tmp34 ;
59819  unsigned char *__cil_tmp35 ;
59820  unsigned long __cil_tmp36 ;
59821  unsigned long __cil_tmp37 ;
59822  unsigned int __cil_tmp38 ;
59823  int __cil_tmp39 ;
59824  long __cil_tmp40 ;
59825  void const   *__cil_tmp41 ;
59826  void *__cil_tmp42 ;
59827  int __cil_tmp43 ;
59828  int __cil_tmp44 ;
59829  enum snoop_when __cil_tmp45 ;
59830  unsigned char *__cil_tmp46 ;
59831  struct device *__cil_tmp47 ;
59832  void *__cil_tmp48 ;
59833  int __cil_tmp49 ;
59834  int __cil_tmp50 ;
59835  struct device *__cil_tmp51 ;
59836  void *__cil_tmp52 ;
59837  int __cil_tmp53 ;
59838  unsigned int __cil_tmp54 ;
59839  enum snoop_when __cil_tmp55 ;
59840  unsigned int __cil_tmp56 ;
59841  void const   *__cil_tmp57 ;
59842  unsigned int __cil_tmp58 ;
59843  void const   *__cil_tmp59 ;
59844  void *__cil_tmp60 ;
59845  void const   *__cil_tmp61 ;
59846  unsigned long __cil_tmp62 ;
59847  void const   *__cil_tmp63 ;
59848  void *__cil_tmp64 ;
59849  int __cil_tmp65 ;
59850  int __cil_tmp66 ;
59851  enum snoop_when __cil_tmp67 ;
59852  struct device *__cil_tmp68 ;
59853  void *__cil_tmp69 ;
59854  int __cil_tmp70 ;
59855  int __cil_tmp71 ;
59856  struct device *__cil_tmp72 ;
59857  void *__cil_tmp73 ;
59858  int __cil_tmp74 ;
59859  unsigned int __cil_tmp75 ;
59860  enum snoop_when __cil_tmp76 ;
59861  unsigned char *__cil_tmp77 ;
59862  void const   *__cil_tmp78 ;
59863
59864  {
59865  {
59866#line 850
59867  dev = ps->dev;
59868#line 857
59869  __cil_tmp23 = (void *)(& bulk);
59870#line 857
59871  __cil_tmp24 = (void const   *)arg;
59872#line 857
59873  tmp = copy_from_user(__cil_tmp23, __cil_tmp24, 24UL);
59874  }
59875#line 857
59876  if (tmp != 0UL) {
59877#line 858
59878    return (-14);
59879  } else {
59880
59881  }
59882  {
59883#line 859
59884  __cil_tmp25 = ps->dev;
59885#line 859
59886  ret = findintfep(__cil_tmp25, bulk.ep);
59887  }
59888#line 860
59889  if (ret < 0) {
59890#line 861
59891    return (ret);
59892  } else {
59893
59894  }
59895  {
59896#line 862
59897  __cil_tmp26 = (unsigned int )ret;
59898#line 862
59899  ret = checkintf(ps, __cil_tmp26);
59900  }
59901#line 863
59902  if (ret != 0) {
59903#line 864
59904    return (ret);
59905  } else {
59906
59907  }
59908  {
59909#line 865
59910  __cil_tmp27 = bulk.ep & 128U;
59911#line 865
59912  if (__cil_tmp27 != 0U) {
59913    {
59914#line 866
59915    __cil_tmp28 = bulk.ep & 127U;
59916#line 866
59917    tmp___0 = __create_pipe(dev, __cil_tmp28);
59918#line 866
59919    pipe = tmp___0 | 3221225600U;
59920    }
59921  } else {
59922    {
59923#line 868
59924    __cil_tmp29 = bulk.ep & 127U;
59925#line 868
59926    tmp___1 = __create_pipe(dev, __cil_tmp29);
59927#line 868
59928    pipe = tmp___1 | 3221225472U;
59929    }
59930  }
59931  }
59932  {
59933#line 869
59934  __cil_tmp30 = (int )pipe;
59935#line 869
59936  __cil_tmp31 = bulk.ep & 128U;
59937#line 869
59938  __cil_tmp32 = __cil_tmp31 == 0U;
59939#line 869
59940  tmp___2 = usb_maxpacket(dev, __cil_tmp30, __cil_tmp32);
59941  }
59942  {
59943#line 869
59944  __cil_tmp33 = (unsigned int )tmp___2;
59945#line 869
59946  if (__cil_tmp33 == 0U) {
59947#line 870
59948    return (-22);
59949  } else {
59950
59951  }
59952  }
59953#line 871
59954  len1 = bulk.len;
59955#line 872
59956  if (len1 > 16384U) {
59957#line 873
59958    return (-22);
59959  } else {
59960
59961  }
59962  {
59963#line 874
59964  __cil_tmp34 = (size_t )len1;
59965#line 874
59966  tmp___3 = kmalloc(__cil_tmp34, 208U);
59967#line 874
59968  tbuf = (unsigned char *)tmp___3;
59969  }
59970  {
59971#line 874
59972  __cil_tmp35 = (unsigned char *)0;
59973#line 874
59974  __cil_tmp36 = (unsigned long )__cil_tmp35;
59975#line 874
59976  __cil_tmp37 = (unsigned long )tbuf;
59977#line 874
59978  if (__cil_tmp37 == __cil_tmp36) {
59979#line 875
59980    return (-12);
59981  } else {
59982
59983  }
59984  }
59985#line 876
59986  tmo = bulk.timeout;
59987  {
59988#line 877
59989  __cil_tmp38 = bulk.ep & 128U;
59990#line 877
59991  if (__cil_tmp38 != 0U) {
59992#line 878
59993    if (len1 != 0U) {
59994      {
59995#line 878
59996      tmp___4 = current_thread_info();
59997#line 878
59998      __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (bulk.data),
59999                "g" ((long )len1), "rm" (tmp___4->addr_limit.seg));
60000#line 878
60001      __cil_tmp39 = flag == 0UL;
60002#line 878
60003      __cil_tmp40 = (long )__cil_tmp39;
60004#line 878
60005      tmp___5 = __builtin_expect(__cil_tmp40, 1L);
60006      }
60007#line 878
60008      if (tmp___5 == 0L) {
60009        {
60010#line 879
60011        __cil_tmp41 = (void const   *)tbuf;
60012#line 879
60013        kfree(__cil_tmp41);
60014        }
60015#line 880
60016        return (-22);
60017      } else {
60018
60019      }
60020    } else {
60021
60022    }
60023    {
60024#line 882
60025    __cil_tmp42 = (void *)0;
60026#line 882
60027    __cil_tmp43 = (int )pipe;
60028#line 882
60029    __cil_tmp44 = (int )tmo;
60030#line 882
60031    __cil_tmp45 = (enum snoop_when )0;
60032#line 882
60033    __cil_tmp46 = (unsigned char *)0;
60034#line 882
60035    snoop_urb(dev, __cil_tmp42, __cil_tmp43, len1, __cil_tmp44, __cil_tmp45, __cil_tmp46,
60036              0U);
60037#line 884
60038    __cil_tmp47 = & dev->dev;
60039#line 884
60040    device_unlock(__cil_tmp47);
60041#line 885
60042    __cil_tmp48 = (void *)tbuf;
60043#line 885
60044    __cil_tmp49 = (int )len1;
60045#line 885
60046    __cil_tmp50 = (int )tmo;
60047#line 885
60048    i = usb_bulk_msg(dev, pipe, __cil_tmp48, __cil_tmp49, & len2, __cil_tmp50);
60049#line 886
60050    __cil_tmp51 = & dev->dev;
60051#line 886
60052    device_lock(__cil_tmp51);
60053#line 887
60054    __cil_tmp52 = (void *)0;
60055#line 887
60056    __cil_tmp53 = (int )pipe;
60057#line 887
60058    __cil_tmp54 = (unsigned int )len2;
60059#line 887
60060    __cil_tmp55 = (enum snoop_when )1;
60061#line 887
60062    __cil_tmp56 = (unsigned int )len2;
60063#line 887
60064    snoop_urb(dev, __cil_tmp52, __cil_tmp53, __cil_tmp54, i, __cil_tmp55, tbuf, __cil_tmp56);
60065    }
60066#line 889
60067    if (i == 0) {
60068#line 889
60069      if (len2 != 0) {
60070        {
60071#line 890
60072        __cil_tmp57 = (void const   *)tbuf;
60073#line 890
60074        __cil_tmp58 = (unsigned int )len2;
60075#line 890
60076        tmp___6 = copy_to_user(bulk.data, __cil_tmp57, __cil_tmp58);
60077        }
60078#line 890
60079        if (tmp___6 != 0) {
60080          {
60081#line 891
60082          __cil_tmp59 = (void const   *)tbuf;
60083#line 891
60084          kfree(__cil_tmp59);
60085          }
60086#line 892
60087          return (-14);
60088        } else {
60089
60090        }
60091      } else {
60092
60093      }
60094    } else {
60095
60096    }
60097  } else {
60098#line 896
60099    if (len1 != 0U) {
60100      {
60101#line 897
60102      __cil_tmp60 = (void *)tbuf;
60103#line 897
60104      __cil_tmp61 = (void const   *)bulk.data;
60105#line 897
60106      __cil_tmp62 = (unsigned long )len1;
60107#line 897
60108      tmp___7 = copy_from_user(__cil_tmp60, __cil_tmp61, __cil_tmp62);
60109      }
60110#line 897
60111      if (tmp___7 != 0UL) {
60112        {
60113#line 898
60114        __cil_tmp63 = (void const   *)tbuf;
60115#line 898
60116        kfree(__cil_tmp63);
60117        }
60118#line 899
60119        return (-14);
60120      } else {
60121
60122      }
60123    } else {
60124
60125    }
60126    {
60127#line 902
60128    __cil_tmp64 = (void *)0;
60129#line 902
60130    __cil_tmp65 = (int )pipe;
60131#line 902
60132    __cil_tmp66 = (int )tmo;
60133#line 902
60134    __cil_tmp67 = (enum snoop_when )0;
60135#line 902
60136    snoop_urb(dev, __cil_tmp64, __cil_tmp65, len1, __cil_tmp66, __cil_tmp67, tbuf,
60137              len1);
60138#line 904
60139    __cil_tmp68 = & dev->dev;
60140#line 904
60141    device_unlock(__cil_tmp68);
60142#line 905
60143    __cil_tmp69 = (void *)tbuf;
60144#line 905
60145    __cil_tmp70 = (int )len1;
60146#line 905
60147    __cil_tmp71 = (int )tmo;
60148#line 905
60149    i = usb_bulk_msg(dev, pipe, __cil_tmp69, __cil_tmp70, & len2, __cil_tmp71);
60150#line 906
60151    __cil_tmp72 = & dev->dev;
60152#line 906
60153    device_lock(__cil_tmp72);
60154#line 907
60155    __cil_tmp73 = (void *)0;
60156#line 907
60157    __cil_tmp74 = (int )pipe;
60158#line 907
60159    __cil_tmp75 = (unsigned int )len2;
60160#line 907
60161    __cil_tmp76 = (enum snoop_when )1;
60162#line 907
60163    __cil_tmp77 = (unsigned char *)0;
60164#line 907
60165    snoop_urb(dev, __cil_tmp73, __cil_tmp74, __cil_tmp75, i, __cil_tmp76, __cil_tmp77,
60166              0U);
60167    }
60168  }
60169  }
60170  {
60171#line 909
60172  __cil_tmp78 = (void const   *)tbuf;
60173#line 909
60174  kfree(__cil_tmp78);
60175  }
60176#line 910
60177  if (i < 0) {
60178#line 911
60179    return (i);
60180  } else {
60181
60182  }
60183#line 912
60184  return (len2);
60185}
60186}
60187#line 915 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
60188static int proc_resetep(struct dev_state *ps , void *arg ) 
60189{ unsigned int ep ;
60190  int ret ;
60191  int __ret_gu ;
60192  unsigned long __val_gu ;
60193  struct usb_device *__cil_tmp7 ;
60194  unsigned int __cil_tmp8 ;
60195  struct usb_device *__cil_tmp9 ;
60196
60197  {
60198  {
60199#line 920
60200  might_fault();
60201  }
60202#line 920
60203  if (1) {
60204#line 920
60205    goto case_4;
60206  } else {
60207#line 920
60208    goto switch_default;
60209#line 920
60210    if (0) {
60211#line 920
60212      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60213#line 920
60214      goto ldv_30907;
60215#line 920
60216      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60217#line 920
60218      goto ldv_30907;
60219      case_4: 
60220#line 920
60221      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60222#line 920
60223      goto ldv_30907;
60224#line 920
60225      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60226#line 920
60227      goto ldv_30907;
60228      switch_default: 
60229#line 920
60230      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60231#line 920
60232      goto ldv_30907;
60233    } else {
60234
60235    }
60236  }
60237  ldv_30907: 
60238#line 920
60239  ep = (unsigned int )__val_gu;
60240#line 920
60241  if (__ret_gu != 0) {
60242#line 921
60243    return (-14);
60244  } else {
60245
60246  }
60247  {
60248#line 922
60249  __cil_tmp7 = ps->dev;
60250#line 922
60251  ret = findintfep(__cil_tmp7, ep);
60252  }
60253#line 923
60254  if (ret < 0) {
60255#line 924
60256    return (ret);
60257  } else {
60258
60259  }
60260  {
60261#line 925
60262  __cil_tmp8 = (unsigned int )ret;
60263#line 925
60264  ret = checkintf(ps, __cil_tmp8);
60265  }
60266#line 926
60267  if (ret != 0) {
60268#line 927
60269    return (ret);
60270  } else {
60271
60272  }
60273  {
60274#line 928
60275  __cil_tmp9 = ps->dev;
60276#line 928
60277  usb_reset_endpoint(__cil_tmp9, ep);
60278  }
60279#line 929
60280  return (0);
60281}
60282}
60283#line 932 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
60284static int proc_clearhalt(struct dev_state *ps , void *arg ) 
60285{ unsigned int ep ;
60286  int pipe ;
60287  int ret ;
60288  int __ret_gu ;
60289  unsigned long __val_gu ;
60290  unsigned int tmp ;
60291  unsigned int tmp___0 ;
60292  int tmp___1 ;
60293  struct usb_device *__cil_tmp11 ;
60294  unsigned int __cil_tmp12 ;
60295  unsigned int __cil_tmp13 ;
60296  struct usb_device *__cil_tmp14 ;
60297  unsigned int __cil_tmp15 ;
60298  unsigned int __cil_tmp16 ;
60299  struct usb_device *__cil_tmp17 ;
60300  unsigned int __cil_tmp18 ;
60301  unsigned int __cil_tmp19 ;
60302  struct usb_device *__cil_tmp20 ;
60303
60304  {
60305  {
60306#line 938
60307  might_fault();
60308  }
60309#line 938
60310  if (1) {
60311#line 938
60312    goto case_4;
60313  } else {
60314#line 938
60315    goto switch_default;
60316#line 938
60317    if (0) {
60318#line 938
60319      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60320#line 938
60321      goto ldv_30923;
60322#line 938
60323      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60324#line 938
60325      goto ldv_30923;
60326      case_4: 
60327#line 938
60328      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60329#line 938
60330      goto ldv_30923;
60331#line 938
60332      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60333#line 938
60334      goto ldv_30923;
60335      switch_default: 
60336#line 938
60337      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60338#line 938
60339      goto ldv_30923;
60340    } else {
60341
60342    }
60343  }
60344  ldv_30923: 
60345#line 938
60346  ep = (unsigned int )__val_gu;
60347#line 938
60348  if (__ret_gu != 0) {
60349#line 939
60350    return (-14);
60351  } else {
60352
60353  }
60354  {
60355#line 940
60356  __cil_tmp11 = ps->dev;
60357#line 940
60358  ret = findintfep(__cil_tmp11, ep);
60359  }
60360#line 941
60361  if (ret < 0) {
60362#line 942
60363    return (ret);
60364  } else {
60365
60366  }
60367  {
60368#line 943
60369  __cil_tmp12 = (unsigned int )ret;
60370#line 943
60371  ret = checkintf(ps, __cil_tmp12);
60372  }
60373#line 944
60374  if (ret != 0) {
60375#line 945
60376    return (ret);
60377  } else {
60378
60379  }
60380  {
60381#line 946
60382  __cil_tmp13 = ep & 128U;
60383#line 946
60384  if (__cil_tmp13 != 0U) {
60385    {
60386#line 947
60387    __cil_tmp14 = ps->dev;
60388#line 947
60389    __cil_tmp15 = ep & 127U;
60390#line 947
60391    tmp = __create_pipe(__cil_tmp14, __cil_tmp15);
60392#line 947
60393    __cil_tmp16 = tmp | 3221225600U;
60394#line 947
60395    pipe = (int )__cil_tmp16;
60396    }
60397  } else {
60398    {
60399#line 949
60400    __cil_tmp17 = ps->dev;
60401#line 949
60402    __cil_tmp18 = ep & 127U;
60403#line 949
60404    tmp___0 = __create_pipe(__cil_tmp17, __cil_tmp18);
60405#line 949
60406    __cil_tmp19 = tmp___0 | 3221225472U;
60407#line 949
60408    pipe = (int )__cil_tmp19;
60409    }
60410  }
60411  }
60412  {
60413#line 951
60414  __cil_tmp20 = ps->dev;
60415#line 951
60416  tmp___1 = usb_clear_halt(__cil_tmp20, pipe);
60417  }
60418#line 951
60419  return (tmp___1);
60420}
60421}
60422#line 954 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
60423static int proc_getdriver(struct dev_state *ps , void *arg ) 
60424{ struct usbdevfs_getdriver gd ;
60425  struct usb_interface *intf ;
60426  int ret ;
60427  unsigned long tmp ;
60428  int tmp___1 ;
60429  void *__cil_tmp8 ;
60430  void const   *__cil_tmp9 ;
60431  struct usb_device *__cil_tmp10 ;
60432  struct usb_device  const  *__cil_tmp11 ;
60433  struct usb_interface *__cil_tmp12 ;
60434  unsigned long __cil_tmp13 ;
60435  unsigned long __cil_tmp14 ;
60436  struct device_driver *__cil_tmp15 ;
60437  unsigned long __cil_tmp16 ;
60438  struct device_driver *__cil_tmp17 ;
60439  unsigned long __cil_tmp18 ;
60440  char (*__cil_tmp19)[256U] ;
60441  char *__cil_tmp20 ;
60442  struct device_driver *__cil_tmp21 ;
60443  char const   *__cil_tmp22 ;
60444  void const   *__cil_tmp23 ;
60445
60446  {
60447  {
60448#line 960
60449  __cil_tmp8 = (void *)(& gd);
60450#line 960
60451  __cil_tmp9 = (void const   *)arg;
60452#line 960
60453  tmp = copy_from_user(__cil_tmp8, __cil_tmp9, 260UL);
60454  }
60455#line 960
60456  if (tmp != 0UL) {
60457#line 961
60458    return (-14);
60459  } else {
60460
60461  }
60462  {
60463#line 962
60464  __cil_tmp10 = ps->dev;
60465#line 962
60466  __cil_tmp11 = (struct usb_device  const  *)__cil_tmp10;
60467#line 962
60468  intf = usb_ifnum_to_if(__cil_tmp11, gd.interface);
60469  }
60470  {
60471#line 963
60472  __cil_tmp12 = (struct usb_interface *)0;
60473#line 963
60474  __cil_tmp13 = (unsigned long )__cil_tmp12;
60475#line 963
60476  __cil_tmp14 = (unsigned long )intf;
60477#line 963
60478  if (__cil_tmp14 == __cil_tmp13) {
60479#line 964
60480    ret = -61;
60481  } else {
60482    {
60483#line 963
60484    __cil_tmp15 = (struct device_driver *)0;
60485#line 963
60486    __cil_tmp16 = (unsigned long )__cil_tmp15;
60487#line 963
60488    __cil_tmp17 = intf->dev.driver;
60489#line 963
60490    __cil_tmp18 = (unsigned long )__cil_tmp17;
60491#line 963
60492    if (__cil_tmp18 == __cil_tmp16) {
60493#line 964
60494      ret = -61;
60495    } else {
60496      {
60497#line 966
60498      __cil_tmp19 = & gd.driver;
60499#line 966
60500      __cil_tmp20 = (char *)__cil_tmp19;
60501#line 966
60502      __cil_tmp21 = intf->dev.driver;
60503#line 966
60504      __cil_tmp22 = __cil_tmp21->name;
60505#line 966
60506      strncpy(__cil_tmp20, __cil_tmp22, 256UL);
60507#line 968
60508      __cil_tmp23 = (void const   *)(& gd);
60509#line 968
60510      tmp___1 = copy_to_user(arg, __cil_tmp23, 260U);
60511      }
60512#line 968
60513      if (tmp___1 != 0) {
60514#line 968
60515        ret = -14;
60516      } else {
60517#line 968
60518        ret = 0;
60519      }
60520    }
60521    }
60522  }
60523  }
60524#line 970
60525  return (ret);
60526}
60527}
60528#line 973 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
60529static int proc_connectinfo(struct dev_state *ps , void *arg ) 
60530{ struct usbdevfs_connectinfo ci ;
60531  int tmp ;
60532  struct usb_device *__cil_tmp5 ;
60533  int __cil_tmp6 ;
60534  struct usb_device *__cil_tmp7 ;
60535  enum usb_device_speed __cil_tmp8 ;
60536  unsigned int __cil_tmp9 ;
60537  int __cil_tmp10 ;
60538  void const   *__cil_tmp11 ;
60539
60540  {
60541  {
60542#line 975
60543  __cil_tmp5 = ps->dev;
60544#line 975
60545  __cil_tmp6 = __cil_tmp5->devnum;
60546#line 975
60547  ci.devnum = (unsigned int )__cil_tmp6;
60548#line 975
60549  __cil_tmp7 = ps->dev;
60550#line 975
60551  __cil_tmp8 = __cil_tmp7->speed;
60552#line 975
60553  __cil_tmp9 = (unsigned int )__cil_tmp8;
60554#line 975
60555  __cil_tmp10 = __cil_tmp9 == 1U;
60556#line 975
60557  ci.slow = (unsigned char )__cil_tmp10;
60558#line 980
60559  __cil_tmp11 = (void const   *)(& ci);
60560#line 980
60561  tmp = copy_to_user(arg, __cil_tmp11, 8U);
60562  }
60563#line 980
60564  if (tmp != 0) {
60565#line 981
60566    return (-14);
60567  } else {
60568
60569  }
60570#line 982
60571  return (0);
60572}
60573}
60574#line 985 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
60575static int proc_resetdevice(struct dev_state *ps ) 
60576{ int tmp ;
60577  struct usb_device *__cil_tmp3 ;
60578
60579  {
60580  {
60581#line 987
60582  __cil_tmp3 = ps->dev;
60583#line 987
60584  tmp = usb_reset_device(__cil_tmp3);
60585  }
60586#line 987
60587  return (tmp);
60588}
60589}
60590#line 990 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
60591static int proc_setintf(struct dev_state *ps , void *arg ) 
60592{ struct usbdevfs_setinterface setintf ;
60593  int ret ;
60594  unsigned long tmp ;
60595  int tmp___0 ;
60596  void *__cil_tmp7 ;
60597  void const   *__cil_tmp8 ;
60598  struct usb_device *__cil_tmp9 ;
60599  int __cil_tmp10 ;
60600  int __cil_tmp11 ;
60601
60602  {
60603  {
60604#line 995
60605  __cil_tmp7 = (void *)(& setintf);
60606#line 995
60607  __cil_tmp8 = (void const   *)arg;
60608#line 995
60609  tmp = copy_from_user(__cil_tmp7, __cil_tmp8, 8UL);
60610  }
60611#line 995
60612  if (tmp != 0UL) {
60613#line 996
60614    return (-14);
60615  } else {
60616
60617  }
60618  {
60619#line 997
60620  ret = checkintf(ps, setintf.interface);
60621  }
60622#line 997
60623  if (ret != 0) {
60624#line 998
60625    return (ret);
60626  } else {
60627
60628  }
60629  {
60630#line 999
60631  __cil_tmp9 = ps->dev;
60632#line 999
60633  __cil_tmp10 = (int )setintf.interface;
60634#line 999
60635  __cil_tmp11 = (int )setintf.altsetting;
60636#line 999
60637  tmp___0 = usb_set_interface(__cil_tmp9, __cil_tmp10, __cil_tmp11);
60638  }
60639#line 999
60640  return (tmp___0);
60641}
60642}
60643#line 1003 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
60644static int proc_setconfig(struct dev_state *ps , void *arg ) 
60645{ int u ;
60646  int status ;
60647  struct usb_host_config *actconfig ;
60648  int __ret_gu ;
60649  unsigned long __val_gu ;
60650  int i ;
60651  struct task_struct *tmp ;
60652  int tmp___0 ;
60653  struct usb_device *__cil_tmp11 ;
60654  struct usb_host_config *__cil_tmp12 ;
60655  unsigned long __cil_tmp13 ;
60656  unsigned long __cil_tmp14 ;
60657  struct usb_interface *__cil_tmp15 ;
60658  struct usb_device *__cil_tmp16 ;
60659  struct device *__cil_tmp17 ;
60660  struct device  const  *__cil_tmp18 ;
60661  struct usb_interface *__cil_tmp19 ;
60662  struct usb_host_interface *__cil_tmp20 ;
60663  __u8 __cil_tmp21 ;
60664  int __cil_tmp22 ;
60665  struct usb_interface *__cil_tmp23 ;
60666  struct device_driver *__cil_tmp24 ;
60667  char const   *__cil_tmp25 ;
60668  char (*__cil_tmp26)[16U] ;
60669  char *__cil_tmp27 ;
60670  __u8 __cil_tmp28 ;
60671  int __cil_tmp29 ;
60672  struct usb_host_config *__cil_tmp30 ;
60673  unsigned long __cil_tmp31 ;
60674  unsigned long __cil_tmp32 ;
60675  __u8 __cil_tmp33 ;
60676  int __cil_tmp34 ;
60677  struct usb_device *__cil_tmp35 ;
60678  struct usb_device *__cil_tmp36 ;
60679  struct usb_device *__cil_tmp37 ;
60680
60681  {
60682  {
60683#line 1006
60684  status = 0;
60685#line 1009
60686  might_fault();
60687  }
60688#line 1009
60689  if (1) {
60690#line 1009
60691    goto case_4;
60692  } else {
60693#line 1009
60694    goto switch_default;
60695#line 1009
60696    if (0) {
60697#line 1009
60698      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60699#line 1009
60700      goto ldv_30960;
60701#line 1009
60702      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60703#line 1009
60704      goto ldv_30960;
60705      case_4: 
60706#line 1009
60707      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60708#line 1009
60709      goto ldv_30960;
60710#line 1009
60711      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60712#line 1009
60713      goto ldv_30960;
60714      switch_default: 
60715#line 1009
60716      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60717#line 1009
60718      goto ldv_30960;
60719    } else {
60720
60721    }
60722  }
60723  ldv_30960: 
60724#line 1009
60725  u = (int )__val_gu;
60726#line 1009
60727  if (__ret_gu != 0) {
60728#line 1010
60729    return (-14);
60730  } else {
60731
60732  }
60733#line 1012
60734  __cil_tmp11 = ps->dev;
60735#line 1012
60736  actconfig = __cil_tmp11->actconfig;
60737  {
60738#line 1018
60739  __cil_tmp12 = (struct usb_host_config *)0;
60740#line 1018
60741  __cil_tmp13 = (unsigned long )__cil_tmp12;
60742#line 1018
60743  __cil_tmp14 = (unsigned long )actconfig;
60744#line 1018
60745  if (__cil_tmp14 != __cil_tmp13) {
60746#line 1021
60747    i = 0;
60748#line 1021
60749    goto ldv_30969;
60750    ldv_30968: 
60751    {
60752#line 1022
60753    __cil_tmp15 = actconfig->interface[i];
60754#line 1022
60755    tmp___0 = usb_interface_claimed(__cil_tmp15);
60756    }
60757#line 1022
60758    if (tmp___0 != 0) {
60759      {
60760#line 1023
60761      tmp = get_current();
60762#line 1023
60763      __cil_tmp16 = ps->dev;
60764#line 1023
60765      __cil_tmp17 = & __cil_tmp16->dev;
60766#line 1023
60767      __cil_tmp18 = (struct device  const  *)__cil_tmp17;
60768#line 1023
60769      __cil_tmp19 = actconfig->interface[i];
60770#line 1023
60771      __cil_tmp20 = __cil_tmp19->cur_altsetting;
60772#line 1023
60773      __cil_tmp21 = __cil_tmp20->desc.bInterfaceNumber;
60774#line 1023
60775      __cil_tmp22 = (int )__cil_tmp21;
60776#line 1023
60777      __cil_tmp23 = actconfig->interface[i];
60778#line 1023
60779      __cil_tmp24 = __cil_tmp23->dev.driver;
60780#line 1023
60781      __cil_tmp25 = __cil_tmp24->name;
60782#line 1023
60783      __cil_tmp26 = & tmp->comm;
60784#line 1023
60785      __cil_tmp27 = (char *)__cil_tmp26;
60786#line 1023
60787      dev_warn(__cil_tmp18, "usbfs: interface %d claimed by %s while \'%s\' sets config #%d\n",
60788               __cil_tmp22, __cil_tmp25, __cil_tmp27, u);
60789#line 1032
60790      status = -16;
60791      }
60792#line 1033
60793      goto ldv_30967;
60794    } else {
60795
60796    }
60797#line 1021
60798    i = i + 1;
60799    ldv_30969: ;
60800    {
60801#line 1021
60802    __cil_tmp28 = actconfig->desc.bNumInterfaces;
60803#line 1021
60804    __cil_tmp29 = (int )__cil_tmp28;
60805#line 1021
60806    if (__cil_tmp29 > i) {
60807#line 1022
60808      goto ldv_30968;
60809    } else {
60810#line 1024
60811      goto ldv_30967;
60812    }
60813    }
60814    ldv_30967: ;
60815  } else {
60816
60817  }
60818  }
60819#line 1041
60820  if (status == 0) {
60821    {
60822#line 1042
60823    __cil_tmp30 = (struct usb_host_config *)0;
60824#line 1042
60825    __cil_tmp31 = (unsigned long )__cil_tmp30;
60826#line 1042
60827    __cil_tmp32 = (unsigned long )actconfig;
60828#line 1042
60829    if (__cil_tmp32 != __cil_tmp31) {
60830      {
60831#line 1042
60832      __cil_tmp33 = actconfig->desc.bConfigurationValue;
60833#line 1042
60834      __cil_tmp34 = (int )__cil_tmp33;
60835#line 1042
60836      if (__cil_tmp34 == u) {
60837        {
60838#line 1043
60839        __cil_tmp35 = ps->dev;
60840#line 1043
60841        status = usb_reset_configuration(__cil_tmp35);
60842        }
60843      } else {
60844        {
60845#line 1045
60846        __cil_tmp36 = ps->dev;
60847#line 1045
60848        status = usb_set_configuration(__cil_tmp36, u);
60849        }
60850      }
60851      }
60852    } else {
60853      {
60854#line 1045
60855      __cil_tmp37 = ps->dev;
60856#line 1045
60857      status = usb_set_configuration(__cil_tmp37, u);
60858      }
60859    }
60860    }
60861  } else {
60862
60863  }
60864#line 1048
60865  return (status);
60866}
60867}
60868#line 1051 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
60869static int proc_do_submiturb(struct dev_state *ps , struct usbdevfs_urb *uurb , struct usbdevfs_iso_packet_desc *iso_frame_desc ,
60870                             void *arg ) 
60871{ struct usbdevfs_iso_packet_desc *isopkt ;
60872  struct usb_host_endpoint *ep ;
60873  struct async *as ;
60874  struct usb_ctrlrequest *dr ;
60875  struct cred  const  *cred ;
60876  struct task_struct *tmp ;
60877  unsigned int u ;
60878  unsigned int totlen ;
60879  unsigned int isofrmlen ;
60880  int ret ;
60881  int ifnum ;
60882  int is_in ;
60883  int tmp___0 ;
60884  void *tmp___1 ;
60885  unsigned long tmp___2 ;
60886  __u16 tmp___3 ;
60887  __u16 tmp___4 ;
60888  __u16 tmp___5 ;
60889  __u16 tmp___6 ;
60890  __u16 tmp___7 ;
60891  __u16 tmp___8 ;
60892  int tmp___9 ;
60893  int tmp___10 ;
60894  int tmp___11 ;
60895  void *tmp___12 ;
60896  unsigned long tmp___13 ;
60897  unsigned long flag ;
60898  unsigned long roksum ;
60899  struct thread_info *tmp___14 ;
60900  long tmp___15 ;
60901  unsigned int tmp___16 ;
60902  int _min1 ;
60903  int _min2 ;
60904  int tmp___17 ;
60905  struct task_struct *tmp___18 ;
60906  struct pid *tmp___19 ;
60907  struct task_struct *tmp___20 ;
60908  unsigned long tmp___21 ;
60909  unsigned char *tmp___22 ;
60910  int tmp___23 ;
60911  int tmp___24 ;
60912  unsigned int __cil_tmp46 ;
60913  unsigned int __cil_tmp47 ;
60914  int __cil_tmp48 ;
60915  void *__cil_tmp49 ;
60916  unsigned long __cil_tmp50 ;
60917  void *__cil_tmp51 ;
60918  unsigned long __cil_tmp52 ;
60919  unsigned char __cil_tmp53 ;
60920  unsigned int __cil_tmp54 ;
60921  unsigned char __cil_tmp55 ;
60922  int __cil_tmp56 ;
60923  int __cil_tmp57 ;
60924  struct usb_device *__cil_tmp58 ;
60925  unsigned char __cil_tmp59 ;
60926  unsigned int __cil_tmp60 ;
60927  unsigned int __cil_tmp61 ;
60928  unsigned char __cil_tmp62 ;
60929  signed char __cil_tmp63 ;
60930  int __cil_tmp64 ;
60931  struct usb_device *__cil_tmp65 ;
60932  struct usb_device *__cil_tmp66 ;
60933  struct usb_host_endpoint *__cil_tmp67 ;
60934  unsigned long __cil_tmp68 ;
60935  unsigned long __cil_tmp69 ;
60936  unsigned char __cil_tmp70 ;
60937  int __cil_tmp71 ;
60938  unsigned char __cil_tmp72 ;
60939  int __cil_tmp73 ;
60940  unsigned char __cil_tmp74 ;
60941  int __cil_tmp75 ;
60942  unsigned char __cil_tmp76 ;
60943  int __cil_tmp77 ;
60944  struct usb_endpoint_descriptor *__cil_tmp78 ;
60945  struct usb_endpoint_descriptor  const  *__cil_tmp79 ;
60946  int __cil_tmp80 ;
60947  int __cil_tmp81 ;
60948  struct usb_ctrlrequest *__cil_tmp82 ;
60949  unsigned long __cil_tmp83 ;
60950  unsigned long __cil_tmp84 ;
60951  void *__cil_tmp85 ;
60952  void *__cil_tmp86 ;
60953  void const   *__cil_tmp87 ;
60954  void const   *__cil_tmp88 ;
60955  __le16 *__cil_tmp89 ;
60956  __le16 const   *__cil_tmp90 ;
60957  int __cil_tmp91 ;
60958  int __cil_tmp92 ;
60959  int __cil_tmp93 ;
60960  void const   *__cil_tmp94 ;
60961  __le16 *__cil_tmp95 ;
60962  __le16 const   *__cil_tmp96 ;
60963  __u8 __cil_tmp97 ;
60964  unsigned int __cil_tmp98 ;
60965  unsigned int __cil_tmp99 ;
60966  void const   *__cil_tmp100 ;
60967  __le16 *__cil_tmp101 ;
60968  __le16 const   *__cil_tmp102 ;
60969  void *__cil_tmp103 ;
60970  __u8 __cil_tmp104 ;
60971  signed char __cil_tmp105 ;
60972  int __cil_tmp106 ;
60973  int __cil_tmp107 ;
60974  unsigned char __cil_tmp108 ;
60975  unsigned int __cil_tmp109 ;
60976  unsigned int __cil_tmp110 ;
60977  unsigned char __cil_tmp111 ;
60978  unsigned int __cil_tmp112 ;
60979  unsigned int __cil_tmp113 ;
60980  unsigned char __cil_tmp114 ;
60981  unsigned int __cil_tmp115 ;
60982  unsigned int __cil_tmp116 ;
60983  __le16 *__cil_tmp117 ;
60984  __le16 const   *__cil_tmp118 ;
60985  __le16 *__cil_tmp119 ;
60986  __le16 const   *__cil_tmp120 ;
60987  __le16 *__cil_tmp121 ;
60988  __le16 const   *__cil_tmp122 ;
60989  struct usb_device *__cil_tmp123 ;
60990  struct device *__cil_tmp124 ;
60991  struct device  const  *__cil_tmp125 ;
60992  __u8 __cil_tmp126 ;
60993  int __cil_tmp127 ;
60994  __u8 __cil_tmp128 ;
60995  int __cil_tmp129 ;
60996  int __cil_tmp130 ;
60997  int __cil_tmp131 ;
60998  int __cil_tmp132 ;
60999  struct usb_endpoint_descriptor *__cil_tmp133 ;
61000  struct usb_endpoint_descriptor  const  *__cil_tmp134 ;
61001  int __cil_tmp135 ;
61002  struct usb_endpoint_descriptor *__cil_tmp136 ;
61003  struct usb_endpoint_descriptor  const  *__cil_tmp137 ;
61004  int __cil_tmp138 ;
61005  int __cil_tmp139 ;
61006  int __cil_tmp140 ;
61007  struct usb_endpoint_descriptor *__cil_tmp141 ;
61008  struct usb_endpoint_descriptor  const  *__cil_tmp142 ;
61009  int __cil_tmp143 ;
61010  unsigned long __cil_tmp144 ;
61011  unsigned int __cil_tmp145 ;
61012  size_t __cil_tmp146 ;
61013  struct usbdevfs_iso_packet_desc *__cil_tmp147 ;
61014  unsigned long __cil_tmp148 ;
61015  unsigned long __cil_tmp149 ;
61016  void *__cil_tmp150 ;
61017  void const   *__cil_tmp151 ;
61018  unsigned long __cil_tmp152 ;
61019  void const   *__cil_tmp153 ;
61020  unsigned long __cil_tmp154 ;
61021  struct usbdevfs_iso_packet_desc *__cil_tmp155 ;
61022  unsigned int __cil_tmp156 ;
61023  void const   *__cil_tmp157 ;
61024  unsigned long __cil_tmp158 ;
61025  struct usbdevfs_iso_packet_desc *__cil_tmp159 ;
61026  unsigned int __cil_tmp160 ;
61027  int __cil_tmp161 ;
61028  unsigned int __cil_tmp162 ;
61029  void const   *__cil_tmp163 ;
61030  int __cil_tmp164 ;
61031  int __cil_tmp165 ;
61032  int __cil_tmp166 ;
61033  long __cil_tmp167 ;
61034  void const   *__cil_tmp168 ;
61035  void const   *__cil_tmp169 ;
61036  int __cil_tmp170 ;
61037  unsigned int __cil_tmp171 ;
61038  struct async *__cil_tmp172 ;
61039  unsigned long __cil_tmp173 ;
61040  unsigned long __cil_tmp174 ;
61041  void const   *__cil_tmp175 ;
61042  void const   *__cil_tmp176 ;
61043  int __cil_tmp177 ;
61044  struct urb *__cil_tmp178 ;
61045  int __cil_tmp179 ;
61046  size_t __cil_tmp180 ;
61047  void *__cil_tmp181 ;
61048  unsigned long __cil_tmp182 ;
61049  struct urb *__cil_tmp183 ;
61050  void *__cil_tmp184 ;
61051  unsigned long __cil_tmp185 ;
61052  void const   *__cil_tmp186 ;
61053  void const   *__cil_tmp187 ;
61054  unsigned char __cil_tmp188 ;
61055  unsigned int __cil_tmp189 ;
61056  struct urb *__cil_tmp190 ;
61057  void *__cil_tmp191 ;
61058  int __cil_tmp192 ;
61059  size_t __cil_tmp193 ;
61060  struct urb *__cil_tmp194 ;
61061  struct usb_device *__cil_tmp195 ;
61062  unsigned char __cil_tmp196 ;
61063  unsigned int __cil_tmp197 ;
61064  unsigned int __cil_tmp198 ;
61065  struct urb *__cil_tmp199 ;
61066  unsigned char __cil_tmp200 ;
61067  unsigned int __cil_tmp201 ;
61068  unsigned int __cil_tmp202 ;
61069  unsigned char __cil_tmp203 ;
61070  int __cil_tmp204 ;
61071  int __cil_tmp205 ;
61072  unsigned int __cil_tmp206 ;
61073  unsigned int __cil_tmp207 ;
61074  unsigned int __cil_tmp208 ;
61075  unsigned int __cil_tmp209 ;
61076  unsigned int __cil_tmp210 ;
61077  int __cil_tmp211 ;
61078  unsigned int __cil_tmp212 ;
61079  unsigned int __cil_tmp213 ;
61080  unsigned int __cil_tmp214 ;
61081  unsigned int __cil_tmp215 ;
61082  unsigned int __cil_tmp216 ;
61083  unsigned int __cil_tmp217 ;
61084  struct urb *__cil_tmp218 ;
61085  struct urb *__cil_tmp219 ;
61086  int __cil_tmp220 ;
61087  struct urb *__cil_tmp221 ;
61088  struct urb *__cil_tmp222 ;
61089  struct urb *__cil_tmp223 ;
61090  unsigned char __cil_tmp224 ;
61091  unsigned int __cil_tmp225 ;
61092  struct usb_device *__cil_tmp226 ;
61093  enum usb_device_speed __cil_tmp227 ;
61094  unsigned int __cil_tmp228 ;
61095  __u8 __cil_tmp229 ;
61096  int __cil_tmp230 ;
61097  struct urb *__cil_tmp231 ;
61098  struct urb *__cil_tmp232 ;
61099  __u8 __cil_tmp233 ;
61100  struct urb *__cil_tmp234 ;
61101  struct urb *__cil_tmp235 ;
61102  struct urb *__cil_tmp236 ;
61103  struct urb *__cil_tmp237 ;
61104  unsigned long __cil_tmp238 ;
61105  struct usbdevfs_iso_packet_desc *__cil_tmp239 ;
61106  unsigned long __cil_tmp240 ;
61107  struct usbdevfs_iso_packet_desc *__cil_tmp241 ;
61108  unsigned int __cil_tmp242 ;
61109  int __cil_tmp243 ;
61110  unsigned int __cil_tmp244 ;
61111  void const   *__cil_tmp245 ;
61112  int __cil_tmp246 ;
61113  uid_t __cil_tmp247 ;
61114  uid_t __cil_tmp248 ;
61115  u32 *__cil_tmp249 ;
61116  int __cil_tmp250 ;
61117  struct urb *__cil_tmp251 ;
61118  void *__cil_tmp252 ;
61119  void *__cil_tmp253 ;
61120  void const   *__cil_tmp254 ;
61121  int __cil_tmp255 ;
61122  unsigned long __cil_tmp256 ;
61123  struct urb *__cil_tmp257 ;
61124  void *__cil_tmp258 ;
61125  struct usb_device *__cil_tmp259 ;
61126  void *__cil_tmp260 ;
61127  struct urb *__cil_tmp261 ;
61128  unsigned int __cil_tmp262 ;
61129  int __cil_tmp263 ;
61130  struct urb *__cil_tmp264 ;
61131  u32 __cil_tmp265 ;
61132  enum snoop_when __cil_tmp266 ;
61133  int __cil_tmp267 ;
61134  unsigned int __cil_tmp268 ;
61135  struct usb_endpoint_descriptor *__cil_tmp269 ;
61136  struct usb_endpoint_descriptor  const  *__cil_tmp270 ;
61137  spinlock_t *__cil_tmp271 ;
61138  struct usb_endpoint_descriptor *__cil_tmp272 ;
61139  struct usb_endpoint_descriptor  const  *__cil_tmp273 ;
61140  __u8 __cil_tmp274 ;
61141  int __cil_tmp275 ;
61142  int __cil_tmp276 ;
61143  int __cil_tmp277 ;
61144  signed char __cil_tmp278 ;
61145  int __cil_tmp279 ;
61146  signed char __cil_tmp280 ;
61147  int __cil_tmp281 ;
61148  int __cil_tmp282 ;
61149  unsigned int __cil_tmp283 ;
61150  unsigned int __cil_tmp284 ;
61151  u8 __cil_tmp285 ;
61152  int __cil_tmp286 ;
61153  int __cil_tmp287 ;
61154  int __cil_tmp288 ;
61155  u32 __cil_tmp289 ;
61156  u32 __cil_tmp290 ;
61157  u8 __cil_tmp291 ;
61158  int __cil_tmp292 ;
61159  int __cil_tmp293 ;
61160  u32 __cil_tmp294 ;
61161  u32 __cil_tmp295 ;
61162  unsigned int __cil_tmp296 ;
61163  struct urb *__cil_tmp297 ;
61164  spinlock_t *__cil_tmp298 ;
61165  struct urb *__cil_tmp299 ;
61166  struct usb_device *__cil_tmp300 ;
61167  struct device *__cil_tmp301 ;
61168  struct device  const  *__cil_tmp302 ;
61169  struct usb_device *__cil_tmp303 ;
61170  void *__cil_tmp304 ;
61171  struct urb *__cil_tmp305 ;
61172  unsigned int __cil_tmp306 ;
61173  int __cil_tmp307 ;
61174  enum snoop_when __cil_tmp308 ;
61175  unsigned char *__cil_tmp309 ;
61176
61177  {
61178  {
61179#line 1055
61180  isopkt = (struct usbdevfs_iso_packet_desc *)0;
61181#line 1058
61182  dr = (struct usb_ctrlrequest *)0;
61183#line 1059
61184  tmp = get_current();
61185#line 1059
61186  cred = tmp->cred;
61187#line 1061
61188  ifnum = -1;
61189  }
61190  {
61191#line 1064
61192  __cil_tmp46 = uurb->flags;
61193#line 1064
61194  __cil_tmp47 = __cil_tmp46 & 4294967064U;
61195#line 1064
61196  if (__cil_tmp47 != 0U) {
61197#line 1070
61198    return (-22);
61199  } else {
61200
61201  }
61202  }
61203  {
61204#line 1071
61205  __cil_tmp48 = uurb->buffer_length;
61206#line 1071
61207  if (__cil_tmp48 > 0) {
61208    {
61209#line 1071
61210    __cil_tmp49 = (void *)0;
61211#line 1071
61212    __cil_tmp50 = (unsigned long )__cil_tmp49;
61213#line 1071
61214    __cil_tmp51 = uurb->buffer;
61215#line 1071
61216    __cil_tmp52 = (unsigned long )__cil_tmp51;
61217#line 1071
61218    if (__cil_tmp52 == __cil_tmp50) {
61219#line 1072
61220      return (-22);
61221    } else {
61222
61223    }
61224    }
61225  } else {
61226
61227  }
61228  }
61229  {
61230#line 1073
61231  __cil_tmp53 = uurb->type;
61232#line 1073
61233  __cil_tmp54 = (unsigned int )__cil_tmp53;
61234#line 1073
61235  if (__cil_tmp54 != 2U) {
61236#line 1073
61237    goto _L;
61238  } else {
61239    {
61240#line 1073
61241    __cil_tmp55 = uurb->endpoint;
61242#line 1073
61243    __cil_tmp56 = (int )__cil_tmp55;
61244#line 1073
61245    __cil_tmp57 = __cil_tmp56 & -129;
61246#line 1073
61247    if (__cil_tmp57 != 0) {
61248      _L: 
61249      {
61250#line 1075
61251      __cil_tmp58 = ps->dev;
61252#line 1075
61253      __cil_tmp59 = uurb->endpoint;
61254#line 1075
61255      __cil_tmp60 = (unsigned int )__cil_tmp59;
61256#line 1075
61257      ifnum = findintfep(__cil_tmp58, __cil_tmp60);
61258      }
61259#line 1076
61260      if (ifnum < 0) {
61261#line 1077
61262        return (ifnum);
61263      } else {
61264
61265      }
61266      {
61267#line 1078
61268      __cil_tmp61 = (unsigned int )ifnum;
61269#line 1078
61270      ret = checkintf(ps, __cil_tmp61);
61271      }
61272#line 1079
61273      if (ret != 0) {
61274#line 1080
61275        return (ret);
61276      } else {
61277
61278      }
61279    } else {
61280
61281    }
61282    }
61283  }
61284  }
61285  {
61286#line 1082
61287  __cil_tmp62 = uurb->endpoint;
61288#line 1082
61289  __cil_tmp63 = (signed char )__cil_tmp62;
61290#line 1082
61291  __cil_tmp64 = (int )__cil_tmp63;
61292#line 1082
61293  if (__cil_tmp64 < 0) {
61294#line 1083
61295    is_in = 1;
61296#line 1084
61297    __cil_tmp65 = ps->dev;
61298#line 1084
61299    ep = __cil_tmp65->ep_in[(int )uurb->endpoint & 15];
61300  } else {
61301#line 1086
61302    is_in = 0;
61303#line 1087
61304    __cil_tmp66 = ps->dev;
61305#line 1087
61306    ep = __cil_tmp66->ep_out[(int )uurb->endpoint & 15];
61307  }
61308  }
61309  {
61310#line 1089
61311  __cil_tmp67 = (struct usb_host_endpoint *)0;
61312#line 1089
61313  __cil_tmp68 = (unsigned long )__cil_tmp67;
61314#line 1089
61315  __cil_tmp69 = (unsigned long )ep;
61316#line 1089
61317  if (__cil_tmp69 == __cil_tmp68) {
61318#line 1090
61319    return (-2);
61320  } else {
61321
61322  }
61323  }
61324  {
61325#line 1092
61326  __cil_tmp70 = uurb->type;
61327#line 1092
61328  __cil_tmp71 = (int )__cil_tmp70;
61329#line 1092
61330  if (__cil_tmp71 == 2) {
61331#line 1092
61332    goto case_2;
61333  } else {
61334    {
61335#line 1136
61336    __cil_tmp72 = uurb->type;
61337#line 1136
61338    __cil_tmp73 = (int )__cil_tmp72;
61339#line 1136
61340    if (__cil_tmp73 == 3) {
61341#line 1136
61342      goto case_3;
61343    } else {
61344      {
61345#line 1151
61346      __cil_tmp74 = uurb->type;
61347#line 1151
61348      __cil_tmp75 = (int )__cil_tmp74;
61349#line 1151
61350      if (__cil_tmp75 == 1) {
61351#line 1151
61352        goto case_1___0;
61353      } else {
61354        {
61355#line 1160
61356        __cil_tmp76 = uurb->type;
61357#line 1160
61358        __cil_tmp77 = (int )__cil_tmp76;
61359#line 1160
61360        if (__cil_tmp77 == 0) {
61361#line 1160
61362          goto case_0___0;
61363        } else {
61364#line 1192
61365          goto switch_default;
61366#line 1091
61367          if (0) {
61368            case_2: 
61369            {
61370#line 1093
61371            __cil_tmp78 = & ep->desc;
61372#line 1093
61373            __cil_tmp79 = (struct usb_endpoint_descriptor  const  *)__cil_tmp78;
61374#line 1093
61375            tmp___0 = usb_endpoint_xfer_control(__cil_tmp79);
61376            }
61377#line 1093
61378            if (tmp___0 == 0) {
61379#line 1094
61380              return (-22);
61381            } else {
61382
61383            }
61384            {
61385#line 1097
61386            __cil_tmp80 = uurb->buffer_length;
61387#line 1097
61388            if (__cil_tmp80 <= 7) {
61389#line 1099
61390              return (-22);
61391            } else {
61392              {
61393#line 1097
61394              __cil_tmp81 = uurb->buffer_length;
61395#line 1097
61396              if (__cil_tmp81 > 16392) {
61397#line 1099
61398                return (-22);
61399              } else {
61400
61401              }
61402              }
61403            }
61404            }
61405            {
61406#line 1100
61407            tmp___1 = kmalloc(8UL, 208U);
61408#line 1100
61409            dr = (struct usb_ctrlrequest *)tmp___1;
61410            }
61411            {
61412#line 1101
61413            __cil_tmp82 = (struct usb_ctrlrequest *)0;
61414#line 1101
61415            __cil_tmp83 = (unsigned long )__cil_tmp82;
61416#line 1101
61417            __cil_tmp84 = (unsigned long )dr;
61418#line 1101
61419            if (__cil_tmp84 == __cil_tmp83) {
61420#line 1102
61421              return (-12);
61422            } else {
61423
61424            }
61425            }
61426            {
61427#line 1103
61428            __cil_tmp85 = (void *)dr;
61429#line 1103
61430            __cil_tmp86 = uurb->buffer;
61431#line 1103
61432            __cil_tmp87 = (void const   *)__cil_tmp86;
61433#line 1103
61434            tmp___2 = copy_from_user(__cil_tmp85, __cil_tmp87, 8UL);
61435            }
61436#line 1103
61437            if (tmp___2 != 0UL) {
61438              {
61439#line 1104
61440              __cil_tmp88 = (void const   *)dr;
61441#line 1104
61442              kfree(__cil_tmp88);
61443              }
61444#line 1105
61445              return (-14);
61446            } else {
61447
61448            }
61449            {
61450#line 1107
61451            __cil_tmp89 = & dr->wLength;
61452#line 1107
61453            __cil_tmp90 = (__le16 const   *)__cil_tmp89;
61454#line 1107
61455            tmp___3 = __le16_to_cpup(__cil_tmp90);
61456            }
61457            {
61458#line 1107
61459            __cil_tmp91 = (int )tmp___3;
61460#line 1107
61461            __cil_tmp92 = __cil_tmp91 + 8;
61462#line 1107
61463            __cil_tmp93 = uurb->buffer_length;
61464#line 1107
61465            if (__cil_tmp93 < __cil_tmp92) {
61466              {
61467#line 1108
61468              __cil_tmp94 = (void const   *)dr;
61469#line 1108
61470              kfree(__cil_tmp94);
61471              }
61472#line 1109
61473              return (-22);
61474            } else {
61475
61476            }
61477            }
61478            {
61479#line 1111
61480            __cil_tmp95 = & dr->wIndex;
61481#line 1111
61482            __cil_tmp96 = (__le16 const   *)__cil_tmp95;
61483#line 1111
61484            tmp___4 = __le16_to_cpup(__cil_tmp96);
61485#line 1111
61486            __cil_tmp97 = dr->bRequestType;
61487#line 1111
61488            __cil_tmp98 = (unsigned int )__cil_tmp97;
61489#line 1111
61490            __cil_tmp99 = (unsigned int )tmp___4;
61491#line 1111
61492            ret = check_ctrlrecip(ps, __cil_tmp98, __cil_tmp99);
61493            }
61494#line 1113
61495            if (ret != 0) {
61496              {
61497#line 1114
61498              __cil_tmp100 = (void const   *)dr;
61499#line 1114
61500              kfree(__cil_tmp100);
61501              }
61502#line 1115
61503              return (ret);
61504            } else {
61505
61506            }
61507            {
61508#line 1117
61509            uurb->number_of_packets = 0;
61510#line 1118
61511            __cil_tmp101 = & dr->wLength;
61512#line 1118
61513            __cil_tmp102 = (__le16 const   *)__cil_tmp101;
61514#line 1118
61515            tmp___5 = __le16_to_cpup(__cil_tmp102);
61516#line 1118
61517            uurb->buffer_length = (int )tmp___5;
61518#line 1119
61519            __cil_tmp103 = uurb->buffer;
61520#line 1119
61521            uurb->buffer = __cil_tmp103 + 8UL;
61522            }
61523            {
61524#line 1120
61525            __cil_tmp104 = dr->bRequestType;
61526#line 1120
61527            __cil_tmp105 = (signed char )__cil_tmp104;
61528#line 1120
61529            __cil_tmp106 = (int )__cil_tmp105;
61530#line 1120
61531            if (__cil_tmp106 < 0) {
61532              {
61533#line 1120
61534              __cil_tmp107 = uurb->buffer_length;
61535#line 1120
61536              if (__cil_tmp107 != 0) {
61537#line 1121
61538                is_in = 1;
61539#line 1122
61540                __cil_tmp108 = uurb->endpoint;
61541#line 1122
61542                __cil_tmp109 = (unsigned int )__cil_tmp108;
61543#line 1122
61544                __cil_tmp110 = __cil_tmp109 | 128U;
61545#line 1122
61546                uurb->endpoint = (unsigned char )__cil_tmp110;
61547              } else {
61548#line 1124
61549                is_in = 0;
61550#line 1125
61551                __cil_tmp111 = uurb->endpoint;
61552#line 1125
61553                __cil_tmp112 = (unsigned int )__cil_tmp111;
61554#line 1125
61555                __cil_tmp113 = __cil_tmp112 & 127U;
61556#line 1125
61557                uurb->endpoint = (unsigned char )__cil_tmp113;
61558              }
61559              }
61560            } else {
61561#line 1124
61562              is_in = 0;
61563#line 1125
61564              __cil_tmp114 = uurb->endpoint;
61565#line 1125
61566              __cil_tmp115 = (unsigned int )__cil_tmp114;
61567#line 1125
61568              __cil_tmp116 = __cil_tmp115 & 127U;
61569#line 1125
61570              uurb->endpoint = (unsigned char )__cil_tmp116;
61571            }
61572            }
61573#line 1127
61574            if (usbfs_snoop != 0) {
61575              {
61576#line 1127
61577              __cil_tmp117 = & dr->wLength;
61578#line 1127
61579              __cil_tmp118 = (__le16 const   *)__cil_tmp117;
61580#line 1127
61581              tmp___6 = __le16_to_cpup(__cil_tmp118);
61582#line 1127
61583              __cil_tmp119 = & dr->wIndex;
61584#line 1127
61585              __cil_tmp120 = (__le16 const   *)__cil_tmp119;
61586#line 1127
61587              tmp___7 = __le16_to_cpup(__cil_tmp120);
61588#line 1127
61589              __cil_tmp121 = & dr->wValue;
61590#line 1127
61591              __cil_tmp122 = (__le16 const   *)__cil_tmp121;
61592#line 1127
61593              tmp___8 = __le16_to_cpup(__cil_tmp122);
61594#line 1127
61595              __cil_tmp123 = ps->dev;
61596#line 1127
61597              __cil_tmp124 = & __cil_tmp123->dev;
61598#line 1127
61599              __cil_tmp125 = (struct device  const  *)__cil_tmp124;
61600#line 1127
61601              __cil_tmp126 = dr->bRequestType;
61602#line 1127
61603              __cil_tmp127 = (int )__cil_tmp126;
61604#line 1127
61605              __cil_tmp128 = dr->bRequest;
61606#line 1127
61607              __cil_tmp129 = (int )__cil_tmp128;
61608#line 1127
61609              __cil_tmp130 = (int )tmp___8;
61610#line 1127
61611              __cil_tmp131 = (int )tmp___7;
61612#line 1127
61613              __cil_tmp132 = (int )tmp___6;
61614#line 1127
61615              _dev_info(__cil_tmp125, "control urb: bRequestType=%02x bRequest=%02x wValue=%04x wIndex=%04x wLength=%04x\n",
61616                        __cil_tmp127, __cil_tmp129, __cil_tmp130, __cil_tmp131, __cil_tmp132);
61617              }
61618            } else {
61619
61620            }
61621#line 1134
61622            goto ldv_30988;
61623            case_3: 
61624            {
61625#line 1137
61626            __cil_tmp133 = & ep->desc;
61627#line 1137
61628            __cil_tmp134 = (struct usb_endpoint_descriptor  const  *)__cil_tmp133;
61629#line 1137
61630            tmp___9 = usb_endpoint_type(__cil_tmp134);
61631            }
61632#line 1138
61633            if (tmp___9 == 0) {
61634#line 1138
61635              goto case_0;
61636            } else
61637#line 1139
61638            if (tmp___9 == 1) {
61639#line 1139
61640              goto case_1;
61641            } else
61642#line 1141
61643            if (tmp___9 == 3) {
61644#line 1141
61645              goto case_3___0;
61646            } else
61647#line 1137
61648            if (0) {
61649              case_0: ;
61650              case_1: ;
61651#line 1140
61652              return (-22);
61653              case_3___0: 
61654#line 1143
61655              uurb->type = (unsigned char)1;
61656#line 1144
61657              goto interrupt_urb;
61658            } else {
61659
61660            }
61661#line 1146
61662            uurb->number_of_packets = 0;
61663            {
61664#line 1147
61665            __cil_tmp135 = uurb->buffer_length;
61666#line 1147
61667            if (__cil_tmp135 > 16384) {
61668#line 1148
61669              return (-22);
61670            } else {
61671
61672            }
61673            }
61674#line 1149
61675            goto ldv_30988;
61676            case_1___0: 
61677            {
61678#line 1152
61679            __cil_tmp136 = & ep->desc;
61680#line 1152
61681            __cil_tmp137 = (struct usb_endpoint_descriptor  const  *)__cil_tmp136;
61682#line 1152
61683            tmp___10 = usb_endpoint_xfer_int(__cil_tmp137);
61684            }
61685#line 1152
61686            if (tmp___10 == 0) {
61687#line 1153
61688              return (-22);
61689            } else {
61690
61691            }
61692            interrupt_urb: 
61693#line 1155
61694            uurb->number_of_packets = 0;
61695            {
61696#line 1156
61697            __cil_tmp138 = uurb->buffer_length;
61698#line 1156
61699            if (__cil_tmp138 > 16384) {
61700#line 1157
61701              return (-22);
61702            } else {
61703
61704            }
61705            }
61706#line 1158
61707            goto ldv_30988;
61708            case_0___0: ;
61709            {
61710#line 1162
61711            __cil_tmp139 = uurb->number_of_packets;
61712#line 1162
61713            if (__cil_tmp139 <= 0) {
61714#line 1164
61715              return (-22);
61716            } else {
61717              {
61718#line 1162
61719              __cil_tmp140 = uurb->number_of_packets;
61720#line 1162
61721              if (__cil_tmp140 > 128) {
61722#line 1164
61723                return (-22);
61724              } else {
61725
61726              }
61727              }
61728            }
61729            }
61730            {
61731#line 1165
61732            __cil_tmp141 = & ep->desc;
61733#line 1165
61734            __cil_tmp142 = (struct usb_endpoint_descriptor  const  *)__cil_tmp141;
61735#line 1165
61736            tmp___11 = usb_endpoint_xfer_isoc(__cil_tmp142);
61737            }
61738#line 1165
61739            if (tmp___11 == 0) {
61740#line 1166
61741              return (-22);
61742            } else {
61743
61744            }
61745            {
61746#line 1167
61747            __cil_tmp143 = uurb->number_of_packets;
61748#line 1167
61749            __cil_tmp144 = (unsigned long )__cil_tmp143;
61750#line 1167
61751            __cil_tmp145 = (unsigned int )__cil_tmp144;
61752#line 1167
61753            isofrmlen = __cil_tmp145 * 12U;
61754#line 1169
61755            __cil_tmp146 = (size_t )isofrmlen;
61756#line 1169
61757            tmp___12 = kmalloc(__cil_tmp146, 208U);
61758#line 1169
61759            isopkt = (struct usbdevfs_iso_packet_desc *)tmp___12;
61760            }
61761            {
61762#line 1169
61763            __cil_tmp147 = (struct usbdevfs_iso_packet_desc *)0;
61764#line 1169
61765            __cil_tmp148 = (unsigned long )__cil_tmp147;
61766#line 1169
61767            __cil_tmp149 = (unsigned long )isopkt;
61768#line 1169
61769            if (__cil_tmp149 == __cil_tmp148) {
61770#line 1170
61771              return (-12);
61772            } else {
61773
61774            }
61775            }
61776            {
61777#line 1171
61778            __cil_tmp150 = (void *)isopkt;
61779#line 1171
61780            __cil_tmp151 = (void const   *)iso_frame_desc;
61781#line 1171
61782            __cil_tmp152 = (unsigned long )isofrmlen;
61783#line 1171
61784            tmp___13 = copy_from_user(__cil_tmp150, __cil_tmp151, __cil_tmp152);
61785            }
61786#line 1171
61787            if (tmp___13 != 0UL) {
61788              {
61789#line 1172
61790              __cil_tmp153 = (void const   *)isopkt;
61791#line 1172
61792              kfree(__cil_tmp153);
61793              }
61794#line 1173
61795              return (-14);
61796            } else {
61797
61798            }
61799#line 1175
61800            u = 0U;
61801#line 1175
61802            totlen = u;
61803#line 1175
61804            goto ldv_30997;
61805            ldv_30996: ;
61806            {
61807#line 1178
61808            __cil_tmp154 = (unsigned long )u;
61809#line 1178
61810            __cil_tmp155 = isopkt + __cil_tmp154;
61811#line 1178
61812            __cil_tmp156 = __cil_tmp155->length;
61813#line 1178
61814            if (__cil_tmp156 > 8192U) {
61815              {
61816#line 1179
61817              __cil_tmp157 = (void const   *)isopkt;
61818#line 1179
61819              kfree(__cil_tmp157);
61820              }
61821#line 1180
61822              return (-22);
61823            } else {
61824
61825            }
61826            }
61827#line 1182
61828            __cil_tmp158 = (unsigned long )u;
61829#line 1182
61830            __cil_tmp159 = isopkt + __cil_tmp158;
61831#line 1182
61832            __cil_tmp160 = __cil_tmp159->length;
61833#line 1182
61834            totlen = __cil_tmp160 + totlen;
61835#line 1175
61836            u = u + 1U;
61837            ldv_30997: ;
61838            {
61839#line 1175
61840            __cil_tmp161 = uurb->number_of_packets;
61841#line 1175
61842            __cil_tmp162 = (unsigned int )__cil_tmp161;
61843#line 1175
61844            if (__cil_tmp162 > u) {
61845#line 1176
61846              goto ldv_30996;
61847            } else {
61848#line 1178
61849              goto ldv_30998;
61850            }
61851            }
61852            ldv_30998: ;
61853#line 1185
61854            if (totlen > 196608U) {
61855              {
61856#line 1186
61857              __cil_tmp163 = (void const   *)isopkt;
61858#line 1186
61859              kfree(__cil_tmp163);
61860              }
61861#line 1187
61862              return (-22);
61863            } else {
61864
61865            }
61866#line 1189
61867            uurb->buffer_length = (int )totlen;
61868#line 1190
61869            goto ldv_30988;
61870            switch_default: ;
61871#line 1193
61872            return (-22);
61873          } else {
61874
61875          }
61876        }
61877        }
61878      }
61879      }
61880    }
61881    }
61882  }
61883  }
61884  ldv_30988: ;
61885  {
61886#line 1196
61887  __cil_tmp164 = uurb->buffer_length;
61888#line 1196
61889  if (__cil_tmp164 > 0) {
61890    {
61891#line 1196
61892    tmp___14 = current_thread_info();
61893#line 1196
61894    __cil_tmp165 = uurb->buffer_length;
61895#line 1196
61896    __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (uurb->buffer),
61897              "g" ((long )__cil_tmp165), "rm" (tmp___14->addr_limit.seg));
61898#line 1196
61899    __cil_tmp166 = flag == 0UL;
61900#line 1196
61901    __cil_tmp167 = (long )__cil_tmp166;
61902#line 1196
61903    tmp___15 = __builtin_expect(__cil_tmp167, 1L);
61904    }
61905#line 1196
61906    if (tmp___15 == 0L) {
61907      {
61908#line 1198
61909      __cil_tmp168 = (void const   *)isopkt;
61910#line 1198
61911      kfree(__cil_tmp168);
61912#line 1199
61913      __cil_tmp169 = (void const   *)dr;
61914#line 1199
61915      kfree(__cil_tmp169);
61916      }
61917#line 1200
61918      return (-14);
61919    } else {
61920
61921    }
61922  } else {
61923
61924  }
61925  }
61926  {
61927#line 1202
61928  __cil_tmp170 = uurb->number_of_packets;
61929#line 1202
61930  __cil_tmp171 = (unsigned int )__cil_tmp170;
61931#line 1202
61932  as = alloc_async(__cil_tmp171);
61933  }
61934  {
61935#line 1203
61936  __cil_tmp172 = (struct async *)0;
61937#line 1203
61938  __cil_tmp173 = (unsigned long )__cil_tmp172;
61939#line 1203
61940  __cil_tmp174 = (unsigned long )as;
61941#line 1203
61942  if (__cil_tmp174 == __cil_tmp173) {
61943    {
61944#line 1204
61945    __cil_tmp175 = (void const   *)isopkt;
61946#line 1204
61947    kfree(__cil_tmp175);
61948#line 1205
61949    __cil_tmp176 = (void const   *)dr;
61950#line 1205
61951    kfree(__cil_tmp176);
61952    }
61953#line 1206
61954    return (-12);
61955  } else {
61956
61957  }
61958  }
61959  {
61960#line 1208
61961  __cil_tmp177 = uurb->buffer_length;
61962#line 1208
61963  if (__cil_tmp177 > 0) {
61964    {
61965#line 1209
61966    __cil_tmp178 = as->urb;
61967#line 1209
61968    __cil_tmp179 = uurb->buffer_length;
61969#line 1209
61970    __cil_tmp180 = (size_t )__cil_tmp179;
61971#line 1209
61972    __cil_tmp178->transfer_buffer = kmalloc(__cil_tmp180, 208U);
61973    }
61974    {
61975#line 1211
61976    __cil_tmp181 = (void *)0;
61977#line 1211
61978    __cil_tmp182 = (unsigned long )__cil_tmp181;
61979#line 1211
61980    __cil_tmp183 = as->urb;
61981#line 1211
61982    __cil_tmp184 = __cil_tmp183->transfer_buffer;
61983#line 1211
61984    __cil_tmp185 = (unsigned long )__cil_tmp184;
61985#line 1211
61986    if (__cil_tmp185 == __cil_tmp182) {
61987      {
61988#line 1212
61989      __cil_tmp186 = (void const   *)isopkt;
61990#line 1212
61991      kfree(__cil_tmp186);
61992#line 1213
61993      __cil_tmp187 = (void const   *)dr;
61994#line 1213
61995      kfree(__cil_tmp187);
61996#line 1214
61997      free_async(as);
61998      }
61999#line 1215
62000      return (-12);
62001    } else {
62002
62003    }
62004    }
62005#line 1221
62006    if (is_in != 0) {
62007      {
62008#line 1221
62009      __cil_tmp188 = uurb->type;
62010#line 1221
62011      __cil_tmp189 = (unsigned int )__cil_tmp188;
62012#line 1221
62013      if (__cil_tmp189 == 0U) {
62014        {
62015#line 1222
62016        __cil_tmp190 = as->urb;
62017#line 1222
62018        __cil_tmp191 = __cil_tmp190->transfer_buffer;
62019#line 1222
62020        __cil_tmp192 = uurb->buffer_length;
62021#line 1222
62022        __cil_tmp193 = (size_t )__cil_tmp192;
62023#line 1222
62024        memset(__cil_tmp191, 0, __cil_tmp193);
62025        }
62026      } else {
62027
62028      }
62029      }
62030    } else {
62031
62032    }
62033  } else {
62034
62035  }
62036  }
62037  {
62038#line 1225
62039  __cil_tmp194 = as->urb;
62040#line 1225
62041  __cil_tmp194->dev = ps->dev;
62042#line 1226
62043  __cil_tmp195 = ps->dev;
62044#line 1226
62045  __cil_tmp196 = uurb->endpoint;
62046#line 1226
62047  __cil_tmp197 = (unsigned int )__cil_tmp196;
62048#line 1226
62049  __cil_tmp198 = __cil_tmp197 & 15U;
62050#line 1226
62051  tmp___16 = __create_pipe(__cil_tmp195, __cil_tmp198);
62052#line 1226
62053  __cil_tmp199 = as->urb;
62054#line 1226
62055  __cil_tmp200 = uurb->endpoint;
62056#line 1226
62057  __cil_tmp201 = (unsigned int )__cil_tmp200;
62058#line 1226
62059  __cil_tmp202 = __cil_tmp201 & 128U;
62060#line 1226
62061  __cil_tmp203 = uurb->type;
62062#line 1226
62063  __cil_tmp204 = (int )__cil_tmp203;
62064#line 1226
62065  __cil_tmp205 = __cil_tmp204 << 30;
62066#line 1226
62067  __cil_tmp206 = (unsigned int )__cil_tmp205;
62068#line 1226
62069  __cil_tmp207 = __cil_tmp206 | tmp___16;
62070#line 1226
62071  __cil_tmp199->pipe = __cil_tmp207 | __cil_tmp202;
62072  }
62073#line 1234
62074  if (is_in != 0) {
62075#line 1234
62076    u = 512U;
62077  } else {
62078#line 1234
62079    u = 0U;
62080  }
62081  {
62082#line 1235
62083  __cil_tmp208 = uurb->flags;
62084#line 1235
62085  __cil_tmp209 = __cil_tmp208 & 2U;
62086#line 1235
62087  if (__cil_tmp209 != 0U) {
62088#line 1236
62089    u = u | 2U;
62090  } else {
62091
62092  }
62093  }
62094  {
62095#line 1237
62096  __cil_tmp210 = uurb->flags;
62097#line 1237
62098  __cil_tmp211 = (int )__cil_tmp210;
62099#line 1237
62100  if (__cil_tmp211 & 1) {
62101#line 1238
62102    u = u | 1U;
62103  } else {
62104
62105  }
62106  }
62107  {
62108#line 1239
62109  __cil_tmp212 = uurb->flags;
62110#line 1239
62111  __cil_tmp213 = __cil_tmp212 & 32U;
62112#line 1239
62113  if (__cil_tmp213 != 0U) {
62114#line 1240
62115    u = u | 32U;
62116  } else {
62117
62118  }
62119  }
62120  {
62121#line 1241
62122  __cil_tmp214 = uurb->flags;
62123#line 1241
62124  __cil_tmp215 = __cil_tmp214 & 64U;
62125#line 1241
62126  if (__cil_tmp215 != 0U) {
62127#line 1242
62128    u = u | 64U;
62129  } else {
62130
62131  }
62132  }
62133  {
62134#line 1243
62135  __cil_tmp216 = uurb->flags;
62136#line 1243
62137  __cil_tmp217 = __cil_tmp216 & 128U;
62138#line 1243
62139  if (__cil_tmp217 != 0U) {
62140#line 1244
62141    u = u | 128U;
62142  } else {
62143
62144  }
62145  }
62146#line 1245
62147  __cil_tmp218 = as->urb;
62148#line 1245
62149  __cil_tmp218->transfer_flags = u;
62150#line 1247
62151  __cil_tmp219 = as->urb;
62152#line 1247
62153  __cil_tmp220 = uurb->buffer_length;
62154#line 1247
62155  __cil_tmp219->transfer_buffer_length = (u32 )__cil_tmp220;
62156#line 1248
62157  __cil_tmp221 = as->urb;
62158#line 1248
62159  __cil_tmp221->setup_packet = (unsigned char *)dr;
62160#line 1249
62161  __cil_tmp222 = as->urb;
62162#line 1249
62163  __cil_tmp222->start_frame = uurb->start_frame;
62164#line 1250
62165  __cil_tmp223 = as->urb;
62166#line 1250
62167  __cil_tmp223->number_of_packets = uurb->number_of_packets;
62168  {
62169#line 1251
62170  __cil_tmp224 = uurb->type;
62171#line 1251
62172  __cil_tmp225 = (unsigned int )__cil_tmp224;
62173#line 1251
62174  if (__cil_tmp225 == 0U) {
62175#line 1251
62176    goto _L___0;
62177  } else {
62178    {
62179#line 1251
62180    __cil_tmp226 = ps->dev;
62181#line 1251
62182    __cil_tmp227 = __cil_tmp226->speed;
62183#line 1251
62184    __cil_tmp228 = (unsigned int )__cil_tmp227;
62185#line 1251
62186    if (__cil_tmp228 == 3U) {
62187      _L___0: 
62188#line 1253
62189      _min1 = 15;
62190#line 1253
62191      __cil_tmp229 = ep->desc.bInterval;
62192#line 1253
62193      __cil_tmp230 = (int )__cil_tmp229;
62194#line 1253
62195      _min2 = __cil_tmp230 + -1;
62196#line 1253
62197      if (_min1 < _min2) {
62198#line 1253
62199        tmp___17 = _min1;
62200      } else {
62201#line 1253
62202        tmp___17 = _min2;
62203      }
62204#line 1253
62205      __cil_tmp231 = as->urb;
62206#line 1253
62207      __cil_tmp231->interval = 1 << tmp___17;
62208    } else {
62209#line 1255
62210      __cil_tmp232 = as->urb;
62211#line 1255
62212      __cil_tmp233 = ep->desc.bInterval;
62213#line 1255
62214      __cil_tmp232->interval = (int )__cil_tmp233;
62215    }
62216    }
62217  }
62218  }
62219#line 1256
62220  __cil_tmp234 = as->urb;
62221#line 1256
62222  __cil_tmp234->context = (void *)as;
62223#line 1257
62224  __cil_tmp235 = as->urb;
62225#line 1257
62226  __cil_tmp235->complete = & async_completed;
62227#line 1258
62228  u = 0U;
62229#line 1258
62230  totlen = u;
62231#line 1258
62232  goto ldv_31007;
62233  ldv_31006: 
62234#line 1259
62235  __cil_tmp236 = as->urb;
62236#line 1259
62237  __cil_tmp236->iso_frame_desc[u].offset = totlen;
62238#line 1260
62239  __cil_tmp237 = as->urb;
62240#line 1260
62241  __cil_tmp238 = (unsigned long )u;
62242#line 1260
62243  __cil_tmp239 = isopkt + __cil_tmp238;
62244#line 1260
62245  __cil_tmp237->iso_frame_desc[u].length = __cil_tmp239->length;
62246#line 1261
62247  __cil_tmp240 = (unsigned long )u;
62248#line 1261
62249  __cil_tmp241 = isopkt + __cil_tmp240;
62250#line 1261
62251  __cil_tmp242 = __cil_tmp241->length;
62252#line 1261
62253  totlen = __cil_tmp242 + totlen;
62254#line 1258
62255  u = u + 1U;
62256  ldv_31007: ;
62257  {
62258#line 1258
62259  __cil_tmp243 = uurb->number_of_packets;
62260#line 1258
62261  __cil_tmp244 = (unsigned int )__cil_tmp243;
62262#line 1258
62263  if (__cil_tmp244 > u) {
62264#line 1259
62265    goto ldv_31006;
62266  } else {
62267#line 1261
62268    goto ldv_31008;
62269  }
62270  }
62271  ldv_31008: 
62272  {
62273#line 1263
62274  __cil_tmp245 = (void const   *)isopkt;
62275#line 1263
62276  kfree(__cil_tmp245);
62277#line 1264
62278  as->ps = ps;
62279#line 1265
62280  as->userurb = arg;
62281  }
62282#line 1266
62283  if (is_in != 0) {
62284    {
62285#line 1266
62286    __cil_tmp246 = uurb->buffer_length;
62287#line 1266
62288    if (__cil_tmp246 > 0) {
62289#line 1267
62290      as->userbuffer = uurb->buffer;
62291    } else {
62292#line 1269
62293      as->userbuffer = (void *)0;
62294    }
62295    }
62296  } else {
62297#line 1269
62298    as->userbuffer = (void *)0;
62299  }
62300  {
62301#line 1270
62302  as->signr = uurb->signr;
62303#line 1271
62304  as->ifnum = (unsigned int )ifnum;
62305#line 1272
62306  tmp___18 = get_current();
62307#line 1272
62308  tmp___19 = task_pid(tmp___18);
62309#line 1272
62310  as->pid = get_pid(tmp___19);
62311#line 1273
62312  __cil_tmp247 = cred->uid;
62313#line 1273
62314  as->uid = (uid_t )__cil_tmp247;
62315#line 1274
62316  __cil_tmp248 = cred->euid;
62317#line 1274
62318  as->euid = (uid_t )__cil_tmp248;
62319#line 1275
62320  tmp___20 = get_current();
62321#line 1275
62322  __cil_tmp249 = & as->secid;
62323#line 1275
62324  security_task_getsecid(tmp___20, __cil_tmp249);
62325  }
62326#line 1276
62327  if (is_in == 0) {
62328    {
62329#line 1276
62330    __cil_tmp250 = uurb->buffer_length;
62331#line 1276
62332    if (__cil_tmp250 > 0) {
62333      {
62334#line 1277
62335      __cil_tmp251 = as->urb;
62336#line 1277
62337      __cil_tmp252 = __cil_tmp251->transfer_buffer;
62338#line 1277
62339      __cil_tmp253 = uurb->buffer;
62340#line 1277
62341      __cil_tmp254 = (void const   *)__cil_tmp253;
62342#line 1277
62343      __cil_tmp255 = uurb->buffer_length;
62344#line 1277
62345      __cil_tmp256 = (unsigned long )__cil_tmp255;
62346#line 1277
62347      tmp___21 = copy_from_user(__cil_tmp252, __cil_tmp254, __cil_tmp256);
62348      }
62349#line 1277
62350      if (tmp___21 != 0UL) {
62351        {
62352#line 1279
62353        free_async(as);
62354        }
62355#line 1280
62356        return (-14);
62357      } else {
62358
62359      }
62360    } else {
62361
62362    }
62363    }
62364  } else {
62365
62366  }
62367#line 1283
62368  if (is_in == 0) {
62369#line 1283
62370    __cil_tmp257 = as->urb;
62371#line 1283
62372    __cil_tmp258 = __cil_tmp257->transfer_buffer;
62373#line 1283
62374    tmp___22 = (unsigned char *)__cil_tmp258;
62375  } else {
62376#line 1283
62377    tmp___22 = (unsigned char *)0;
62378  }
62379  {
62380#line 1283
62381  __cil_tmp259 = ps->dev;
62382#line 1283
62383  __cil_tmp260 = as->userurb;
62384#line 1283
62385  __cil_tmp261 = as->urb;
62386#line 1283
62387  __cil_tmp262 = __cil_tmp261->pipe;
62388#line 1283
62389  __cil_tmp263 = (int )__cil_tmp262;
62390#line 1283
62391  __cil_tmp264 = as->urb;
62392#line 1283
62393  __cil_tmp265 = __cil_tmp264->transfer_buffer_length;
62394#line 1283
62395  __cil_tmp266 = (enum snoop_when )0;
62396#line 1283
62397  __cil_tmp267 = uurb->buffer_length;
62398#line 1283
62399  __cil_tmp268 = (unsigned int )__cil_tmp267;
62400#line 1283
62401  snoop_urb(__cil_tmp259, __cil_tmp260, __cil_tmp263, __cil_tmp265, 0, __cil_tmp266,
62402            tmp___22, __cil_tmp268);
62403#line 1287
62404  async_newpending(as);
62405#line 1289
62406  __cil_tmp269 = & ep->desc;
62407#line 1289
62408  __cil_tmp270 = (struct usb_endpoint_descriptor  const  *)__cil_tmp269;
62409#line 1289
62410  tmp___24 = usb_endpoint_xfer_bulk(__cil_tmp270);
62411  }
62412#line 1289
62413  if (tmp___24 != 0) {
62414    {
62415#line 1290
62416    __cil_tmp271 = & ps->lock;
62417#line 1290
62418    spin_lock_irq(__cil_tmp271);
62419#line 1296
62420    __cil_tmp272 = & ep->desc;
62421#line 1296
62422    __cil_tmp273 = (struct usb_endpoint_descriptor  const  *)__cil_tmp272;
62423#line 1296
62424    tmp___23 = usb_endpoint_num(__cil_tmp273);
62425#line 1296
62426    __cil_tmp274 = ep->desc.bEndpointAddress;
62427#line 1296
62428    __cil_tmp275 = (int )__cil_tmp274;
62429#line 1296
62430    __cil_tmp276 = __cil_tmp275 & 128;
62431#line 1296
62432    __cil_tmp277 = __cil_tmp276 >> 3;
62433#line 1296
62434    __cil_tmp278 = (signed char )__cil_tmp277;
62435#line 1296
62436    __cil_tmp279 = (int )__cil_tmp278;
62437#line 1296
62438    __cil_tmp280 = (signed char )tmp___23;
62439#line 1296
62440    __cil_tmp281 = (int )__cil_tmp280;
62441#line 1296
62442    __cil_tmp282 = __cil_tmp281 | __cil_tmp279;
62443#line 1296
62444    as->bulk_addr = (u8 )__cil_tmp282;
62445    }
62446    {
62447#line 1303
62448    __cil_tmp283 = uurb->flags;
62449#line 1303
62450    __cil_tmp284 = __cil_tmp283 & 4U;
62451#line 1303
62452    if (__cil_tmp284 != 0U) {
62453#line 1304
62454      as->bulk_status = (u8 )1U;
62455    } else {
62456#line 1306
62457      __cil_tmp285 = as->bulk_addr;
62458#line 1306
62459      __cil_tmp286 = (int )__cil_tmp285;
62460#line 1306
62461      __cil_tmp287 = 1 << __cil_tmp286;
62462#line 1306
62463      __cil_tmp288 = ~ __cil_tmp287;
62464#line 1306
62465      __cil_tmp289 = (u32 )__cil_tmp288;
62466#line 1306
62467      __cil_tmp290 = ps->disabled_bulk_eps;
62468#line 1306
62469      ps->disabled_bulk_eps = __cil_tmp290 & __cil_tmp289;
62470    }
62471    }
62472    {
62473#line 1311
62474    __cil_tmp291 = as->bulk_addr;
62475#line 1311
62476    __cil_tmp292 = (int )__cil_tmp291;
62477#line 1311
62478    __cil_tmp293 = 1 << __cil_tmp292;
62479#line 1311
62480    __cil_tmp294 = (u32 )__cil_tmp293;
62481#line 1311
62482    __cil_tmp295 = ps->disabled_bulk_eps;
62483#line 1311
62484    __cil_tmp296 = __cil_tmp295 & __cil_tmp294;
62485#line 1311
62486    if (__cil_tmp296 != 0U) {
62487#line 1312
62488      ret = -121;
62489    } else {
62490      {
62491#line 1314
62492      __cil_tmp297 = as->urb;
62493#line 1314
62494      ret = usb_submit_urb(__cil_tmp297, 32U);
62495      }
62496    }
62497    }
62498    {
62499#line 1315
62500    __cil_tmp298 = & ps->lock;
62501#line 1315
62502    spin_unlock_irq(__cil_tmp298);
62503    }
62504  } else {
62505    {
62506#line 1317
62507    __cil_tmp299 = as->urb;
62508#line 1317
62509    ret = usb_submit_urb(__cil_tmp299, 208U);
62510    }
62511  }
62512#line 1320
62513  if (ret != 0) {
62514    {
62515#line 1321
62516    __cil_tmp300 = ps->dev;
62517#line 1321
62518    __cil_tmp301 = & __cil_tmp300->dev;
62519#line 1321
62520    __cil_tmp302 = (struct device  const  *)__cil_tmp301;
62521#line 1321
62522    dev_printk("<7>", __cil_tmp302, "usbfs: usb_submit_urb returned %d\n", ret);
62523#line 1323
62524    __cil_tmp303 = ps->dev;
62525#line 1323
62526    __cil_tmp304 = as->userurb;
62527#line 1323
62528    __cil_tmp305 = as->urb;
62529#line 1323
62530    __cil_tmp306 = __cil_tmp305->pipe;
62531#line 1323
62532    __cil_tmp307 = (int )__cil_tmp306;
62533#line 1323
62534    __cil_tmp308 = (enum snoop_when )1;
62535#line 1323
62536    __cil_tmp309 = (unsigned char *)0;
62537#line 1323
62538    snoop_urb(__cil_tmp303, __cil_tmp304, __cil_tmp307, 0U, ret, __cil_tmp308, __cil_tmp309,
62539              0U);
62540#line 1325
62541    async_removepending(as);
62542#line 1326
62543    free_async(as);
62544    }
62545#line 1327
62546    return (ret);
62547  } else {
62548
62549  }
62550#line 1329
62551  return (0);
62552}
62553}
62554#line 1332 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
62555static int proc_submiturb(struct dev_state *ps , void *arg ) 
62556{ struct usbdevfs_urb uurb ;
62557  unsigned long tmp ;
62558  int tmp___0 ;
62559  void *__cil_tmp6 ;
62560  void const   *__cil_tmp7 ;
62561  struct usbdevfs_urb *__cil_tmp8 ;
62562  struct usbdevfs_iso_packet_desc (*__cil_tmp9)[0U] ;
62563  struct usbdevfs_iso_packet_desc *__cil_tmp10 ;
62564
62565  {
62566  {
62567#line 1336
62568  __cil_tmp6 = (void *)(& uurb);
62569#line 1336
62570  __cil_tmp7 = (void const   *)arg;
62571#line 1336
62572  tmp = copy_from_user(__cil_tmp6, __cil_tmp7, 56UL);
62573  }
62574#line 1336
62575  if (tmp != 0UL) {
62576#line 1337
62577    return (-14);
62578  } else {
62579
62580  }
62581  {
62582#line 1339
62583  __cil_tmp8 = (struct usbdevfs_urb *)arg;
62584#line 1339
62585  __cil_tmp9 = & __cil_tmp8->iso_frame_desc;
62586#line 1339
62587  __cil_tmp10 = (struct usbdevfs_iso_packet_desc *)__cil_tmp9;
62588#line 1339
62589  tmp___0 = proc_do_submiturb(ps, & uurb, __cil_tmp10, arg);
62590  }
62591#line 1339
62592  return (tmp___0);
62593}
62594}
62595#line 1344 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
62596static int proc_unlinkurb(struct dev_state *ps , void *arg ) 
62597{ struct async *as ;
62598  struct async *__cil_tmp4 ;
62599  unsigned long __cil_tmp5 ;
62600  unsigned long __cil_tmp6 ;
62601  struct urb *__cil_tmp7 ;
62602
62603  {
62604  {
62605#line 1348
62606  as = async_getpending(ps, arg);
62607  }
62608  {
62609#line 1349
62610  __cil_tmp4 = (struct async *)0;
62611#line 1349
62612  __cil_tmp5 = (unsigned long )__cil_tmp4;
62613#line 1349
62614  __cil_tmp6 = (unsigned long )as;
62615#line 1349
62616  if (__cil_tmp6 == __cil_tmp5) {
62617#line 1350
62618    return (-22);
62619  } else {
62620
62621  }
62622  }
62623  {
62624#line 1351
62625  __cil_tmp7 = as->urb;
62626#line 1351
62627  usb_kill_urb(__cil_tmp7);
62628  }
62629#line 1352
62630  return (0);
62631}
62632}
62633#line 1355 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
62634static int processcompl(struct async *as , void **arg ) 
62635{ struct urb *urb ;
62636  struct usbdevfs_urb *userurb ;
62637  void *addr ;
62638  unsigned int i ;
62639  int tmp ;
62640  int __ret_pu ;
62641  int __pu_val ;
62642  int __ret_pu___0 ;
62643  int __pu_val___0 ;
62644  int __ret_pu___1 ;
62645  int __pu_val___1 ;
62646  int __ret_pu___2 ;
62647  unsigned int __pu_val___2 ;
62648  int __ret_pu___3 ;
62649  unsigned int __pu_val___3 ;
62650  int tmp___0 ;
62651  int __ret_pu___4 ;
62652  void *__pu_val___4 ;
62653  void *__cil_tmp21 ;
62654  void *__cil_tmp22 ;
62655  unsigned long __cil_tmp23 ;
62656  void *__cil_tmp24 ;
62657  unsigned long __cil_tmp25 ;
62658  u32 __cil_tmp26 ;
62659  int __cil_tmp27 ;
62660  void *__cil_tmp28 ;
62661  void *__cil_tmp29 ;
62662  void const   *__cil_tmp30 ;
62663  u32 __cil_tmp31 ;
62664  struct usb_host_endpoint *__cil_tmp32 ;
62665  struct usb_endpoint_descriptor *__cil_tmp33 ;
62666  struct usb_endpoint_descriptor  const  *__cil_tmp34 ;
62667  int __cil_tmp35 ;
62668  int __cil_tmp36 ;
62669  unsigned int __cil_tmp37 ;
62670
62671  {
62672#line 1357
62673  urb = as->urb;
62674#line 1358
62675  __cil_tmp21 = as->userurb;
62676#line 1358
62677  userurb = (struct usbdevfs_urb *)__cil_tmp21;
62678#line 1359
62679  addr = as->userurb;
62680  {
62681#line 1362
62682  __cil_tmp22 = (void *)0;
62683#line 1362
62684  __cil_tmp23 = (unsigned long )__cil_tmp22;
62685#line 1362
62686  __cil_tmp24 = as->userbuffer;
62687#line 1362
62688  __cil_tmp25 = (unsigned long )__cil_tmp24;
62689#line 1362
62690  if (__cil_tmp25 != __cil_tmp23) {
62691    {
62692#line 1362
62693    __cil_tmp26 = urb->actual_length;
62694#line 1362
62695    if (__cil_tmp26 != 0U) {
62696      {
62697#line 1363
62698      __cil_tmp27 = urb->number_of_packets;
62699#line 1363
62700      if (__cil_tmp27 > 0) {
62701#line 1364
62702        i = urb->transfer_buffer_length;
62703      } else {
62704#line 1366
62705        i = urb->actual_length;
62706      }
62707      }
62708      {
62709#line 1367
62710      __cil_tmp28 = as->userbuffer;
62711#line 1367
62712      __cil_tmp29 = urb->transfer_buffer;
62713#line 1367
62714      __cil_tmp30 = (void const   *)__cil_tmp29;
62715#line 1367
62716      tmp = copy_to_user(__cil_tmp28, __cil_tmp30, i);
62717      }
62718#line 1367
62719      if (tmp != 0) {
62720#line 1368
62721        goto err_out;
62722      } else {
62723
62724      }
62725    } else {
62726
62727    }
62728    }
62729  } else {
62730
62731  }
62732  }
62733  {
62734#line 1370
62735  might_fault();
62736#line 1370
62737  __pu_val = as->status;
62738  }
62739#line 1370
62740  if (1) {
62741#line 1370
62742    goto case_4;
62743  } else {
62744#line 1370
62745    goto switch_default;
62746#line 1370
62747    if (0) {
62748#line 1370
62749      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62750#line 1370
62751      goto ldv_31031;
62752#line 1370
62753      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62754#line 1370
62755      goto ldv_31031;
62756      case_4: 
62757#line 1370
62758      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62759#line 1370
62760      goto ldv_31031;
62761#line 1370
62762      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62763#line 1370
62764      goto ldv_31031;
62765      switch_default: 
62766#line 1370
62767      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62768#line 1370
62769      goto ldv_31031;
62770    } else {
62771
62772    }
62773  }
62774  ldv_31031: ;
62775#line 1370
62776  if (__ret_pu != 0) {
62777#line 1371
62778    goto err_out;
62779  } else {
62780
62781  }
62782  {
62783#line 1372
62784  might_fault();
62785#line 1372
62786  __cil_tmp31 = urb->actual_length;
62787#line 1372
62788  __pu_val___0 = (int )__cil_tmp31;
62789  }
62790#line 1372
62791  if (1) {
62792#line 1372
62793    goto case_4___0;
62794  } else {
62795#line 1372
62796    goto switch_default___0;
62797#line 1372
62798    if (0) {
62799#line 1372
62800      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___0): "0" (__pu_val___0),
62801                           "c" (& userurb->actual_length): "ebx");
62802#line 1372
62803      goto ldv_31040;
62804#line 1372
62805      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___0): "0" (__pu_val___0),
62806                           "c" (& userurb->actual_length): "ebx");
62807#line 1372
62808      goto ldv_31040;
62809      case_4___0: 
62810#line 1372
62811      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___0): "0" (__pu_val___0),
62812                           "c" (& userurb->actual_length): "ebx");
62813#line 1372
62814      goto ldv_31040;
62815#line 1372
62816      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___0): "0" (__pu_val___0),
62817                           "c" (& userurb->actual_length): "ebx");
62818#line 1372
62819      goto ldv_31040;
62820      switch_default___0: 
62821#line 1372
62822      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___0): "0" (__pu_val___0),
62823                           "c" (& userurb->actual_length): "ebx");
62824#line 1372
62825      goto ldv_31040;
62826    } else {
62827
62828    }
62829  }
62830  ldv_31040: ;
62831#line 1372
62832  if (__ret_pu___0 != 0) {
62833#line 1373
62834    goto err_out;
62835  } else {
62836
62837  }
62838  {
62839#line 1374
62840  might_fault();
62841#line 1374
62842  __pu_val___1 = urb->error_count;
62843  }
62844#line 1374
62845  if (1) {
62846#line 1374
62847    goto case_4___1;
62848  } else {
62849#line 1374
62850    goto switch_default___1;
62851#line 1374
62852    if (0) {
62853#line 1374
62854      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___1): "0" (__pu_val___1),
62855                           "c" (& userurb->error_count): "ebx");
62856#line 1374
62857      goto ldv_31049;
62858#line 1374
62859      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___1): "0" (__pu_val___1),
62860                           "c" (& userurb->error_count): "ebx");
62861#line 1374
62862      goto ldv_31049;
62863      case_4___1: 
62864#line 1374
62865      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___1): "0" (__pu_val___1),
62866                           "c" (& userurb->error_count): "ebx");
62867#line 1374
62868      goto ldv_31049;
62869#line 1374
62870      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___1): "0" (__pu_val___1),
62871                           "c" (& userurb->error_count): "ebx");
62872#line 1374
62873      goto ldv_31049;
62874      switch_default___1: 
62875#line 1374
62876      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___1): "0" (__pu_val___1),
62877                           "c" (& userurb->error_count): "ebx");
62878#line 1374
62879      goto ldv_31049;
62880    } else {
62881
62882    }
62883  }
62884  ldv_31049: ;
62885#line 1374
62886  if (__ret_pu___1 != 0) {
62887#line 1375
62888    goto err_out;
62889  } else {
62890
62891  }
62892  {
62893#line 1377
62894  __cil_tmp32 = urb->ep;
62895#line 1377
62896  __cil_tmp33 = & __cil_tmp32->desc;
62897#line 1377
62898  __cil_tmp34 = (struct usb_endpoint_descriptor  const  *)__cil_tmp33;
62899#line 1377
62900  tmp___0 = usb_endpoint_xfer_isoc(__cil_tmp34);
62901  }
62902#line 1377
62903  if (tmp___0 != 0) {
62904#line 1378
62905    i = 0U;
62906#line 1378
62907    goto ldv_31074;
62908    ldv_31073: 
62909    {
62910#line 1379
62911    might_fault();
62912#line 1379
62913    __pu_val___2 = urb->iso_frame_desc[i].actual_length;
62914    }
62915#line 1379
62916    if (1) {
62917#line 1379
62918      goto case_4___2;
62919    } else {
62920#line 1379
62921      goto switch_default___2;
62922#line 1379
62923      if (0) {
62924#line 1379
62925        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___2): "0" (__pu_val___2),
62926                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62927#line 1379
62928        goto ldv_31058;
62929#line 1379
62930        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___2): "0" (__pu_val___2),
62931                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62932#line 1379
62933        goto ldv_31058;
62934        case_4___2: 
62935#line 1379
62936        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___2): "0" (__pu_val___2),
62937                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62938#line 1379
62939        goto ldv_31058;
62940#line 1379
62941        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___2): "0" (__pu_val___2),
62942                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62943#line 1379
62944        goto ldv_31058;
62945        switch_default___2: 
62946#line 1379
62947        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___2): "0" (__pu_val___2),
62948                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62949#line 1379
62950        goto ldv_31058;
62951      } else {
62952
62953      }
62954    }
62955    ldv_31058: ;
62956#line 1379
62957    if (__ret_pu___2 != 0) {
62958#line 1381
62959      goto err_out;
62960    } else {
62961
62962    }
62963    {
62964#line 1382
62965    might_fault();
62966#line 1382
62967    __cil_tmp35 = urb->iso_frame_desc[i].status;
62968#line 1382
62969    __pu_val___3 = (unsigned int )__cil_tmp35;
62970    }
62971#line 1382
62972    if (1) {
62973#line 1382
62974      goto case_4___3;
62975    } else {
62976#line 1382
62977      goto switch_default___3;
62978#line 1382
62979      if (0) {
62980#line 1382
62981        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___3): "0" (__pu_val___3),
62982                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
62983#line 1382
62984        goto ldv_31067;
62985#line 1382
62986        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___3): "0" (__pu_val___3),
62987                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
62988#line 1382
62989        goto ldv_31067;
62990        case_4___3: 
62991#line 1382
62992        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___3): "0" (__pu_val___3),
62993                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
62994#line 1382
62995        goto ldv_31067;
62996#line 1382
62997        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___3): "0" (__pu_val___3),
62998                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
62999#line 1382
63000        goto ldv_31067;
63001        switch_default___3: 
63002#line 1382
63003        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___3): "0" (__pu_val___3),
63004                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
63005#line 1382
63006        goto ldv_31067;
63007      } else {
63008
63009      }
63010    }
63011    ldv_31067: ;
63012#line 1382
63013    if (__ret_pu___3 != 0) {
63014#line 1384
63015      goto err_out;
63016    } else {
63017
63018    }
63019#line 1378
63020    i = i + 1U;
63021    ldv_31074: ;
63022    {
63023#line 1378
63024    __cil_tmp36 = urb->number_of_packets;
63025#line 1378
63026    __cil_tmp37 = (unsigned int )__cil_tmp36;
63027#line 1378
63028    if (__cil_tmp37 > i) {
63029#line 1379
63030      goto ldv_31073;
63031    } else {
63032#line 1381
63033      goto ldv_31075;
63034    }
63035    }
63036    ldv_31075: ;
63037  } else {
63038
63039  }
63040  {
63041#line 1388
63042  might_fault();
63043#line 1388
63044  __pu_val___4 = addr;
63045  }
63046#line 1388
63047  if (1) {
63048#line 1388
63049    goto case_8___4;
63050  } else {
63051#line 1388
63052    goto switch_default___4;
63053#line 1388
63054    if (0) {
63055#line 1388
63056      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___4): "0" (__pu_val___4),
63057                           "c" (arg): "ebx");
63058#line 1388
63059      goto ldv_31079;
63060#line 1388
63061      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___4): "0" (__pu_val___4),
63062                           "c" (arg): "ebx");
63063#line 1388
63064      goto ldv_31079;
63065#line 1388
63066      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___4): "0" (__pu_val___4),
63067                           "c" (arg): "ebx");
63068#line 1388
63069      goto ldv_31079;
63070      case_8___4: 
63071#line 1388
63072      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___4): "0" (__pu_val___4),
63073                           "c" (arg): "ebx");
63074#line 1388
63075      goto ldv_31079;
63076      switch_default___4: 
63077#line 1388
63078      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___4): "0" (__pu_val___4),
63079                           "c" (arg): "ebx");
63080#line 1388
63081      goto ldv_31079;
63082    } else {
63083
63084    }
63085  }
63086  ldv_31079: ;
63087#line 1388
63088  if (__ret_pu___4 != 0) {
63089#line 1389
63090    return (-14);
63091  } else {
63092
63093  }
63094#line 1390
63095  return (0);
63096  err_out: ;
63097#line 1393
63098  return (-14);
63099}
63100}
63101#line 1396 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
63102static struct async *reap_as(struct dev_state *ps ) 
63103{ wait_queue_t wait ;
63104  struct task_struct *tmp ;
63105  struct async *as ;
63106  struct usb_device *dev ;
63107  struct task_struct *tmp___0 ;
63108  struct task_struct *tmp___1 ;
63109  int tmp___2 ;
63110  long volatile   __x ;
63111  u8 volatile   *__ptr ;
63112  struct task_struct *tmp___3 ;
63113  u16 volatile   *__ptr___0 ;
63114  struct task_struct *tmp___4 ;
63115  u32 volatile   *__ptr___1 ;
63116  struct task_struct *tmp___5 ;
63117  u64 volatile   *__ptr___2 ;
63118  struct task_struct *tmp___6 ;
63119  wait_queue_head_t *__cil_tmp18 ;
63120  struct async *__cil_tmp19 ;
63121  unsigned long __cil_tmp20 ;
63122  unsigned long __cil_tmp21 ;
63123  struct device *__cil_tmp22 ;
63124  struct device *__cil_tmp23 ;
63125  wait_queue_head_t *__cil_tmp24 ;
63126  long volatile   *__cil_tmp25 ;
63127  long volatile   *__cil_tmp26 ;
63128  long volatile   *__cil_tmp27 ;
63129  long volatile   *__cil_tmp28 ;
63130
63131  {
63132  {
63133#line 1398
63134  tmp = get_current();
63135#line 1398
63136  wait.flags = 0U;
63137#line 1398
63138  wait.private = (void *)tmp;
63139#line 1398
63140  wait.func = & default_wake_function;
63141#line 1398
63142  wait.task_list.next = (struct list_head *)0;
63143#line 1398
63144  wait.task_list.prev = (struct list_head *)0;
63145#line 1399
63146  as = (struct async *)0;
63147#line 1400
63148  dev = ps->dev;
63149#line 1402
63150  __cil_tmp18 = & ps->wait;
63151#line 1402
63152  add_wait_queue(__cil_tmp18, & wait);
63153  }
63154  ldv_31092: 
63155  {
63156#line 1404
63157  tmp___0 = get_current();
63158#line 1404
63159  tmp___0->state = (long volatile   )1L;
63160#line 1405
63161  as = async_getcompleted(ps);
63162  }
63163  {
63164#line 1406
63165  __cil_tmp19 = (struct async *)0;
63166#line 1406
63167  __cil_tmp20 = (unsigned long )__cil_tmp19;
63168#line 1406
63169  __cil_tmp21 = (unsigned long )as;
63170#line 1406
63171  if (__cil_tmp21 != __cil_tmp20) {
63172#line 1407
63173    goto ldv_31091;
63174  } else {
63175
63176  }
63177  }
63178  {
63179#line 1408
63180  tmp___1 = get_current();
63181#line 1408
63182  tmp___2 = signal_pending(tmp___1);
63183  }
63184#line 1408
63185  if (tmp___2 != 0) {
63186#line 1409
63187    goto ldv_31091;
63188  } else {
63189
63190  }
63191  {
63192#line 1410
63193  __cil_tmp22 = & dev->dev;
63194#line 1410
63195  device_unlock(__cil_tmp22);
63196#line 1411
63197  schedule();
63198#line 1412
63199  __cil_tmp23 = & dev->dev;
63200#line 1412
63201  device_lock(__cil_tmp23);
63202  }
63203#line 1413
63204  goto ldv_31092;
63205  ldv_31091: 
63206  {
63207#line 1414
63208  __cil_tmp24 = & ps->wait;
63209#line 1414
63210  remove_wait_queue(__cil_tmp24, & wait);
63211#line 1415
63212  __x = (long volatile   )0L;
63213  }
63214#line 1415
63215  if (1) {
63216#line 1415
63217    goto case_8;
63218  } else {
63219#line 1415
63220    goto switch_default;
63221#line 1415
63222    if (0) {
63223      {
63224#line 1415
63225      tmp___3 = get_current();
63226#line 1415
63227      __cil_tmp25 = & tmp___3->state;
63228#line 1415
63229      __ptr = (u8 volatile   *)__cil_tmp25;
63230#line 1415
63231      __asm__  volatile   ("xchgb %0,%1": "=q" (__x), "+m" (*__ptr): "0" (__x): "memory");
63232      }
63233#line 1415
63234      goto ldv_31096;
63235      {
63236#line 1415
63237      tmp___4 = get_current();
63238#line 1415
63239      __cil_tmp26 = & tmp___4->state;
63240#line 1415
63241      __ptr___0 = (u16 volatile   *)__cil_tmp26;
63242#line 1415
63243      __asm__  volatile   ("xchgw %0,%1": "=r" (__x), "+m" (*__ptr___0): "0" (__x): "memory");
63244      }
63245#line 1415
63246      goto ldv_31096;
63247      {
63248#line 1415
63249      tmp___5 = get_current();
63250#line 1415
63251      __cil_tmp27 = & tmp___5->state;
63252#line 1415
63253      __ptr___1 = (u32 volatile   *)__cil_tmp27;
63254#line 1415
63255      __asm__  volatile   ("xchgl %0,%1": "=r" (__x), "+m" (*__ptr___1): "0" (__x): "memory");
63256      }
63257#line 1415
63258      goto ldv_31096;
63259      case_8: 
63260      {
63261#line 1415
63262      tmp___6 = get_current();
63263#line 1415
63264      __cil_tmp28 = & tmp___6->state;
63265#line 1415
63266      __ptr___2 = (u64 volatile   *)__cil_tmp28;
63267#line 1415
63268      __asm__  volatile   ("xchgq %0,%1": "=r" (__x), "+m" (*__ptr___2): "0" (__x): "memory");
63269      }
63270#line 1415
63271      goto ldv_31096;
63272      switch_default: 
63273      {
63274#line 1415
63275      __xchg_wrong_size();
63276      }
63277    } else {
63278
63279    }
63280  }
63281  ldv_31096: ;
63282#line 1416
63283  return (as);
63284}
63285}
63286#line 1419 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
63287static int proc_reapurb(struct dev_state *ps , void *arg ) 
63288{ struct async *as ;
63289  struct async *tmp ;
63290  int retval ;
63291  int tmp___0 ;
63292  struct task_struct *tmp___1 ;
63293  int tmp___2 ;
63294  struct async *__cil_tmp9 ;
63295  unsigned long __cil_tmp10 ;
63296  unsigned long __cil_tmp11 ;
63297  void **__cil_tmp12 ;
63298
63299  {
63300  {
63301#line 1421
63302  tmp = reap_as(ps);
63303#line 1421
63304  as = tmp;
63305  }
63306  {
63307#line 1422
63308  __cil_tmp9 = (struct async *)0;
63309#line 1422
63310  __cil_tmp10 = (unsigned long )__cil_tmp9;
63311#line 1422
63312  __cil_tmp11 = (unsigned long )as;
63313#line 1422
63314  if (__cil_tmp11 != __cil_tmp10) {
63315    {
63316#line 1423
63317    __cil_tmp12 = (void **)arg;
63318#line 1423
63319    tmp___0 = processcompl(as, __cil_tmp12);
63320#line 1423
63321    retval = tmp___0;
63322#line 1424
63323    free_async(as);
63324    }
63325#line 1425
63326    return (retval);
63327  } else {
63328
63329  }
63330  }
63331  {
63332#line 1427
63333  tmp___1 = get_current();
63334#line 1427
63335  tmp___2 = signal_pending(tmp___1);
63336  }
63337#line 1427
63338  if (tmp___2 != 0) {
63339#line 1428
63340    return (-4);
63341  } else {
63342
63343  }
63344#line 1429
63345  return (-5);
63346}
63347}
63348#line 1432 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
63349static int proc_reapurbnonblock(struct dev_state *ps , void *arg ) 
63350{ int retval ;
63351  struct async *as ;
63352  struct async *__cil_tmp5 ;
63353  unsigned long __cil_tmp6 ;
63354  unsigned long __cil_tmp7 ;
63355  void **__cil_tmp8 ;
63356
63357  {
63358  {
63359#line 1437
63360  as = async_getcompleted(ps);
63361#line 1438
63362  retval = -11;
63363  }
63364  {
63365#line 1439
63366  __cil_tmp5 = (struct async *)0;
63367#line 1439
63368  __cil_tmp6 = (unsigned long )__cil_tmp5;
63369#line 1439
63370  __cil_tmp7 = (unsigned long )as;
63371#line 1439
63372  if (__cil_tmp7 != __cil_tmp6) {
63373    {
63374#line 1440
63375    __cil_tmp8 = (void **)arg;
63376#line 1440
63377    retval = processcompl(as, __cil_tmp8);
63378#line 1441
63379    free_async(as);
63380    }
63381  } else {
63382
63383  }
63384  }
63385#line 1443
63386  return (retval);
63387}
63388}
63389#line 1447 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
63390static int proc_control_compat(struct dev_state *ps , struct usbdevfs_ctrltransfer32 *p32 ) 
63391{ struct usbdevfs_ctrltransfer *p ;
63392  __u32 udata ;
63393  void *tmp ;
63394  unsigned long tmp___0 ;
63395  int __ret_gu ;
63396  unsigned long __val_gu ;
63397  int __ret_pu ;
63398  void *__pu_val ;
63399  int tmp___1 ;
63400  void *__cil_tmp12 ;
63401  void const   *__cil_tmp13 ;
63402  void *__cil_tmp14 ;
63403
63404  {
63405  {
63406#line 1452
63407  tmp = compat_alloc_user_space(24UL);
63408#line 1452
63409  p = (struct usbdevfs_ctrltransfer *)tmp;
63410#line 1453
63411  __cil_tmp12 = (void *)p;
63412#line 1453
63413  __cil_tmp13 = (void const   *)p32;
63414#line 1453
63415  tmp___0 = copy_in_user(__cil_tmp12, __cil_tmp13, 12U);
63416  }
63417#line 1455
63418  if (tmp___0 != 0UL) {
63419#line 1456
63420    return (-14);
63421  } else {
63422    {
63423#line 1454
63424    might_fault();
63425    }
63426#line 1454
63427    if (1) {
63428#line 1454
63429      goto case_4;
63430    } else {
63431#line 1454
63432      goto switch_default;
63433#line 1454
63434      if (0) {
63435#line 1454
63436        __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63437#line 1454
63438        goto ldv_31126;
63439#line 1454
63440        __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63441#line 1454
63442        goto ldv_31126;
63443        case_4: 
63444#line 1454
63445        __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63446#line 1454
63447        goto ldv_31126;
63448#line 1454
63449        __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63450#line 1454
63451        goto ldv_31126;
63452        switch_default: 
63453#line 1454
63454        __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63455#line 1454
63456        goto ldv_31126;
63457      } else {
63458
63459      }
63460    }
63461    ldv_31126: 
63462#line 1454
63463    udata = (unsigned int )__val_gu;
63464#line 1455
63465    if (__ret_gu != 0) {
63466#line 1456
63467      return (-14);
63468    } else {
63469      {
63470#line 1455
63471      might_fault();
63472#line 1455
63473      __pu_val = compat_ptr(udata);
63474      }
63475#line 1455
63476      if (1) {
63477#line 1455
63478        goto case_8___0;
63479      } else {
63480#line 1455
63481        goto switch_default___0;
63482#line 1455
63483        if (0) {
63484#line 1455
63485          __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu): "0" (__pu_val),
63486                               "c" (& p->data): "ebx");
63487#line 1455
63488          goto ldv_31135;
63489#line 1455
63490          __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu): "0" (__pu_val),
63491                               "c" (& p->data): "ebx");
63492#line 1455
63493          goto ldv_31135;
63494#line 1455
63495          __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu): "0" (__pu_val),
63496                               "c" (& p->data): "ebx");
63497#line 1455
63498          goto ldv_31135;
63499          case_8___0: 
63500#line 1455
63501          __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu): "0" (__pu_val),
63502                               "c" (& p->data): "ebx");
63503#line 1455
63504          goto ldv_31135;
63505          switch_default___0: 
63506#line 1455
63507          __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu): "0" (__pu_val),
63508                               "c" (& p->data): "ebx");
63509#line 1455
63510          goto ldv_31135;
63511        } else {
63512
63513        }
63514      }
63515      ldv_31135: ;
63516#line 1455
63517      if (__ret_pu != 0) {
63518#line 1456
63519        return (-14);
63520      } else {
63521
63522      }
63523    }
63524  }
63525  {
63526#line 1457
63527  __cil_tmp14 = (void *)p;
63528#line 1457
63529  tmp___1 = proc_control(ps, __cil_tmp14);
63530  }
63531#line 1457
63532  return (tmp___1);
63533}
63534}
63535#line 1460 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
63536static int proc_bulk_compat(struct dev_state *ps , struct usbdevfs_bulktransfer32 *p32 ) 
63537{ struct usbdevfs_bulktransfer *p ;
63538  compat_uint_t n ;
63539  compat_caddr_t addr ;
63540  void *tmp ;
63541  int __ret_gu ;
63542  unsigned long __val_gu ;
63543  int __ret_pu ;
63544  unsigned int __pu_val ;
63545  int __ret_gu___0 ;
63546  unsigned long __val_gu___0 ;
63547  int __ret_pu___0 ;
63548  unsigned int __pu_val___0 ;
63549  int __ret_gu___1 ;
63550  unsigned long __val_gu___1 ;
63551  int __ret_pu___1 ;
63552  unsigned int __pu_val___1 ;
63553  int __ret_gu___2 ;
63554  unsigned long __val_gu___2 ;
63555  int __ret_pu___2 ;
63556  void *__pu_val___2 ;
63557  int tmp___0 ;
63558  void *__cil_tmp24 ;
63559
63560  {
63561  {
63562#line 1467
63563  tmp = compat_alloc_user_space(24UL);
63564#line 1467
63565  p = (struct usbdevfs_bulktransfer *)tmp;
63566#line 1469
63567  might_fault();
63568  }
63569#line 1469
63570  if (1) {
63571#line 1469
63572    goto case_4;
63573  } else {
63574#line 1469
63575    goto switch_default;
63576#line 1469
63577    if (0) {
63578#line 1469
63579      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63580#line 1469
63581      goto ldv_31151;
63582#line 1469
63583      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63584#line 1469
63585      goto ldv_31151;
63586      case_4: 
63587#line 1469
63588      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63589#line 1469
63590      goto ldv_31151;
63591#line 1469
63592      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63593#line 1469
63594      goto ldv_31151;
63595      switch_default: 
63596#line 1469
63597      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63598#line 1469
63599      goto ldv_31151;
63600    } else {
63601
63602    }
63603  }
63604  ldv_31151: 
63605#line 1469
63606  n = (unsigned int )__val_gu;
63607#line 1472
63608  if (__ret_gu != 0) {
63609#line 1473
63610    return (-14);
63611  } else {
63612    {
63613#line 1469
63614    might_fault();
63615#line 1469
63616    __pu_val = n;
63617    }
63618#line 1469
63619    if (1) {
63620#line 1469
63621      goto case_4___0;
63622    } else {
63623#line 1469
63624      goto switch_default___0;
63625#line 1469
63626      if (0) {
63627#line 1469
63628        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu): "0" (__pu_val),
63629                             "c" (& p->ep): "ebx");
63630#line 1469
63631        goto ldv_31160;
63632#line 1469
63633        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu): "0" (__pu_val),
63634                             "c" (& p->ep): "ebx");
63635#line 1469
63636        goto ldv_31160;
63637        case_4___0: 
63638#line 1469
63639        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu): "0" (__pu_val),
63640                             "c" (& p->ep): "ebx");
63641#line 1469
63642        goto ldv_31160;
63643#line 1469
63644        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu): "0" (__pu_val),
63645                             "c" (& p->ep): "ebx");
63646#line 1469
63647        goto ldv_31160;
63648        switch_default___0: 
63649#line 1469
63650        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu): "0" (__pu_val),
63651                             "c" (& p->ep): "ebx");
63652#line 1469
63653        goto ldv_31160;
63654      } else {
63655
63656      }
63657    }
63658    ldv_31160: ;
63659#line 1472
63660    if (__ret_pu != 0) {
63661#line 1473
63662      return (-14);
63663    } else {
63664      {
63665#line 1470
63666      might_fault();
63667      }
63668#line 1470
63669      if (1) {
63670#line 1470
63671        goto case_4___1;
63672      } else {
63673#line 1470
63674        goto switch_default___1;
63675#line 1470
63676        if (0) {
63677#line 1470
63678          __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63679#line 1470
63680          goto ldv_31169;
63681#line 1470
63682          __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63683#line 1470
63684          goto ldv_31169;
63685          case_4___1: 
63686#line 1470
63687          __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63688#line 1470
63689          goto ldv_31169;
63690#line 1470
63691          __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63692#line 1470
63693          goto ldv_31169;
63694          switch_default___1: 
63695#line 1470
63696          __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63697#line 1470
63698          goto ldv_31169;
63699        } else {
63700
63701        }
63702      }
63703      ldv_31169: 
63704#line 1470
63705      n = (unsigned int )__val_gu___0;
63706#line 1472
63707      if (__ret_gu___0 != 0) {
63708#line 1473
63709        return (-14);
63710      } else {
63711        {
63712#line 1470
63713        might_fault();
63714#line 1470
63715        __pu_val___0 = n;
63716        }
63717#line 1470
63718        if (1) {
63719#line 1470
63720          goto case_4___2;
63721        } else {
63722#line 1470
63723          goto switch_default___2;
63724#line 1470
63725          if (0) {
63726#line 1470
63727            __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___0): "0" (__pu_val___0),
63728                                 "c" (& p->len): "ebx");
63729#line 1470
63730            goto ldv_31178;
63731#line 1470
63732            __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___0): "0" (__pu_val___0),
63733                                 "c" (& p->len): "ebx");
63734#line 1470
63735            goto ldv_31178;
63736            case_4___2: 
63737#line 1470
63738            __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___0): "0" (__pu_val___0),
63739                                 "c" (& p->len): "ebx");
63740#line 1470
63741            goto ldv_31178;
63742#line 1470
63743            __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___0): "0" (__pu_val___0),
63744                                 "c" (& p->len): "ebx");
63745#line 1470
63746            goto ldv_31178;
63747            switch_default___2: 
63748#line 1470
63749            __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___0): "0" (__pu_val___0),
63750                                 "c" (& p->len): "ebx");
63751#line 1470
63752            goto ldv_31178;
63753          } else {
63754
63755          }
63756        }
63757        ldv_31178: ;
63758#line 1472
63759        if (__ret_pu___0 != 0) {
63760#line 1473
63761          return (-14);
63762        } else {
63763          {
63764#line 1471
63765          might_fault();
63766          }
63767#line 1471
63768          if (1) {
63769#line 1471
63770            goto case_4___3;
63771          } else {
63772#line 1471
63773            goto switch_default___3;
63774#line 1471
63775            if (0) {
63776#line 1471
63777              __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63778#line 1471
63779              goto ldv_31187;
63780#line 1471
63781              __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63782#line 1471
63783              goto ldv_31187;
63784              case_4___3: 
63785#line 1471
63786              __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63787#line 1471
63788              goto ldv_31187;
63789#line 1471
63790              __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63791#line 1471
63792              goto ldv_31187;
63793              switch_default___3: 
63794#line 1471
63795              __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63796#line 1471
63797              goto ldv_31187;
63798            } else {
63799
63800            }
63801          }
63802          ldv_31187: 
63803#line 1471
63804          n = (unsigned int )__val_gu___1;
63805#line 1472
63806          if (__ret_gu___1 != 0) {
63807#line 1473
63808            return (-14);
63809          } else {
63810            {
63811#line 1471
63812            might_fault();
63813#line 1471
63814            __pu_val___1 = n;
63815            }
63816#line 1471
63817            if (1) {
63818#line 1471
63819              goto case_4___4;
63820            } else {
63821#line 1471
63822              goto switch_default___4;
63823#line 1471
63824              if (0) {
63825#line 1471
63826                __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___1): "0" (__pu_val___1),
63827                                     "c" (& p->timeout): "ebx");
63828#line 1471
63829                goto ldv_31196;
63830#line 1471
63831                __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___1): "0" (__pu_val___1),
63832                                     "c" (& p->timeout): "ebx");
63833#line 1471
63834                goto ldv_31196;
63835                case_4___4: 
63836#line 1471
63837                __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___1): "0" (__pu_val___1),
63838                                     "c" (& p->timeout): "ebx");
63839#line 1471
63840                goto ldv_31196;
63841#line 1471
63842                __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___1): "0" (__pu_val___1),
63843                                     "c" (& p->timeout): "ebx");
63844#line 1471
63845                goto ldv_31196;
63846                switch_default___4: 
63847#line 1471
63848                __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___1): "0" (__pu_val___1),
63849                                     "c" (& p->timeout): "ebx");
63850#line 1471
63851                goto ldv_31196;
63852              } else {
63853
63854              }
63855            }
63856            ldv_31196: ;
63857#line 1472
63858            if (__ret_pu___1 != 0) {
63859#line 1473
63860              return (-14);
63861            } else {
63862              {
63863#line 1472
63864              might_fault();
63865              }
63866#line 1472
63867              if (1) {
63868#line 1472
63869                goto case_4___5;
63870              } else {
63871#line 1472
63872                goto switch_default___5;
63873#line 1472
63874                if (0) {
63875#line 1472
63876                  __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63877#line 1472
63878                  goto ldv_31205;
63879#line 1472
63880                  __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63881#line 1472
63882                  goto ldv_31205;
63883                  case_4___5: 
63884#line 1472
63885                  __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63886#line 1472
63887                  goto ldv_31205;
63888#line 1472
63889                  __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63890#line 1472
63891                  goto ldv_31205;
63892                  switch_default___5: 
63893#line 1472
63894                  __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63895#line 1472
63896                  goto ldv_31205;
63897                } else {
63898
63899                }
63900              }
63901              ldv_31205: 
63902#line 1472
63903              addr = (unsigned int )__val_gu___2;
63904#line 1472
63905              if (__ret_gu___2 != 0) {
63906#line 1473
63907                return (-14);
63908              } else {
63909                {
63910#line 1472
63911                might_fault();
63912#line 1472
63913                __pu_val___2 = compat_ptr(addr);
63914                }
63915#line 1472
63916                if (1) {
63917#line 1472
63918                  goto case_8___6;
63919                } else {
63920#line 1472
63921                  goto switch_default___6;
63922#line 1472
63923                  if (0) {
63924#line 1472
63925                    __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___2): "0" (__pu_val___2),
63926                                         "c" (& p->data): "ebx");
63927#line 1472
63928                    goto ldv_31214;
63929#line 1472
63930                    __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___2): "0" (__pu_val___2),
63931                                         "c" (& p->data): "ebx");
63932#line 1472
63933                    goto ldv_31214;
63934#line 1472
63935                    __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___2): "0" (__pu_val___2),
63936                                         "c" (& p->data): "ebx");
63937#line 1472
63938                    goto ldv_31214;
63939                    case_8___6: 
63940#line 1472
63941                    __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___2): "0" (__pu_val___2),
63942                                         "c" (& p->data): "ebx");
63943#line 1472
63944                    goto ldv_31214;
63945                    switch_default___6: 
63946#line 1472
63947                    __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___2): "0" (__pu_val___2),
63948                                         "c" (& p->data): "ebx");
63949#line 1472
63950                    goto ldv_31214;
63951                  } else {
63952
63953                  }
63954                }
63955                ldv_31214: ;
63956#line 1472
63957                if (__ret_pu___2 != 0) {
63958#line 1473
63959                  return (-14);
63960                } else {
63961
63962                }
63963              }
63964            }
63965          }
63966        }
63967      }
63968    }
63969  }
63970  {
63971#line 1475
63972  __cil_tmp24 = (void *)p;
63973#line 1475
63974  tmp___0 = proc_bulk(ps, __cil_tmp24);
63975  }
63976#line 1475
63977  return (tmp___0);
63978}
63979}
63980#line 1477 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
63981static int proc_disconnectsignal_compat(struct dev_state *ps , void *arg ) 
63982{ struct usbdevfs_disconnectsignal32 ds ;
63983  unsigned long tmp ;
63984  void *__cil_tmp5 ;
63985  void const   *__cil_tmp6 ;
63986
63987  {
63988  {
63989#line 1481
63990  __cil_tmp5 = (void *)(& ds);
63991#line 1481
63992  __cil_tmp6 = (void const   *)arg;
63993#line 1481
63994  tmp = copy_from_user(__cil_tmp5, __cil_tmp6, 8UL);
63995  }
63996#line 1481
63997  if (tmp != 0UL) {
63998#line 1482
63999    return (-14);
64000  } else {
64001
64002  }
64003  {
64004#line 1483
64005  ps->discsignr = (unsigned int )ds.signr;
64006#line 1484
64007  ps->disccontext = compat_ptr(ds.context);
64008  }
64009#line 1485
64010  return (0);
64011}
64012}
64013#line 1488 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
64014static int get_urb32(struct usbdevfs_urb *kurb , struct usbdevfs_urb32 *uurb ) 
64015{ __u32 uptr ;
64016  unsigned long flag ;
64017  unsigned long roksum ;
64018  struct thread_info *tmp ;
64019  long tmp___0 ;
64020  int __gu_err ;
64021  unsigned long __gu_val ;
64022  int tmp___1 ;
64023  int __gu_err___0 ;
64024  unsigned long __gu_val___0 ;
64025  int tmp___2 ;
64026  int __gu_err___1 ;
64027  unsigned long __gu_val___1 ;
64028  int tmp___3 ;
64029  int __gu_err___2 ;
64030  unsigned long __gu_val___2 ;
64031  int tmp___4 ;
64032  int __gu_err___3 ;
64033  unsigned long __gu_val___3 ;
64034  int tmp___5 ;
64035  int __gu_err___4 ;
64036  unsigned long __gu_val___4 ;
64037  int tmp___6 ;
64038  int __gu_err___5 ;
64039  unsigned long __gu_val___5 ;
64040  int tmp___7 ;
64041  int __gu_err___6 ;
64042  unsigned long __gu_val___6 ;
64043  int tmp___8 ;
64044  int __gu_err___7 ;
64045  unsigned long __gu_val___7 ;
64046  int tmp___9 ;
64047  int __gu_err___8 ;
64048  unsigned long __gu_val___8 ;
64049  int tmp___10 ;
64050  int __gu_err___9 ;
64051  unsigned long __gu_val___9 ;
64052  int tmp___11 ;
64053  int __gu_err___10 ;
64054  unsigned long __gu_val___10 ;
64055  int tmp___12 ;
64056  int __cil_tmp44 ;
64057  long __cil_tmp45 ;
64058  unsigned char *__cil_tmp46 ;
64059  struct __large_struct *__cil_tmp47 ;
64060  unsigned char *__cil_tmp48 ;
64061  struct __large_struct *__cil_tmp49 ;
64062  unsigned char *__cil_tmp50 ;
64063  struct __large_struct *__cil_tmp51 ;
64064  unsigned char *__cil_tmp52 ;
64065  struct __large_struct *__cil_tmp53 ;
64066  unsigned char *__cil_tmp54 ;
64067  struct __large_struct *__cil_tmp55 ;
64068  unsigned char *__cil_tmp56 ;
64069  struct __large_struct *__cil_tmp57 ;
64070  unsigned char *__cil_tmp58 ;
64071  struct __large_struct *__cil_tmp59 ;
64072  unsigned char *__cil_tmp60 ;
64073  struct __large_struct *__cil_tmp61 ;
64074  compat_int_t *__cil_tmp62 ;
64075  struct __large_struct *__cil_tmp63 ;
64076  compat_int_t *__cil_tmp64 ;
64077  struct __large_struct *__cil_tmp65 ;
64078  compat_int_t *__cil_tmp66 ;
64079  struct __large_struct *__cil_tmp67 ;
64080  compat_int_t *__cil_tmp68 ;
64081  struct __large_struct *__cil_tmp69 ;
64082  compat_uint_t *__cil_tmp70 ;
64083  struct __large_struct *__cil_tmp71 ;
64084  compat_uint_t *__cil_tmp72 ;
64085  struct __large_struct *__cil_tmp73 ;
64086  compat_uint_t *__cil_tmp74 ;
64087  struct __large_struct *__cil_tmp75 ;
64088  compat_uint_t *__cil_tmp76 ;
64089  struct __large_struct *__cil_tmp77 ;
64090  compat_int_t *__cil_tmp78 ;
64091  struct __large_struct *__cil_tmp79 ;
64092  compat_int_t *__cil_tmp80 ;
64093  struct __large_struct *__cil_tmp81 ;
64094  compat_int_t *__cil_tmp82 ;
64095  struct __large_struct *__cil_tmp83 ;
64096  compat_int_t *__cil_tmp84 ;
64097  struct __large_struct *__cil_tmp85 ;
64098  compat_int_t *__cil_tmp86 ;
64099  struct __large_struct *__cil_tmp87 ;
64100  compat_int_t *__cil_tmp88 ;
64101  struct __large_struct *__cil_tmp89 ;
64102  compat_int_t *__cil_tmp90 ;
64103  struct __large_struct *__cil_tmp91 ;
64104  compat_int_t *__cil_tmp92 ;
64105  struct __large_struct *__cil_tmp93 ;
64106  compat_int_t *__cil_tmp94 ;
64107  struct __large_struct *__cil_tmp95 ;
64108  compat_int_t *__cil_tmp96 ;
64109  struct __large_struct *__cil_tmp97 ;
64110  compat_int_t *__cil_tmp98 ;
64111  struct __large_struct *__cil_tmp99 ;
64112  compat_int_t *__cil_tmp100 ;
64113  struct __large_struct *__cil_tmp101 ;
64114  compat_int_t *__cil_tmp102 ;
64115  struct __large_struct *__cil_tmp103 ;
64116  compat_int_t *__cil_tmp104 ;
64117  struct __large_struct *__cil_tmp105 ;
64118  compat_int_t *__cil_tmp106 ;
64119  struct __large_struct *__cil_tmp107 ;
64120  compat_int_t *__cil_tmp108 ;
64121  struct __large_struct *__cil_tmp109 ;
64122  compat_int_t *__cil_tmp110 ;
64123  struct __large_struct *__cil_tmp111 ;
64124  compat_int_t *__cil_tmp112 ;
64125  struct __large_struct *__cil_tmp113 ;
64126  compat_int_t *__cil_tmp114 ;
64127  struct __large_struct *__cil_tmp115 ;
64128  compat_int_t *__cil_tmp116 ;
64129  struct __large_struct *__cil_tmp117 ;
64130  compat_uint_t *__cil_tmp118 ;
64131  struct __large_struct *__cil_tmp119 ;
64132  compat_uint_t *__cil_tmp120 ;
64133  struct __large_struct *__cil_tmp121 ;
64134  compat_uint_t *__cil_tmp122 ;
64135  struct __large_struct *__cil_tmp123 ;
64136  compat_uint_t *__cil_tmp124 ;
64137  struct __large_struct *__cil_tmp125 ;
64138  compat_caddr_t *__cil_tmp126 ;
64139  struct __large_struct *__cil_tmp127 ;
64140  compat_caddr_t *__cil_tmp128 ;
64141  struct __large_struct *__cil_tmp129 ;
64142  compat_caddr_t *__cil_tmp130 ;
64143  struct __large_struct *__cil_tmp131 ;
64144  compat_caddr_t *__cil_tmp132 ;
64145  struct __large_struct *__cil_tmp133 ;
64146  compat_caddr_t *__cil_tmp134 ;
64147  struct __large_struct *__cil_tmp135 ;
64148  compat_caddr_t *__cil_tmp136 ;
64149  struct __large_struct *__cil_tmp137 ;
64150  compat_caddr_t *__cil_tmp138 ;
64151  struct __large_struct *__cil_tmp139 ;
64152  compat_caddr_t *__cil_tmp140 ;
64153  struct __large_struct *__cil_tmp141 ;
64154
64155  {
64156  {
64157#line 1492
64158  tmp = current_thread_info();
64159#line 1492
64160  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (uurb),
64161            "g" (44L), "rm" (tmp->addr_limit.seg));
64162#line 1492
64163  __cil_tmp44 = flag == 0UL;
64164#line 1492
64165  __cil_tmp45 = (long )__cil_tmp44;
64166#line 1492
64167  tmp___0 = __builtin_expect(__cil_tmp45, 1L);
64168  }
64169#line 1502
64170  if (tmp___0 == 0L) {
64171#line 1503
64172    return (-14);
64173  } else {
64174#line 1493
64175    __gu_err = 0;
64176#line 1493
64177    if (1) {
64178#line 1493
64179      goto case_1;
64180    } else {
64181#line 1493
64182      goto switch_default;
64183#line 1493
64184      if (0) {
64185        case_1: 
64186#line 1493
64187        __cil_tmp46 = & uurb->type;
64188#line 1493
64189        __cil_tmp47 = (struct __large_struct *)__cil_tmp46;
64190#line 1493
64191        __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err),
64192                             "=q" (__gu_val): "m" (*__cil_tmp47), "i" (-14), "0" (__gu_err));
64193#line 1493
64194        goto ldv_31236;
64195#line 1493
64196        __cil_tmp48 = & uurb->type;
64197#line 1493
64198        __cil_tmp49 = (struct __large_struct *)__cil_tmp48;
64199#line 1493
64200        __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err),
64201                             "=r" (__gu_val): "m" (*__cil_tmp49), "i" (-14), "0" (__gu_err));
64202#line 1493
64203        goto ldv_31236;
64204#line 1493
64205        __cil_tmp50 = & uurb->type;
64206#line 1493
64207        __cil_tmp51 = (struct __large_struct *)__cil_tmp50;
64208#line 1493
64209        __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err),
64210                             "=r" (__gu_val): "m" (*__cil_tmp51), "i" (-14), "0" (__gu_err));
64211#line 1493
64212        goto ldv_31236;
64213#line 1493
64214        __cil_tmp52 = & uurb->type;
64215#line 1493
64216        __cil_tmp53 = (struct __large_struct *)__cil_tmp52;
64217#line 1493
64218        __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err),
64219                             "=r" (__gu_val): "m" (*__cil_tmp53), "i" (-14), "0" (__gu_err));
64220#line 1493
64221        goto ldv_31236;
64222        switch_default: 
64223        {
64224#line 1493
64225        tmp___1 = __get_user_bad();
64226#line 1493
64227        __gu_val = (unsigned long )tmp___1;
64228        }
64229      } else {
64230
64231      }
64232    }
64233    ldv_31236: 
64234#line 1493
64235    kurb->type = (unsigned char )__gu_val;
64236#line 1502
64237    if (__gu_err != 0) {
64238#line 1503
64239      return (-14);
64240    } else {
64241#line 1494
64242      __gu_err___0 = 0;
64243#line 1494
64244      if (1) {
64245#line 1494
64246        goto case_1___0;
64247      } else {
64248#line 1494
64249        goto switch_default___0;
64250#line 1494
64251        if (0) {
64252          case_1___0: 
64253#line 1494
64254          __cil_tmp54 = & uurb->endpoint;
64255#line 1494
64256          __cil_tmp55 = (struct __large_struct *)__cil_tmp54;
64257#line 1494
64258          __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___0),
64259                               "=q" (__gu_val___0): "m" (*__cil_tmp55), "i" (-14),
64260                               "0" (__gu_err___0));
64261#line 1494
64262          goto ldv_31245;
64263#line 1494
64264          __cil_tmp56 = & uurb->endpoint;
64265#line 1494
64266          __cil_tmp57 = (struct __large_struct *)__cil_tmp56;
64267#line 1494
64268          __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___0),
64269                               "=r" (__gu_val___0): "m" (*__cil_tmp57), "i" (-14),
64270                               "0" (__gu_err___0));
64271#line 1494
64272          goto ldv_31245;
64273#line 1494
64274          __cil_tmp58 = & uurb->endpoint;
64275#line 1494
64276          __cil_tmp59 = (struct __large_struct *)__cil_tmp58;
64277#line 1494
64278          __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___0),
64279                               "=r" (__gu_val___0): "m" (*__cil_tmp59), "i" (-14),
64280                               "0" (__gu_err___0));
64281#line 1494
64282          goto ldv_31245;
64283#line 1494
64284          __cil_tmp60 = & uurb->endpoint;
64285#line 1494
64286          __cil_tmp61 = (struct __large_struct *)__cil_tmp60;
64287#line 1494
64288          __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___0),
64289                               "=r" (__gu_val___0): "m" (*__cil_tmp61), "i" (-14),
64290                               "0" (__gu_err___0));
64291#line 1494
64292          goto ldv_31245;
64293          switch_default___0: 
64294          {
64295#line 1494
64296          tmp___2 = __get_user_bad();
64297#line 1494
64298          __gu_val___0 = (unsigned long )tmp___2;
64299          }
64300        } else {
64301
64302        }
64303      }
64304      ldv_31245: 
64305#line 1494
64306      kurb->endpoint = (unsigned char )__gu_val___0;
64307#line 1502
64308      if (__gu_err___0 != 0) {
64309#line 1503
64310        return (-14);
64311      } else {
64312#line 1495
64313        __gu_err___1 = 0;
64314#line 1495
64315        if (1) {
64316#line 1495
64317          goto case_4___1;
64318        } else {
64319#line 1495
64320          goto switch_default___1;
64321#line 1495
64322          if (0) {
64323#line 1495
64324            __cil_tmp62 = & uurb->status;
64325#line 1495
64326            __cil_tmp63 = (struct __large_struct *)__cil_tmp62;
64327#line 1495
64328            __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___1),
64329                                 "=q" (__gu_val___1): "m" (*__cil_tmp63), "i" (-14),
64330                                 "0" (__gu_err___1));
64331#line 1495
64332            goto ldv_31254;
64333#line 1495
64334            __cil_tmp64 = & uurb->status;
64335#line 1495
64336            __cil_tmp65 = (struct __large_struct *)__cil_tmp64;
64337#line 1495
64338            __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___1),
64339                                 "=r" (__gu_val___1): "m" (*__cil_tmp65), "i" (-14),
64340                                 "0" (__gu_err___1));
64341#line 1495
64342            goto ldv_31254;
64343            case_4___1: 
64344#line 1495
64345            __cil_tmp66 = & uurb->status;
64346#line 1495
64347            __cil_tmp67 = (struct __large_struct *)__cil_tmp66;
64348#line 1495
64349            __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___1),
64350                                 "=r" (__gu_val___1): "m" (*__cil_tmp67), "i" (-14),
64351                                 "0" (__gu_err___1));
64352#line 1495
64353            goto ldv_31254;
64354#line 1495
64355            __cil_tmp68 = & uurb->status;
64356#line 1495
64357            __cil_tmp69 = (struct __large_struct *)__cil_tmp68;
64358#line 1495
64359            __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___1),
64360                                 "=r" (__gu_val___1): "m" (*__cil_tmp69), "i" (-14),
64361                                 "0" (__gu_err___1));
64362#line 1495
64363            goto ldv_31254;
64364            switch_default___1: 
64365            {
64366#line 1495
64367            tmp___3 = __get_user_bad();
64368#line 1495
64369            __gu_val___1 = (unsigned long )tmp___3;
64370            }
64371          } else {
64372
64373          }
64374        }
64375        ldv_31254: 
64376#line 1495
64377        kurb->status = (int )__gu_val___1;
64378#line 1502
64379        if (__gu_err___1 != 0) {
64380#line 1503
64381          return (-14);
64382        } else {
64383#line 1496
64384          __gu_err___2 = 0;
64385#line 1496
64386          if (1) {
64387#line 1496
64388            goto case_4___2;
64389          } else {
64390#line 1496
64391            goto switch_default___2;
64392#line 1496
64393            if (0) {
64394#line 1496
64395              __cil_tmp70 = & uurb->flags;
64396#line 1496
64397              __cil_tmp71 = (struct __large_struct *)__cil_tmp70;
64398#line 1496
64399              __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___2),
64400                                   "=q" (__gu_val___2): "m" (*__cil_tmp71), "i" (-14),
64401                                   "0" (__gu_err___2));
64402#line 1496
64403              goto ldv_31263;
64404#line 1496
64405              __cil_tmp72 = & uurb->flags;
64406#line 1496
64407              __cil_tmp73 = (struct __large_struct *)__cil_tmp72;
64408#line 1496
64409              __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___2),
64410                                   "=r" (__gu_val___2): "m" (*__cil_tmp73), "i" (-14),
64411                                   "0" (__gu_err___2));
64412#line 1496
64413              goto ldv_31263;
64414              case_4___2: 
64415#line 1496
64416              __cil_tmp74 = & uurb->flags;
64417#line 1496
64418              __cil_tmp75 = (struct __large_struct *)__cil_tmp74;
64419#line 1496
64420              __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___2),
64421                                   "=r" (__gu_val___2): "m" (*__cil_tmp75), "i" (-14),
64422                                   "0" (__gu_err___2));
64423#line 1496
64424              goto ldv_31263;
64425#line 1496
64426              __cil_tmp76 = & uurb->flags;
64427#line 1496
64428              __cil_tmp77 = (struct __large_struct *)__cil_tmp76;
64429#line 1496
64430              __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___2),
64431                                   "=r" (__gu_val___2): "m" (*__cil_tmp77), "i" (-14),
64432                                   "0" (__gu_err___2));
64433#line 1496
64434              goto ldv_31263;
64435              switch_default___2: 
64436              {
64437#line 1496
64438              tmp___4 = __get_user_bad();
64439#line 1496
64440              __gu_val___2 = (unsigned long )tmp___4;
64441              }
64442            } else {
64443
64444            }
64445          }
64446          ldv_31263: 
64447#line 1496
64448          kurb->flags = (unsigned int )__gu_val___2;
64449#line 1502
64450          if (__gu_err___2 != 0) {
64451#line 1503
64452            return (-14);
64453          } else {
64454#line 1497
64455            __gu_err___3 = 0;
64456#line 1497
64457            if (1) {
64458#line 1497
64459              goto case_4___3;
64460            } else {
64461#line 1497
64462              goto switch_default___3;
64463#line 1497
64464              if (0) {
64465#line 1497
64466                __cil_tmp78 = & uurb->buffer_length;
64467#line 1497
64468                __cil_tmp79 = (struct __large_struct *)__cil_tmp78;
64469#line 1497
64470                __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___3),
64471                                     "=q" (__gu_val___3): "m" (*__cil_tmp79), "i" (-14),
64472                                     "0" (__gu_err___3));
64473#line 1497
64474                goto ldv_31272;
64475#line 1497
64476                __cil_tmp80 = & uurb->buffer_length;
64477#line 1497
64478                __cil_tmp81 = (struct __large_struct *)__cil_tmp80;
64479#line 1497
64480                __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___3),
64481                                     "=r" (__gu_val___3): "m" (*__cil_tmp81), "i" (-14),
64482                                     "0" (__gu_err___3));
64483#line 1497
64484                goto ldv_31272;
64485                case_4___3: 
64486#line 1497
64487                __cil_tmp82 = & uurb->buffer_length;
64488#line 1497
64489                __cil_tmp83 = (struct __large_struct *)__cil_tmp82;
64490#line 1497
64491                __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___3),
64492                                     "=r" (__gu_val___3): "m" (*__cil_tmp83), "i" (-14),
64493                                     "0" (__gu_err___3));
64494#line 1497
64495                goto ldv_31272;
64496#line 1497
64497                __cil_tmp84 = & uurb->buffer_length;
64498#line 1497
64499                __cil_tmp85 = (struct __large_struct *)__cil_tmp84;
64500#line 1497
64501                __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___3),
64502                                     "=r" (__gu_val___3): "m" (*__cil_tmp85), "i" (-14),
64503                                     "0" (__gu_err___3));
64504#line 1497
64505                goto ldv_31272;
64506                switch_default___3: 
64507                {
64508#line 1497
64509                tmp___5 = __get_user_bad();
64510#line 1497
64511                __gu_val___3 = (unsigned long )tmp___5;
64512                }
64513              } else {
64514
64515              }
64516            }
64517            ldv_31272: 
64518#line 1497
64519            kurb->buffer_length = (int )__gu_val___3;
64520#line 1502
64521            if (__gu_err___3 != 0) {
64522#line 1503
64523              return (-14);
64524            } else {
64525#line 1498
64526              __gu_err___4 = 0;
64527#line 1498
64528              if (1) {
64529#line 1498
64530                goto case_4___4;
64531              } else {
64532#line 1498
64533                goto switch_default___4;
64534#line 1498
64535                if (0) {
64536#line 1498
64537                  __cil_tmp86 = & uurb->actual_length;
64538#line 1498
64539                  __cil_tmp87 = (struct __large_struct *)__cil_tmp86;
64540#line 1498
64541                  __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___4),
64542                                       "=q" (__gu_val___4): "m" (*__cil_tmp87), "i" (-14),
64543                                       "0" (__gu_err___4));
64544#line 1498
64545                  goto ldv_31281;
64546#line 1498
64547                  __cil_tmp88 = & uurb->actual_length;
64548#line 1498
64549                  __cil_tmp89 = (struct __large_struct *)__cil_tmp88;
64550#line 1498
64551                  __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___4),
64552                                       "=r" (__gu_val___4): "m" (*__cil_tmp89), "i" (-14),
64553                                       "0" (__gu_err___4));
64554#line 1498
64555                  goto ldv_31281;
64556                  case_4___4: 
64557#line 1498
64558                  __cil_tmp90 = & uurb->actual_length;
64559#line 1498
64560                  __cil_tmp91 = (struct __large_struct *)__cil_tmp90;
64561#line 1498
64562                  __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___4),
64563                                       "=r" (__gu_val___4): "m" (*__cil_tmp91), "i" (-14),
64564                                       "0" (__gu_err___4));
64565#line 1498
64566                  goto ldv_31281;
64567#line 1498
64568                  __cil_tmp92 = & uurb->actual_length;
64569#line 1498
64570                  __cil_tmp93 = (struct __large_struct *)__cil_tmp92;
64571#line 1498
64572                  __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___4),
64573                                       "=r" (__gu_val___4): "m" (*__cil_tmp93), "i" (-14),
64574                                       "0" (__gu_err___4));
64575#line 1498
64576                  goto ldv_31281;
64577                  switch_default___4: 
64578                  {
64579#line 1498
64580                  tmp___6 = __get_user_bad();
64581#line 1498
64582                  __gu_val___4 = (unsigned long )tmp___6;
64583                  }
64584                } else {
64585
64586                }
64587              }
64588              ldv_31281: 
64589#line 1498
64590              kurb->actual_length = (int )__gu_val___4;
64591#line 1502
64592              if (__gu_err___4 != 0) {
64593#line 1503
64594                return (-14);
64595              } else {
64596#line 1499
64597                __gu_err___5 = 0;
64598#line 1499
64599                if (1) {
64600#line 1499
64601                  goto case_4___5;
64602                } else {
64603#line 1499
64604                  goto switch_default___5;
64605#line 1499
64606                  if (0) {
64607#line 1499
64608                    __cil_tmp94 = & uurb->start_frame;
64609#line 1499
64610                    __cil_tmp95 = (struct __large_struct *)__cil_tmp94;
64611#line 1499
64612                    __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___5),
64613                                         "=q" (__gu_val___5): "m" (*__cil_tmp95),
64614                                         "i" (-14), "0" (__gu_err___5));
64615#line 1499
64616                    goto ldv_31290;
64617#line 1499
64618                    __cil_tmp96 = & uurb->start_frame;
64619#line 1499
64620                    __cil_tmp97 = (struct __large_struct *)__cil_tmp96;
64621#line 1499
64622                    __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___5),
64623                                         "=r" (__gu_val___5): "m" (*__cil_tmp97),
64624                                         "i" (-14), "0" (__gu_err___5));
64625#line 1499
64626                    goto ldv_31290;
64627                    case_4___5: 
64628#line 1499
64629                    __cil_tmp98 = & uurb->start_frame;
64630#line 1499
64631                    __cil_tmp99 = (struct __large_struct *)__cil_tmp98;
64632#line 1499
64633                    __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___5),
64634                                         "=r" (__gu_val___5): "m" (*__cil_tmp99),
64635                                         "i" (-14), "0" (__gu_err___5));
64636#line 1499
64637                    goto ldv_31290;
64638#line 1499
64639                    __cil_tmp100 = & uurb->start_frame;
64640#line 1499
64641                    __cil_tmp101 = (struct __large_struct *)__cil_tmp100;
64642#line 1499
64643                    __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___5),
64644                                         "=r" (__gu_val___5): "m" (*__cil_tmp101),
64645                                         "i" (-14), "0" (__gu_err___5));
64646#line 1499
64647                    goto ldv_31290;
64648                    switch_default___5: 
64649                    {
64650#line 1499
64651                    tmp___7 = __get_user_bad();
64652#line 1499
64653                    __gu_val___5 = (unsigned long )tmp___7;
64654                    }
64655                  } else {
64656
64657                  }
64658                }
64659                ldv_31290: 
64660#line 1499
64661                kurb->start_frame = (int )__gu_val___5;
64662#line 1502
64663                if (__gu_err___5 != 0) {
64664#line 1503
64665                  return (-14);
64666                } else {
64667#line 1500
64668                  __gu_err___6 = 0;
64669#line 1500
64670                  if (1) {
64671#line 1500
64672                    goto case_4___6;
64673                  } else {
64674#line 1500
64675                    goto switch_default___6;
64676#line 1500
64677                    if (0) {
64678#line 1500
64679                      __cil_tmp102 = & uurb->number_of_packets;
64680#line 1500
64681                      __cil_tmp103 = (struct __large_struct *)__cil_tmp102;
64682#line 1500
64683                      __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___6),
64684                                           "=q" (__gu_val___6): "m" (*__cil_tmp103),
64685                                           "i" (-14), "0" (__gu_err___6));
64686#line 1500
64687                      goto ldv_31299;
64688#line 1500
64689                      __cil_tmp104 = & uurb->number_of_packets;
64690#line 1500
64691                      __cil_tmp105 = (struct __large_struct *)__cil_tmp104;
64692#line 1500
64693                      __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___6),
64694                                           "=r" (__gu_val___6): "m" (*__cil_tmp105),
64695                                           "i" (-14), "0" (__gu_err___6));
64696#line 1500
64697                      goto ldv_31299;
64698                      case_4___6: 
64699#line 1500
64700                      __cil_tmp106 = & uurb->number_of_packets;
64701#line 1500
64702                      __cil_tmp107 = (struct __large_struct *)__cil_tmp106;
64703#line 1500
64704                      __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___6),
64705                                           "=r" (__gu_val___6): "m" (*__cil_tmp107),
64706                                           "i" (-14), "0" (__gu_err___6));
64707#line 1500
64708                      goto ldv_31299;
64709#line 1500
64710                      __cil_tmp108 = & uurb->number_of_packets;
64711#line 1500
64712                      __cil_tmp109 = (struct __large_struct *)__cil_tmp108;
64713#line 1500
64714                      __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___6),
64715                                           "=r" (__gu_val___6): "m" (*__cil_tmp109),
64716                                           "i" (-14), "0" (__gu_err___6));
64717#line 1500
64718                      goto ldv_31299;
64719                      switch_default___6: 
64720                      {
64721#line 1500
64722                      tmp___8 = __get_user_bad();
64723#line 1500
64724                      __gu_val___6 = (unsigned long )tmp___8;
64725                      }
64726                    } else {
64727
64728                    }
64729                  }
64730                  ldv_31299: 
64731#line 1500
64732                  kurb->number_of_packets = (int )__gu_val___6;
64733#line 1502
64734                  if (__gu_err___6 != 0) {
64735#line 1503
64736                    return (-14);
64737                  } else {
64738#line 1501
64739                    __gu_err___7 = 0;
64740#line 1501
64741                    if (1) {
64742#line 1501
64743                      goto case_4___7;
64744                    } else {
64745#line 1501
64746                      goto switch_default___7;
64747#line 1501
64748                      if (0) {
64749#line 1501
64750                        __cil_tmp110 = & uurb->error_count;
64751#line 1501
64752                        __cil_tmp111 = (struct __large_struct *)__cil_tmp110;
64753#line 1501
64754                        __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___7),
64755                                             "=q" (__gu_val___7): "m" (*__cil_tmp111),
64756                                             "i" (-14), "0" (__gu_err___7));
64757#line 1501
64758                        goto ldv_31308;
64759#line 1501
64760                        __cil_tmp112 = & uurb->error_count;
64761#line 1501
64762                        __cil_tmp113 = (struct __large_struct *)__cil_tmp112;
64763#line 1501
64764                        __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___7),
64765                                             "=r" (__gu_val___7): "m" (*__cil_tmp113),
64766                                             "i" (-14), "0" (__gu_err___7));
64767#line 1501
64768                        goto ldv_31308;
64769                        case_4___7: 
64770#line 1501
64771                        __cil_tmp114 = & uurb->error_count;
64772#line 1501
64773                        __cil_tmp115 = (struct __large_struct *)__cil_tmp114;
64774#line 1501
64775                        __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___7),
64776                                             "=r" (__gu_val___7): "m" (*__cil_tmp115),
64777                                             "i" (-14), "0" (__gu_err___7));
64778#line 1501
64779                        goto ldv_31308;
64780#line 1501
64781                        __cil_tmp116 = & uurb->error_count;
64782#line 1501
64783                        __cil_tmp117 = (struct __large_struct *)__cil_tmp116;
64784#line 1501
64785                        __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___7),
64786                                             "=r" (__gu_val___7): "m" (*__cil_tmp117),
64787                                             "i" (-14), "0" (__gu_err___7));
64788#line 1501
64789                        goto ldv_31308;
64790                        switch_default___7: 
64791                        {
64792#line 1501
64793                        tmp___9 = __get_user_bad();
64794#line 1501
64795                        __gu_val___7 = (unsigned long )tmp___9;
64796                        }
64797                      } else {
64798
64799                      }
64800                    }
64801                    ldv_31308: 
64802#line 1501
64803                    kurb->error_count = (int )__gu_val___7;
64804#line 1502
64805                    if (__gu_err___7 != 0) {
64806#line 1503
64807                      return (-14);
64808                    } else {
64809#line 1502
64810                      __gu_err___8 = 0;
64811#line 1502
64812                      if (1) {
64813#line 1502
64814                        goto case_4___8;
64815                      } else {
64816#line 1502
64817                        goto switch_default___8;
64818#line 1502
64819                        if (0) {
64820#line 1502
64821                          __cil_tmp118 = & uurb->signr;
64822#line 1502
64823                          __cil_tmp119 = (struct __large_struct *)__cil_tmp118;
64824#line 1502
64825                          __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___8),
64826                                               "=q" (__gu_val___8): "m" (*__cil_tmp119),
64827                                               "i" (-14), "0" (__gu_err___8));
64828#line 1502
64829                          goto ldv_31317;
64830#line 1502
64831                          __cil_tmp120 = & uurb->signr;
64832#line 1502
64833                          __cil_tmp121 = (struct __large_struct *)__cil_tmp120;
64834#line 1502
64835                          __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___8),
64836                                               "=r" (__gu_val___8): "m" (*__cil_tmp121),
64837                                               "i" (-14), "0" (__gu_err___8));
64838#line 1502
64839                          goto ldv_31317;
64840                          case_4___8: 
64841#line 1502
64842                          __cil_tmp122 = & uurb->signr;
64843#line 1502
64844                          __cil_tmp123 = (struct __large_struct *)__cil_tmp122;
64845#line 1502
64846                          __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___8),
64847                                               "=r" (__gu_val___8): "m" (*__cil_tmp123),
64848                                               "i" (-14), "0" (__gu_err___8));
64849#line 1502
64850                          goto ldv_31317;
64851#line 1502
64852                          __cil_tmp124 = & uurb->signr;
64853#line 1502
64854                          __cil_tmp125 = (struct __large_struct *)__cil_tmp124;
64855#line 1502
64856                          __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___8),
64857                                               "=r" (__gu_val___8): "m" (*__cil_tmp125),
64858                                               "i" (-14), "0" (__gu_err___8));
64859#line 1502
64860                          goto ldv_31317;
64861                          switch_default___8: 
64862                          {
64863#line 1502
64864                          tmp___10 = __get_user_bad();
64865#line 1502
64866                          __gu_val___8 = (unsigned long )tmp___10;
64867                          }
64868                        } else {
64869
64870                        }
64871                      }
64872                      ldv_31317: 
64873#line 1502
64874                      kurb->signr = (unsigned int )__gu_val___8;
64875#line 1502
64876                      if (__gu_err___8 != 0) {
64877#line 1503
64878                        return (-14);
64879                      } else {
64880
64881                      }
64882                    }
64883                  }
64884                }
64885              }
64886            }
64887          }
64888        }
64889      }
64890    }
64891  }
64892#line 1505
64893  __gu_err___9 = 0;
64894#line 1505
64895  if (1) {
64896#line 1505
64897    goto case_4___9;
64898  } else {
64899#line 1505
64900    goto switch_default___9;
64901#line 1505
64902    if (0) {
64903#line 1505
64904      __cil_tmp126 = & uurb->buffer;
64905#line 1505
64906      __cil_tmp127 = (struct __large_struct *)__cil_tmp126;
64907#line 1505
64908      __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___9),
64909                           "=q" (__gu_val___9): "m" (*__cil_tmp127), "i" (-14), "0" (__gu_err___9));
64910#line 1505
64911      goto ldv_31326;
64912#line 1505
64913      __cil_tmp128 = & uurb->buffer;
64914#line 1505
64915      __cil_tmp129 = (struct __large_struct *)__cil_tmp128;
64916#line 1505
64917      __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___9),
64918                           "=r" (__gu_val___9): "m" (*__cil_tmp129), "i" (-14), "0" (__gu_err___9));
64919#line 1505
64920      goto ldv_31326;
64921      case_4___9: 
64922#line 1505
64923      __cil_tmp130 = & uurb->buffer;
64924#line 1505
64925      __cil_tmp131 = (struct __large_struct *)__cil_tmp130;
64926#line 1505
64927      __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___9),
64928                           "=r" (__gu_val___9): "m" (*__cil_tmp131), "i" (-14), "0" (__gu_err___9));
64929#line 1505
64930      goto ldv_31326;
64931#line 1505
64932      __cil_tmp132 = & uurb->buffer;
64933#line 1505
64934      __cil_tmp133 = (struct __large_struct *)__cil_tmp132;
64935#line 1505
64936      __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___9),
64937                           "=r" (__gu_val___9): "m" (*__cil_tmp133), "i" (-14), "0" (__gu_err___9));
64938#line 1505
64939      goto ldv_31326;
64940      switch_default___9: 
64941      {
64942#line 1505
64943      tmp___11 = __get_user_bad();
64944#line 1505
64945      __gu_val___9 = (unsigned long )tmp___11;
64946      }
64947    } else {
64948
64949    }
64950  }
64951  ldv_31326: 
64952#line 1505
64953  uptr = (unsigned int )__gu_val___9;
64954#line 1505
64955  if (__gu_err___9 != 0) {
64956#line 1506
64957    return (-14);
64958  } else {
64959
64960  }
64961  {
64962#line 1507
64963  kurb->buffer = compat_ptr(uptr);
64964#line 1508
64965  __gu_err___10 = 0;
64966  }
64967#line 1508
64968  if (1) {
64969#line 1508
64970    goto case_4___10;
64971  } else {
64972#line 1508
64973    goto switch_default___10;
64974#line 1508
64975    if (0) {
64976#line 1508
64977      __cil_tmp134 = & uurb->usercontext;
64978#line 1508
64979      __cil_tmp135 = (struct __large_struct *)__cil_tmp134;
64980#line 1508
64981      __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___10),
64982                           "=q" (__gu_val___10): "m" (*__cil_tmp135), "i" (-14), "0" (__gu_err___10));
64983#line 1508
64984      goto ldv_31335;
64985#line 1508
64986      __cil_tmp136 = & uurb->usercontext;
64987#line 1508
64988      __cil_tmp137 = (struct __large_struct *)__cil_tmp136;
64989#line 1508
64990      __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___10),
64991                           "=r" (__gu_val___10): "m" (*__cil_tmp137), "i" (-14), "0" (__gu_err___10));
64992#line 1508
64993      goto ldv_31335;
64994      case_4___10: 
64995#line 1508
64996      __cil_tmp138 = & uurb->usercontext;
64997#line 1508
64998      __cil_tmp139 = (struct __large_struct *)__cil_tmp138;
64999#line 1508
65000      __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___10),
65001                           "=r" (__gu_val___10): "m" (*__cil_tmp139), "i" (-14), "0" (__gu_err___10));
65002#line 1508
65003      goto ldv_31335;
65004#line 1508
65005      __cil_tmp140 = & uurb->usercontext;
65006#line 1508
65007      __cil_tmp141 = (struct __large_struct *)__cil_tmp140;
65008#line 1508
65009      __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___10),
65010                           "=r" (__gu_val___10): "m" (*__cil_tmp141), "i" (-14), "0" (__gu_err___10));
65011#line 1508
65012      goto ldv_31335;
65013      switch_default___10: 
65014      {
65015#line 1508
65016      tmp___12 = __get_user_bad();
65017#line 1508
65018      __gu_val___10 = (unsigned long )tmp___12;
65019      }
65020    } else {
65021
65022    }
65023  }
65024  ldv_31335: 
65025#line 1508
65026  uptr = (unsigned int )__gu_val___10;
65027#line 1508
65028  if (__gu_err___10 != 0) {
65029#line 1509
65030    return (-14);
65031  } else {
65032
65033  }
65034  {
65035#line 1510
65036  kurb->usercontext = compat_ptr(uptr);
65037  }
65038#line 1512
65039  return (0);
65040}
65041}
65042#line 1515 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
65043static int proc_submiturb_compat(struct dev_state *ps , void *arg ) 
65044{ struct usbdevfs_urb uurb ;
65045  int tmp ;
65046  int tmp___0 ;
65047  struct usbdevfs_urb32 *__cil_tmp6 ;
65048  struct usbdevfs_urb32 *__cil_tmp7 ;
65049  struct usbdevfs_iso_packet_desc (*__cil_tmp8)[0U] ;
65050  struct usbdevfs_iso_packet_desc *__cil_tmp9 ;
65051
65052  {
65053  {
65054#line 1519
65055  __cil_tmp6 = (struct usbdevfs_urb32 *)arg;
65056#line 1519
65057  tmp = get_urb32(& uurb, __cil_tmp6);
65058  }
65059#line 1519
65060  if (tmp != 0) {
65061#line 1520
65062    return (-14);
65063  } else {
65064
65065  }
65066  {
65067#line 1522
65068  __cil_tmp7 = (struct usbdevfs_urb32 *)arg;
65069#line 1522
65070  __cil_tmp8 = & __cil_tmp7->iso_frame_desc;
65071#line 1522
65072  __cil_tmp9 = (struct usbdevfs_iso_packet_desc *)__cil_tmp8;
65073#line 1522
65074  tmp___0 = proc_do_submiturb(ps, & uurb, __cil_tmp9, arg);
65075  }
65076#line 1522
65077  return (tmp___0);
65078}
65079}
65080#line 1527 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
65081static int processcompl_compat(struct async *as , void **arg ) 
65082{ struct urb *urb ;
65083  struct usbdevfs_urb32 *userurb ;
65084  void *addr ;
65085  unsigned int i ;
65086  int tmp ;
65087  int __ret_pu ;
65088  compat_int_t __pu_val ;
65089  int __ret_pu___0 ;
65090  compat_int_t __pu_val___0 ;
65091  int __ret_pu___1 ;
65092  compat_int_t __pu_val___1 ;
65093  int __ret_pu___2 ;
65094  unsigned int __pu_val___2 ;
65095  int __ret_pu___3 ;
65096  unsigned int __pu_val___3 ;
65097  int tmp___0 ;
65098  int __ret_pu___4 ;
65099  u32 __pu_val___4 ;
65100  void *__cil_tmp21 ;
65101  void *__cil_tmp22 ;
65102  unsigned long __cil_tmp23 ;
65103  void *__cil_tmp24 ;
65104  unsigned long __cil_tmp25 ;
65105  u32 __cil_tmp26 ;
65106  void *__cil_tmp27 ;
65107  void *__cil_tmp28 ;
65108  void const   *__cil_tmp29 ;
65109  u32 __cil_tmp30 ;
65110  u32 __cil_tmp31 ;
65111  struct usb_host_endpoint *__cil_tmp32 ;
65112  struct usb_endpoint_descriptor *__cil_tmp33 ;
65113  struct usb_endpoint_descriptor  const  *__cil_tmp34 ;
65114  int __cil_tmp35 ;
65115  int __cil_tmp36 ;
65116  unsigned int __cil_tmp37 ;
65117
65118  {
65119#line 1529
65120  urb = as->urb;
65121#line 1530
65122  __cil_tmp21 = as->userurb;
65123#line 1530
65124  userurb = (struct usbdevfs_urb32 *)__cil_tmp21;
65125#line 1531
65126  addr = as->userurb;
65127  {
65128#line 1534
65129  __cil_tmp22 = (void *)0;
65130#line 1534
65131  __cil_tmp23 = (unsigned long )__cil_tmp22;
65132#line 1534
65133  __cil_tmp24 = as->userbuffer;
65134#line 1534
65135  __cil_tmp25 = (unsigned long )__cil_tmp24;
65136#line 1534
65137  if (__cil_tmp25 != __cil_tmp23) {
65138    {
65139#line 1534
65140    __cil_tmp26 = urb->actual_length;
65141#line 1534
65142    if (__cil_tmp26 != 0U) {
65143      {
65144#line 1535
65145      __cil_tmp27 = as->userbuffer;
65146#line 1535
65147      __cil_tmp28 = urb->transfer_buffer;
65148#line 1535
65149      __cil_tmp29 = (void const   *)__cil_tmp28;
65150#line 1535
65151      __cil_tmp30 = urb->actual_length;
65152#line 1535
65153      tmp = copy_to_user(__cil_tmp27, __cil_tmp29, __cil_tmp30);
65154      }
65155#line 1535
65156      if (tmp != 0) {
65157#line 1537
65158        return (-14);
65159      } else {
65160
65161      }
65162    } else {
65163
65164    }
65165    }
65166  } else {
65167
65168  }
65169  }
65170  {
65171#line 1538
65172  might_fault();
65173#line 1538
65174  __pu_val = as->status;
65175  }
65176#line 1538
65177  if (1) {
65178#line 1538
65179    goto case_4;
65180  } else {
65181#line 1538
65182    goto switch_default;
65183#line 1538
65184    if (0) {
65185#line 1538
65186      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65187#line 1538
65188      goto ldv_31357;
65189#line 1538
65190      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65191#line 1538
65192      goto ldv_31357;
65193      case_4: 
65194#line 1538
65195      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65196#line 1538
65197      goto ldv_31357;
65198#line 1538
65199      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65200#line 1538
65201      goto ldv_31357;
65202      switch_default: 
65203#line 1538
65204      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65205#line 1538
65206      goto ldv_31357;
65207    } else {
65208
65209    }
65210  }
65211  ldv_31357: ;
65212#line 1538
65213  if (__ret_pu != 0) {
65214#line 1539
65215    return (-14);
65216  } else {
65217
65218  }
65219  {
65220#line 1540
65221  might_fault();
65222#line 1540
65223  __cil_tmp31 = urb->actual_length;
65224#line 1540
65225  __pu_val___0 = (compat_int_t )__cil_tmp31;
65226  }
65227#line 1540
65228  if (1) {
65229#line 1540
65230    goto case_4___0;
65231  } else {
65232#line 1540
65233    goto switch_default___0;
65234#line 1540
65235    if (0) {
65236#line 1540
65237      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___0): "0" (__pu_val___0),
65238                           "c" (& userurb->actual_length): "ebx");
65239#line 1540
65240      goto ldv_31366;
65241#line 1540
65242      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___0): "0" (__pu_val___0),
65243                           "c" (& userurb->actual_length): "ebx");
65244#line 1540
65245      goto ldv_31366;
65246      case_4___0: 
65247#line 1540
65248      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___0): "0" (__pu_val___0),
65249                           "c" (& userurb->actual_length): "ebx");
65250#line 1540
65251      goto ldv_31366;
65252#line 1540
65253      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___0): "0" (__pu_val___0),
65254                           "c" (& userurb->actual_length): "ebx");
65255#line 1540
65256      goto ldv_31366;
65257      switch_default___0: 
65258#line 1540
65259      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___0): "0" (__pu_val___0),
65260                           "c" (& userurb->actual_length): "ebx");
65261#line 1540
65262      goto ldv_31366;
65263    } else {
65264
65265    }
65266  }
65267  ldv_31366: ;
65268#line 1540
65269  if (__ret_pu___0 != 0) {
65270#line 1541
65271    return (-14);
65272  } else {
65273
65274  }
65275  {
65276#line 1542
65277  might_fault();
65278#line 1542
65279  __pu_val___1 = urb->error_count;
65280  }
65281#line 1542
65282  if (1) {
65283#line 1542
65284    goto case_4___1;
65285  } else {
65286#line 1542
65287    goto switch_default___1;
65288#line 1542
65289    if (0) {
65290#line 1542
65291      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___1): "0" (__pu_val___1),
65292                           "c" (& userurb->error_count): "ebx");
65293#line 1542
65294      goto ldv_31375;
65295#line 1542
65296      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___1): "0" (__pu_val___1),
65297                           "c" (& userurb->error_count): "ebx");
65298#line 1542
65299      goto ldv_31375;
65300      case_4___1: 
65301#line 1542
65302      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___1): "0" (__pu_val___1),
65303                           "c" (& userurb->error_count): "ebx");
65304#line 1542
65305      goto ldv_31375;
65306#line 1542
65307      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___1): "0" (__pu_val___1),
65308                           "c" (& userurb->error_count): "ebx");
65309#line 1542
65310      goto ldv_31375;
65311      switch_default___1: 
65312#line 1542
65313      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___1): "0" (__pu_val___1),
65314                           "c" (& userurb->error_count): "ebx");
65315#line 1542
65316      goto ldv_31375;
65317    } else {
65318
65319    }
65320  }
65321  ldv_31375: ;
65322#line 1542
65323  if (__ret_pu___1 != 0) {
65324#line 1543
65325    return (-14);
65326  } else {
65327
65328  }
65329  {
65330#line 1545
65331  __cil_tmp32 = urb->ep;
65332#line 1545
65333  __cil_tmp33 = & __cil_tmp32->desc;
65334#line 1545
65335  __cil_tmp34 = (struct usb_endpoint_descriptor  const  *)__cil_tmp33;
65336#line 1545
65337  tmp___0 = usb_endpoint_xfer_isoc(__cil_tmp34);
65338  }
65339#line 1545
65340  if (tmp___0 != 0) {
65341#line 1546
65342    i = 0U;
65343#line 1546
65344    goto ldv_31400;
65345    ldv_31399: 
65346    {
65347#line 1547
65348    might_fault();
65349#line 1547
65350    __pu_val___2 = urb->iso_frame_desc[i].actual_length;
65351    }
65352#line 1547
65353    if (1) {
65354#line 1547
65355      goto case_4___2;
65356    } else {
65357#line 1547
65358      goto switch_default___2;
65359#line 1547
65360      if (0) {
65361#line 1547
65362        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___2): "0" (__pu_val___2),
65363                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65364#line 1547
65365        goto ldv_31384;
65366#line 1547
65367        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___2): "0" (__pu_val___2),
65368                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65369#line 1547
65370        goto ldv_31384;
65371        case_4___2: 
65372#line 1547
65373        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___2): "0" (__pu_val___2),
65374                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65375#line 1547
65376        goto ldv_31384;
65377#line 1547
65378        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___2): "0" (__pu_val___2),
65379                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65380#line 1547
65381        goto ldv_31384;
65382        switch_default___2: 
65383#line 1547
65384        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___2): "0" (__pu_val___2),
65385                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65386#line 1547
65387        goto ldv_31384;
65388      } else {
65389
65390      }
65391    }
65392    ldv_31384: ;
65393#line 1547
65394    if (__ret_pu___2 != 0) {
65395#line 1549
65396      return (-14);
65397    } else {
65398
65399    }
65400    {
65401#line 1550
65402    might_fault();
65403#line 1550
65404    __cil_tmp35 = urb->iso_frame_desc[i].status;
65405#line 1550
65406    __pu_val___3 = (unsigned int )__cil_tmp35;
65407    }
65408#line 1550
65409    if (1) {
65410#line 1550
65411      goto case_4___3;
65412    } else {
65413#line 1550
65414      goto switch_default___3;
65415#line 1550
65416      if (0) {
65417#line 1550
65418        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___3): "0" (__pu_val___3),
65419                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65420#line 1550
65421        goto ldv_31393;
65422#line 1550
65423        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___3): "0" (__pu_val___3),
65424                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65425#line 1550
65426        goto ldv_31393;
65427        case_4___3: 
65428#line 1550
65429        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___3): "0" (__pu_val___3),
65430                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65431#line 1550
65432        goto ldv_31393;
65433#line 1550
65434        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___3): "0" (__pu_val___3),
65435                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65436#line 1550
65437        goto ldv_31393;
65438        switch_default___3: 
65439#line 1550
65440        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___3): "0" (__pu_val___3),
65441                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65442#line 1550
65443        goto ldv_31393;
65444      } else {
65445
65446      }
65447    }
65448    ldv_31393: ;
65449#line 1550
65450    if (__ret_pu___3 != 0) {
65451#line 1552
65452      return (-14);
65453    } else {
65454
65455    }
65456#line 1546
65457    i = i + 1U;
65458    ldv_31400: ;
65459    {
65460#line 1546
65461    __cil_tmp36 = urb->number_of_packets;
65462#line 1546
65463    __cil_tmp37 = (unsigned int )__cil_tmp36;
65464#line 1546
65465    if (__cil_tmp37 > i) {
65466#line 1547
65467      goto ldv_31399;
65468    } else {
65469#line 1549
65470      goto ldv_31401;
65471    }
65472    }
65473    ldv_31401: ;
65474  } else {
65475
65476  }
65477  {
65478#line 1556
65479  might_fault();
65480#line 1556
65481  __pu_val___4 = ptr_to_compat(addr);
65482  }
65483#line 1556
65484  if (1) {
65485#line 1556
65486    goto case_4___4;
65487  } else {
65488#line 1556
65489    goto switch_default___4;
65490#line 1556
65491    if (0) {
65492#line 1556
65493      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___4): "0" (__pu_val___4),
65494                           "c" ((u32 *)arg): "ebx");
65495#line 1556
65496      goto ldv_31405;
65497#line 1556
65498      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___4): "0" (__pu_val___4),
65499                           "c" ((u32 *)arg): "ebx");
65500#line 1556
65501      goto ldv_31405;
65502      case_4___4: 
65503#line 1556
65504      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___4): "0" (__pu_val___4),
65505                           "c" ((u32 *)arg): "ebx");
65506#line 1556
65507      goto ldv_31405;
65508#line 1556
65509      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___4): "0" (__pu_val___4),
65510                           "c" ((u32 *)arg): "ebx");
65511#line 1556
65512      goto ldv_31405;
65513      switch_default___4: 
65514#line 1556
65515      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___4): "0" (__pu_val___4),
65516                           "c" ((u32 *)arg): "ebx");
65517#line 1556
65518      goto ldv_31405;
65519    } else {
65520
65521    }
65522  }
65523  ldv_31405: ;
65524#line 1556
65525  if (__ret_pu___4 != 0) {
65526#line 1557
65527    return (-14);
65528  } else {
65529
65530  }
65531#line 1558
65532  return (0);
65533}
65534}
65535#line 1561 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
65536static int proc_reapurb_compat(struct dev_state *ps , void *arg ) 
65537{ struct async *as ;
65538  struct async *tmp ;
65539  int retval ;
65540  int tmp___0 ;
65541  struct task_struct *tmp___1 ;
65542  int tmp___2 ;
65543  struct async *__cil_tmp9 ;
65544  unsigned long __cil_tmp10 ;
65545  unsigned long __cil_tmp11 ;
65546  void **__cil_tmp12 ;
65547
65548  {
65549  {
65550#line 1563
65551  tmp = reap_as(ps);
65552#line 1563
65553  as = tmp;
65554  }
65555  {
65556#line 1564
65557  __cil_tmp9 = (struct async *)0;
65558#line 1564
65559  __cil_tmp10 = (unsigned long )__cil_tmp9;
65560#line 1564
65561  __cil_tmp11 = (unsigned long )as;
65562#line 1564
65563  if (__cil_tmp11 != __cil_tmp10) {
65564    {
65565#line 1565
65566    __cil_tmp12 = (void **)arg;
65567#line 1565
65568    tmp___0 = processcompl_compat(as, __cil_tmp12);
65569#line 1565
65570    retval = tmp___0;
65571#line 1566
65572    free_async(as);
65573    }
65574#line 1567
65575    return (retval);
65576  } else {
65577
65578  }
65579  }
65580  {
65581#line 1569
65582  tmp___1 = get_current();
65583#line 1569
65584  tmp___2 = signal_pending(tmp___1);
65585  }
65586#line 1569
65587  if (tmp___2 != 0) {
65588#line 1570
65589    return (-4);
65590  } else {
65591
65592  }
65593#line 1571
65594  return (-5);
65595}
65596}
65597#line 1574 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
65598static int proc_reapurbnonblock_compat(struct dev_state *ps , void *arg ) 
65599{ int retval ;
65600  struct async *as ;
65601  struct async *__cil_tmp5 ;
65602  unsigned long __cil_tmp6 ;
65603  unsigned long __cil_tmp7 ;
65604  void **__cil_tmp8 ;
65605
65606  {
65607  {
65608#line 1579
65609  retval = -11;
65610#line 1580
65611  as = async_getcompleted(ps);
65612  }
65613  {
65614#line 1581
65615  __cil_tmp5 = (struct async *)0;
65616#line 1581
65617  __cil_tmp6 = (unsigned long )__cil_tmp5;
65618#line 1581
65619  __cil_tmp7 = (unsigned long )as;
65620#line 1581
65621  if (__cil_tmp7 != __cil_tmp6) {
65622    {
65623#line 1582
65624    __cil_tmp8 = (void **)arg;
65625#line 1582
65626    retval = processcompl_compat(as, __cil_tmp8);
65627#line 1583
65628    free_async(as);
65629    }
65630  } else {
65631
65632  }
65633  }
65634#line 1585
65635  return (retval);
65636}
65637}
65638#line 1591 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
65639static int proc_disconnectsignal(struct dev_state *ps , void *arg ) 
65640{ struct usbdevfs_disconnectsignal ds ;
65641  unsigned long tmp ;
65642  void *__cil_tmp5 ;
65643  void const   *__cil_tmp6 ;
65644
65645  {
65646  {
65647#line 1595
65648  __cil_tmp5 = (void *)(& ds);
65649#line 1595
65650  __cil_tmp6 = (void const   *)arg;
65651#line 1595
65652  tmp = copy_from_user(__cil_tmp5, __cil_tmp6, 16UL);
65653  }
65654#line 1595
65655  if (tmp != 0UL) {
65656#line 1596
65657    return (-14);
65658  } else {
65659
65660  }
65661#line 1597
65662  ps->discsignr = ds.signr;
65663#line 1598
65664  ps->disccontext = ds.context;
65665#line 1599
65666  return (0);
65667}
65668}
65669#line 1602 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
65670static int proc_claiminterface(struct dev_state *ps , void *arg ) 
65671{ unsigned int ifnum ;
65672  int __ret_gu ;
65673  unsigned long __val_gu ;
65674  int tmp ;
65675
65676  {
65677  {
65678#line 1606
65679  might_fault();
65680  }
65681#line 1606
65682  if (1) {
65683#line 1606
65684    goto case_4;
65685  } else {
65686#line 1606
65687    goto switch_default;
65688#line 1606
65689    if (0) {
65690#line 1606
65691      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65692#line 1606
65693      goto ldv_31436;
65694#line 1606
65695      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65696#line 1606
65697      goto ldv_31436;
65698      case_4: 
65699#line 1606
65700      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65701#line 1606
65702      goto ldv_31436;
65703#line 1606
65704      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65705#line 1606
65706      goto ldv_31436;
65707      switch_default: 
65708#line 1606
65709      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65710#line 1606
65711      goto ldv_31436;
65712    } else {
65713
65714    }
65715  }
65716  ldv_31436: 
65717#line 1606
65718  ifnum = (unsigned int )__val_gu;
65719#line 1606
65720  if (__ret_gu != 0) {
65721#line 1607
65722    return (-14);
65723  } else {
65724
65725  }
65726  {
65727#line 1608
65728  tmp = claimintf(ps, ifnum);
65729  }
65730#line 1608
65731  return (tmp);
65732}
65733}
65734#line 1611 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
65735static int proc_releaseinterface(struct dev_state *ps , void *arg ) 
65736{ unsigned int ifnum ;
65737  int ret ;
65738  int __ret_gu ;
65739  unsigned long __val_gu ;
65740
65741  {
65742  {
65743#line 1616
65744  might_fault();
65745  }
65746#line 1616
65747  if (1) {
65748#line 1616
65749    goto case_4;
65750  } else {
65751#line 1616
65752    goto switch_default;
65753#line 1616
65754    if (0) {
65755#line 1616
65756      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65757#line 1616
65758      goto ldv_31451;
65759#line 1616
65760      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65761#line 1616
65762      goto ldv_31451;
65763      case_4: 
65764#line 1616
65765      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65766#line 1616
65767      goto ldv_31451;
65768#line 1616
65769      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65770#line 1616
65771      goto ldv_31451;
65772      switch_default: 
65773#line 1616
65774      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65775#line 1616
65776      goto ldv_31451;
65777    } else {
65778
65779    }
65780  }
65781  ldv_31451: 
65782#line 1616
65783  ifnum = (unsigned int )__val_gu;
65784#line 1616
65785  if (__ret_gu != 0) {
65786#line 1617
65787    return (-14);
65788  } else {
65789
65790  }
65791  {
65792#line 1618
65793  ret = releaseintf(ps, ifnum);
65794  }
65795#line 1618
65796  if (ret < 0) {
65797#line 1619
65798    return (ret);
65799  } else {
65800
65801  }
65802  {
65803#line 1620
65804  destroy_async_on_interface(ps, ifnum);
65805  }
65806#line 1621
65807  return (0);
65808}
65809}
65810#line 1624 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
65811static int proc_ioctl(struct dev_state *ps , struct usbdevfs_ioctl *ctl ) 
65812{ int size ;
65813  void *buf ;
65814  int retval ;
65815  struct usb_interface *intf ;
65816  struct usb_driver *driver ;
65817  unsigned long tmp ;
65818  int tmp___0 ;
65819  struct device_driver  const  *__mptr ;
65820  struct device_driver  const  *__mptr___0 ;
65821  int tmp___1 ;
65822  int __cil_tmp13 ;
65823  int __cil_tmp14 ;
65824  size_t __cil_tmp15 ;
65825  void *__cil_tmp16 ;
65826  unsigned long __cil_tmp17 ;
65827  unsigned long __cil_tmp18 ;
65828  int __cil_tmp19 ;
65829  unsigned int __cil_tmp20 ;
65830  unsigned int __cil_tmp21 ;
65831  void *__cil_tmp22 ;
65832  void const   *__cil_tmp23 ;
65833  unsigned long __cil_tmp24 ;
65834  void const   *__cil_tmp25 ;
65835  size_t __cil_tmp26 ;
65836  void const   *__cil_tmp27 ;
65837  struct usb_device *__cil_tmp28 ;
65838  enum usb_device_state __cil_tmp29 ;
65839  unsigned int __cil_tmp30 ;
65840  struct usb_device *__cil_tmp31 ;
65841  struct usb_device  const  *__cil_tmp32 ;
65842  int __cil_tmp33 ;
65843  unsigned int __cil_tmp34 ;
65844  struct usb_interface *__cil_tmp35 ;
65845  unsigned long __cil_tmp36 ;
65846  unsigned long __cil_tmp37 ;
65847  int __cil_tmp38 ;
65848  int __cil_tmp39 ;
65849  struct device_driver *__cil_tmp40 ;
65850  unsigned long __cil_tmp41 ;
65851  struct device_driver *__cil_tmp42 ;
65852  unsigned long __cil_tmp43 ;
65853  struct device_driver *__cil_tmp44 ;
65854  struct usb_driver *__cil_tmp45 ;
65855  struct device *__cil_tmp46 ;
65856  struct device  const  *__cil_tmp47 ;
65857  struct device_driver *__cil_tmp48 ;
65858  unsigned long __cil_tmp49 ;
65859  struct device_driver *__cil_tmp50 ;
65860  unsigned long __cil_tmp51 ;
65861  struct device *__cil_tmp52 ;
65862  struct device_driver *__cil_tmp53 ;
65863  unsigned long __cil_tmp54 ;
65864  struct device_driver *__cil_tmp55 ;
65865  unsigned long __cil_tmp56 ;
65866  struct device_driver *__cil_tmp57 ;
65867  struct usb_driver *__cil_tmp58 ;
65868  struct usb_driver *__cil_tmp59 ;
65869  unsigned long __cil_tmp60 ;
65870  unsigned long __cil_tmp61 ;
65871  int (*__cil_tmp62)(struct usb_interface * , unsigned int  , void * ) ;
65872  unsigned long __cil_tmp63 ;
65873  int (*__cil_tmp64)(struct usb_interface * , unsigned int  , void * ) ;
65874  unsigned long __cil_tmp65 ;
65875  int (*__cil_tmp66)(struct usb_interface * , unsigned int  , void * ) ;
65876  int __cil_tmp67 ;
65877  unsigned int __cil_tmp68 ;
65878  int __cil_tmp69 ;
65879  void *__cil_tmp70 ;
65880  void const   *__cil_tmp71 ;
65881  unsigned int __cil_tmp72 ;
65882  void const   *__cil_tmp73 ;
65883
65884  {
65885#line 1627
65886  buf = (void *)0;
65887#line 1628
65888  retval = 0;
65889#line 1629
65890  intf = (struct usb_interface *)0;
65891#line 1630
65892  driver = (struct usb_driver *)0;
65893#line 1633
65894  __cil_tmp13 = ctl->ioctl_code;
65895#line 1633
65896  __cil_tmp14 = __cil_tmp13 >> 16;
65897#line 1633
65898  size = __cil_tmp14 & 16383;
65899#line 1633
65900  if (size > 0) {
65901    {
65902#line 1634
65903    __cil_tmp15 = (size_t )size;
65904#line 1634
65905    buf = kmalloc(__cil_tmp15, 208U);
65906    }
65907    {
65908#line 1634
65909    __cil_tmp16 = (void *)0;
65910#line 1634
65911    __cil_tmp17 = (unsigned long )__cil_tmp16;
65912#line 1634
65913    __cil_tmp18 = (unsigned long )buf;
65914#line 1634
65915    if (__cil_tmp18 == __cil_tmp17) {
65916#line 1635
65917      return (-12);
65918    } else {
65919
65920    }
65921    }
65922    {
65923#line 1636
65924    __cil_tmp19 = ctl->ioctl_code;
65925#line 1636
65926    __cil_tmp20 = (unsigned int )__cil_tmp19;
65927#line 1636
65928    __cil_tmp21 = __cil_tmp20 & 1073741824U;
65929#line 1636
65930    if (__cil_tmp21 != 0U) {
65931      {
65932#line 1637
65933      __cil_tmp22 = ctl->data;
65934#line 1637
65935      __cil_tmp23 = (void const   *)__cil_tmp22;
65936#line 1637
65937      __cil_tmp24 = (unsigned long )size;
65938#line 1637
65939      tmp = copy_from_user(buf, __cil_tmp23, __cil_tmp24);
65940      }
65941#line 1637
65942      if (tmp != 0UL) {
65943        {
65944#line 1638
65945        __cil_tmp25 = (void const   *)buf;
65946#line 1638
65947        kfree(__cil_tmp25);
65948        }
65949#line 1639
65950        return (-14);
65951      } else {
65952        {
65953#line 1642
65954        __cil_tmp26 = (size_t )size;
65955#line 1642
65956        memset(buf, 0, __cil_tmp26);
65957        }
65958      }
65959    } else {
65960
65961    }
65962    }
65963  } else {
65964
65965  }
65966  {
65967#line 1646
65968  tmp___0 = connected(ps);
65969  }
65970#line 1646
65971  if (tmp___0 == 0) {
65972    {
65973#line 1647
65974    __cil_tmp27 = (void const   *)buf;
65975#line 1647
65976    kfree(__cil_tmp27);
65977    }
65978#line 1648
65979    return (-19);
65980  } else {
65981
65982  }
65983  {
65984#line 1651
65985  __cil_tmp28 = ps->dev;
65986#line 1651
65987  __cil_tmp29 = __cil_tmp28->state;
65988#line 1651
65989  __cil_tmp30 = (unsigned int )__cil_tmp29;
65990#line 1651
65991  if (__cil_tmp30 != 7U) {
65992#line 1652
65993    retval = -113;
65994  } else {
65995    {
65996#line 1653
65997    __cil_tmp31 = ps->dev;
65998#line 1653
65999    __cil_tmp32 = (struct usb_device  const  *)__cil_tmp31;
66000#line 1653
66001    __cil_tmp33 = ctl->ifno;
66002#line 1653
66003    __cil_tmp34 = (unsigned int )__cil_tmp33;
66004#line 1653
66005    intf = usb_ifnum_to_if(__cil_tmp32, __cil_tmp34);
66006    }
66007    {
66008#line 1653
66009    __cil_tmp35 = (struct usb_interface *)0;
66010#line 1653
66011    __cil_tmp36 = (unsigned long )__cil_tmp35;
66012#line 1653
66013    __cil_tmp37 = (unsigned long )intf;
66014#line 1653
66015    if (__cil_tmp37 == __cil_tmp36) {
66016#line 1654
66017      retval = -22;
66018    } else {
66019      {
66020#line 1658
66021      __cil_tmp38 = ctl->ioctl_code;
66022#line 1658
66023      if (__cil_tmp38 == 21782) {
66024#line 1658
66025        goto case_21782;
66026      } else {
66027        {
66028#line 1668
66029        __cil_tmp39 = ctl->ioctl_code;
66030#line 1668
66031        if (__cil_tmp39 == 21783) {
66032#line 1668
66033          goto case_21783;
66034        } else {
66035#line 1676
66036          goto switch_default;
66037#line 1655
66038          if (0) {
66039            case_21782: ;
66040            {
66041#line 1659
66042            __cil_tmp40 = (struct device_driver *)0;
66043#line 1659
66044            __cil_tmp41 = (unsigned long )__cil_tmp40;
66045#line 1659
66046            __cil_tmp42 = intf->dev.driver;
66047#line 1659
66048            __cil_tmp43 = (unsigned long )__cil_tmp42;
66049#line 1659
66050            if (__cil_tmp43 != __cil_tmp41) {
66051              {
66052#line 1660
66053              __cil_tmp44 = intf->dev.driver;
66054#line 1660
66055              __mptr = (struct device_driver  const  *)__cil_tmp44;
66056#line 1660
66057              __cil_tmp45 = (struct usb_driver *)__mptr;
66058#line 1660
66059              driver = __cil_tmp45 + 1152921504606846808UL;
66060#line 1661
66061              __cil_tmp46 = & intf->dev;
66062#line 1661
66063              __cil_tmp47 = (struct device  const  *)__cil_tmp46;
66064#line 1661
66065              dev_printk("<7>", __cil_tmp47, "disconnect by usbfs\n");
66066#line 1662
66067              usb_driver_release_interface(driver, intf);
66068              }
66069            } else {
66070#line 1664
66071              retval = -61;
66072            }
66073            }
66074#line 1665
66075            goto ldv_31469;
66076            case_21783: ;
66077            {
66078#line 1669
66079            __cil_tmp48 = (struct device_driver *)0;
66080#line 1669
66081            __cil_tmp49 = (unsigned long )__cil_tmp48;
66082#line 1669
66083            __cil_tmp50 = intf->dev.driver;
66084#line 1669
66085            __cil_tmp51 = (unsigned long )__cil_tmp50;
66086#line 1669
66087            if (__cil_tmp51 == __cil_tmp49) {
66088              {
66089#line 1670
66090              __cil_tmp52 = & intf->dev;
66091#line 1670
66092              retval = device_attach(__cil_tmp52);
66093              }
66094            } else {
66095#line 1672
66096              retval = -16;
66097            }
66098            }
66099#line 1673
66100            goto ldv_31469;
66101            switch_default: ;
66102            {
66103#line 1677
66104            __cil_tmp53 = (struct device_driver *)0;
66105#line 1677
66106            __cil_tmp54 = (unsigned long )__cil_tmp53;
66107#line 1677
66108            __cil_tmp55 = intf->dev.driver;
66109#line 1677
66110            __cil_tmp56 = (unsigned long )__cil_tmp55;
66111#line 1677
66112            if (__cil_tmp56 != __cil_tmp54) {
66113#line 1678
66114              __cil_tmp57 = intf->dev.driver;
66115#line 1678
66116              __mptr___0 = (struct device_driver  const  *)__cil_tmp57;
66117#line 1678
66118              __cil_tmp58 = (struct usb_driver *)__mptr___0;
66119#line 1678
66120              driver = __cil_tmp58 + 1152921504606846808UL;
66121            } else {
66122
66123            }
66124            }
66125            {
66126#line 1679
66127            __cil_tmp59 = (struct usb_driver *)0;
66128#line 1679
66129            __cil_tmp60 = (unsigned long )__cil_tmp59;
66130#line 1679
66131            __cil_tmp61 = (unsigned long )driver;
66132#line 1679
66133            if (__cil_tmp61 == __cil_tmp60) {
66134#line 1680
66135              retval = -25;
66136            } else {
66137              {
66138#line 1679
66139              __cil_tmp62 = (int (*)(struct usb_interface * , unsigned int  , void * ))0;
66140#line 1679
66141              __cil_tmp63 = (unsigned long )__cil_tmp62;
66142#line 1679
66143              __cil_tmp64 = driver->unlocked_ioctl;
66144#line 1679
66145              __cil_tmp65 = (unsigned long )__cil_tmp64;
66146#line 1679
66147              if (__cil_tmp65 == __cil_tmp63) {
66148#line 1680
66149                retval = -25;
66150              } else {
66151                {
66152#line 1682
66153                __cil_tmp66 = driver->unlocked_ioctl;
66154#line 1682
66155                __cil_tmp67 = ctl->ioctl_code;
66156#line 1682
66157                __cil_tmp68 = (unsigned int )__cil_tmp67;
66158#line 1682
66159                retval = (*__cil_tmp66)(intf, __cil_tmp68, buf);
66160                }
66161#line 1683
66162                if (retval == -515) {
66163#line 1684
66164                  retval = -25;
66165                } else {
66166
66167                }
66168              }
66169              }
66170            }
66171            }
66172          } else {
66173
66174          }
66175        }
66176        }
66177      }
66178      }
66179      ldv_31469: ;
66180    }
66181    }
66182  }
66183  }
66184#line 1689
66185  if (retval >= 0) {
66186    {
66187#line 1689
66188    __cil_tmp69 = ctl->ioctl_code;
66189#line 1689
66190    if (__cil_tmp69 < 0) {
66191#line 1689
66192      if (size > 0) {
66193        {
66194#line 1689
66195        __cil_tmp70 = ctl->data;
66196#line 1689
66197        __cil_tmp71 = (void const   *)buf;
66198#line 1689
66199        __cil_tmp72 = (unsigned int )size;
66200#line 1689
66201        tmp___1 = copy_to_user(__cil_tmp70, __cil_tmp71, __cil_tmp72);
66202        }
66203#line 1689
66204        if (tmp___1 != 0) {
66205#line 1693
66206          retval = -14;
66207        } else {
66208
66209        }
66210      } else {
66211
66212      }
66213    } else {
66214
66215    }
66216    }
66217  } else {
66218
66219  }
66220  {
66221#line 1695
66222  __cil_tmp73 = (void const   *)buf;
66223#line 1695
66224  kfree(__cil_tmp73);
66225  }
66226#line 1696
66227  return (retval);
66228}
66229}
66230#line 1699 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
66231static int proc_ioctl_default(struct dev_state *ps , void *arg ) 
66232{ struct usbdevfs_ioctl ctrl ;
66233  unsigned long tmp ;
66234  int tmp___0 ;
66235  void *__cil_tmp6 ;
66236  void const   *__cil_tmp7 ;
66237
66238  {
66239  {
66240#line 1703
66241  __cil_tmp6 = (void *)(& ctrl);
66242#line 1703
66243  __cil_tmp7 = (void const   *)arg;
66244#line 1703
66245  tmp = copy_from_user(__cil_tmp6, __cil_tmp7, 16UL);
66246  }
66247#line 1703
66248  if (tmp != 0UL) {
66249#line 1704
66250    return (-14);
66251  } else {
66252
66253  }
66254  {
66255#line 1705
66256  tmp___0 = proc_ioctl(ps, & ctrl);
66257  }
66258#line 1705
66259  return (tmp___0);
66260}
66261}
66262#line 1709 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
66263static int proc_ioctl_compat(struct dev_state *ps , compat_uptr_t arg ) 
66264{ struct usbdevfs_ioctl32 *uioc ;
66265  struct usbdevfs_ioctl ctrl ;
66266  u32 udata ;
66267  void *tmp ;
66268  unsigned long flag ;
66269  unsigned long roksum ;
66270  struct thread_info *tmp___0 ;
66271  long tmp___1 ;
66272  int __gu_err ;
66273  unsigned long __gu_val ;
66274  int tmp___2 ;
66275  int __gu_err___0 ;
66276  unsigned long __gu_val___0 ;
66277  int tmp___3 ;
66278  int __gu_err___1 ;
66279  unsigned long __gu_val___1 ;
66280  int tmp___4 ;
66281  int tmp___5 ;
66282  int __cil_tmp21 ;
66283  long __cil_tmp22 ;
66284  s32 *__cil_tmp23 ;
66285  struct __large_struct *__cil_tmp24 ;
66286  s32 *__cil_tmp25 ;
66287  struct __large_struct *__cil_tmp26 ;
66288  s32 *__cil_tmp27 ;
66289  struct __large_struct *__cil_tmp28 ;
66290  s32 *__cil_tmp29 ;
66291  struct __large_struct *__cil_tmp30 ;
66292  s32 *__cil_tmp31 ;
66293  struct __large_struct *__cil_tmp32 ;
66294  s32 *__cil_tmp33 ;
66295  struct __large_struct *__cil_tmp34 ;
66296  s32 *__cil_tmp35 ;
66297  struct __large_struct *__cil_tmp36 ;
66298  s32 *__cil_tmp37 ;
66299  struct __large_struct *__cil_tmp38 ;
66300  compat_caddr_t *__cil_tmp39 ;
66301  struct __large_struct *__cil_tmp40 ;
66302  compat_caddr_t *__cil_tmp41 ;
66303  struct __large_struct *__cil_tmp42 ;
66304  compat_caddr_t *__cil_tmp43 ;
66305  struct __large_struct *__cil_tmp44 ;
66306  compat_caddr_t *__cil_tmp45 ;
66307  struct __large_struct *__cil_tmp46 ;
66308
66309  {
66310  {
66311#line 1715
66312  tmp = compat_ptr(arg);
66313#line 1715
66314  uioc = (struct usbdevfs_ioctl32 *)tmp;
66315#line 1716
66316  tmp___0 = current_thread_info();
66317#line 1716
66318  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (uioc),
66319            "g" (12L), "rm" (tmp___0->addr_limit.seg));
66320#line 1716
66321  __cil_tmp21 = flag == 0UL;
66322#line 1716
66323  __cil_tmp22 = (long )__cil_tmp21;
66324#line 1716
66325  tmp___1 = __builtin_expect(__cil_tmp22, 1L);
66326  }
66327#line 1719
66328  if (tmp___1 == 0L) {
66329#line 1720
66330    return (-14);
66331  } else {
66332#line 1717
66333    __gu_err = 0;
66334#line 1717
66335    if (1) {
66336#line 1717
66337      goto case_4;
66338    } else {
66339#line 1717
66340      goto switch_default;
66341#line 1717
66342      if (0) {
66343#line 1717
66344        __cil_tmp23 = & uioc->ifno;
66345#line 1717
66346        __cil_tmp24 = (struct __large_struct *)__cil_tmp23;
66347#line 1717
66348        __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err),
66349                             "=q" (__gu_val): "m" (*__cil_tmp24), "i" (-14), "0" (__gu_err));
66350#line 1717
66351        goto ldv_31492;
66352#line 1717
66353        __cil_tmp25 = & uioc->ifno;
66354#line 1717
66355        __cil_tmp26 = (struct __large_struct *)__cil_tmp25;
66356#line 1717
66357        __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err),
66358                             "=r" (__gu_val): "m" (*__cil_tmp26), "i" (-14), "0" (__gu_err));
66359#line 1717
66360        goto ldv_31492;
66361        case_4: 
66362#line 1717
66363        __cil_tmp27 = & uioc->ifno;
66364#line 1717
66365        __cil_tmp28 = (struct __large_struct *)__cil_tmp27;
66366#line 1717
66367        __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err),
66368                             "=r" (__gu_val): "m" (*__cil_tmp28), "i" (-14), "0" (__gu_err));
66369#line 1717
66370        goto ldv_31492;
66371#line 1717
66372        __cil_tmp29 = & uioc->ifno;
66373#line 1717
66374        __cil_tmp30 = (struct __large_struct *)__cil_tmp29;
66375#line 1717
66376        __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err),
66377                             "=r" (__gu_val): "m" (*__cil_tmp30), "i" (-14), "0" (__gu_err));
66378#line 1717
66379        goto ldv_31492;
66380        switch_default: 
66381        {
66382#line 1717
66383        tmp___2 = __get_user_bad();
66384#line 1717
66385        __gu_val = (unsigned long )tmp___2;
66386        }
66387      } else {
66388
66389      }
66390    }
66391    ldv_31492: 
66392#line 1717
66393    ctrl.ifno = (int )__gu_val;
66394#line 1719
66395    if (__gu_err != 0) {
66396#line 1720
66397      return (-14);
66398    } else {
66399#line 1718
66400      __gu_err___0 = 0;
66401#line 1718
66402      if (1) {
66403#line 1718
66404        goto case_4___0;
66405      } else {
66406#line 1718
66407        goto switch_default___0;
66408#line 1718
66409        if (0) {
66410#line 1718
66411          __cil_tmp31 = & uioc->ioctl_code;
66412#line 1718
66413          __cil_tmp32 = (struct __large_struct *)__cil_tmp31;
66414#line 1718
66415          __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___0),
66416                               "=q" (__gu_val___0): "m" (*__cil_tmp32), "i" (-14),
66417                               "0" (__gu_err___0));
66418#line 1718
66419          goto ldv_31501;
66420#line 1718
66421          __cil_tmp33 = & uioc->ioctl_code;
66422#line 1718
66423          __cil_tmp34 = (struct __large_struct *)__cil_tmp33;
66424#line 1718
66425          __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___0),
66426                               "=r" (__gu_val___0): "m" (*__cil_tmp34), "i" (-14),
66427                               "0" (__gu_err___0));
66428#line 1718
66429          goto ldv_31501;
66430          case_4___0: 
66431#line 1718
66432          __cil_tmp35 = & uioc->ioctl_code;
66433#line 1718
66434          __cil_tmp36 = (struct __large_struct *)__cil_tmp35;
66435#line 1718
66436          __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___0),
66437                               "=r" (__gu_val___0): "m" (*__cil_tmp36), "i" (-14),
66438                               "0" (__gu_err___0));
66439#line 1718
66440          goto ldv_31501;
66441#line 1718
66442          __cil_tmp37 = & uioc->ioctl_code;
66443#line 1718
66444          __cil_tmp38 = (struct __large_struct *)__cil_tmp37;
66445#line 1718
66446          __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___0),
66447                               "=r" (__gu_val___0): "m" (*__cil_tmp38), "i" (-14),
66448                               "0" (__gu_err___0));
66449#line 1718
66450          goto ldv_31501;
66451          switch_default___0: 
66452          {
66453#line 1718
66454          tmp___3 = __get_user_bad();
66455#line 1718
66456          __gu_val___0 = (unsigned long )tmp___3;
66457          }
66458        } else {
66459
66460        }
66461      }
66462      ldv_31501: 
66463#line 1718
66464      ctrl.ioctl_code = (int )__gu_val___0;
66465#line 1719
66466      if (__gu_err___0 != 0) {
66467#line 1720
66468        return (-14);
66469      } else {
66470#line 1719
66471        __gu_err___1 = 0;
66472#line 1719
66473        if (1) {
66474#line 1719
66475          goto case_4___1;
66476        } else {
66477#line 1719
66478          goto switch_default___1;
66479#line 1719
66480          if (0) {
66481#line 1719
66482            __cil_tmp39 = & uioc->data;
66483#line 1719
66484            __cil_tmp40 = (struct __large_struct *)__cil_tmp39;
66485#line 1719
66486            __asm__  volatile   ("1:\tmovb %2,%b1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorb %b1,%b1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___1),
66487                                 "=q" (__gu_val___1): "m" (*__cil_tmp40), "i" (-14),
66488                                 "0" (__gu_err___1));
66489#line 1719
66490            goto ldv_31510;
66491#line 1719
66492            __cil_tmp41 = & uioc->data;
66493#line 1719
66494            __cil_tmp42 = (struct __large_struct *)__cil_tmp41;
66495#line 1719
66496            __asm__  volatile   ("1:\tmovw %2,%w1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorw %w1,%w1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___1),
66497                                 "=r" (__gu_val___1): "m" (*__cil_tmp42), "i" (-14),
66498                                 "0" (__gu_err___1));
66499#line 1719
66500            goto ldv_31510;
66501            case_4___1: 
66502#line 1719
66503            __cil_tmp43 = & uioc->data;
66504#line 1719
66505            __cil_tmp44 = (struct __large_struct *)__cil_tmp43;
66506#line 1719
66507            __asm__  volatile   ("1:\tmovl %2,%k1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorl %k1,%k1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___1),
66508                                 "=r" (__gu_val___1): "m" (*__cil_tmp44), "i" (-14),
66509                                 "0" (__gu_err___1));
66510#line 1719
66511            goto ldv_31510;
66512#line 1719
66513            __cil_tmp45 = & uioc->data;
66514#line 1719
66515            __cil_tmp46 = (struct __large_struct *)__cil_tmp45;
66516#line 1719
66517            __asm__  volatile   ("1:\tmovq %2,%1\n2:\n.section .fixup,\"ax\"\n3:\tmov %3,%0\n\txorq %1,%1\n\tjmp 2b\n.previous\n .section __ex_table,\"a\"\n .balign 8 \n .quad 1b,3b\n .previous\n": "=r" (__gu_err___1),
66518                                 "=r" (__gu_val___1): "m" (*__cil_tmp46), "i" (-14),
66519                                 "0" (__gu_err___1));
66520#line 1719
66521            goto ldv_31510;
66522            switch_default___1: 
66523            {
66524#line 1719
66525            tmp___4 = __get_user_bad();
66526#line 1719
66527            __gu_val___1 = (unsigned long )tmp___4;
66528            }
66529          } else {
66530
66531          }
66532        }
66533        ldv_31510: 
66534#line 1719
66535        udata = (unsigned int )__gu_val___1;
66536#line 1719
66537        if (__gu_err___1 != 0) {
66538#line 1720
66539          return (-14);
66540        } else {
66541
66542        }
66543      }
66544    }
66545  }
66546  {
66547#line 1721
66548  ctrl.data = compat_ptr(udata);
66549#line 1723
66550  tmp___5 = proc_ioctl(ps, & ctrl);
66551  }
66552#line 1723
66553  return (tmp___5);
66554}
66555}
66556#line 1727 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
66557static int proc_claim_port(struct dev_state *ps , void *arg ) 
66558{ unsigned int portnum ;
66559  int rc ;
66560  int __ret_gu ;
66561  unsigned long __val_gu ;
66562  struct task_struct *tmp ;
66563  struct task_struct *tmp___0 ;
66564  pid_t tmp___1 ;
66565  struct usb_device *__cil_tmp10 ;
66566  void *__cil_tmp11 ;
66567  struct usb_device *__cil_tmp12 ;
66568  struct device *__cil_tmp13 ;
66569  struct device  const  *__cil_tmp14 ;
66570  char (*__cil_tmp15)[16U] ;
66571  char *__cil_tmp16 ;
66572
66573  {
66574  {
66575#line 1732
66576  might_fault();
66577  }
66578#line 1732
66579  if (1) {
66580#line 1732
66581    goto case_4;
66582  } else {
66583#line 1732
66584    goto switch_default;
66585#line 1732
66586    if (0) {
66587#line 1732
66588      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66589#line 1732
66590      goto ldv_31525;
66591#line 1732
66592      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66593#line 1732
66594      goto ldv_31525;
66595      case_4: 
66596#line 1732
66597      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66598#line 1732
66599      goto ldv_31525;
66600#line 1732
66601      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66602#line 1732
66603      goto ldv_31525;
66604      switch_default: 
66605#line 1732
66606      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66607#line 1732
66608      goto ldv_31525;
66609    } else {
66610
66611    }
66612  }
66613  ldv_31525: 
66614#line 1732
66615  portnum = (unsigned int )__val_gu;
66616#line 1732
66617  if (__ret_gu != 0) {
66618#line 1733
66619    return (-14);
66620  } else {
66621
66622  }
66623  {
66624#line 1734
66625  __cil_tmp10 = ps->dev;
66626#line 1734
66627  __cil_tmp11 = (void *)ps;
66628#line 1734
66629  rc = usb_hub_claim_port(__cil_tmp10, portnum, __cil_tmp11);
66630  }
66631#line 1735
66632  if (rc == 0) {
66633#line 1736
66634    if (usbfs_snoop != 0) {
66635      {
66636#line 1736
66637      tmp = get_current();
66638#line 1736
66639      tmp___0 = get_current();
66640#line 1736
66641      tmp___1 = task_pid_nr(tmp___0);
66642#line 1736
66643      __cil_tmp12 = ps->dev;
66644#line 1736
66645      __cil_tmp13 = & __cil_tmp12->dev;
66646#line 1736
66647      __cil_tmp14 = (struct device  const  *)__cil_tmp13;
66648#line 1736
66649      __cil_tmp15 = & tmp->comm;
66650#line 1736
66651      __cil_tmp16 = (char *)__cil_tmp15;
66652#line 1736
66653      _dev_info(__cil_tmp14, "port %d claimed by process %d: %s\n", portnum, tmp___1,
66654                __cil_tmp16);
66655      }
66656    } else {
66657
66658    }
66659  } else {
66660
66661  }
66662#line 1738
66663  return (rc);
66664}
66665}
66666#line 1741 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
66667static int proc_release_port(struct dev_state *ps , void *arg ) 
66668{ unsigned int portnum ;
66669  int __ret_gu ;
66670  unsigned long __val_gu ;
66671  int tmp ;
66672  struct usb_device *__cil_tmp7 ;
66673  void *__cil_tmp8 ;
66674
66675  {
66676  {
66677#line 1745
66678  might_fault();
66679  }
66680#line 1745
66681  if (1) {
66682#line 1745
66683    goto case_4;
66684  } else {
66685#line 1745
66686    goto switch_default;
66687#line 1745
66688    if (0) {
66689#line 1745
66690      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66691#line 1745
66692      goto ldv_31539;
66693#line 1745
66694      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66695#line 1745
66696      goto ldv_31539;
66697      case_4: 
66698#line 1745
66699      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66700#line 1745
66701      goto ldv_31539;
66702#line 1745
66703      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66704#line 1745
66705      goto ldv_31539;
66706      switch_default: 
66707#line 1745
66708      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66709#line 1745
66710      goto ldv_31539;
66711    } else {
66712
66713    }
66714  }
66715  ldv_31539: 
66716#line 1745
66717  portnum = (unsigned int )__val_gu;
66718#line 1745
66719  if (__ret_gu != 0) {
66720#line 1746
66721    return (-14);
66722  } else {
66723
66724  }
66725  {
66726#line 1747
66727  __cil_tmp7 = ps->dev;
66728#line 1747
66729  __cil_tmp8 = (void *)ps;
66730#line 1747
66731  tmp = usb_hub_release_port(__cil_tmp7, portnum, __cil_tmp8);
66732  }
66733#line 1747
66734  return (tmp);
66735}
66736}
66737#line 1755 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
66738static long usbdev_do_ioctl(struct file *file , unsigned int cmd , void *p ) 
66739{ struct dev_state *ps ;
66740  struct inode *inode ;
66741  struct usb_device *dev ;
66742  int ret ;
66743  int tmp ;
66744  compat_uptr_t tmp___0 ;
66745  void *__cil_tmp10 ;
66746  struct dentry *__cil_tmp11 ;
66747  fmode_t __cil_tmp12 ;
66748  unsigned int __cil_tmp13 ;
66749  struct device *__cil_tmp14 ;
66750  struct device *__cil_tmp15 ;
66751  int __cil_tmp16 ;
66752  int __cil_tmp17 ;
66753  int __cil_tmp18 ;
66754  int __cil_tmp19 ;
66755  int __cil_tmp20 ;
66756  int __cil_tmp21 ;
66757  int __cil_tmp22 ;
66758  int __cil_tmp23 ;
66759  int __cil_tmp24 ;
66760  int __cil_tmp25 ;
66761  int __cil_tmp26 ;
66762  int __cil_tmp27 ;
66763  int __cil_tmp28 ;
66764  int __cil_tmp29 ;
66765  int __cil_tmp30 ;
66766  int __cil_tmp31 ;
66767  int __cil_tmp32 ;
66768  int __cil_tmp33 ;
66769  int __cil_tmp34 ;
66770  int __cil_tmp35 ;
66771  int __cil_tmp36 ;
66772  int __cil_tmp37 ;
66773  int __cil_tmp38 ;
66774  int __cil_tmp39 ;
66775  int __cil_tmp40 ;
66776  int __cil_tmp41 ;
66777  struct device *__cil_tmp42 ;
66778  struct device  const  *__cil_tmp43 ;
66779  struct device *__cil_tmp44 ;
66780  struct device  const  *__cil_tmp45 ;
66781  struct device *__cil_tmp46 ;
66782  struct device  const  *__cil_tmp47 ;
66783  struct device *__cil_tmp48 ;
66784  struct device  const  *__cil_tmp49 ;
66785  struct device *__cil_tmp50 ;
66786  struct device  const  *__cil_tmp51 ;
66787  struct device *__cil_tmp52 ;
66788  struct device  const  *__cil_tmp53 ;
66789  struct device *__cil_tmp54 ;
66790  struct device  const  *__cil_tmp55 ;
66791  struct device *__cil_tmp56 ;
66792  struct device  const  *__cil_tmp57 ;
66793  struct device *__cil_tmp58 ;
66794  struct device  const  *__cil_tmp59 ;
66795  struct device *__cil_tmp60 ;
66796  struct device  const  *__cil_tmp61 ;
66797  struct device *__cil_tmp62 ;
66798  struct device  const  *__cil_tmp63 ;
66799  struct usbdevfs_ctrltransfer32 *__cil_tmp64 ;
66800  struct device *__cil_tmp65 ;
66801  struct device  const  *__cil_tmp66 ;
66802  struct usbdevfs_bulktransfer32 *__cil_tmp67 ;
66803  struct device *__cil_tmp68 ;
66804  struct device  const  *__cil_tmp69 ;
66805  struct device *__cil_tmp70 ;
66806  struct device  const  *__cil_tmp71 ;
66807  struct device *__cil_tmp72 ;
66808  struct device  const  *__cil_tmp73 ;
66809  struct device *__cil_tmp74 ;
66810  struct device  const  *__cil_tmp75 ;
66811  struct device *__cil_tmp76 ;
66812  struct device  const  *__cil_tmp77 ;
66813  struct device *__cil_tmp78 ;
66814  struct device  const  *__cil_tmp79 ;
66815  struct device *__cil_tmp80 ;
66816  struct device  const  *__cil_tmp81 ;
66817  struct device *__cil_tmp82 ;
66818  struct device  const  *__cil_tmp83 ;
66819  struct device *__cil_tmp84 ;
66820  struct device  const  *__cil_tmp85 ;
66821  struct device *__cil_tmp86 ;
66822  struct device  const  *__cil_tmp87 ;
66823  struct device *__cil_tmp88 ;
66824  struct device  const  *__cil_tmp89 ;
66825  struct device *__cil_tmp90 ;
66826  struct device  const  *__cil_tmp91 ;
66827  struct device *__cil_tmp92 ;
66828  struct device  const  *__cil_tmp93 ;
66829  struct device *__cil_tmp94 ;
66830  struct device  const  *__cil_tmp95 ;
66831  struct device *__cil_tmp96 ;
66832
66833  {
66834#line 1758
66835  __cil_tmp10 = file->private_data;
66836#line 1758
66837  ps = (struct dev_state *)__cil_tmp10;
66838#line 1759
66839  __cil_tmp11 = file->f_path.dentry;
66840#line 1759
66841  inode = __cil_tmp11->d_inode;
66842#line 1760
66843  dev = ps->dev;
66844#line 1761
66845  ret = -25;
66846  {
66847#line 1763
66848  __cil_tmp12 = file->f_mode;
66849#line 1763
66850  __cil_tmp13 = __cil_tmp12 & 2U;
66851#line 1763
66852  if (__cil_tmp13 == 0U) {
66853#line 1764
66854    return (-1L);
66855  } else {
66856
66857  }
66858  }
66859  {
66860#line 1766
66861  __cil_tmp14 = & dev->dev;
66862#line 1766
66863  device_lock(__cil_tmp14);
66864#line 1767
66865  tmp = connected(ps);
66866  }
66867#line 1767
66868  if (tmp == 0) {
66869    {
66870#line 1768
66871    __cil_tmp15 = & dev->dev;
66872#line 1768
66873    device_unlock(__cil_tmp15);
66874    }
66875#line 1769
66876    return (-19L);
66877  } else {
66878
66879  }
66880  {
66881#line 1773
66882  __cil_tmp16 = (int )cmd;
66883#line 1773
66884  if (__cil_tmp16 == -1072147200) {
66885#line 1773
66886    goto case_neg_1072147200;
66887  } else {
66888    {
66889#line 1780
66890    __cil_tmp17 = (int )cmd;
66891#line 1780
66892    if (__cil_tmp17 == -1072147198) {
66893#line 1780
66894      goto case_neg_1072147198;
66895    } else {
66896      {
66897#line 1787
66898      __cil_tmp18 = (int )cmd;
66899#line 1787
66900      if (__cil_tmp18 == -2147199741) {
66901#line 1787
66902        goto case_neg_2147199741;
66903      } else {
66904        {
66905#line 1794
66906        __cil_tmp19 = (int )cmd;
66907#line 1794
66908        if (__cil_tmp19 == 21780) {
66909#line 1794
66910          goto case_21780;
66911        } else {
66912          {
66913#line 1799
66914          __cil_tmp20 = (int )cmd;
66915#line 1799
66916          if (__cil_tmp20 == -2147199723) {
66917#line 1799
66918            goto case_neg_2147199723;
66919          } else {
66920            {
66921#line 1806
66922            __cil_tmp21 = (int )cmd;
66923#line 1806
66924            if (__cil_tmp21 == 1090802952) {
66925#line 1806
66926              goto case_1090802952;
66927            } else {
66928              {
66929#line 1811
66930              __cil_tmp22 = (int )cmd;
66931#line 1811
66932              if (__cil_tmp22 == 1074287889) {
66933#line 1811
66934                goto case_1074287889;
66935              } else {
66936                {
66937#line 1816
66938                __cil_tmp23 = (int )cmd;
66939#line 1816
66940                if (__cil_tmp23 == -2146937596) {
66941#line 1816
66942                  goto case_neg_2146937596;
66943                } else {
66944                  {
66945#line 1821
66946                  __cil_tmp24 = (int )cmd;
66947#line 1821
66948                  if (__cil_tmp24 == -2147199739) {
66949#line 1821
66950                    goto case_neg_2147199739;
66951                  } else {
66952                    {
66953#line 1826
66954                    __cil_tmp25 = (int )cmd;
66955#line 1826
66956                    if (__cil_tmp25 == -2143791862) {
66957#line 1826
66958                      goto case_neg_2143791862;
66959                    } else {
66960                      {
66961#line 1834
66962                      __cil_tmp26 = (int )cmd;
66963#line 1834
66964                      if (__cil_tmp26 == -1072671488) {
66965#line 1834
66966                        goto case_neg_1072671488;
66967                      } else {
66968                        {
66969#line 1841
66970                        __cil_tmp27 = (int )cmd;
66971#line 1841
66972                        if (__cil_tmp27 == -1072671486) {
66973#line 1841
66974                          goto case_neg_1072671486;
66975                        } else {
66976                          {
66977#line 1848
66978                          __cil_tmp28 = (int )cmd;
66979#line 1848
66980                          if (__cil_tmp28 == -2146937586) {
66981#line 1848
66982                            goto case_neg_2146937586;
66983                          } else {
66984                            {
66985#line 1853
66986                            __cil_tmp29 = (int )cmd;
66987#line 1853
66988                            if (__cil_tmp29 == -2144578294) {
66989#line 1853
66990                              goto case_neg_2144578294;
66991                            } else {
66992                              {
66993#line 1860
66994                              __cil_tmp30 = (int )cmd;
66995#line 1860
66996                              if (__cil_tmp30 == 1074025740) {
66997#line 1860
66998                                goto case_1074025740;
66999                              } else {
67000                                {
67001#line 1865
67002                                __cil_tmp31 = (int )cmd;
67003#line 1865
67004                                if (__cil_tmp31 == 1074025741) {
67005#line 1865
67006                                  goto case_1074025741;
67007                                } else {
67008                                  {
67009#line 1870
67010                                  __cil_tmp32 = (int )cmd;
67011#line 1870
67012                                  if (__cil_tmp32 == -1072933614) {
67013#line 1870
67014                                    goto case_neg_1072933614;
67015                                  } else {
67016                                    {
67017#line 1876
67018                                    __cil_tmp33 = (int )cmd;
67019#line 1876
67020                                    if (__cil_tmp33 == 21771) {
67021#line 1876
67022                                      goto case_21771;
67023                                    } else {
67024                                      {
67025#line 1881
67026                                      __cil_tmp34 = (int )cmd;
67027#line 1881
67028                                      if (__cil_tmp34 == 1074287884) {
67029#line 1881
67030                                        goto case_1074287884;
67031                                      } else {
67032                                        {
67033#line 1886
67034                                        __cil_tmp35 = (int )cmd;
67035#line 1886
67036                                        if (__cil_tmp35 == 1074287885) {
67037#line 1886
67038                                          goto case_1074287885;
67039                                        } else {
67040                                          {
67041#line 1891
67042                                          __cil_tmp36 = (int )cmd;
67043#line 1891
67044                                          if (__cil_tmp36 == -2146413298) {
67045#line 1891
67046                                            goto case_neg_2146413298;
67047                                          } else {
67048                                            {
67049#line 1896
67050                                            __cil_tmp37 = (int )cmd;
67051#line 1896
67052                                            if (__cil_tmp37 == -2147199729) {
67053#line 1896
67054                                              goto case_neg_2147199729;
67055                                            } else {
67056                                              {
67057#line 1901
67058                                              __cil_tmp38 = (int )cmd;
67059#line 1901
67060                                              if (__cil_tmp38 == -2147199728) {
67061#line 1901
67062                                                goto case_neg_2147199728;
67063                                              } else {
67064                                                {
67065#line 1906
67066                                                __cil_tmp39 = (int )cmd;
67067#line 1906
67068                                                if (__cil_tmp39 == -1072671470) {
67069#line 1906
67070                                                  goto case_neg_1072671470;
67071                                                } else {
67072                                                  {
67073#line 1911
67074                                                  __cil_tmp40 = (int )cmd;
67075#line 1911
67076                                                  if (__cil_tmp40 == -2147199720) {
67077#line 1911
67078                                                    goto case_neg_2147199720;
67079                                                  } else {
67080                                                    {
67081#line 1916
67082                                                    __cil_tmp41 = (int )cmd;
67083#line 1916
67084                                                    if (__cil_tmp41 == -2147199719) {
67085#line 1916
67086                                                      goto case_neg_2147199719;
67087                                                    } else
67088#line 1772
67089                                                    if (0) {
67090                                                      case_neg_1072147200: ;
67091#line 1774
67092                                                      if (usbfs_snoop != 0) {
67093                                                        {
67094#line 1774
67095                                                        __cil_tmp42 = & dev->dev;
67096#line 1774
67097                                                        __cil_tmp43 = (struct device  const  *)__cil_tmp42;
67098#line 1774
67099                                                        _dev_info(__cil_tmp43, "%s: CONTROL\n",
67100                                                                  "usbdev_do_ioctl");
67101                                                        }
67102                                                      } else {
67103
67104                                                      }
67105                                                      {
67106#line 1775
67107                                                      ret = proc_control(ps, p);
67108                                                      }
67109#line 1776
67110                                                      if (ret >= 0) {
67111                                                        {
67112#line 1777
67113                                                        inode->i_mtime = current_kernel_time();
67114                                                        }
67115                                                      } else {
67116
67117                                                      }
67118#line 1778
67119                                                      goto ldv_31556;
67120                                                      case_neg_1072147198: ;
67121#line 1781
67122                                                      if (usbfs_snoop != 0) {
67123                                                        {
67124#line 1781
67125                                                        __cil_tmp44 = & dev->dev;
67126#line 1781
67127                                                        __cil_tmp45 = (struct device  const  *)__cil_tmp44;
67128#line 1781
67129                                                        _dev_info(__cil_tmp45, "%s: BULK\n",
67130                                                                  "usbdev_do_ioctl");
67131                                                        }
67132                                                      } else {
67133
67134                                                      }
67135                                                      {
67136#line 1782
67137                                                      ret = proc_bulk(ps, p);
67138                                                      }
67139#line 1783
67140                                                      if (ret >= 0) {
67141                                                        {
67142#line 1784
67143                                                        inode->i_mtime = current_kernel_time();
67144                                                        }
67145                                                      } else {
67146
67147                                                      }
67148#line 1785
67149                                                      goto ldv_31556;
67150                                                      case_neg_2147199741: ;
67151#line 1788
67152                                                      if (usbfs_snoop != 0) {
67153                                                        {
67154#line 1788
67155                                                        __cil_tmp46 = & dev->dev;
67156#line 1788
67157                                                        __cil_tmp47 = (struct device  const  *)__cil_tmp46;
67158#line 1788
67159                                                        _dev_info(__cil_tmp47, "%s: RESETEP\n",
67160                                                                  "usbdev_do_ioctl");
67161                                                        }
67162                                                      } else {
67163
67164                                                      }
67165                                                      {
67166#line 1789
67167                                                      ret = proc_resetep(ps, p);
67168                                                      }
67169#line 1790
67170                                                      if (ret >= 0) {
67171                                                        {
67172#line 1791
67173                                                        inode->i_mtime = current_kernel_time();
67174                                                        }
67175                                                      } else {
67176
67177                                                      }
67178#line 1792
67179                                                      goto ldv_31556;
67180                                                      case_21780: ;
67181#line 1795
67182                                                      if (usbfs_snoop != 0) {
67183                                                        {
67184#line 1795
67185                                                        __cil_tmp48 = & dev->dev;
67186#line 1795
67187                                                        __cil_tmp49 = (struct device  const  *)__cil_tmp48;
67188#line 1795
67189                                                        _dev_info(__cil_tmp49, "%s: RESET\n",
67190                                                                  "usbdev_do_ioctl");
67191                                                        }
67192                                                      } else {
67193
67194                                                      }
67195                                                      {
67196#line 1796
67197                                                      ret = proc_resetdevice(ps);
67198                                                      }
67199#line 1797
67200                                                      goto ldv_31556;
67201                                                      case_neg_2147199723: ;
67202#line 1800
67203                                                      if (usbfs_snoop != 0) {
67204                                                        {
67205#line 1800
67206                                                        __cil_tmp50 = & dev->dev;
67207#line 1800
67208                                                        __cil_tmp51 = (struct device  const  *)__cil_tmp50;
67209#line 1800
67210                                                        _dev_info(__cil_tmp51, "%s: CLEAR_HALT\n",
67211                                                                  "usbdev_do_ioctl");
67212                                                        }
67213                                                      } else {
67214
67215                                                      }
67216                                                      {
67217#line 1801
67218                                                      ret = proc_clearhalt(ps, p);
67219                                                      }
67220#line 1802
67221                                                      if (ret >= 0) {
67222                                                        {
67223#line 1803
67224                                                        inode->i_mtime = current_kernel_time();
67225                                                        }
67226                                                      } else {
67227
67228                                                      }
67229#line 1804
67230                                                      goto ldv_31556;
67231                                                      case_1090802952: ;
67232#line 1807
67233                                                      if (usbfs_snoop != 0) {
67234                                                        {
67235#line 1807
67236                                                        __cil_tmp52 = & dev->dev;
67237#line 1807
67238                                                        __cil_tmp53 = (struct device  const  *)__cil_tmp52;
67239#line 1807
67240                                                        _dev_info(__cil_tmp53, "%s: GETDRIVER\n",
67241                                                                  "usbdev_do_ioctl");
67242                                                        }
67243                                                      } else {
67244
67245                                                      }
67246                                                      {
67247#line 1808
67248                                                      ret = proc_getdriver(ps, p);
67249                                                      }
67250#line 1809
67251                                                      goto ldv_31556;
67252                                                      case_1074287889: ;
67253#line 1812
67254                                                      if (usbfs_snoop != 0) {
67255                                                        {
67256#line 1812
67257                                                        __cil_tmp54 = & dev->dev;
67258#line 1812
67259                                                        __cil_tmp55 = (struct device  const  *)__cil_tmp54;
67260#line 1812
67261                                                        _dev_info(__cil_tmp55, "%s: CONNECTINFO\n",
67262                                                                  "usbdev_do_ioctl");
67263                                                        }
67264                                                      } else {
67265
67266                                                      }
67267                                                      {
67268#line 1813
67269                                                      ret = proc_connectinfo(ps, p);
67270                                                      }
67271#line 1814
67272                                                      goto ldv_31556;
67273                                                      case_neg_2146937596: ;
67274#line 1817
67275                                                      if (usbfs_snoop != 0) {
67276                                                        {
67277#line 1817
67278                                                        __cil_tmp56 = & dev->dev;
67279#line 1817
67280                                                        __cil_tmp57 = (struct device  const  *)__cil_tmp56;
67281#line 1817
67282                                                        _dev_info(__cil_tmp57, "%s: SETINTERFACE\n",
67283                                                                  "usbdev_do_ioctl");
67284                                                        }
67285                                                      } else {
67286
67287                                                      }
67288                                                      {
67289#line 1818
67290                                                      ret = proc_setintf(ps, p);
67291                                                      }
67292#line 1819
67293                                                      goto ldv_31556;
67294                                                      case_neg_2147199739: ;
67295#line 1822
67296                                                      if (usbfs_snoop != 0) {
67297                                                        {
67298#line 1822
67299                                                        __cil_tmp58 = & dev->dev;
67300#line 1822
67301                                                        __cil_tmp59 = (struct device  const  *)__cil_tmp58;
67302#line 1822
67303                                                        _dev_info(__cil_tmp59, "%s: SETCONFIGURATION\n",
67304                                                                  "usbdev_do_ioctl");
67305                                                        }
67306                                                      } else {
67307
67308                                                      }
67309                                                      {
67310#line 1823
67311                                                      ret = proc_setconfig(ps, p);
67312                                                      }
67313#line 1824
67314                                                      goto ldv_31556;
67315                                                      case_neg_2143791862: ;
67316#line 1827
67317                                                      if (usbfs_snoop != 0) {
67318                                                        {
67319#line 1827
67320                                                        __cil_tmp60 = & dev->dev;
67321#line 1827
67322                                                        __cil_tmp61 = (struct device  const  *)__cil_tmp60;
67323#line 1827
67324                                                        _dev_info(__cil_tmp61, "%s: SUBMITURB\n",
67325                                                                  "usbdev_do_ioctl");
67326                                                        }
67327                                                      } else {
67328
67329                                                      }
67330                                                      {
67331#line 1828
67332                                                      ret = proc_submiturb(ps, p);
67333                                                      }
67334#line 1829
67335                                                      if (ret >= 0) {
67336                                                        {
67337#line 1830
67338                                                        inode->i_mtime = current_kernel_time();
67339                                                        }
67340                                                      } else {
67341
67342                                                      }
67343#line 1831
67344                                                      goto ldv_31556;
67345                                                      case_neg_1072671488: ;
67346#line 1835
67347                                                      if (usbfs_snoop != 0) {
67348                                                        {
67349#line 1835
67350                                                        __cil_tmp62 = & dev->dev;
67351#line 1835
67352                                                        __cil_tmp63 = (struct device  const  *)__cil_tmp62;
67353#line 1835
67354                                                        _dev_info(__cil_tmp63, "%s: CONTROL32\n",
67355                                                                  "usbdev_do_ioctl");
67356                                                        }
67357                                                      } else {
67358
67359                                                      }
67360                                                      {
67361#line 1836
67362                                                      __cil_tmp64 = (struct usbdevfs_ctrltransfer32 *)p;
67363#line 1836
67364                                                      ret = proc_control_compat(ps,
67365                                                                                __cil_tmp64);
67366                                                      }
67367#line 1837
67368                                                      if (ret >= 0) {
67369                                                        {
67370#line 1838
67371                                                        inode->i_mtime = current_kernel_time();
67372                                                        }
67373                                                      } else {
67374
67375                                                      }
67376#line 1839
67377                                                      goto ldv_31556;
67378                                                      case_neg_1072671486: ;
67379#line 1842
67380                                                      if (usbfs_snoop != 0) {
67381                                                        {
67382#line 1842
67383                                                        __cil_tmp65 = & dev->dev;
67384#line 1842
67385                                                        __cil_tmp66 = (struct device  const  *)__cil_tmp65;
67386#line 1842
67387                                                        _dev_info(__cil_tmp66, "%s: BULK32\n",
67388                                                                  "usbdev_do_ioctl");
67389                                                        }
67390                                                      } else {
67391
67392                                                      }
67393                                                      {
67394#line 1843
67395                                                      __cil_tmp67 = (struct usbdevfs_bulktransfer32 *)p;
67396#line 1843
67397                                                      ret = proc_bulk_compat(ps, __cil_tmp67);
67398                                                      }
67399#line 1844
67400                                                      if (ret >= 0) {
67401                                                        {
67402#line 1845
67403                                                        inode->i_mtime = current_kernel_time();
67404                                                        }
67405                                                      } else {
67406
67407                                                      }
67408#line 1846
67409                                                      goto ldv_31556;
67410                                                      case_neg_2146937586: ;
67411#line 1849
67412                                                      if (usbfs_snoop != 0) {
67413                                                        {
67414#line 1849
67415                                                        __cil_tmp68 = & dev->dev;
67416#line 1849
67417                                                        __cil_tmp69 = (struct device  const  *)__cil_tmp68;
67418#line 1849
67419                                                        _dev_info(__cil_tmp69, "%s: DISCSIGNAL32\n",
67420                                                                  "usbdev_do_ioctl");
67421                                                        }
67422                                                      } else {
67423
67424                                                      }
67425                                                      {
67426#line 1850
67427                                                      ret = proc_disconnectsignal_compat(ps,
67428                                                                                         p);
67429                                                      }
67430#line 1851
67431                                                      goto ldv_31556;
67432                                                      case_neg_2144578294: ;
67433#line 1854
67434                                                      if (usbfs_snoop != 0) {
67435                                                        {
67436#line 1854
67437                                                        __cil_tmp70 = & dev->dev;
67438#line 1854
67439                                                        __cil_tmp71 = (struct device  const  *)__cil_tmp70;
67440#line 1854
67441                                                        _dev_info(__cil_tmp71, "%s: SUBMITURB32\n",
67442                                                                  "usbdev_do_ioctl");
67443                                                        }
67444                                                      } else {
67445
67446                                                      }
67447                                                      {
67448#line 1855
67449                                                      ret = proc_submiturb_compat(ps,
67450                                                                                  p);
67451                                                      }
67452#line 1856
67453                                                      if (ret >= 0) {
67454                                                        {
67455#line 1857
67456                                                        inode->i_mtime = current_kernel_time();
67457                                                        }
67458                                                      } else {
67459
67460                                                      }
67461#line 1858
67462                                                      goto ldv_31556;
67463                                                      case_1074025740: ;
67464#line 1861
67465                                                      if (usbfs_snoop != 0) {
67466                                                        {
67467#line 1861
67468                                                        __cil_tmp72 = & dev->dev;
67469#line 1861
67470                                                        __cil_tmp73 = (struct device  const  *)__cil_tmp72;
67471#line 1861
67472                                                        _dev_info(__cil_tmp73, "%s: REAPURB32\n",
67473                                                                  "usbdev_do_ioctl");
67474                                                        }
67475                                                      } else {
67476
67477                                                      }
67478                                                      {
67479#line 1862
67480                                                      ret = proc_reapurb_compat(ps,
67481                                                                                p);
67482                                                      }
67483#line 1863
67484                                                      goto ldv_31556;
67485                                                      case_1074025741: ;
67486#line 1866
67487                                                      if (usbfs_snoop != 0) {
67488                                                        {
67489#line 1866
67490                                                        __cil_tmp74 = & dev->dev;
67491#line 1866
67492                                                        __cil_tmp75 = (struct device  const  *)__cil_tmp74;
67493#line 1866
67494                                                        _dev_info(__cil_tmp75, "%s: REAPURBNDELAY32\n",
67495                                                                  "usbdev_do_ioctl");
67496                                                        }
67497                                                      } else {
67498
67499                                                      }
67500                                                      {
67501#line 1867
67502                                                      ret = proc_reapurbnonblock_compat(ps,
67503                                                                                        p);
67504                                                      }
67505#line 1868
67506                                                      goto ldv_31556;
67507                                                      case_neg_1072933614: ;
67508#line 1871
67509                                                      if (usbfs_snoop != 0) {
67510                                                        {
67511#line 1871
67512                                                        __cil_tmp76 = & dev->dev;
67513#line 1871
67514                                                        __cil_tmp77 = (struct device  const  *)__cil_tmp76;
67515#line 1871
67516                                                        _dev_info(__cil_tmp77, "%s: IOCTL32\n",
67517                                                                  "usbdev_do_ioctl");
67518                                                        }
67519                                                      } else {
67520
67521                                                      }
67522                                                      {
67523#line 1872
67524                                                      tmp___0 = ptr_to_compat(p);
67525#line 1872
67526                                                      ret = proc_ioctl_compat(ps,
67527                                                                              tmp___0);
67528                                                      }
67529#line 1873
67530                                                      goto ldv_31556;
67531                                                      case_21771: ;
67532#line 1877
67533                                                      if (usbfs_snoop != 0) {
67534                                                        {
67535#line 1877
67536                                                        __cil_tmp78 = & dev->dev;
67537#line 1877
67538                                                        __cil_tmp79 = (struct device  const  *)__cil_tmp78;
67539#line 1877
67540                                                        _dev_info(__cil_tmp79, "%s: DISCARDURB\n",
67541                                                                  "usbdev_do_ioctl");
67542                                                        }
67543                                                      } else {
67544
67545                                                      }
67546                                                      {
67547#line 1878
67548                                                      ret = proc_unlinkurb(ps, p);
67549                                                      }
67550#line 1879
67551                                                      goto ldv_31556;
67552                                                      case_1074287884: ;
67553#line 1882
67554                                                      if (usbfs_snoop != 0) {
67555                                                        {
67556#line 1882
67557                                                        __cil_tmp80 = & dev->dev;
67558#line 1882
67559                                                        __cil_tmp81 = (struct device  const  *)__cil_tmp80;
67560#line 1882
67561                                                        _dev_info(__cil_tmp81, "%s: REAPURB\n",
67562                                                                  "usbdev_do_ioctl");
67563                                                        }
67564                                                      } else {
67565
67566                                                      }
67567                                                      {
67568#line 1883
67569                                                      ret = proc_reapurb(ps, p);
67570                                                      }
67571#line 1884
67572                                                      goto ldv_31556;
67573                                                      case_1074287885: ;
67574#line 1887
67575                                                      if (usbfs_snoop != 0) {
67576                                                        {
67577#line 1887
67578                                                        __cil_tmp82 = & dev->dev;
67579#line 1887
67580                                                        __cil_tmp83 = (struct device  const  *)__cil_tmp82;
67581#line 1887
67582                                                        _dev_info(__cil_tmp83, "%s: REAPURBNDELAY\n",
67583                                                                  "usbdev_do_ioctl");
67584                                                        }
67585                                                      } else {
67586
67587                                                      }
67588                                                      {
67589#line 1888
67590                                                      ret = proc_reapurbnonblock(ps,
67591                                                                                 p);
67592                                                      }
67593#line 1889
67594                                                      goto ldv_31556;
67595                                                      case_neg_2146413298: ;
67596#line 1892
67597                                                      if (usbfs_snoop != 0) {
67598                                                        {
67599#line 1892
67600                                                        __cil_tmp84 = & dev->dev;
67601#line 1892
67602                                                        __cil_tmp85 = (struct device  const  *)__cil_tmp84;
67603#line 1892
67604                                                        _dev_info(__cil_tmp85, "%s: DISCSIGNAL\n",
67605                                                                  "usbdev_do_ioctl");
67606                                                        }
67607                                                      } else {
67608
67609                                                      }
67610                                                      {
67611#line 1893
67612                                                      ret = proc_disconnectsignal(ps,
67613                                                                                  p);
67614                                                      }
67615#line 1894
67616                                                      goto ldv_31556;
67617                                                      case_neg_2147199729: ;
67618#line 1897
67619                                                      if (usbfs_snoop != 0) {
67620                                                        {
67621#line 1897
67622                                                        __cil_tmp86 = & dev->dev;
67623#line 1897
67624                                                        __cil_tmp87 = (struct device  const  *)__cil_tmp86;
67625#line 1897
67626                                                        _dev_info(__cil_tmp87, "%s: CLAIMINTERFACE\n",
67627                                                                  "usbdev_do_ioctl");
67628                                                        }
67629                                                      } else {
67630
67631                                                      }
67632                                                      {
67633#line 1898
67634                                                      ret = proc_claiminterface(ps,
67635                                                                                p);
67636                                                      }
67637#line 1899
67638                                                      goto ldv_31556;
67639                                                      case_neg_2147199728: ;
67640#line 1902
67641                                                      if (usbfs_snoop != 0) {
67642                                                        {
67643#line 1902
67644                                                        __cil_tmp88 = & dev->dev;
67645#line 1902
67646                                                        __cil_tmp89 = (struct device  const  *)__cil_tmp88;
67647#line 1902
67648                                                        _dev_info(__cil_tmp89, "%s: RELEASEINTERFACE\n",
67649                                                                  "usbdev_do_ioctl");
67650                                                        }
67651                                                      } else {
67652
67653                                                      }
67654                                                      {
67655#line 1903
67656                                                      ret = proc_releaseinterface(ps,
67657                                                                                  p);
67658                                                      }
67659#line 1904
67660                                                      goto ldv_31556;
67661                                                      case_neg_1072671470: ;
67662#line 1907
67663                                                      if (usbfs_snoop != 0) {
67664                                                        {
67665#line 1907
67666                                                        __cil_tmp90 = & dev->dev;
67667#line 1907
67668                                                        __cil_tmp91 = (struct device  const  *)__cil_tmp90;
67669#line 1907
67670                                                        _dev_info(__cil_tmp91, "%s: IOCTL\n",
67671                                                                  "usbdev_do_ioctl");
67672                                                        }
67673                                                      } else {
67674
67675                                                      }
67676                                                      {
67677#line 1908
67678                                                      ret = proc_ioctl_default(ps,
67679                                                                               p);
67680                                                      }
67681#line 1909
67682                                                      goto ldv_31556;
67683                                                      case_neg_2147199720: ;
67684#line 1912
67685                                                      if (usbfs_snoop != 0) {
67686                                                        {
67687#line 1912
67688                                                        __cil_tmp92 = & dev->dev;
67689#line 1912
67690                                                        __cil_tmp93 = (struct device  const  *)__cil_tmp92;
67691#line 1912
67692                                                        _dev_info(__cil_tmp93, "%s: CLAIM_PORT\n",
67693                                                                  "usbdev_do_ioctl");
67694                                                        }
67695                                                      } else {
67696
67697                                                      }
67698                                                      {
67699#line 1913
67700                                                      ret = proc_claim_port(ps, p);
67701                                                      }
67702#line 1914
67703                                                      goto ldv_31556;
67704                                                      case_neg_2147199719: ;
67705#line 1917
67706                                                      if (usbfs_snoop != 0) {
67707                                                        {
67708#line 1917
67709                                                        __cil_tmp94 = & dev->dev;
67710#line 1917
67711                                                        __cil_tmp95 = (struct device  const  *)__cil_tmp94;
67712#line 1917
67713                                                        _dev_info(__cil_tmp95, "%s: RELEASE_PORT\n",
67714                                                                  "usbdev_do_ioctl");
67715                                                        }
67716                                                      } else {
67717
67718                                                      }
67719                                                      {
67720#line 1918
67721                                                      ret = proc_release_port(ps,
67722                                                                              p);
67723                                                      }
67724#line 1919
67725                                                      goto ldv_31556;
67726                                                    } else {
67727
67728                                                    }
67729                                                    }
67730                                                  }
67731                                                  }
67732                                                }
67733                                                }
67734                                              }
67735                                              }
67736                                            }
67737                                            }
67738                                          }
67739                                          }
67740                                        }
67741                                        }
67742                                      }
67743                                      }
67744                                    }
67745                                    }
67746                                  }
67747                                  }
67748                                }
67749                                }
67750                              }
67751                              }
67752                            }
67753                            }
67754                          }
67755                          }
67756                        }
67757                        }
67758                      }
67759                      }
67760                    }
67761                    }
67762                  }
67763                  }
67764                }
67765                }
67766              }
67767              }
67768            }
67769            }
67770          }
67771          }
67772        }
67773        }
67774      }
67775      }
67776    }
67777    }
67778  }
67779  }
67780  ldv_31556: 
67781  {
67782#line 1921
67783  __cil_tmp96 = & dev->dev;
67784#line 1921
67785  device_unlock(__cil_tmp96);
67786  }
67787#line 1922
67788  if (ret >= 0) {
67789    {
67790#line 1923
67791    inode->i_atime = current_kernel_time();
67792    }
67793  } else {
67794
67795  }
67796#line 1924
67797  return ((long )ret);
67798}
67799}
67800#line 1927 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
67801static long usbdev_ioctl(struct file *file , unsigned int cmd , unsigned long arg ) 
67802{ int ret ;
67803  long tmp ;
67804  void *__cil_tmp6 ;
67805
67806  {
67807  {
67808#line 1932
67809  __cil_tmp6 = (void *)arg;
67810#line 1932
67811  tmp = usbdev_do_ioctl(file, cmd, __cil_tmp6);
67812#line 1932
67813  ret = (int )tmp;
67814  }
67815#line 1934
67816  return ((long )ret);
67817}
67818}
67819#line 1938 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
67820static long usbdev_compat_ioctl(struct file *file , unsigned int cmd , unsigned long arg ) 
67821{ int ret ;
67822  void *tmp ;
67823  long tmp___0 ;
67824  compat_uptr_t __cil_tmp7 ;
67825
67826  {
67827  {
67828#line 1943
67829  __cil_tmp7 = (compat_uptr_t )arg;
67830#line 1943
67831  tmp = compat_ptr(__cil_tmp7);
67832#line 1943
67833  tmp___0 = usbdev_do_ioctl(file, cmd, tmp);
67834#line 1943
67835  ret = (int )tmp___0;
67836  }
67837#line 1945
67838  return ((long )ret);
67839}
67840}
67841#line 1950 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
67842static unsigned int usbdev_poll(struct file *file , struct poll_table_struct *wait ) 
67843{ struct dev_state *ps ;
67844  unsigned int mask ;
67845  int tmp ;
67846  int tmp___0 ;
67847  void *__cil_tmp7 ;
67848  wait_queue_head_t *__cil_tmp8 ;
67849  fmode_t __cil_tmp9 ;
67850  unsigned int __cil_tmp10 ;
67851  struct list_head *__cil_tmp11 ;
67852  struct list_head  const  *__cil_tmp12 ;
67853
67854  {
67855  {
67856#line 1953
67857  __cil_tmp7 = file->private_data;
67858#line 1953
67859  ps = (struct dev_state *)__cil_tmp7;
67860#line 1954
67861  mask = 0U;
67862#line 1956
67863  __cil_tmp8 = & ps->wait;
67864#line 1956
67865  poll_wait(file, __cil_tmp8, wait);
67866  }
67867  {
67868#line 1957
67869  __cil_tmp9 = file->f_mode;
67870#line 1957
67871  __cil_tmp10 = __cil_tmp9 & 2U;
67872#line 1957
67873  if (__cil_tmp10 != 0U) {
67874    {
67875#line 1957
67876    __cil_tmp11 = & ps->async_completed;
67877#line 1957
67878    __cil_tmp12 = (struct list_head  const  *)__cil_tmp11;
67879#line 1957
67880    tmp = list_empty(__cil_tmp12);
67881    }
67882#line 1957
67883    if (tmp == 0) {
67884#line 1958
67885      mask = mask | 260U;
67886    } else {
67887
67888    }
67889  } else {
67890
67891  }
67892  }
67893  {
67894#line 1959
67895  tmp___0 = connected(ps);
67896  }
67897#line 1959
67898  if (tmp___0 == 0) {
67899#line 1960
67900    mask = mask | 24U;
67901  } else {
67902
67903  }
67904#line 1961
67905  return (mask);
67906}
67907}
67908#line 1964 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
67909struct file_operations  const  usbdev_file_operations  = 
67910#line 1964
67911     {& __this_module, & usbdev_lseek, & usbdev_read, (ssize_t (*)(struct file * , char const   * ,
67912                                                                 size_t  , loff_t * ))0,
67913    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
67914    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
67915    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
67916                                              u64  , unsigned int  ) ))0, & usbdev_poll,
67917    & usbdev_ioctl, & usbdev_compat_ioctl, (int (*)(struct file * , struct vm_area_struct * ))0,
67918    & usbdev_open, (int (*)(struct file * , fl_owner_t  ))0, & usbdev_release, (int (*)(struct file * ,
67919                                                                                        int  ))0,
67920    (int (*)(struct kiocb * , int  ))0, (int (*)(int  , struct file * , int  ))0,
67921    (int (*)(struct file * , int  , struct file_lock * ))0, (ssize_t (*)(struct file * ,
67922                                                                         struct page * ,
67923                                                                         int  , size_t  ,
67924                                                                         loff_t * ,
67925                                                                         int  ))0,
67926    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
67927                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
67928                                                                       int  , struct file_lock * ))0,
67929    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
67930    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
67931    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file * ,
67932                                                                        int  , loff_t  ,
67933                                                                        loff_t  ))0};
67934#line 1977 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
67935static void usbdev_remove(struct usb_device *udev ) 
67936{ struct dev_state *ps ;
67937  struct siginfo sinfo ;
67938  struct list_head  const  *__mptr ;
67939  int tmp ;
67940  struct list_head *__cil_tmp6 ;
67941  wait_queue_head_t *__cil_tmp7 ;
67942  void *__cil_tmp8 ;
67943  struct list_head *__cil_tmp9 ;
67944  unsigned int __cil_tmp10 ;
67945  unsigned int __cil_tmp11 ;
67946  unsigned int __cil_tmp12 ;
67947  int __cil_tmp13 ;
67948  struct pid *__cil_tmp14 ;
67949  uid_t __cil_tmp15 ;
67950  uid_t __cil_tmp16 ;
67951  u32 __cil_tmp17 ;
67952  struct list_head *__cil_tmp18 ;
67953  struct list_head  const  *__cil_tmp19 ;
67954
67955  {
67956#line 1982
67957  goto ldv_31609;
67958  ldv_31608: 
67959  {
67960#line 1983
67961  __cil_tmp6 = udev->filelist.next;
67962#line 1983
67963  __mptr = (struct list_head  const  *)__cil_tmp6;
67964#line 1983
67965  ps = (struct dev_state *)__mptr;
67966#line 1984
67967  destroy_all_async(ps);
67968#line 1985
67969  __cil_tmp7 = & ps->wait;
67970#line 1985
67971  __cil_tmp8 = (void *)0;
67972#line 1985
67973  __wake_up(__cil_tmp7, 3U, 0, __cil_tmp8);
67974#line 1986
67975  __cil_tmp9 = & ps->list;
67976#line 1986
67977  list_del_init(__cil_tmp9);
67978  }
67979  {
67980#line 1987
67981  __cil_tmp10 = ps->discsignr;
67982#line 1987
67983  if (__cil_tmp10 != 0U) {
67984    {
67985#line 1988
67986    __cil_tmp11 = ps->discsignr;
67987#line 1988
67988    sinfo.si_signo = (int )__cil_tmp11;
67989#line 1989
67990    sinfo.si_errno = 32;
67991#line 1990
67992    sinfo.si_code = -4;
67993#line 1991
67994    sinfo._sifields._sigfault._addr = ps->disccontext;
67995#line 1992
67996    __cil_tmp12 = ps->discsignr;
67997#line 1992
67998    __cil_tmp13 = (int )__cil_tmp12;
67999#line 1992
68000    __cil_tmp14 = ps->disc_pid;
68001#line 1992
68002    __cil_tmp15 = ps->disc_uid;
68003#line 1992
68004    __cil_tmp16 = ps->disc_euid;
68005#line 1992
68006    __cil_tmp17 = ps->secid;
68007#line 1992
68008    kill_pid_info_as_uid(__cil_tmp13, & sinfo, __cil_tmp14, __cil_tmp15, __cil_tmp16,
68009                         __cil_tmp17);
68010    }
68011  } else {
68012
68013  }
68014  }
68015  ldv_31609: 
68016  {
68017#line 1982
68018  __cil_tmp18 = & udev->filelist;
68019#line 1982
68020  __cil_tmp19 = (struct list_head  const  *)__cil_tmp18;
68021#line 1982
68022  tmp = list_empty(__cil_tmp19);
68023  }
68024#line 1982
68025  if (tmp == 0) {
68026#line 1983
68027    goto ldv_31608;
68028  } else {
68029#line 1985
68030    goto ldv_31610;
68031  }
68032  ldv_31610: ;
68033#line 1987
68034  return;
68035}
68036}
68037#line 2000 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
68038static struct class *usb_classdev_class  ;
68039#line 2002 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
68040static int usb_classdev_add(struct usb_device *dev ) 
68041{ struct device *cldev ;
68042  long tmp ;
68043  long tmp___0 ;
68044  struct device *__cil_tmp5 ;
68045  dev_t __cil_tmp6 ;
68046  void *__cil_tmp7 ;
68047  struct usb_bus *__cil_tmp8 ;
68048  int __cil_tmp9 ;
68049  int __cil_tmp10 ;
68050  void const   *__cil_tmp11 ;
68051  void const   *__cil_tmp12 ;
68052
68053  {
68054  {
68055#line 2006
68056  __cil_tmp5 = & dev->dev;
68057#line 2006
68058  __cil_tmp6 = dev->dev.devt;
68059#line 2006
68060  __cil_tmp7 = (void *)0;
68061#line 2006
68062  __cil_tmp8 = dev->bus;
68063#line 2006
68064  __cil_tmp9 = __cil_tmp8->busnum;
68065#line 2006
68066  __cil_tmp10 = dev->devnum;
68067#line 2006
68068  cldev = device_create(usb_classdev_class, __cil_tmp5, __cil_tmp6, __cil_tmp7, "usbdev%d.%d",
68069                        __cil_tmp9, __cil_tmp10);
68070#line 2009
68071  __cil_tmp11 = (void const   *)cldev;
68072#line 2009
68073  tmp___0 = IS_ERR(__cil_tmp11);
68074  }
68075#line 2009
68076  if (tmp___0 != 0L) {
68077    {
68078#line 2010
68079    __cil_tmp12 = (void const   *)cldev;
68080#line 2010
68081    tmp = PTR_ERR(__cil_tmp12);
68082    }
68083#line 2010
68084    return ((int )tmp);
68085  } else {
68086
68087  }
68088#line 2011
68089  dev->usb_classdev = cldev;
68090#line 2012
68091  return (0);
68092}
68093}
68094#line 2015 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
68095static void usb_classdev_remove(struct usb_device *dev ) 
68096{ struct device *__cil_tmp2 ;
68097  unsigned long __cil_tmp3 ;
68098  struct device *__cil_tmp4 ;
68099  unsigned long __cil_tmp5 ;
68100  struct device *__cil_tmp6 ;
68101
68102  {
68103  {
68104#line 2017
68105  __cil_tmp2 = (struct device *)0;
68106#line 2017
68107  __cil_tmp3 = (unsigned long )__cil_tmp2;
68108#line 2017
68109  __cil_tmp4 = dev->usb_classdev;
68110#line 2017
68111  __cil_tmp5 = (unsigned long )__cil_tmp4;
68112#line 2017
68113  if (__cil_tmp5 != __cil_tmp3) {
68114    {
68115#line 2018
68116    __cil_tmp6 = dev->usb_classdev;
68117#line 2018
68118    device_unregister(__cil_tmp6);
68119    }
68120  } else {
68121
68122  }
68123  }
68124#line 2019
68125  return;
68126}
68127}
68128#line 2027 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
68129static int usbdev_notify(struct notifier_block *self , unsigned long action , void *dev ) 
68130{ int tmp ;
68131  int __cil_tmp5 ;
68132  int __cil_tmp6 ;
68133  struct usb_device *__cil_tmp7 ;
68134  struct usb_device *__cil_tmp8 ;
68135  struct usb_device *__cil_tmp9 ;
68136
68137  {
68138  {
68139#line 2031
68140  __cil_tmp5 = (int )action;
68141#line 2031
68142  if (__cil_tmp5 == 1) {
68143#line 2031
68144    goto case_1;
68145  } else {
68146    {
68147#line 2035
68148    __cil_tmp6 = (int )action;
68149#line 2035
68150    if (__cil_tmp6 == 2) {
68151#line 2035
68152      goto case_2;
68153    } else
68154#line 2030
68155    if (0) {
68156      case_1: 
68157      {
68158#line 2032
68159      __cil_tmp7 = (struct usb_device *)dev;
68160#line 2032
68161      tmp = usb_classdev_add(__cil_tmp7);
68162      }
68163#line 2032
68164      if (tmp != 0) {
68165#line 2033
68166        return (32770);
68167      } else {
68168
68169      }
68170#line 2034
68171      goto ldv_31625;
68172      case_2: 
68173      {
68174#line 2036
68175      __cil_tmp8 = (struct usb_device *)dev;
68176#line 2036
68177      usb_classdev_remove(__cil_tmp8);
68178#line 2037
68179      __cil_tmp9 = (struct usb_device *)dev;
68180#line 2037
68181      usbdev_remove(__cil_tmp9);
68182      }
68183#line 2038
68184      goto ldv_31625;
68185    } else {
68186
68187    }
68188    }
68189  }
68190  }
68191  ldv_31625: ;
68192#line 2040
68193  return (1);
68194}
68195}
68196#line 2043 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
68197static struct notifier_block usbdev_nb  =    {& usbdev_notify, (struct notifier_block *)0, 0};
68198#line 2047 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
68199static struct cdev usb_device_cdev  ;
68200#line 2049 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
68201int usb_devio_init(void) 
68202{ int retval ;
68203  struct lock_class_key __key ;
68204  struct class *tmp ;
68205  long tmp___0 ;
68206  long tmp___1 ;
68207  void const   *__cil_tmp6 ;
68208  void const   *__cil_tmp7 ;
68209
68210  {
68211  {
68212#line 2053
68213  retval = register_chrdev_region(198180864U, 8192U, "usb_device");
68214  }
68215#line 2055
68216  if (retval != 0) {
68217    {
68218#line 2056
68219    printk("<3>Unable to register minors for usb_device\n");
68220    }
68221#line 2057
68222    goto out;
68223  } else {
68224
68225  }
68226  {
68227#line 2059
68228  cdev_init(& usb_device_cdev, & usbdev_file_operations);
68229#line 2060
68230  retval = cdev_add(& usb_device_cdev, 198180864U, 8192U);
68231  }
68232#line 2061
68233  if (retval != 0) {
68234    {
68235#line 2062
68236    printk("<3>Unable to get usb_device major %d\n", 189);
68237    }
68238#line 2064
68239    goto error_cdev;
68240  } else {
68241
68242  }
68243  {
68244#line 2067
68245  tmp = __class_create(& __this_module, "usb_device", & __key);
68246#line 2067
68247  usb_classdev_class = tmp;
68248#line 2068
68249  __cil_tmp6 = (void const   *)usb_classdev_class;
68250#line 2068
68251  tmp___1 = IS_ERR(__cil_tmp6);
68252  }
68253#line 2068
68254  if (tmp___1 != 0L) {
68255    {
68256#line 2069
68257    printk("<3>Unable to register usb_device class\n");
68258#line 2070
68259    __cil_tmp7 = (void const   *)usb_classdev_class;
68260#line 2070
68261    tmp___0 = PTR_ERR(__cil_tmp7);
68262#line 2070
68263    retval = (int )tmp___0;
68264#line 2071
68265    cdev_del(& usb_device_cdev);
68266#line 2072
68267    usb_classdev_class = (struct class *)0;
68268    }
68269#line 2073
68270    goto out;
68271  } else {
68272
68273  }
68274  {
68275#line 2079
68276  usb_classdev_class->dev_kobj = (struct kobject *)0;
68277#line 2081
68278  usb_register_notify(& usbdev_nb);
68279  }
68280  out: ;
68281#line 2083
68282  return (retval);
68283  error_cdev: 
68284  {
68285#line 2086
68286  unregister_chrdev_region(198180864U, 8192U);
68287  }
68288#line 2087
68289  goto out;
68290}
68291}
68292#line 2090 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devio.c.p"
68293void usb_devio_cleanup(void) 
68294{ 
68295
68296  {
68297  {
68298#line 2092
68299  usb_unregister_notify(& usbdev_nb);
68300#line 2094
68301  class_destroy(usb_classdev_class);
68302#line 2096
68303  cdev_del(& usb_device_cdev);
68304#line 2097
68305  unregister_chrdev_region(198180864U, 8192U);
68306  }
68307#line 2098
68308  return;
68309}
68310}
68311#line 117 "include/linux/notifier.h"
68312extern int blocking_notifier_chain_register(struct blocking_notifier_head * , struct notifier_block * ) ;
68313#line 130
68314extern int blocking_notifier_chain_unregister(struct blocking_notifier_head * , struct notifier_block * ) ;
68315#line 141
68316extern int blocking_notifier_call_chain(struct blocking_notifier_head * , unsigned long  ,
68317                                        void * ) ;
68318#line 160 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
68319void usb_notify_add_device(struct usb_device *udev ) ;
68320#line 161
68321void usb_notify_remove_device(struct usb_device *udev ) ;
68322#line 25 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/notify.c.p"
68323static struct blocking_notifier_head usb_notifier_list  =    {{0L, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
68324                                                                            {(struct lock_class *)0,
68325                                                                             (struct lock_class *)0},
68326                                                                            "(usb_notifier_list).rwsem.wait_lock",
68327                                                                            0, 0UL}}}},
68328     {& usb_notifier_list.rwsem.wait_list, & usb_notifier_list.rwsem.wait_list}, {(struct lock_class_key *)0,
68329                                                                                  {(struct lock_class *)0,
68330                                                                                   (struct lock_class *)0},
68331                                                                                  "(usb_notifier_list).rwsem",
68332                                                                                  0,
68333                                                                                  0UL}},
68334    (struct notifier_block *)0};
68335#line 33 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/notify.c.p"
68336void usb_register_notify(struct notifier_block *nb ) 
68337{ 
68338
68339  {
68340  {
68341#line 35
68342  blocking_notifier_chain_register(& usb_notifier_list, nb);
68343  }
68344#line 36
68345  return;
68346}
68347}
68348#line 46 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/notify.c.p"
68349void usb_unregister_notify(struct notifier_block *nb ) 
68350{ 
68351
68352  {
68353  {
68354#line 48
68355  blocking_notifier_chain_unregister(& usb_notifier_list, nb);
68356  }
68357#line 49
68358  return;
68359}
68360}
68361#line 53 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/notify.c.p"
68362void usb_notify_add_device(struct usb_device *udev ) 
68363{ void *__cil_tmp2 ;
68364
68365  {
68366  {
68367#line 55
68368  __cil_tmp2 = (void *)udev;
68369#line 55
68370  blocking_notifier_call_chain(& usb_notifier_list, 1UL, __cil_tmp2);
68371  }
68372#line 56
68373  return;
68374}
68375}
68376#line 58 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/notify.c.p"
68377void usb_notify_remove_device(struct usb_device *udev ) 
68378{ void *__cil_tmp2 ;
68379
68380  {
68381  {
68382#line 61
68383  mutex_lock_nested(& usbfs_mutex, 0U);
68384#line 62
68385  __cil_tmp2 = (void *)udev;
68386#line 62
68387  blocking_notifier_call_chain(& usb_notifier_list, 2UL, __cil_tmp2);
68388#line 64
68389  mutex_unlock(& usbfs_mutex);
68390  }
68391#line 65
68392  return;
68393}
68394}
68395#line 67 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/notify.c.p"
68396void usb_notify_add_bus(struct usb_bus *ubus ) 
68397{ void *__cil_tmp2 ;
68398
68399  {
68400  {
68401#line 69
68402  __cil_tmp2 = (void *)ubus;
68403#line 69
68404  blocking_notifier_call_chain(& usb_notifier_list, 3UL, __cil_tmp2);
68405  }
68406#line 70
68407  return;
68408}
68409}
68410#line 72 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/notify.c.p"
68411void usb_notify_remove_bus(struct usb_bus *ubus ) 
68412{ void *__cil_tmp2 ;
68413
68414  {
68415  {
68416#line 74
68417  __cil_tmp2 = (void *)ubus;
68418#line 74
68419  blocking_notifier_call_chain(& usb_notifier_list, 4UL, __cil_tmp2);
68420  }
68421#line 75
68422  return;
68423}
68424}
68425#line 37 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/generic.c.p"
68426static int is_rndis(struct usb_interface_descriptor *desc ) 
68427{ int tmp ;
68428  __u8 __cil_tmp3 ;
68429  unsigned int __cil_tmp4 ;
68430  __u8 __cil_tmp5 ;
68431  unsigned int __cil_tmp6 ;
68432  __u8 __cil_tmp7 ;
68433  unsigned int __cil_tmp8 ;
68434
68435  {
68436  {
68437#line 39
68438  __cil_tmp3 = desc->bInterfaceClass;
68439#line 39
68440  __cil_tmp4 = (unsigned int )__cil_tmp3;
68441#line 39
68442  if (__cil_tmp4 == 2U) {
68443    {
68444#line 39
68445    __cil_tmp5 = desc->bInterfaceSubClass;
68446#line 39
68447    __cil_tmp6 = (unsigned int )__cil_tmp5;
68448#line 39
68449    if (__cil_tmp6 == 2U) {
68450      {
68451#line 39
68452      __cil_tmp7 = desc->bInterfaceProtocol;
68453#line 39
68454      __cil_tmp8 = (unsigned int )__cil_tmp7;
68455#line 39
68456      if (__cil_tmp8 == 255U) {
68457#line 39
68458        tmp = 1;
68459      } else {
68460#line 39
68461        tmp = 0;
68462      }
68463      }
68464    } else {
68465#line 39
68466      tmp = 0;
68467    }
68468    }
68469  } else {
68470#line 39
68471    tmp = 0;
68472  }
68473  }
68474#line 39
68475  return (tmp);
68476}
68477}
68478#line 44 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/generic.c.p"
68479static int is_activesync(struct usb_interface_descriptor *desc ) 
68480{ int tmp ;
68481  __u8 __cil_tmp3 ;
68482  unsigned int __cil_tmp4 ;
68483  __u8 __cil_tmp5 ;
68484  unsigned int __cil_tmp6 ;
68485  __u8 __cil_tmp7 ;
68486  unsigned int __cil_tmp8 ;
68487
68488  {
68489  {
68490#line 46
68491  __cil_tmp3 = desc->bInterfaceClass;
68492#line 46
68493  __cil_tmp4 = (unsigned int )__cil_tmp3;
68494#line 46
68495  if (__cil_tmp4 == 239U) {
68496    {
68497#line 46
68498    __cil_tmp5 = desc->bInterfaceSubClass;
68499#line 46
68500    __cil_tmp6 = (unsigned int )__cil_tmp5;
68501#line 46
68502    if (__cil_tmp6 == 1U) {
68503      {
68504#line 46
68505      __cil_tmp7 = desc->bInterfaceProtocol;
68506#line 46
68507      __cil_tmp8 = (unsigned int )__cil_tmp7;
68508#line 46
68509      if (__cil_tmp8 == 1U) {
68510#line 46
68511        tmp = 1;
68512      } else {
68513#line 46
68514        tmp = 0;
68515      }
68516      }
68517    } else {
68518#line 46
68519      tmp = 0;
68520    }
68521    }
68522  } else {
68523#line 46
68524    tmp = 0;
68525  }
68526  }
68527#line 46
68528  return (tmp);
68529}
68530}
68531#line 51 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/generic.c.p"
68532int usb_choose_configuration(struct usb_device *udev ) 
68533{ int i ;
68534  int num_configs ;
68535  int insufficient_power ;
68536  struct usb_host_config *c ;
68537  struct usb_host_config *best ;
68538  struct usb_interface_descriptor *desc ;
68539  int tmp ;
68540  int tmp___0 ;
68541  char const   *tmp___1 ;
68542  char const   *tmp___2 ;
68543  char const   *tmp___3 ;
68544  __u8 __cil_tmp13 ;
68545  __u8 __cil_tmp14 ;
68546  unsigned int __cil_tmp15 ;
68547  struct usb_interface_cache *__cil_tmp16 ;
68548  struct usb_host_interface (*__cil_tmp17)[0U] ;
68549  struct usb_host_interface *__cil_tmp18 ;
68550  unsigned short __cil_tmp19 ;
68551  int __cil_tmp20 ;
68552  __u8 __cil_tmp21 ;
68553  int __cil_tmp22 ;
68554  int __cil_tmp23 ;
68555  struct usb_interface_descriptor *__cil_tmp24 ;
68556  unsigned long __cil_tmp25 ;
68557  unsigned long __cil_tmp26 ;
68558  __u8 __cil_tmp27 ;
68559  unsigned int __cil_tmp28 ;
68560  struct usb_interface_descriptor *__cil_tmp29 ;
68561  unsigned long __cil_tmp30 ;
68562  unsigned long __cil_tmp31 ;
68563  __u8 __cil_tmp32 ;
68564  unsigned int __cil_tmp33 ;
68565  struct usb_host_config *__cil_tmp34 ;
68566  unsigned long __cil_tmp35 ;
68567  unsigned long __cil_tmp36 ;
68568  struct device *__cil_tmp37 ;
68569  struct device  const  *__cil_tmp38 ;
68570  struct usb_host_config *__cil_tmp39 ;
68571  unsigned long __cil_tmp40 ;
68572  unsigned long __cil_tmp41 ;
68573  __u8 __cil_tmp42 ;
68574  struct device *__cil_tmp43 ;
68575  struct device  const  *__cil_tmp44 ;
68576  struct device *__cil_tmp45 ;
68577  struct device  const  *__cil_tmp46 ;
68578
68579  {
68580#line 55
68581  insufficient_power = 0;
68582#line 58
68583  best = (struct usb_host_config *)0;
68584#line 59
68585  c = udev->config;
68586#line 60
68587  __cil_tmp13 = udev->descriptor.bNumConfigurations;
68588#line 60
68589  num_configs = (int )__cil_tmp13;
68590#line 61
68591  i = 0;
68592#line 61
68593  goto ldv_24025;
68594  ldv_24024: 
68595#line 62
68596  desc = (struct usb_interface_descriptor *)0;
68597  {
68598#line 65
68599  __cil_tmp14 = c->desc.bNumInterfaces;
68600#line 65
68601  __cil_tmp15 = (unsigned int )__cil_tmp14;
68602#line 65
68603  if (__cil_tmp15 != 0U) {
68604#line 66
68605    __cil_tmp16 = c->intf_cache[0];
68606#line 66
68607    __cil_tmp17 = & __cil_tmp16->altsetting;
68608#line 66
68609    __cil_tmp18 = (struct usb_host_interface *)__cil_tmp17;
68610#line 66
68611    desc = & __cil_tmp18->desc;
68612  } else {
68613
68614  }
68615  }
68616  {
68617#line 108
68618  __cil_tmp19 = udev->bus_mA;
68619#line 108
68620  __cil_tmp20 = (int )__cil_tmp19;
68621#line 108
68622  __cil_tmp21 = c->desc.bMaxPower;
68623#line 108
68624  __cil_tmp22 = (int )__cil_tmp21;
68625#line 108
68626  __cil_tmp23 = __cil_tmp22 * 2;
68627#line 108
68628  if (__cil_tmp23 > __cil_tmp20) {
68629#line 109
68630    insufficient_power = insufficient_power + 1;
68631#line 110
68632    goto ldv_24022;
68633  } else {
68634
68635  }
68636  }
68637#line 118
68638  if (i == 0) {
68639#line 118
68640    if (num_configs > 1) {
68641      {
68642#line 118
68643      __cil_tmp24 = (struct usb_interface_descriptor *)0;
68644#line 118
68645      __cil_tmp25 = (unsigned long )__cil_tmp24;
68646#line 118
68647      __cil_tmp26 = (unsigned long )desc;
68648#line 118
68649      if (__cil_tmp26 != __cil_tmp25) {
68650        {
68651#line 118
68652        tmp = is_rndis(desc);
68653        }
68654#line 118
68655        if (tmp != 0) {
68656#line 123
68657          best = c;
68658        } else {
68659          {
68660#line 118
68661          tmp___0 = is_activesync(desc);
68662          }
68663#line 118
68664          if (tmp___0 != 0) {
68665#line 123
68666            best = c;
68667          } else {
68668#line 118
68669            goto _L___2;
68670          }
68671        }
68672      } else {
68673#line 118
68674        goto _L___2;
68675      }
68676      }
68677    } else {
68678#line 118
68679      goto _L___2;
68680    }
68681  } else {
68682    _L___2: 
68683    {
68684#line 131
68685    __cil_tmp27 = udev->descriptor.bDeviceClass;
68686#line 131
68687    __cil_tmp28 = (unsigned int )__cil_tmp27;
68688#line 131
68689    if (__cil_tmp28 != 255U) {
68690      {
68691#line 131
68692      __cil_tmp29 = (struct usb_interface_descriptor *)0;
68693#line 131
68694      __cil_tmp30 = (unsigned long )__cil_tmp29;
68695#line 131
68696      __cil_tmp31 = (unsigned long )desc;
68697#line 131
68698      if (__cil_tmp31 != __cil_tmp30) {
68699        {
68700#line 131
68701        __cil_tmp32 = desc->bInterfaceClass;
68702#line 131
68703        __cil_tmp33 = (unsigned int )__cil_tmp32;
68704#line 131
68705        if (__cil_tmp33 != 255U) {
68706#line 135
68707          best = c;
68708#line 136
68709          goto ldv_24023;
68710        } else {
68711#line 131
68712          goto _L;
68713        }
68714        }
68715      } else {
68716#line 131
68717        goto _L;
68718      }
68719      }
68720    } else {
68721      _L: 
68722      {
68723#line 141
68724      __cil_tmp34 = (struct usb_host_config *)0;
68725#line 141
68726      __cil_tmp35 = (unsigned long )__cil_tmp34;
68727#line 141
68728      __cil_tmp36 = (unsigned long )best;
68729#line 141
68730      if (__cil_tmp36 == __cil_tmp35) {
68731#line 142
68732        best = c;
68733      } else {
68734
68735      }
68736      }
68737    }
68738    }
68739  }
68740  ldv_24022: 
68741#line 61
68742  i = i + 1;
68743#line 61
68744  c = c + 1;
68745  ldv_24025: ;
68746#line 61
68747  if (i < num_configs) {
68748#line 62
68749    goto ldv_24024;
68750  } else {
68751#line 64
68752    goto ldv_24023;
68753  }
68754  ldv_24023: ;
68755#line 145
68756  if (insufficient_power > 0) {
68757    {
68758#line 146
68759    tmp___1 = plural(insufficient_power);
68760#line 146
68761    __cil_tmp37 = & udev->dev;
68762#line 146
68763    __cil_tmp38 = (struct device  const  *)__cil_tmp37;
68764#line 146
68765    _dev_info(__cil_tmp38, "rejected %d configuration%s due to insufficient available bus power\n",
68766              insufficient_power, tmp___1);
68767    }
68768  } else {
68769
68770  }
68771  {
68772#line 150
68773  __cil_tmp39 = (struct usb_host_config *)0;
68774#line 150
68775  __cil_tmp40 = (unsigned long )__cil_tmp39;
68776#line 150
68777  __cil_tmp41 = (unsigned long )best;
68778#line 150
68779  if (__cil_tmp41 != __cil_tmp40) {
68780    {
68781#line 151
68782    __cil_tmp42 = best->desc.bConfigurationValue;
68783#line 151
68784    i = (int )__cil_tmp42;
68785#line 152
68786    tmp___2 = plural(num_configs);
68787#line 152
68788    __cil_tmp43 = & udev->dev;
68789#line 152
68790    __cil_tmp44 = (struct device  const  *)__cil_tmp43;
68791#line 152
68792    dev_printk("<7>", __cil_tmp44, "configuration #%d chosen from %d choice%s\n",
68793               i, num_configs, tmp___2);
68794    }
68795  } else {
68796    {
68797#line 156
68798    i = -1;
68799#line 157
68800    tmp___3 = plural(num_configs);
68801#line 157
68802    __cil_tmp45 = & udev->dev;
68803#line 157
68804    __cil_tmp46 = (struct device  const  *)__cil_tmp45;
68805#line 157
68806    dev_warn(__cil_tmp46, "no configuration chosen from %d choice%s\n", num_configs,
68807             tmp___3);
68808    }
68809  }
68810  }
68811#line 161
68812  return (i);
68813}
68814}
68815#line 164 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/generic.c.p"
68816static int generic_probe(struct usb_device *udev ) 
68817{ int err ;
68818  int c ;
68819  bool tmp ;
68820  unsigned char *__cil_tmp5 ;
68821  unsigned char *__cil_tmp6 ;
68822  unsigned char __cil_tmp7 ;
68823  unsigned int __cil_tmp8 ;
68824  struct device *__cil_tmp9 ;
68825  struct device  const  *__cil_tmp10 ;
68826  struct device *__cil_tmp11 ;
68827  struct device  const  *__cil_tmp12 ;
68828
68829  {
68830  {
68831#line 171
68832  tmp = usb_device_is_owned(udev);
68833  }
68834#line 171
68835  if ((int )tmp) {
68836
68837  } else {
68838    {
68839#line 173
68840    __cil_tmp5 = (unsigned char *)udev;
68841#line 173
68842    __cil_tmp6 = __cil_tmp5 + 1556UL;
68843#line 173
68844    __cil_tmp7 = *__cil_tmp6;
68845#line 173
68846    __cil_tmp8 = (unsigned int )__cil_tmp7;
68847#line 173
68848    if (__cil_tmp8 == 0U) {
68849      {
68850#line 174
68851      __cil_tmp9 = & udev->dev;
68852#line 174
68853      __cil_tmp10 = (struct device  const  *)__cil_tmp9;
68854#line 174
68855      dev_err(__cil_tmp10, "Device is not authorized for usage\n");
68856      }
68857    } else {
68858      {
68859#line 176
68860      c = usb_choose_configuration(udev);
68861      }
68862#line 177
68863      if (c >= 0) {
68864        {
68865#line 178
68866        err = usb_set_configuration(udev, c);
68867        }
68868#line 179
68869        if (err != 0) {
68870          {
68871#line 180
68872          __cil_tmp11 = & udev->dev;
68873#line 180
68874          __cil_tmp12 = (struct device  const  *)__cil_tmp11;
68875#line 180
68876          dev_err(__cil_tmp12, "can\'t set config #%d, error %d\n", c, err);
68877          }
68878        } else {
68879
68880        }
68881      } else {
68882
68883      }
68884    }
68885    }
68886  }
68887  {
68888#line 188
68889  usb_notify_add_device(udev);
68890  }
68891#line 190
68892  return (0);
68893}
68894}
68895#line 193 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/generic.c.p"
68896static void generic_disconnect(struct usb_device *udev ) 
68897{ struct usb_host_config *__cil_tmp2 ;
68898  unsigned long __cil_tmp3 ;
68899  struct usb_host_config *__cil_tmp4 ;
68900  unsigned long __cil_tmp5 ;
68901
68902  {
68903  {
68904#line 195
68905  usb_notify_remove_device(udev);
68906  }
68907  {
68908#line 199
68909  __cil_tmp2 = (struct usb_host_config *)0;
68910#line 199
68911  __cil_tmp3 = (unsigned long )__cil_tmp2;
68912#line 199
68913  __cil_tmp4 = udev->actconfig;
68914#line 199
68915  __cil_tmp5 = (unsigned long )__cil_tmp4;
68916#line 199
68917  if (__cil_tmp5 != __cil_tmp3) {
68918    {
68919#line 200
68920    usb_set_configuration(udev, -1);
68921    }
68922  } else {
68923
68924  }
68925  }
68926#line 201
68927  return;
68928}
68929}
68930#line 205 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/generic.c.p"
68931static int generic_suspend(struct usb_device *udev , pm_message_t msg ) 
68932{ int rc ;
68933  struct usb_device *__cil_tmp4 ;
68934  unsigned long __cil_tmp5 ;
68935  struct usb_device *__cil_tmp6 ;
68936  unsigned long __cil_tmp7 ;
68937
68938  {
68939  {
68940#line 214
68941  __cil_tmp4 = (struct usb_device *)0;
68942#line 214
68943  __cil_tmp5 = (unsigned long )__cil_tmp4;
68944#line 214
68945  __cil_tmp6 = udev->parent;
68946#line 214
68947  __cil_tmp7 = (unsigned long )__cil_tmp6;
68948#line 214
68949  if (__cil_tmp7 == __cil_tmp5) {
68950    {
68951#line 215
68952    rc = hcd_bus_suspend(udev, msg);
68953    }
68954  } else
68955#line 218
68956  if (msg.event == 1) {
68957#line 219
68958    rc = 0;
68959  } else
68960#line 218
68961  if (msg.event == 8) {
68962#line 219
68963    rc = 0;
68964  } else {
68965    {
68966#line 221
68967    rc = usb_port_suspend(udev, msg);
68968    }
68969  }
68970  }
68971#line 223
68972  return (rc);
68973}
68974}
68975#line 226 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/generic.c.p"
68976static int generic_resume(struct usb_device *udev , pm_message_t msg ) 
68977{ int rc ;
68978  struct usb_device *__cil_tmp4 ;
68979  unsigned long __cil_tmp5 ;
68980  struct usb_device *__cil_tmp6 ;
68981  unsigned long __cil_tmp7 ;
68982
68983  {
68984  {
68985#line 235
68986  __cil_tmp4 = (struct usb_device *)0;
68987#line 235
68988  __cil_tmp5 = (unsigned long )__cil_tmp4;
68989#line 235
68990  __cil_tmp6 = udev->parent;
68991#line 235
68992  __cil_tmp7 = (unsigned long )__cil_tmp6;
68993#line 235
68994  if (__cil_tmp7 == __cil_tmp5) {
68995    {
68996#line 236
68997    rc = hcd_bus_resume(udev, msg);
68998    }
68999  } else {
69000    {
69001#line 238
69002    rc = usb_port_resume(udev, msg);
69003    }
69004  }
69005  }
69006#line 239
69007  return (rc);
69008}
69009}
69010#line 244 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/generic.c.p"
69011struct usb_device_driver usb_generic_driver  =    {"usb", & generic_probe, & generic_disconnect, & generic_suspend, & generic_resume,
69012    {{(char const   *)0, (struct bus_type *)0, (struct module *)0, (char const   *)0,
69013      (_Bool)0, (struct of_device_id  const  *)0, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
69014      (void (*)(struct device * ))0, (int (*)(struct device * , pm_message_t  ))0,
69015      (int (*)(struct device * ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
69016      (struct driver_private *)0}, 0}, (unsigned char)1};
69017#line 37 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/quirks.c.p"
69018static struct usb_device_id  const  usb_quirk_list[21U]  = 
69019#line 37 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/quirks.c.p"
69020  {      {(__u16 )3U, (__u16 )516U, (__u16 )24613U, (unsigned short)0, (unsigned short)0,
69021      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69022      (unsigned char)0, 2UL}, 
69023        {(__u16 )3U, (__u16 )1008U, (__u16 )1793U, (unsigned short)0, (unsigned short)0,
69024      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69025      (unsigned char)0, 1UL}, 
69026        {(__u16 )3U, (__u16 )1054U, (__u16 )12320U, (unsigned short)0, (unsigned short)0,
69027      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69028      (unsigned char)0, 2UL}, 
69029        {(__u16 )3U, (__u16 )1133U, (__u16 )49442U, (unsigned short)0, (unsigned short)0,
69030      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69031      (unsigned char)0, 64UL}, 
69032        {(__u16 )3U, (__u16 )1137U, (__u16 )341U, (unsigned short)0, (unsigned short)0,
69033      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69034      (unsigned char)0, 2UL}, 
69035        {(__u16 )3U, (__u16 )1204U, (__u16 )1318U, (unsigned short)0, (unsigned short)0,
69036      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69037      (unsigned char)0, 8UL}, 
69038        {(__u16 )3U, (__u16 )1256U, (__u16 )26113U, (unsigned short)0, (unsigned short)0,
69039      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69040      (unsigned char)0, 8UL}, 
69041        {(__u16 )3U, (__u16 )1410U, (__u16 )7U, (unsigned short)0, (unsigned short)0,
69042      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69043      (unsigned char)0, 2UL}, 
69044        {(__u16 )3U, (__u16 )1410U, (__u16 )39U, (unsigned short)0, (unsigned short)0,
69045      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69046      (unsigned char)0, 2UL}, 
69047        {(__u16 )3U, (__u16 )1452U, (__u16 )538U, (unsigned short)0, (unsigned short)0,
69048      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69049      (unsigned char)0, 2UL}, 
69050        {(__u16 )3U, (__u16 )1592U, (__u16 )2579U, (unsigned short)0, (unsigned short)0,
69051      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69052      (unsigned char)0, 1UL}, 
69053        {(__u16 )3U, (__u16 )1699U, (__u16 )6U, (unsigned short)0, (unsigned short)0,
69054      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69055      (unsigned char)0, 8UL}, 
69056        {(__u16 )3U, (__u16 )2284U, (__u16 )4096U, (unsigned short)0, (unsigned short)0,
69057      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69058      (unsigned char)0, 2UL}, 
69059        {(__u16 )3U, (__u16 )2342U, (__u16 )13107U, (unsigned short)0, (unsigned short)0,
69060      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69061      (unsigned char)0, 8UL}, 
69062        {(__u16 )3U, (__u16 )2417U, (__u16 )8192U, (unsigned short)0, (unsigned short)0,
69063      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69064      (unsigned char)0, 4UL}, 
69065        {(__u16 )3U, (__u16 )2652U, (__u16 )8225U, (unsigned short)0, (unsigned short)0,
69066      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69067      (unsigned char)0, 2UL}, 
69068        {(__u16 )3U, (__u16 )4310U, (__u16 )8704U, (unsigned short)0, (unsigned short)0,
69069      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69070      (unsigned char)0, 1UL}, 
69071        {(__u16 )3U, (__u16 )5398U, (__u16 )34344U, (unsigned short)0, (unsigned short)0,
69072      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69073      (unsigned char)0, 2UL}, 
69074        {(__u16 )3U, (__u16 )6408U, (__u16 )4885U, (unsigned short)0, (unsigned short)0,
69075      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69076      (unsigned char)0, 32UL}, 
69077        {(__u16 )3U, (__u16 )32902U, (__u16 )61861U, (unsigned short)0, (unsigned short)0,
69078      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69079      (unsigned char)0, 2UL}, 
69080        {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
69081      (unsigned short)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69082      (unsigned char)0, (unsigned char)0, 0UL}};
69083#line 109 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/quirks.c.p"
69084static struct usb_device_id  const  *find_id(struct usb_device *udev ) 
69085{ struct usb_device_id  const  *id ;
69086  int tmp ;
69087  __u16 __cil_tmp4 ;
69088  unsigned short __cil_tmp5 ;
69089  unsigned int __cil_tmp6 ;
69090  __u8 __cil_tmp7 ;
69091  unsigned char __cil_tmp8 ;
69092  unsigned int __cil_tmp9 ;
69093  __u8 __cil_tmp10 ;
69094  unsigned char __cil_tmp11 ;
69095  unsigned int __cil_tmp12 ;
69096  kernel_ulong_t __cil_tmp13 ;
69097  unsigned long __cil_tmp14 ;
69098
69099  {
69100#line 111
69101  id = (struct usb_device_id  const  *)(& usb_quirk_list);
69102#line 113
69103  goto ldv_23627;
69104  ldv_23626: 
69105  {
69106#line 115
69107  tmp = usb_match_device(udev, id);
69108  }
69109#line 115
69110  if (tmp != 0) {
69111#line 116
69112    return (id);
69113  } else {
69114
69115  }
69116#line 114
69117  id = id + 1;
69118  ldv_23627: ;
69119  {
69120#line 113
69121  __cil_tmp4 = id->idVendor;
69122#line 113
69123  __cil_tmp5 = (unsigned short )__cil_tmp4;
69124#line 113
69125  __cil_tmp6 = (unsigned int )__cil_tmp5;
69126#line 113
69127  if (__cil_tmp6 != 0U) {
69128#line 114
69129    goto ldv_23626;
69130  } else {
69131    {
69132#line 113
69133    __cil_tmp7 = id->bDeviceClass;
69134#line 113
69135    __cil_tmp8 = (unsigned char )__cil_tmp7;
69136#line 113
69137    __cil_tmp9 = (unsigned int )__cil_tmp8;
69138#line 113
69139    if (__cil_tmp9 != 0U) {
69140#line 114
69141      goto ldv_23626;
69142    } else {
69143      {
69144#line 113
69145      __cil_tmp10 = id->bInterfaceClass;
69146#line 113
69147      __cil_tmp11 = (unsigned char )__cil_tmp10;
69148#line 113
69149      __cil_tmp12 = (unsigned int )__cil_tmp11;
69150#line 113
69151      if (__cil_tmp12 != 0U) {
69152#line 114
69153        goto ldv_23626;
69154      } else {
69155        {
69156#line 113
69157        __cil_tmp13 = id->driver_info;
69158#line 113
69159        __cil_tmp14 = (unsigned long )__cil_tmp13;
69160#line 113
69161        if (__cil_tmp14 != 0UL) {
69162#line 114
69163          goto ldv_23626;
69164        } else {
69165#line 116
69166          goto ldv_23628;
69167        }
69168        }
69169      }
69170      }
69171    }
69172    }
69173  }
69174  }
69175  ldv_23628: ;
69176#line 118
69177  return ((struct usb_device_id  const  *)0);
69178}
69179}
69180#line 124 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/quirks.c.p"
69181void usb_detect_quirks(struct usb_device *udev ) 
69182{ struct usb_device_id  const  *id ;
69183  struct usb_device_id  const  *__cil_tmp3 ;
69184  unsigned long __cil_tmp4 ;
69185  unsigned long __cil_tmp5 ;
69186  kernel_ulong_t __cil_tmp6 ;
69187  u32 __cil_tmp7 ;
69188  struct device *__cil_tmp8 ;
69189  struct device  const  *__cil_tmp9 ;
69190  u32 __cil_tmp10 ;
69191  u32 __cil_tmp11 ;
69192  unsigned int __cil_tmp12 ;
69193
69194  {
69195  {
69196#line 126
69197  id = (struct usb_device_id  const  *)(& usb_quirk_list);
69198#line 128
69199  id = find_id(udev);
69200  }
69201  {
69202#line 129
69203  __cil_tmp3 = (struct usb_device_id  const  *)0;
69204#line 129
69205  __cil_tmp4 = (unsigned long )__cil_tmp3;
69206#line 129
69207  __cil_tmp5 = (unsigned long )id;
69208#line 129
69209  if (__cil_tmp5 != __cil_tmp4) {
69210#line 130
69211    __cil_tmp6 = id->driver_info;
69212#line 130
69213    udev->quirks = (unsigned int )__cil_tmp6;
69214  } else {
69215
69216  }
69217  }
69218  {
69219#line 131
69220  __cil_tmp7 = udev->quirks;
69221#line 131
69222  if (__cil_tmp7 != 0U) {
69223    {
69224#line 132
69225    __cil_tmp8 = & udev->dev;
69226#line 132
69227    __cil_tmp9 = (struct device  const  *)__cil_tmp8;
69228#line 132
69229    __cil_tmp10 = udev->quirks;
69230#line 132
69231    dev_printk("<7>", __cil_tmp9, "USB quirks for this device: %x\n", __cil_tmp10);
69232    }
69233  } else {
69234
69235  }
69236  }
69237  {
69238#line 146
69239  __cil_tmp11 = udev->quirks;
69240#line 146
69241  __cil_tmp12 = __cil_tmp11 & 16U;
69242#line 146
69243  if (__cil_tmp12 == 0U) {
69244#line 147
69245    udev->persist_enabled = (unsigned char)1;
69246  } else {
69247
69248  }
69249  }
69250#line 148
69251  return;
69252}
69253}
69254#line 47 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
69255__inline static void atomic_add(int i , atomic_t *v ) 
69256{ 
69257
69258  {
69259#line 49
69260  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; addl %1,%0": "+m" (v->counter): "ir" (i));
69261#line 51
69262  return;
69263}
69264}
69265#line 154 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
69266void usbfs_conn_disc_event(void) ;
69267#line 75 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69268static char const   format_topo[85U]  = 
69269#line 75 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69270  {      (char const   )'\n',      (char const   )'T',      (char const   )':',      (char const   )' ', 
69271        (char const   )' ',      (char const   )'B',      (char const   )'u',      (char const   )'s', 
69272        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'.', 
69273        (char const   )'2',      (char const   )'d',      (char const   )' ',      (char const   )'L', 
69274        (char const   )'e',      (char const   )'v',      (char const   )'=',      (char const   )'%', 
69275        (char const   )'2',      (char const   )'.',      (char const   )'2',      (char const   )'d', 
69276        (char const   )' ',      (char const   )'P',      (char const   )'r',      (char const   )'n', 
69277        (char const   )'t',      (char const   )'=',      (char const   )'%',      (char const   )'2', 
69278        (char const   )'.',      (char const   )'2',      (char const   )'d',      (char const   )' ', 
69279        (char const   )'P',      (char const   )'o',      (char const   )'r',      (char const   )'t', 
69280        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'.', 
69281        (char const   )'2',      (char const   )'d',      (char const   )' ',      (char const   )'C', 
69282        (char const   )'n',      (char const   )'t',      (char const   )'=',      (char const   )'%', 
69283        (char const   )'2',      (char const   )'.',      (char const   )'2',      (char const   )'d', 
69284        (char const   )' ',      (char const   )'D',      (char const   )'e',      (char const   )'v', 
69285        (char const   )'#',      (char const   )'=',      (char const   )'%',      (char const   )'3', 
69286        (char const   )'d',      (char const   )' ',      (char const   )'S',      (char const   )'p', 
69287        (char const   )'d',      (char const   )'=',      (char const   )'%',      (char const   )'-', 
69288        (char const   )'4',      (char const   )'s',      (char const   )' ',      (char const   )'M', 
69289        (char const   )'x',      (char const   )'C',      (char const   )'h',      (char const   )'=', 
69290        (char const   )'%',      (char const   )'2',      (char const   )'d',      (char const   )'\n', 
69291        (char const   )'\000'};
69292#line 79 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69293static char const   format_string_manufacturer[25U]  = 
69294#line 79
69295  {      (char const   )'S',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69296        (char const   )'M',      (char const   )'a',      (char const   )'n',      (char const   )'u', 
69297        (char const   )'f',      (char const   )'a',      (char const   )'c',      (char const   )'t', 
69298        (char const   )'u',      (char const   )'r',      (char const   )'e',      (char const   )'r', 
69299        (char const   )'=',      (char const   )'%',      (char const   )'.',      (char const   )'1', 
69300        (char const   )'0',      (char const   )'0',      (char const   )'s',      (char const   )'\n', 
69301        (char const   )'\000'};
69302#line 83 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69303static char const   format_string_product[20U]  = 
69304#line 83
69305  {      (char const   )'S',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69306        (char const   )'P',      (char const   )'r',      (char const   )'o',      (char const   )'d', 
69307        (char const   )'u',      (char const   )'c',      (char const   )'t',      (char const   )'=', 
69308        (char const   )'%',      (char const   )'.',      (char const   )'1',      (char const   )'0', 
69309        (char const   )'0',      (char const   )'s',      (char const   )'\n',      (char const   )'\000'};
69310#line 88 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69311static char const   format_string_serialnumber[25U]  = 
69312#line 88
69313  {      (char const   )'S',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69314        (char const   )'S',      (char const   )'e',      (char const   )'r',      (char const   )'i', 
69315        (char const   )'a',      (char const   )'l',      (char const   )'N',      (char const   )'u', 
69316        (char const   )'m',      (char const   )'b',      (char const   )'e',      (char const   )'r', 
69317        (char const   )'=',      (char const   )'%',      (char const   )'.',      (char const   )'1', 
69318        (char const   )'0',      (char const   )'0',      (char const   )'s',      (char const   )'\n', 
69319        (char const   )'\000'};
69320#line 93 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69321static char const   format_bandwidth[50U]  = 
69322#line 93
69323  {      (char const   )'B',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69324        (char const   )'A',      (char const   )'l',      (char const   )'l',      (char const   )'o', 
69325        (char const   )'c',      (char const   )'=',      (char const   )'%',      (char const   )'3', 
69326        (char const   )'d',      (char const   )'/',      (char const   )'%',      (char const   )'3', 
69327        (char const   )'d',      (char const   )' ',      (char const   )'u',      (char const   )'s', 
69328        (char const   )' ',      (char const   )'(',      (char const   )'%',      (char const   )'2', 
69329        (char const   )'d',      (char const   )'%',      (char const   )'%',      (char const   )')', 
69330        (char const   )',',      (char const   )' ',      (char const   )'#',      (char const   )'I', 
69331        (char const   )'n',      (char const   )'t',      (char const   )'=',      (char const   )'%', 
69332        (char const   )'3',      (char const   )'d',      (char const   )',',      (char const   )' ', 
69333        (char const   )'#',      (char const   )'I',      (char const   )'s',      (char const   )'o', 
69334        (char const   )'=',      (char const   )'%',      (char const   )'3',      (char const   )'d', 
69335        (char const   )'\n',      (char const   )'\000'};
69336#line 97 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69337static char const   format_device1[71U]  = 
69338#line 97
69339  {      (char const   )'D',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69340        (char const   )'V',      (char const   )'e',      (char const   )'r',      (char const   )'=', 
69341        (char const   )'%',      (char const   )'2',      (char const   )'x',      (char const   )'.', 
69342        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69343        (char const   )' ',      (char const   )'C',      (char const   )'l',      (char const   )'s', 
69344        (char const   )'=',      (char const   )'%',      (char const   )'0',      (char const   )'2', 
69345        (char const   )'x',      (char const   )'(',      (char const   )'%',      (char const   )'-', 
69346        (char const   )'5',      (char const   )'s',      (char const   )')',      (char const   )' ', 
69347        (char const   )'S',      (char const   )'u',      (char const   )'b',      (char const   )'=', 
69348        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69349        (char const   )' ',      (char const   )'P',      (char const   )'r',      (char const   )'o', 
69350        (char const   )'t',      (char const   )'=',      (char const   )'%',      (char const   )'0', 
69351        (char const   )'2',      (char const   )'x',      (char const   )' ',      (char const   )'M', 
69352        (char const   )'x',      (char const   )'P',      (char const   )'S',      (char const   )'=', 
69353        (char const   )'%',      (char const   )'2',      (char const   )'d',      (char const   )' ', 
69354        (char const   )'#',      (char const   )'C',      (char const   )'f',      (char const   )'g', 
69355        (char const   )'s',      (char const   )'=',      (char const   )'%',      (char const   )'3', 
69356        (char const   )'d',      (char const   )'\n',      (char const   )'\000'};
69357#line 101 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69358static char const   format_device2[42U]  = 
69359#line 101
69360  {      (char const   )'P',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69361        (char const   )'V',      (char const   )'e',      (char const   )'n',      (char const   )'d', 
69362        (char const   )'o',      (char const   )'r',      (char const   )'=',      (char const   )'%', 
69363        (char const   )'0',      (char const   )'4',      (char const   )'x',      (char const   )' ', 
69364        (char const   )'P',      (char const   )'r',      (char const   )'o',      (char const   )'d', 
69365        (char const   )'I',      (char const   )'D',      (char const   )'=',      (char const   )'%', 
69366        (char const   )'0',      (char const   )'4',      (char const   )'x',      (char const   )' ', 
69367        (char const   )'R',      (char const   )'e',      (char const   )'v',      (char const   )'=', 
69368        (char const   )'%',      (char const   )'2',      (char const   )'x',      (char const   )'.', 
69369        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69370        (char const   )'\n',      (char const   )'\000'};
69371#line 105 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69372static char const   format_config[45U]  = 
69373#line 105
69374  {      (char const   )'C',      (char const   )':',      (char const   )'%',      (char const   )'c', 
69375        (char const   )' ',      (char const   )'#',      (char const   )'I',      (char const   )'f', 
69376        (char const   )'s',      (char const   )'=',      (char const   )'%',      (char const   )'2', 
69377        (char const   )'d',      (char const   )' ',      (char const   )'C',      (char const   )'f', 
69378        (char const   )'g',      (char const   )'#',      (char const   )'=',      (char const   )'%', 
69379        (char const   )'2',      (char const   )'d',      (char const   )' ',      (char const   )'A', 
69380        (char const   )'t',      (char const   )'r',      (char const   )'=',      (char const   )'%', 
69381        (char const   )'0',      (char const   )'2',      (char const   )'x',      (char const   )' ', 
69382        (char const   )'M',      (char const   )'x',      (char const   )'P',      (char const   )'w', 
69383        (char const   )'r',      (char const   )'=',      (char const   )'%',      (char const   )'3', 
69384        (char const   )'d',      (char const   )'m',      (char const   )'A',      (char const   )'\n', 
69385        (char const   )'\000'};
69386#line 109 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69387static char const   format_iad[64U]  = 
69388#line 109
69389  {      (char const   )'A',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69390        (char const   )'F',      (char const   )'i',      (char const   )'r',      (char const   )'s', 
69391        (char const   )'t',      (char const   )'I',      (char const   )'f',      (char const   )'#', 
69392        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'d', 
69393        (char const   )' ',      (char const   )'I',      (char const   )'f',      (char const   )'C', 
69394        (char const   )'o',      (char const   )'u',      (char const   )'n',      (char const   )'t', 
69395        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'d', 
69396        (char const   )' ',      (char const   )'C',      (char const   )'l',      (char const   )'s', 
69397        (char const   )'=',      (char const   )'%',      (char const   )'0',      (char const   )'2', 
69398        (char const   )'x',      (char const   )'(',      (char const   )'%',      (char const   )'-', 
69399        (char const   )'5',      (char const   )'s',      (char const   )')',      (char const   )' ', 
69400        (char const   )'S',      (char const   )'u',      (char const   )'b',      (char const   )'=', 
69401        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69402        (char const   )' ',      (char const   )'P',      (char const   )'r',      (char const   )'o', 
69403        (char const   )'t',      (char const   )'=',      (char const   )'%',      (char const   )'0', 
69404        (char const   )'2',      (char const   )'x',      (char const   )'\n',      (char const   )'\000'};
69405#line 113 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69406static char const   format_iface[75U]  = 
69407#line 113
69408  {      (char const   )'I',      (char const   )':',      (char const   )'%',      (char const   )'c', 
69409        (char const   )' ',      (char const   )'I',      (char const   )'f',      (char const   )'#', 
69410        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'d', 
69411        (char const   )' ',      (char const   )'A',      (char const   )'l',      (char const   )'t', 
69412        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'d', 
69413        (char const   )' ',      (char const   )'#',      (char const   )'E',      (char const   )'P', 
69414        (char const   )'s',      (char const   )'=',      (char const   )'%',      (char const   )'2', 
69415        (char const   )'d',      (char const   )' ',      (char const   )'C',      (char const   )'l', 
69416        (char const   )'s',      (char const   )'=',      (char const   )'%',      (char const   )'0', 
69417        (char const   )'2',      (char const   )'x',      (char const   )'(',      (char const   )'%', 
69418        (char const   )'-',      (char const   )'5',      (char const   )'s',      (char const   )')', 
69419        (char const   )' ',      (char const   )'S',      (char const   )'u',      (char const   )'b', 
69420        (char const   )'=',      (char const   )'%',      (char const   )'0',      (char const   )'2', 
69421        (char const   )'x',      (char const   )' ',      (char const   )'P',      (char const   )'r', 
69422        (char const   )'o',      (char const   )'t',      (char const   )'=',      (char const   )'%', 
69423        (char const   )'0',      (char const   )'2',      (char const   )'x',      (char const   )' ', 
69424        (char const   )'D',      (char const   )'r',      (char const   )'i',      (char const   )'v', 
69425        (char const   )'e',      (char const   )'r',      (char const   )'=',      (char const   )'%', 
69426        (char const   )'s',      (char const   )'\n',      (char const   )'\000'};
69427#line 117 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69428static char const   format_endpt[51U]  = 
69429#line 117
69430  {      (char const   )'E',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69431        (char const   )'A',      (char const   )'d',      (char const   )'=',      (char const   )'%', 
69432        (char const   )'0',      (char const   )'2',      (char const   )'x',      (char const   )'(', 
69433        (char const   )'%',      (char const   )'c',      (char const   )')',      (char const   )' ', 
69434        (char const   )'A',      (char const   )'t',      (char const   )'r',      (char const   )'=', 
69435        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69436        (char const   )'(',      (char const   )'%',      (char const   )'-',      (char const   )'4', 
69437        (char const   )'s',      (char const   )')',      (char const   )' ',      (char const   )'M', 
69438        (char const   )'x',      (char const   )'P',      (char const   )'S',      (char const   )'=', 
69439        (char const   )'%',      (char const   )'4',      (char const   )'d',      (char const   )' ', 
69440        (char const   )'I',      (char const   )'v',      (char const   )'l',      (char const   )'=', 
69441        (char const   )'%',      (char const   )'d',      (char const   )'%',      (char const   )'c', 
69442        (char const   )'s',      (char const   )'\n',      (char const   )'\000'};
69443#line 139 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69444static struct device_connect_event device_event  =    {{1}, {{{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
69445                                                                             {(struct lock_class *)0,
69446                                                                              (struct lock_class *)0},
69447                                                                             "device_event.wait.lock",
69448                                                                             0, 0UL}}}},
69449          {& device_event.wait.task_list, & device_event.wait.task_list}}};
69450#line 149 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69451static struct class_info  const  clas_info[18U]  = 
69452#line 149
69453  {      {0, (char *)">ifc"}, 
69454        {1, (char *)"audio"}, 
69455        {2, (char *)"comm."}, 
69456        {3, (char *)"HID"}, 
69457        {5, (char *)"PID"}, 
69458        {6, (char *)"still"}, 
69459        {7, (char *)"print"}, 
69460        {8, (char *)"stor."}, 
69461        {9, (char *)"hub"}, 
69462        {10, (char *)"data"}, 
69463        {11, (char *)"scard"}, 
69464        {13, (char *)"c-sec"}, 
69465        {14, (char *)"video"}, 
69466        {224, (char *)"wlcon"}, 
69467        {239, (char *)"misc"}, 
69468        {254, (char *)"app."}, 
69469        {255, (char *)"vend."}, 
69470        {-1, (char *)"unk."}};
69471#line 173 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69472void usbfs_conn_disc_event(void) 
69473{ atomic_t *__cil_tmp1 ;
69474  wait_queue_head_t *__cil_tmp2 ;
69475  void *__cil_tmp3 ;
69476
69477  {
69478  {
69479#line 175
69480  __cil_tmp1 = & device_event.count;
69481#line 175
69482  atomic_add(2, __cil_tmp1);
69483#line 176
69484  __cil_tmp2 = & device_event.wait;
69485#line 176
69486  __cil_tmp3 = (void *)0;
69487#line 176
69488  __wake_up(__cil_tmp2, 3U, 1, __cil_tmp3);
69489  }
69490#line 177
69491  return;
69492}
69493}
69494#line 179 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69495static char const   *class_decode(int class ) 
69496{ int ix ;
69497  int __cil_tmp3 ;
69498  int __cil_tmp4 ;
69499
69500  {
69501#line 183
69502  ix = 0;
69503#line 183
69504  goto ldv_27655;
69505  ldv_27654: ;
69506  {
69507#line 184
69508  __cil_tmp3 = (int )clas_info[ix].class;
69509#line 184
69510  if (__cil_tmp3 == class) {
69511#line 185
69512    goto ldv_27653;
69513  } else {
69514
69515  }
69516  }
69517#line 183
69518  ix = ix + 1;
69519  ldv_27655: ;
69520  {
69521#line 183
69522  __cil_tmp4 = (int )clas_info[ix].class;
69523#line 183
69524  if (__cil_tmp4 != -1) {
69525#line 184
69526    goto ldv_27654;
69527  } else {
69528#line 186
69529    goto ldv_27653;
69530  }
69531  }
69532  ldv_27653: ;
69533#line 186
69534  return ((char const   *)clas_info[ix].class_name);
69535}
69536}
69537#line 189 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69538static char *usb_dump_endpoint_descriptor(int speed , char *start , char *end , struct usb_endpoint_descriptor  const  *desc ) 
69539{ char dir ;
69540  char unit ;
69541  char *type ;
69542  unsigned int interval ;
69543  unsigned int bandwidth ;
69544  int tmp___0 ;
69545  int tmp___1 ;
69546  unsigned int tmp___2 ;
69547  int tmp___3 ;
69548  unsigned long __cil_tmp14 ;
69549  unsigned long __cil_tmp15 ;
69550  __le16 __cil_tmp16 ;
69551  int __cil_tmp17 ;
69552  int __cil_tmp18 ;
69553  __le16 __cil_tmp19 ;
69554  int __cil_tmp20 ;
69555  int __cil_tmp21 ;
69556  __u8 __cil_tmp22 ;
69557  __u8 __cil_tmp23 ;
69558  int __cil_tmp24 ;
69559  int __cil_tmp25 ;
69560  int __cil_tmp26 ;
69561  signed char __cil_tmp27 ;
69562  int __cil_tmp28 ;
69563  __u8 __cil_tmp29 ;
69564  __u8 __cil_tmp30 ;
69565  int __cil_tmp31 ;
69566  int __cil_tmp32 ;
69567  int __cil_tmp33 ;
69568  __u8 __cil_tmp34 ;
69569  int __cil_tmp35 ;
69570  int __cil_tmp36 ;
69571  int __cil_tmp37 ;
69572  __u8 __cil_tmp38 ;
69573  unsigned int __cil_tmp39 ;
69574  char const   *__cil_tmp40 ;
69575  __u8 __cil_tmp41 ;
69576  int __cil_tmp42 ;
69577  int __cil_tmp43 ;
69578  __u8 __cil_tmp44 ;
69579  int __cil_tmp45 ;
69580  __le16 __cil_tmp46 ;
69581  unsigned int __cil_tmp47 ;
69582  unsigned int __cil_tmp48 ;
69583  unsigned int __cil_tmp49 ;
69584  int __cil_tmp50 ;
69585  unsigned long __cil_tmp51 ;
69586
69587  {
69588#line 193
69589  bandwidth = 1U;
69590  {
69591#line 195
69592  __cil_tmp14 = (unsigned long )end;
69593#line 195
69594  __cil_tmp15 = (unsigned long )start;
69595#line 195
69596  if (__cil_tmp15 > __cil_tmp14) {
69597#line 196
69598    return (start);
69599  } else {
69600
69601  }
69602  }
69603  {
69604#line 198
69605  tmp___0 = usb_endpoint_dir_in(desc);
69606  }
69607#line 198
69608  if (tmp___0 != 0) {
69609#line 198
69610    dir = (char)73;
69611  } else {
69612#line 198
69613    dir = (char)79;
69614  }
69615#line 200
69616  if (speed == 3) {
69617    {
69618#line 202
69619    __cil_tmp16 = desc->wMaxPacketSize;
69620#line 202
69621    __cil_tmp17 = (int )__cil_tmp16;
69622#line 202
69623    __cil_tmp18 = __cil_tmp17 & 6144;
69624#line 202
69625    if (__cil_tmp18 == 2048) {
69626#line 202
69627      goto case_2048;
69628    } else {
69629      {
69630#line 204
69631      __cil_tmp19 = desc->wMaxPacketSize;
69632#line 204
69633      __cil_tmp20 = (int )__cil_tmp19;
69634#line 204
69635      __cil_tmp21 = __cil_tmp20 & 6144;
69636#line 204
69637      if (__cil_tmp21 == 4096) {
69638#line 204
69639        goto case_4096;
69640      } else
69641#line 201
69642      if (0) {
69643        case_2048: 
69644#line 203
69645        bandwidth = 2U;
69646#line 203
69647        goto ldv_27668;
69648        case_4096: 
69649#line 205
69650        bandwidth = 3U;
69651#line 205
69652        goto ldv_27668;
69653      } else {
69654
69655      }
69656      }
69657    }
69658    }
69659    ldv_27668: ;
69660  } else {
69661
69662  }
69663  {
69664#line 210
69665  tmp___1 = usb_endpoint_type(desc);
69666  }
69667#line 211
69668  if (tmp___1 == 0) {
69669#line 211
69670    goto case_0;
69671  } else
69672#line 219
69673  if (tmp___1 == 1) {
69674#line 219
69675    goto case_1;
69676  } else
69677#line 223
69678  if (tmp___1 == 2) {
69679#line 223
69680    goto case_2;
69681  } else
69682#line 230
69683  if (tmp___1 == 3) {
69684#line 230
69685    goto case_3;
69686  } else {
69687#line 237
69688    goto switch_default;
69689#line 210
69690    if (0) {
69691      case_0: 
69692#line 212
69693      type = (char *)"Ctrl";
69694#line 213
69695      if (speed == 3) {
69696#line 214
69697        __cil_tmp22 = desc->bInterval;
69698#line 214
69699        interval = (unsigned int )__cil_tmp22;
69700      } else {
69701#line 216
69702        interval = 0U;
69703      }
69704#line 217
69705      dir = (char)66;
69706#line 218
69707      goto ldv_27671;
69708      case_1: 
69709#line 220
69710      type = (char *)"Isoc";
69711#line 221
69712      __cil_tmp23 = desc->bInterval;
69713#line 221
69714      __cil_tmp24 = (int )__cil_tmp23;
69715#line 221
69716      __cil_tmp25 = __cil_tmp24 + -1;
69717#line 221
69718      __cil_tmp26 = 1 << __cil_tmp25;
69719#line 221
69720      interval = (unsigned int )__cil_tmp26;
69721#line 222
69722      goto ldv_27671;
69723      case_2: 
69724#line 224
69725      type = (char *)"Bulk";
69726#line 225
69727      if (speed == 3) {
69728        {
69729#line 225
69730        __cil_tmp27 = (signed char )dir;
69731#line 225
69732        __cil_tmp28 = (int )__cil_tmp27;
69733#line 225
69734        if (__cil_tmp28 == 79) {
69735#line 226
69736          __cil_tmp29 = desc->bInterval;
69737#line 226
69738          interval = (unsigned int )__cil_tmp29;
69739        } else {
69740#line 228
69741          interval = 0U;
69742        }
69743        }
69744      } else {
69745#line 228
69746        interval = 0U;
69747      }
69748#line 229
69749      goto ldv_27671;
69750      case_3: 
69751#line 231
69752      type = (char *)"Int.";
69753#line 232
69754      if (speed == 3) {
69755#line 233
69756        __cil_tmp30 = desc->bInterval;
69757#line 233
69758        __cil_tmp31 = (int )__cil_tmp30;
69759#line 233
69760        __cil_tmp32 = __cil_tmp31 + -1;
69761#line 233
69762        __cil_tmp33 = 1 << __cil_tmp32;
69763#line 233
69764        interval = (unsigned int )__cil_tmp33;
69765      } else
69766#line 232
69767      if (speed == 5) {
69768#line 233
69769        __cil_tmp34 = desc->bInterval;
69770#line 233
69771        __cil_tmp35 = (int )__cil_tmp34;
69772#line 233
69773        __cil_tmp36 = __cil_tmp35 + -1;
69774#line 233
69775        __cil_tmp37 = 1 << __cil_tmp36;
69776#line 233
69777        interval = (unsigned int )__cil_tmp37;
69778      } else {
69779#line 235
69780        __cil_tmp38 = desc->bInterval;
69781#line 235
69782        interval = (unsigned int )__cil_tmp38;
69783      }
69784#line 236
69785      goto ldv_27671;
69786      switch_default: ;
69787#line 238
69788      return (start);
69789    } else {
69790
69791    }
69792  }
69793  ldv_27671: ;
69794#line 240
69795  if (speed == 3) {
69796#line 240
69797    tmp___2 = 125U;
69798  } else
69799#line 240
69800  if (speed == 5) {
69801#line 240
69802    tmp___2 = 125U;
69803  } else {
69804#line 240
69805    tmp___2 = 1000U;
69806  }
69807#line 240
69808  interval = tmp___2 * interval;
69809  {
69810#line 242
69811  __cil_tmp39 = interval % 1000U;
69812#line 242
69813  if (__cil_tmp39 != 0U) {
69814#line 243
69815    unit = (char)117;
69816  } else {
69817#line 245
69818    unit = (char)109;
69819#line 246
69820    interval = interval / 1000U;
69821  }
69822  }
69823  {
69824#line 249
69825  __cil_tmp40 = (char const   *)(& format_endpt);
69826#line 249
69827  __cil_tmp41 = desc->bEndpointAddress;
69828#line 249
69829  __cil_tmp42 = (int )__cil_tmp41;
69830#line 249
69831  __cil_tmp43 = (int )dir;
69832#line 249
69833  __cil_tmp44 = desc->bmAttributes;
69834#line 249
69835  __cil_tmp45 = (int )__cil_tmp44;
69836#line 249
69837  __cil_tmp46 = desc->wMaxPacketSize;
69838#line 249
69839  __cil_tmp47 = (unsigned int )__cil_tmp46;
69840#line 249
69841  __cil_tmp48 = __cil_tmp47 & 2047U;
69842#line 249
69843  __cil_tmp49 = __cil_tmp48 * bandwidth;
69844#line 249
69845  __cil_tmp50 = (int )unit;
69846#line 249
69847  tmp___3 = sprintf(start, __cil_tmp40, __cil_tmp42, __cil_tmp43, __cil_tmp45, type,
69848                    __cil_tmp49, interval, __cil_tmp50);
69849#line 249
69850  __cil_tmp51 = (unsigned long )tmp___3;
69851#line 249
69852  start = start + __cil_tmp51;
69853  }
69854#line 254
69855  return (start);
69856}
69857}
69858#line 257 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
69859static char *usb_dump_interface_descriptor(char *start , char *end , struct usb_interface_cache  const  *intfc ,
69860                                           struct usb_interface  const  *iface , int setno ) 
69861{ struct usb_interface_descriptor  const  *desc ;
69862  char const   *driver_name ;
69863  int active ;
69864  char const   *tmp ;
69865  int tmp___0 ;
69866  int tmp___1 ;
69867  unsigned long __cil_tmp12 ;
69868  unsigned long __cil_tmp13 ;
69869  struct usb_interface  const  *__cil_tmp14 ;
69870  unsigned long __cil_tmp15 ;
69871  unsigned long __cil_tmp16 ;
69872  struct device_driver *__cil_tmp17 ;
69873  unsigned long __cil_tmp18 ;
69874  struct device_driver *__cil_tmp19 ;
69875  unsigned long __cil_tmp20 ;
69876  struct device_driver *__cil_tmp21 ;
69877  unsigned long __cil_tmp22 ;
69878  struct usb_host_interface *__cil_tmp23 ;
69879  struct usb_interface_descriptor *__cil_tmp24 ;
69880  struct usb_interface_descriptor  const  *__cil_tmp25 ;
69881  unsigned long __cil_tmp26 ;
69882  __u8 __cil_tmp27 ;
69883  int __cil_tmp28 ;
69884  int __cil_tmp29 ;
69885  char const   *__cil_tmp30 ;
69886  __u8 __cil_tmp31 ;
69887  int __cil_tmp32 ;
69888  __u8 __cil_tmp33 ;
69889  int __cil_tmp34 ;
69890  __u8 __cil_tmp35 ;
69891  int __cil_tmp36 ;
69892  __u8 __cil_tmp37 ;
69893  int __cil_tmp38 ;
69894  __u8 __cil_tmp39 ;
69895  int __cil_tmp40 ;
69896  __u8 __cil_tmp41 ;
69897  int __cil_tmp42 ;
69898  unsigned long __cil_tmp43 ;
69899
69900  {
69901#line 263
69902  driver_name = "";
69903#line 264
69904  active = 0;
69905  {
69906#line 266
69907  __cil_tmp12 = (unsigned long )end;
69908#line 266
69909  __cil_tmp13 = (unsigned long )start;
69910#line 266
69911  if (__cil_tmp13 > __cil_tmp12) {
69912#line 267
69913    return (start);
69914  } else {
69915
69916  }
69917  }
69918#line 268
69919  desc = & intfc->altsetting[setno].desc;
69920  {
69921#line 269
69922  __cil_tmp14 = (struct usb_interface  const  *)0;
69923#line 269
69924  __cil_tmp15 = (unsigned long )__cil_tmp14;
69925#line 269
69926  __cil_tmp16 = (unsigned long )iface;
69927#line 269
69928  if (__cil_tmp16 != __cil_tmp15) {
69929    {
69930#line 270
69931    __cil_tmp17 = (struct device_driver * const  )0;
69932#line 270
69933    __cil_tmp18 = (unsigned long )__cil_tmp17;
69934#line 270
69935    __cil_tmp19 = iface->dev.driver;
69936#line 270
69937    __cil_tmp20 = (unsigned long )__cil_tmp19;
69938#line 270
69939    if (__cil_tmp20 != __cil_tmp18) {
69940#line 270
69941      __cil_tmp21 = iface->dev.driver;
69942#line 270
69943      driver_name = __cil_tmp21->name;
69944    } else {
69945#line 270
69946      driver_name = "(none)";
69947    }
69948    }
69949#line 273
69950    __cil_tmp22 = (unsigned long )desc;
69951#line 273
69952    __cil_tmp23 = iface->cur_altsetting;
69953#line 273
69954    __cil_tmp24 = & __cil_tmp23->desc;
69955#line 273
69956    __cil_tmp25 = (struct usb_interface_descriptor  const  *)__cil_tmp24;
69957#line 273
69958    __cil_tmp26 = (unsigned long )__cil_tmp25;
69959#line 273
69960    active = __cil_tmp26 == __cil_tmp22;
69961  } else {
69962
69963  }
69964  }
69965  {
69966#line 275
69967  __cil_tmp27 = desc->bInterfaceClass;
69968#line 275
69969  __cil_tmp28 = (int const   )__cil_tmp27;
69970#line 275
69971  __cil_tmp29 = (int )__cil_tmp28;
69972#line 275
69973  tmp = class_decode(__cil_tmp29);
69974  }
69975#line 275
69976  if (active != 0) {
69977#line 275
69978    tmp___0 = 42;
69979  } else {
69980#line 275
69981    tmp___0 = 32;
69982  }
69983  {
69984#line 275
69985  __cil_tmp30 = (char const   *)(& format_iface);
69986#line 275
69987  __cil_tmp31 = desc->bInterfaceNumber;
69988#line 275
69989  __cil_tmp32 = (int )__cil_tmp31;
69990#line 275
69991  __cil_tmp33 = desc->bAlternateSetting;
69992#line 275
69993  __cil_tmp34 = (int )__cil_tmp33;
69994#line 275
69995  __cil_tmp35 = desc->bNumEndpoints;
69996#line 275
69997  __cil_tmp36 = (int )__cil_tmp35;
69998#line 275
69999  __cil_tmp37 = desc->bInterfaceClass;
70000#line 275
70001  __cil_tmp38 = (int )__cil_tmp37;
70002#line 275
70003  __cil_tmp39 = desc->bInterfaceSubClass;
70004#line 275
70005  __cil_tmp40 = (int )__cil_tmp39;
70006#line 275
70007  __cil_tmp41 = desc->bInterfaceProtocol;
70008#line 275
70009  __cil_tmp42 = (int )__cil_tmp41;
70010#line 275
70011  tmp___1 = sprintf(start, __cil_tmp30, tmp___0, __cil_tmp32, __cil_tmp34, __cil_tmp36,
70012                    __cil_tmp38, tmp, __cil_tmp40, __cil_tmp42, driver_name);
70013#line 275
70014  __cil_tmp43 = (unsigned long )tmp___1;
70015#line 275
70016  start = start + __cil_tmp43;
70017  }
70018#line 285
70019  return (start);
70020}
70021}
70022#line 288 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
70023static char *usb_dump_interface(int speed , char *start , char *end , struct usb_interface_cache  const  *intfc ,
70024                                struct usb_interface  const  *iface , int setno ) 
70025{ struct usb_host_interface  const  *desc ;
70026  int i ;
70027  unsigned long __cil_tmp9 ;
70028  struct usb_host_interface (*__cil_tmp10)[0U] ;
70029  struct usb_host_interface  const  *__cil_tmp11 ;
70030  unsigned long __cil_tmp12 ;
70031  unsigned long __cil_tmp13 ;
70032  unsigned long __cil_tmp14 ;
70033  struct usb_host_endpoint *__cil_tmp15 ;
70034  struct usb_host_endpoint *__cil_tmp16 ;
70035  struct usb_endpoint_descriptor *__cil_tmp17 ;
70036  struct usb_endpoint_descriptor  const  *__cil_tmp18 ;
70037  __u8 __cil_tmp19 ;
70038  int __cil_tmp20 ;
70039
70040  {
70041  {
70042#line 292
70043  __cil_tmp9 = (unsigned long )setno;
70044#line 292
70045  __cil_tmp10 = & intfc->altsetting;
70046#line 292
70047  __cil_tmp11 = (struct usb_host_interface  const  *)__cil_tmp10;
70048#line 292
70049  desc = __cil_tmp11 + __cil_tmp9;
70050#line 295
70051  start = usb_dump_interface_descriptor(start, end, intfc, iface, setno);
70052#line 296
70053  i = 0;
70054  }
70055#line 296
70056  goto ldv_27697;
70057  ldv_27696: ;
70058  {
70059#line 297
70060  __cil_tmp12 = (unsigned long )end;
70061#line 297
70062  __cil_tmp13 = (unsigned long )start;
70063#line 297
70064  if (__cil_tmp13 > __cil_tmp12) {
70065#line 298
70066    return (start);
70067  } else {
70068
70069  }
70070  }
70071  {
70072#line 299
70073  __cil_tmp14 = (unsigned long )i;
70074#line 299
70075  __cil_tmp15 = desc->endpoint;
70076#line 299
70077  __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
70078#line 299
70079  __cil_tmp17 = & __cil_tmp16->desc;
70080#line 299
70081  __cil_tmp18 = (struct usb_endpoint_descriptor  const  *)__cil_tmp17;
70082#line 299
70083  start = usb_dump_endpoint_descriptor(speed, start, end, __cil_tmp18);
70084#line 296
70085  i = i + 1;
70086  }
70087  ldv_27697: ;
70088  {
70089#line 296
70090  __cil_tmp19 = desc->desc.bNumEndpoints;
70091#line 296
70092  __cil_tmp20 = (int )__cil_tmp19;
70093#line 296
70094  if (__cil_tmp20 > i) {
70095#line 297
70096    goto ldv_27696;
70097  } else {
70098#line 299
70099    goto ldv_27698;
70100  }
70101  }
70102  ldv_27698: ;
70103#line 302
70104  return (start);
70105}
70106}
70107#line 305 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
70108static char *usb_dump_iad_descriptor(char *start , char *end , struct usb_interface_assoc_descriptor  const  *iad ) 
70109{ char const   *tmp ;
70110  int tmp___0 ;
70111  unsigned long __cil_tmp6 ;
70112  unsigned long __cil_tmp7 ;
70113  __u8 __cil_tmp8 ;
70114  int __cil_tmp9 ;
70115  int __cil_tmp10 ;
70116  char const   *__cil_tmp11 ;
70117  __u8 __cil_tmp12 ;
70118  int __cil_tmp13 ;
70119  __u8 __cil_tmp14 ;
70120  int __cil_tmp15 ;
70121  __u8 __cil_tmp16 ;
70122  int __cil_tmp17 ;
70123  __u8 __cil_tmp18 ;
70124  int __cil_tmp19 ;
70125  __u8 __cil_tmp20 ;
70126  int __cil_tmp21 ;
70127  unsigned long __cil_tmp22 ;
70128
70129  {
70130  {
70131#line 308
70132  __cil_tmp6 = (unsigned long )end;
70133#line 308
70134  __cil_tmp7 = (unsigned long )start;
70135#line 308
70136  if (__cil_tmp7 > __cil_tmp6) {
70137#line 309
70138    return (start);
70139  } else {
70140
70141  }
70142  }
70143  {
70144#line 310
70145  __cil_tmp8 = iad->bFunctionClass;
70146#line 310
70147  __cil_tmp9 = (int const   )__cil_tmp8;
70148#line 310
70149  __cil_tmp10 = (int )__cil_tmp9;
70150#line 310
70151  tmp = class_decode(__cil_tmp10);
70152#line 310
70153  __cil_tmp11 = (char const   *)(& format_iad);
70154#line 310
70155  __cil_tmp12 = iad->bFirstInterface;
70156#line 310
70157  __cil_tmp13 = (int )__cil_tmp12;
70158#line 310
70159  __cil_tmp14 = iad->bInterfaceCount;
70160#line 310
70161  __cil_tmp15 = (int )__cil_tmp14;
70162#line 310
70163  __cil_tmp16 = iad->bFunctionClass;
70164#line 310
70165  __cil_tmp17 = (int )__cil_tmp16;
70166#line 310
70167  __cil_tmp18 = iad->bFunctionSubClass;
70168#line 310
70169  __cil_tmp19 = (int )__cil_tmp18;
70170#line 310
70171  __cil_tmp20 = iad->bFunctionProtocol;
70172#line 310
70173  __cil_tmp21 = (int )__cil_tmp20;
70174#line 310
70175  tmp___0 = sprintf(start, __cil_tmp11, __cil_tmp13, __cil_tmp15, __cil_tmp17, tmp,
70176                    __cil_tmp19, __cil_tmp21);
70177#line 310
70178  __cil_tmp22 = (unsigned long )tmp___0;
70179#line 310
70180  start = start + __cil_tmp22;
70181  }
70182#line 317
70183  return (start);
70184}
70185}
70186#line 325 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
70187static char *usb_dump_config_descriptor(char *start , char *end , struct usb_config_descriptor  const  *desc ,
70188                                        int active ) 
70189{ int tmp ;
70190  int tmp___0 ;
70191  unsigned long __cil_tmp7 ;
70192  unsigned long __cil_tmp8 ;
70193  char const   *__cil_tmp9 ;
70194  __u8 __cil_tmp10 ;
70195  int __cil_tmp11 ;
70196  __u8 __cil_tmp12 ;
70197  int __cil_tmp13 ;
70198  __u8 __cil_tmp14 ;
70199  int __cil_tmp15 ;
70200  __u8 __cil_tmp16 ;
70201  int __cil_tmp17 ;
70202  int __cil_tmp18 ;
70203  unsigned long __cil_tmp19 ;
70204
70205  {
70206  {
70207#line 329
70208  __cil_tmp7 = (unsigned long )end;
70209#line 329
70210  __cil_tmp8 = (unsigned long )start;
70211#line 329
70212  if (__cil_tmp8 > __cil_tmp7) {
70213#line 330
70214    return (start);
70215  } else {
70216
70217  }
70218  }
70219#line 331
70220  if (active != 0) {
70221#line 331
70222    tmp = 42;
70223  } else {
70224#line 331
70225    tmp = 32;
70226  }
70227  {
70228#line 331
70229  __cil_tmp9 = (char const   *)(& format_config);
70230#line 331
70231  __cil_tmp10 = desc->bNumInterfaces;
70232#line 331
70233  __cil_tmp11 = (int )__cil_tmp10;
70234#line 331
70235  __cil_tmp12 = desc->bConfigurationValue;
70236#line 331
70237  __cil_tmp13 = (int )__cil_tmp12;
70238#line 331
70239  __cil_tmp14 = desc->bmAttributes;
70240#line 331
70241  __cil_tmp15 = (int )__cil_tmp14;
70242#line 331
70243  __cil_tmp16 = desc->bMaxPower;
70244#line 331
70245  __cil_tmp17 = (int )__cil_tmp16;
70246#line 331
70247  __cil_tmp18 = __cil_tmp17 * 2;
70248#line 331
70249  tmp___0 = sprintf(start, __cil_tmp9, tmp, __cil_tmp11, __cil_tmp13, __cil_tmp15,
70250                    __cil_tmp18);
70251#line 331
70252  __cil_tmp19 = (unsigned long )tmp___0;
70253#line 331
70254  start = start + __cil_tmp19;
70255  }
70256#line 338
70257  return (start);
70258}
70259}
70260#line 341 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
70261static char *usb_dump_config(int speed , char *start , char *end , struct usb_host_config  const  *config ,
70262                             int active ) 
70263{ int i ;
70264  int j ;
70265  struct usb_interface_cache *intfc ;
70266  struct usb_interface *interface ;
70267  int tmp ;
70268  unsigned long __cil_tmp11 ;
70269  unsigned long __cil_tmp12 ;
70270  struct usb_host_config  const  *__cil_tmp13 ;
70271  unsigned long __cil_tmp14 ;
70272  unsigned long __cil_tmp15 ;
70273  unsigned long __cil_tmp16 ;
70274  struct usb_config_descriptor  const  *__cil_tmp17 ;
70275  struct usb_interface_assoc_descriptor *__cil_tmp18 ;
70276  unsigned long __cil_tmp19 ;
70277  struct usb_interface_assoc_descriptor *__cil_tmp20 ;
70278  unsigned long __cil_tmp21 ;
70279  struct usb_interface_assoc_descriptor *__cil_tmp22 ;
70280  struct usb_interface_assoc_descriptor  const  *__cil_tmp23 ;
70281  unsigned long __cil_tmp24 ;
70282  unsigned long __cil_tmp25 ;
70283  struct usb_interface_cache  const  *__cil_tmp26 ;
70284  struct usb_interface  const  *__cil_tmp27 ;
70285  unsigned int __cil_tmp28 ;
70286  unsigned int __cil_tmp29 ;
70287  __u8 __cil_tmp30 ;
70288  int __cil_tmp31 ;
70289
70290  {
70291  {
70292#line 348
70293  __cil_tmp11 = (unsigned long )end;
70294#line 348
70295  __cil_tmp12 = (unsigned long )start;
70296#line 348
70297  if (__cil_tmp12 > __cil_tmp11) {
70298#line 349
70299    return (start);
70300  } else {
70301
70302  }
70303  }
70304  {
70305#line 350
70306  __cil_tmp13 = (struct usb_host_config  const  *)0;
70307#line 350
70308  __cil_tmp14 = (unsigned long )__cil_tmp13;
70309#line 350
70310  __cil_tmp15 = (unsigned long )config;
70311#line 350
70312  if (__cil_tmp15 == __cil_tmp14) {
70313    {
70314#line 352
70315    tmp = sprintf(start, "(null Cfg. desc.)\n");
70316    }
70317    {
70318#line 352
70319    __cil_tmp16 = (unsigned long )tmp;
70320#line 352
70321    return (start + __cil_tmp16);
70322    }
70323  } else {
70324
70325  }
70326  }
70327  {
70328#line 353
70329  __cil_tmp17 = & config->desc;
70330#line 353
70331  start = usb_dump_config_descriptor(start, end, __cil_tmp17, active);
70332#line 354
70333  i = 0;
70334  }
70335#line 354
70336  goto ldv_27723;
70337  ldv_27722: ;
70338  {
70339#line 355
70340  __cil_tmp18 = (struct usb_interface_assoc_descriptor *)0;
70341#line 355
70342  __cil_tmp19 = (unsigned long )__cil_tmp18;
70343#line 355
70344  __cil_tmp20 = config->intf_assoc[i];
70345#line 355
70346  __cil_tmp21 = (unsigned long )__cil_tmp20;
70347#line 355
70348  if (__cil_tmp21 == __cil_tmp19) {
70349#line 356
70350    goto ldv_27721;
70351  } else {
70352
70353  }
70354  }
70355  {
70356#line 357
70357  __cil_tmp22 = config->intf_assoc[i];
70358#line 357
70359  __cil_tmp23 = (struct usb_interface_assoc_descriptor  const  *)__cil_tmp22;
70360#line 357
70361  start = usb_dump_iad_descriptor(start, end, __cil_tmp23);
70362#line 354
70363  i = i + 1;
70364  }
70365  ldv_27723: ;
70366#line 354
70367  if (i <= 15) {
70368#line 355
70369    goto ldv_27722;
70370  } else {
70371#line 357
70372    goto ldv_27721;
70373  }
70374  ldv_27721: 
70375#line 360
70376  i = 0;
70377#line 360
70378  goto ldv_27728;
70379  ldv_27727: 
70380#line 361
70381  intfc = config->intf_cache[i];
70382#line 362
70383  interface = config->interface[i];
70384#line 363
70385  j = 0;
70386#line 363
70387  goto ldv_27725;
70388  ldv_27724: ;
70389  {
70390#line 364
70391  __cil_tmp24 = (unsigned long )end;
70392#line 364
70393  __cil_tmp25 = (unsigned long )start;
70394#line 364
70395  if (__cil_tmp25 > __cil_tmp24) {
70396#line 365
70397    return (start);
70398  } else {
70399
70400  }
70401  }
70402  {
70403#line 366
70404  __cil_tmp26 = (struct usb_interface_cache  const  *)intfc;
70405#line 366
70406  __cil_tmp27 = (struct usb_interface  const  *)interface;
70407#line 366
70408  start = usb_dump_interface(speed, start, end, __cil_tmp26, __cil_tmp27, j);
70409#line 363
70410  j = j + 1;
70411  }
70412  ldv_27725: ;
70413  {
70414#line 363
70415  __cil_tmp28 = intfc->num_altsetting;
70416#line 363
70417  __cil_tmp29 = (unsigned int )j;
70418#line 363
70419  if (__cil_tmp29 < __cil_tmp28) {
70420#line 364
70421    goto ldv_27724;
70422  } else {
70423#line 366
70424    goto ldv_27726;
70425  }
70426  }
70427  ldv_27726: 
70428#line 360
70429  i = i + 1;
70430  ldv_27728: ;
70431  {
70432#line 360
70433  __cil_tmp30 = config->desc.bNumInterfaces;
70434#line 360
70435  __cil_tmp31 = (int )__cil_tmp30;
70436#line 360
70437  if (__cil_tmp31 > i) {
70438#line 361
70439    goto ldv_27727;
70440  } else {
70441#line 363
70442    goto ldv_27729;
70443  }
70444  }
70445  ldv_27729: ;
70446#line 370
70447  return (start);
70448}
70449}
70450#line 376 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
70451static char *usb_dump_device_descriptor(char *start , char *end , struct usb_device_descriptor  const  *desc ) 
70452{ u16 bcdUSB ;
70453  u16 bcdDevice ;
70454  char const   *tmp ;
70455  int tmp___0 ;
70456  int tmp___1 ;
70457  __le16 __cil_tmp9 ;
70458  __le16 __cil_tmp10 ;
70459  unsigned long __cil_tmp11 ;
70460  unsigned long __cil_tmp12 ;
70461  __u8 __cil_tmp13 ;
70462  int __cil_tmp14 ;
70463  int __cil_tmp15 ;
70464  char const   *__cil_tmp16 ;
70465  int __cil_tmp17 ;
70466  int __cil_tmp18 ;
70467  int __cil_tmp19 ;
70468  int __cil_tmp20 ;
70469  __u8 __cil_tmp21 ;
70470  int __cil_tmp22 ;
70471  __u8 __cil_tmp23 ;
70472  int __cil_tmp24 ;
70473  __u8 __cil_tmp25 ;
70474  int __cil_tmp26 ;
70475  __u8 __cil_tmp27 ;
70476  int __cil_tmp28 ;
70477  __u8 __cil_tmp29 ;
70478  int __cil_tmp30 ;
70479  unsigned long __cil_tmp31 ;
70480  unsigned long __cil_tmp32 ;
70481  unsigned long __cil_tmp33 ;
70482  char const   *__cil_tmp34 ;
70483  __le16 __cil_tmp35 ;
70484  int __cil_tmp36 ;
70485  __le16 __cil_tmp37 ;
70486  int __cil_tmp38 ;
70487  int __cil_tmp39 ;
70488  int __cil_tmp40 ;
70489  int __cil_tmp41 ;
70490  int __cil_tmp42 ;
70491  unsigned long __cil_tmp43 ;
70492
70493  {
70494#line 379
70495  __cil_tmp9 = desc->bcdUSB;
70496#line 379
70497  bcdUSB = (u16 )__cil_tmp9;
70498#line 380
70499  __cil_tmp10 = desc->bcdDevice;
70500#line 380
70501  bcdDevice = (u16 )__cil_tmp10;
70502  {
70503#line 382
70504  __cil_tmp11 = (unsigned long )end;
70505#line 382
70506  __cil_tmp12 = (unsigned long )start;
70507#line 382
70508  if (__cil_tmp12 > __cil_tmp11) {
70509#line 383
70510    return (start);
70511  } else {
70512
70513  }
70514  }
70515  {
70516#line 384
70517  __cil_tmp13 = desc->bDeviceClass;
70518#line 384
70519  __cil_tmp14 = (int const   )__cil_tmp13;
70520#line 384
70521  __cil_tmp15 = (int )__cil_tmp14;
70522#line 384
70523  tmp = class_decode(__cil_tmp15);
70524#line 384
70525  __cil_tmp16 = (char const   *)(& format_device1);
70526#line 384
70527  __cil_tmp17 = (int )bcdUSB;
70528#line 384
70529  __cil_tmp18 = __cil_tmp17 >> 8;
70530#line 384
70531  __cil_tmp19 = (int )bcdUSB;
70532#line 384
70533  __cil_tmp20 = __cil_tmp19 & 255;
70534#line 384
70535  __cil_tmp21 = desc->bDeviceClass;
70536#line 384
70537  __cil_tmp22 = (int )__cil_tmp21;
70538#line 384
70539  __cil_tmp23 = desc->bDeviceSubClass;
70540#line 384
70541  __cil_tmp24 = (int )__cil_tmp23;
70542#line 384
70543  __cil_tmp25 = desc->bDeviceProtocol;
70544#line 384
70545  __cil_tmp26 = (int )__cil_tmp25;
70546#line 384
70547  __cil_tmp27 = desc->bMaxPacketSize0;
70548#line 384
70549  __cil_tmp28 = (int )__cil_tmp27;
70550#line 384
70551  __cil_tmp29 = desc->bNumConfigurations;
70552#line 384
70553  __cil_tmp30 = (int )__cil_tmp29;
70554#line 384
70555  tmp___0 = sprintf(start, __cil_tmp16, __cil_tmp18, __cil_tmp20, __cil_tmp22, tmp,
70556                    __cil_tmp24, __cil_tmp26, __cil_tmp28, __cil_tmp30);
70557#line 384
70558  __cil_tmp31 = (unsigned long )tmp___0;
70559#line 384
70560  start = start + __cil_tmp31;
70561  }
70562  {
70563#line 392
70564  __cil_tmp32 = (unsigned long )end;
70565#line 392
70566  __cil_tmp33 = (unsigned long )start;
70567#line 392
70568  if (__cil_tmp33 > __cil_tmp32) {
70569#line 393
70570    return (start);
70571  } else {
70572
70573  }
70574  }
70575  {
70576#line 394
70577  __cil_tmp34 = (char const   *)(& format_device2);
70578#line 394
70579  __cil_tmp35 = desc->idVendor;
70580#line 394
70581  __cil_tmp36 = (int )__cil_tmp35;
70582#line 394
70583  __cil_tmp37 = desc->idProduct;
70584#line 394
70585  __cil_tmp38 = (int )__cil_tmp37;
70586#line 394
70587  __cil_tmp39 = (int )bcdDevice;
70588#line 394
70589  __cil_tmp40 = __cil_tmp39 >> 8;
70590#line 394
70591  __cil_tmp41 = (int )bcdDevice;
70592#line 394
70593  __cil_tmp42 = __cil_tmp41 & 255;
70594#line 394
70595  tmp___1 = sprintf(start, __cil_tmp34, __cil_tmp36, __cil_tmp38, __cil_tmp40, __cil_tmp42);
70596#line 394
70597  __cil_tmp43 = (unsigned long )tmp___1;
70598#line 394
70599  start = start + __cil_tmp43;
70600  }
70601#line 398
70602  return (start);
70603}
70604}
70605#line 404 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
70606static char *usb_dump_device_strings(char *start , char *end , struct usb_device *dev ) 
70607{ int tmp ;
70608  int tmp___0 ;
70609  int tmp___1 ;
70610  unsigned long __cil_tmp7 ;
70611  unsigned long __cil_tmp8 ;
70612  char *__cil_tmp9 ;
70613  unsigned long __cil_tmp10 ;
70614  char *__cil_tmp11 ;
70615  unsigned long __cil_tmp12 ;
70616  char const   *__cil_tmp13 ;
70617  char *__cil_tmp14 ;
70618  unsigned long __cil_tmp15 ;
70619  unsigned long __cil_tmp16 ;
70620  unsigned long __cil_tmp17 ;
70621  char *__cil_tmp18 ;
70622  unsigned long __cil_tmp19 ;
70623  char *__cil_tmp20 ;
70624  unsigned long __cil_tmp21 ;
70625  char const   *__cil_tmp22 ;
70626  char *__cil_tmp23 ;
70627  unsigned long __cil_tmp24 ;
70628  unsigned long __cil_tmp25 ;
70629  unsigned long __cil_tmp26 ;
70630  char *__cil_tmp27 ;
70631  unsigned long __cil_tmp28 ;
70632  char *__cil_tmp29 ;
70633  unsigned long __cil_tmp30 ;
70634  char const   *__cil_tmp31 ;
70635  char *__cil_tmp32 ;
70636  unsigned long __cil_tmp33 ;
70637
70638  {
70639  {
70640#line 407
70641  __cil_tmp7 = (unsigned long )end;
70642#line 407
70643  __cil_tmp8 = (unsigned long )start;
70644#line 407
70645  if (__cil_tmp8 > __cil_tmp7) {
70646#line 408
70647    return (start);
70648  } else {
70649
70650  }
70651  }
70652  {
70653#line 409
70654  __cil_tmp9 = (char *)0;
70655#line 409
70656  __cil_tmp10 = (unsigned long )__cil_tmp9;
70657#line 409
70658  __cil_tmp11 = dev->manufacturer;
70659#line 409
70660  __cil_tmp12 = (unsigned long )__cil_tmp11;
70661#line 409
70662  if (__cil_tmp12 != __cil_tmp10) {
70663    {
70664#line 410
70665    __cil_tmp13 = (char const   *)(& format_string_manufacturer);
70666#line 410
70667    __cil_tmp14 = dev->manufacturer;
70668#line 410
70669    tmp = sprintf(start, __cil_tmp13, __cil_tmp14);
70670#line 410
70671    __cil_tmp15 = (unsigned long )tmp;
70672#line 410
70673    start = start + __cil_tmp15;
70674    }
70675  } else {
70676
70677  }
70678  }
70679  {
70680#line 412
70681  __cil_tmp16 = (unsigned long )end;
70682#line 412
70683  __cil_tmp17 = (unsigned long )start;
70684#line 412
70685  if (__cil_tmp17 > __cil_tmp16) {
70686#line 413
70687    goto out;
70688  } else {
70689
70690  }
70691  }
70692  {
70693#line 414
70694  __cil_tmp18 = (char *)0;
70695#line 414
70696  __cil_tmp19 = (unsigned long )__cil_tmp18;
70697#line 414
70698  __cil_tmp20 = dev->product;
70699#line 414
70700  __cil_tmp21 = (unsigned long )__cil_tmp20;
70701#line 414
70702  if (__cil_tmp21 != __cil_tmp19) {
70703    {
70704#line 415
70705    __cil_tmp22 = (char const   *)(& format_string_product);
70706#line 415
70707    __cil_tmp23 = dev->product;
70708#line 415
70709    tmp___0 = sprintf(start, __cil_tmp22, __cil_tmp23);
70710#line 415
70711    __cil_tmp24 = (unsigned long )tmp___0;
70712#line 415
70713    start = start + __cil_tmp24;
70714    }
70715  } else {
70716
70717  }
70718  }
70719  {
70720#line 416
70721  __cil_tmp25 = (unsigned long )end;
70722#line 416
70723  __cil_tmp26 = (unsigned long )start;
70724#line 416
70725  if (__cil_tmp26 > __cil_tmp25) {
70726#line 417
70727    goto out;
70728  } else {
70729
70730  }
70731  }
70732  {
70733#line 419
70734  __cil_tmp27 = (char *)0;
70735#line 419
70736  __cil_tmp28 = (unsigned long )__cil_tmp27;
70737#line 419
70738  __cil_tmp29 = dev->serial;
70739#line 419
70740  __cil_tmp30 = (unsigned long )__cil_tmp29;
70741#line 419
70742  if (__cil_tmp30 != __cil_tmp28) {
70743    {
70744#line 420
70745    __cil_tmp31 = (char const   *)(& format_string_serialnumber);
70746#line 420
70747    __cil_tmp32 = dev->serial;
70748#line 420
70749    tmp___1 = sprintf(start, __cil_tmp31, __cil_tmp32);
70750#line 420
70751    __cil_tmp33 = (unsigned long )tmp___1;
70752#line 420
70753    start = start + __cil_tmp33;
70754    }
70755  } else {
70756
70757  }
70758  }
70759  out: ;
70760#line 424
70761  return (start);
70762}
70763}
70764#line 427 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
70765static char *usb_dump_desc(char *start , char *end , struct usb_device *dev ) 
70766{ int i ;
70767  unsigned long __cil_tmp5 ;
70768  unsigned long __cil_tmp6 ;
70769  struct usb_device_descriptor *__cil_tmp7 ;
70770  struct usb_device_descriptor  const  *__cil_tmp8 ;
70771  unsigned long __cil_tmp9 ;
70772  unsigned long __cil_tmp10 ;
70773  unsigned long __cil_tmp11 ;
70774  unsigned long __cil_tmp12 ;
70775  enum usb_device_speed __cil_tmp13 ;
70776  int __cil_tmp14 ;
70777  unsigned long __cil_tmp15 ;
70778  struct usb_host_config *__cil_tmp16 ;
70779  struct usb_host_config  const  *__cil_tmp17 ;
70780  struct usb_host_config  const  *__cil_tmp18 ;
70781  struct usb_host_config *__cil_tmp19 ;
70782  unsigned long __cil_tmp20 ;
70783  unsigned long __cil_tmp21 ;
70784  struct usb_host_config *__cil_tmp22 ;
70785  struct usb_host_config *__cil_tmp23 ;
70786  unsigned long __cil_tmp24 ;
70787  int __cil_tmp25 ;
70788  __u8 __cil_tmp26 ;
70789  int __cil_tmp27 ;
70790
70791  {
70792  {
70793#line 431
70794  __cil_tmp5 = (unsigned long )end;
70795#line 431
70796  __cil_tmp6 = (unsigned long )start;
70797#line 431
70798  if (__cil_tmp6 > __cil_tmp5) {
70799#line 432
70800    return (start);
70801  } else {
70802
70803  }
70804  }
70805  {
70806#line 434
70807  __cil_tmp7 = & dev->descriptor;
70808#line 434
70809  __cil_tmp8 = (struct usb_device_descriptor  const  *)__cil_tmp7;
70810#line 434
70811  start = usb_dump_device_descriptor(start, end, __cil_tmp8);
70812  }
70813  {
70814#line 436
70815  __cil_tmp9 = (unsigned long )end;
70816#line 436
70817  __cil_tmp10 = (unsigned long )start;
70818#line 436
70819  if (__cil_tmp10 > __cil_tmp9) {
70820#line 437
70821    return (start);
70822  } else {
70823
70824  }
70825  }
70826  {
70827#line 439
70828  start = usb_dump_device_strings(start, end, dev);
70829#line 441
70830  i = 0;
70831  }
70832#line 441
70833  goto ldv_27750;
70834  ldv_27749: ;
70835  {
70836#line 442
70837  __cil_tmp11 = (unsigned long )end;
70838#line 442
70839  __cil_tmp12 = (unsigned long )start;
70840#line 442
70841  if (__cil_tmp12 > __cil_tmp11) {
70842#line 443
70843    return (start);
70844  } else {
70845
70846  }
70847  }
70848  {
70849#line 444
70850  __cil_tmp13 = dev->speed;
70851#line 444
70852  __cil_tmp14 = (int )__cil_tmp13;
70853#line 444
70854  __cil_tmp15 = (unsigned long )i;
70855#line 444
70856  __cil_tmp16 = dev->config;
70857#line 444
70858  __cil_tmp17 = (struct usb_host_config  const  *)__cil_tmp16;
70859#line 444
70860  __cil_tmp18 = __cil_tmp17 + __cil_tmp15;
70861#line 444
70862  __cil_tmp19 = dev->actconfig;
70863#line 444
70864  __cil_tmp20 = (unsigned long )__cil_tmp19;
70865#line 444
70866  __cil_tmp21 = (unsigned long )i;
70867#line 444
70868  __cil_tmp22 = dev->config;
70869#line 444
70870  __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
70871#line 444
70872  __cil_tmp24 = (unsigned long )__cil_tmp23;
70873#line 444
70874  __cil_tmp25 = __cil_tmp24 == __cil_tmp20;
70875#line 444
70876  start = usb_dump_config(__cil_tmp14, start, end, __cil_tmp18, __cil_tmp25);
70877#line 441
70878  i = i + 1;
70879  }
70880  ldv_27750: ;
70881  {
70882#line 441
70883  __cil_tmp26 = dev->descriptor.bNumConfigurations;
70884#line 441
70885  __cil_tmp27 = (int )__cil_tmp26;
70886#line 441
70887  if (__cil_tmp27 > i) {
70888#line 442
70889    goto ldv_27749;
70890  } else {
70891#line 444
70892    goto ldv_27751;
70893  }
70894  }
70895  ldv_27751: ;
70896#line 449
70897  return (start);
70898}
70899}
70900#line 496 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
70901static ssize_t usb_device_dump(char **buffer , size_t *nbytes , loff_t *skip_bytes ,
70902                               loff_t *file_offset , struct usb_device *usbdev , struct usb_bus *bus ,
70903                               int level , int index , int count ) 
70904{ int chix ;
70905  int ret ;
70906  int cnt ;
70907  int parent_devnum ;
70908  char *pages_start ;
70909  char *data_end ;
70910  char *speed ;
70911  unsigned int length ;
70912  ssize_t total_written ;
70913  unsigned long tmp ;
70914  int tmp___0 ;
70915  int max ;
70916  int tmp___1 ;
70917  int tmp___2 ;
70918  int tmp___3 ;
70919  struct usb_device *childdev ;
70920  ssize_t tmp___4 ;
70921  size_t __cil_tmp27 ;
70922  char *__cil_tmp28 ;
70923  unsigned long __cil_tmp29 ;
70924  unsigned long __cil_tmp30 ;
70925  struct usb_device *__cil_tmp31 ;
70926  unsigned long __cil_tmp32 ;
70927  struct usb_device *__cil_tmp33 ;
70928  unsigned long __cil_tmp34 ;
70929  struct usb_device *__cil_tmp35 ;
70930  int __cil_tmp36 ;
70931  struct usb_device *__cil_tmp37 ;
70932  enum usb_device_speed __cil_tmp38 ;
70933  unsigned int __cil_tmp39 ;
70934  int __cil_tmp40 ;
70935  enum usb_device_speed __cil_tmp41 ;
70936  unsigned int __cil_tmp42 ;
70937  int __cil_tmp43 ;
70938  enum usb_device_speed __cil_tmp44 ;
70939  unsigned int __cil_tmp45 ;
70940  int __cil_tmp46 ;
70941  enum usb_device_speed __cil_tmp47 ;
70942  unsigned int __cil_tmp48 ;
70943  int __cil_tmp49 ;
70944  enum usb_device_speed __cil_tmp50 ;
70945  unsigned int __cil_tmp51 ;
70946  int __cil_tmp52 ;
70947  enum usb_device_speed __cil_tmp53 ;
70948  unsigned int __cil_tmp54 ;
70949  int __cil_tmp55 ;
70950  char const   *__cil_tmp56 ;
70951  int __cil_tmp57 ;
70952  int __cil_tmp58 ;
70953  int __cil_tmp59 ;
70954  unsigned long __cil_tmp60 ;
70955  enum usb_device_speed __cil_tmp61 ;
70956  unsigned int __cil_tmp62 ;
70957  enum usb_device_speed __cil_tmp63 ;
70958  unsigned int __cil_tmp64 ;
70959  char const   *__cil_tmp65 ;
70960  int __cil_tmp66 ;
70961  int __cil_tmp67 ;
70962  int __cil_tmp68 ;
70963  int __cil_tmp69 ;
70964  int __cil_tmp70 ;
70965  int __cil_tmp71 ;
70966  int __cil_tmp72 ;
70967  int __cil_tmp73 ;
70968  unsigned long __cil_tmp74 ;
70969  char *__cil_tmp75 ;
70970  unsigned long __cil_tmp76 ;
70971  char *__cil_tmp77 ;
70972  unsigned long __cil_tmp78 ;
70973  unsigned long __cil_tmp79 ;
70974  long __cil_tmp80 ;
70975  unsigned int __cil_tmp81 ;
70976  long __cil_tmp82 ;
70977  unsigned int __cil_tmp83 ;
70978  loff_t __cil_tmp84 ;
70979  loff_t __cil_tmp85 ;
70980  loff_t __cil_tmp86 ;
70981  unsigned int __cil_tmp87 ;
70982  size_t __cil_tmp88 ;
70983  size_t __cil_tmp89 ;
70984  size_t __cil_tmp90 ;
70985  char *__cil_tmp91 ;
70986  void *__cil_tmp92 ;
70987  loff_t __cil_tmp93 ;
70988  unsigned long __cil_tmp94 ;
70989  void const   *__cil_tmp95 ;
70990  void const   *__cil_tmp96 ;
70991  unsigned long __cil_tmp97 ;
70992  size_t __cil_tmp98 ;
70993  size_t __cil_tmp99 ;
70994  loff_t __cil_tmp100 ;
70995  loff_t __cil_tmp101 ;
70996  ssize_t __cil_tmp102 ;
70997  unsigned long __cil_tmp103 ;
70998  char *__cil_tmp104 ;
70999  loff_t __cil_tmp105 ;
71000  loff_t __cil_tmp106 ;
71001  unsigned long __cil_tmp107 ;
71002  struct usb_device *__cil_tmp108 ;
71003  unsigned long __cil_tmp109 ;
71004  unsigned long __cil_tmp110 ;
71005  struct device *__cil_tmp111 ;
71006  int __cil_tmp112 ;
71007  struct device *__cil_tmp113 ;
71008  ssize_t __cil_tmp114 ;
71009  int __cil_tmp115 ;
71010
71011  {
71012#line 502
71013  cnt = 0;
71014#line 503
71015  parent_devnum = 0;
71016#line 506
71017  total_written = 0L;
71018  {
71019#line 509
71020  __cil_tmp27 = *nbytes;
71021#line 509
71022  if (__cil_tmp27 == 0UL) {
71023#line 510
71024    return (0L);
71025  } else {
71026
71027  }
71028  }
71029#line 512
71030  if (level > 6) {
71031#line 513
71032    return (0L);
71033  } else {
71034
71035  }
71036  {
71037#line 516
71038  tmp = __get_free_pages(16U, 1U);
71039#line 516
71040  pages_start = (char *)tmp;
71041  }
71042  {
71043#line 517
71044  __cil_tmp28 = (char *)0;
71045#line 517
71046  __cil_tmp29 = (unsigned long )__cil_tmp28;
71047#line 517
71048  __cil_tmp30 = (unsigned long )pages_start;
71049#line 517
71050  if (__cil_tmp30 == __cil_tmp29) {
71051#line 518
71052    return (-12L);
71053  } else {
71054
71055  }
71056  }
71057  {
71058#line 520
71059  __cil_tmp31 = (struct usb_device *)0;
71060#line 520
71061  __cil_tmp32 = (unsigned long )__cil_tmp31;
71062#line 520
71063  __cil_tmp33 = usbdev->parent;
71064#line 520
71065  __cil_tmp34 = (unsigned long )__cil_tmp33;
71066#line 520
71067  if (__cil_tmp34 != __cil_tmp32) {
71068    {
71069#line 520
71070    __cil_tmp35 = usbdev->parent;
71071#line 520
71072    __cil_tmp36 = __cil_tmp35->devnum;
71073#line 520
71074    if (__cil_tmp36 != -1) {
71075#line 521
71076      __cil_tmp37 = usbdev->parent;
71077#line 521
71078      parent_devnum = __cil_tmp37->devnum;
71079    } else {
71080
71081    }
71082    }
71083  } else {
71084
71085  }
71086  }
71087  {
71088#line 527
71089  __cil_tmp38 = usbdev->speed;
71090#line 527
71091  __cil_tmp39 = (unsigned int )__cil_tmp38;
71092#line 527
71093  __cil_tmp40 = (int )__cil_tmp39;
71094#line 527
71095  if (__cil_tmp40 == 1) {
71096#line 527
71097    goto case_1;
71098  } else {
71099    {
71100#line 529
71101    __cil_tmp41 = usbdev->speed;
71102#line 529
71103    __cil_tmp42 = (unsigned int )__cil_tmp41;
71104#line 529
71105    __cil_tmp43 = (int )__cil_tmp42;
71106#line 529
71107    if (__cil_tmp43 == 0) {
71108#line 529
71109      goto case_0;
71110    } else {
71111      {
71112#line 530
71113      __cil_tmp44 = usbdev->speed;
71114#line 530
71115      __cil_tmp45 = (unsigned int )__cil_tmp44;
71116#line 530
71117      __cil_tmp46 = (int )__cil_tmp45;
71118#line 530
71119      if (__cil_tmp46 == 2) {
71120#line 530
71121        goto case_2;
71122      } else {
71123        {
71124#line 532
71125        __cil_tmp47 = usbdev->speed;
71126#line 532
71127        __cil_tmp48 = (unsigned int )__cil_tmp47;
71128#line 532
71129        __cil_tmp49 = (int )__cil_tmp48;
71130#line 532
71131        if (__cil_tmp49 == 4) {
71132#line 532
71133          goto case_4;
71134        } else {
71135          {
71136#line 533
71137          __cil_tmp50 = usbdev->speed;
71138#line 533
71139          __cil_tmp51 = (unsigned int )__cil_tmp50;
71140#line 533
71141          __cil_tmp52 = (int )__cil_tmp51;
71142#line 533
71143          if (__cil_tmp52 == 3) {
71144#line 533
71145            goto case_3;
71146          } else {
71147            {
71148#line 535
71149            __cil_tmp53 = usbdev->speed;
71150#line 535
71151            __cil_tmp54 = (unsigned int )__cil_tmp53;
71152#line 535
71153            __cil_tmp55 = (int )__cil_tmp54;
71154#line 535
71155            if (__cil_tmp55 == 5) {
71156#line 535
71157              goto case_5;
71158            } else {
71159#line 537
71160              goto switch_default;
71161#line 526
71162              if (0) {
71163                case_1: 
71164#line 528
71165                speed = (char *)"1.5";
71166#line 528
71167                goto ldv_27773;
71168                case_0: ;
71169                case_2: 
71170#line 531
71171                speed = (char *)"12";
71172#line 531
71173                goto ldv_27773;
71174                case_4: ;
71175                case_3: 
71176#line 534
71177                speed = (char *)"480";
71178#line 534
71179                goto ldv_27773;
71180                case_5: 
71181#line 536
71182                speed = (char *)"5000";
71183#line 536
71184                goto ldv_27773;
71185                switch_default: 
71186#line 538
71187                speed = (char *)"??";
71188              } else {
71189
71190              }
71191            }
71192            }
71193          }
71194          }
71195        }
71196        }
71197      }
71198      }
71199    }
71200    }
71201  }
71202  }
71203  ldv_27773: 
71204  {
71205#line 540
71206  __cil_tmp56 = (char const   *)(& format_topo);
71207#line 540
71208  __cil_tmp57 = bus->busnum;
71209#line 540
71210  __cil_tmp58 = usbdev->devnum;
71211#line 540
71212  __cil_tmp59 = usbdev->maxchild;
71213#line 540
71214  tmp___0 = sprintf(pages_start, __cil_tmp56, __cil_tmp57, level, parent_devnum, index,
71215                    count, __cil_tmp58, speed, __cil_tmp59);
71216#line 540
71217  __cil_tmp60 = (unsigned long )tmp___0;
71218#line 540
71219  data_end = pages_start + __cil_tmp60;
71220  }
71221#line 551
71222  if (level == 0) {
71223    {
71224#line 555
71225    __cil_tmp61 = usbdev->speed;
71226#line 555
71227    __cil_tmp62 = (unsigned int )__cil_tmp61;
71228#line 555
71229    if (__cil_tmp62 == 3U) {
71230#line 557
71231      max = 800;
71232    } else {
71233      {
71234#line 555
71235      __cil_tmp63 = usbdev->speed;
71236#line 555
71237      __cil_tmp64 = (unsigned int )__cil_tmp63;
71238#line 555
71239      if (__cil_tmp64 == 5U) {
71240#line 557
71241        max = 800;
71242      } else {
71243#line 559
71244        max = 900;
71245      }
71246      }
71247    }
71248    }
71249    {
71250#line 565
71251    __cil_tmp65 = (char const   *)(& format_bandwidth);
71252#line 565
71253    __cil_tmp66 = bus->bandwidth_allocated;
71254#line 565
71255    __cil_tmp67 = max / 2;
71256#line 565
71257    __cil_tmp68 = bus->bandwidth_allocated;
71258#line 565
71259    __cil_tmp69 = __cil_tmp68 * 100;
71260#line 565
71261    __cil_tmp70 = __cil_tmp69 + __cil_tmp67;
71262#line 565
71263    __cil_tmp71 = __cil_tmp70 / max;
71264#line 565
71265    __cil_tmp72 = bus->bandwidth_int_reqs;
71266#line 565
71267    __cil_tmp73 = bus->bandwidth_isoc_reqs;
71268#line 565
71269    tmp___1 = sprintf(data_end, __cil_tmp65, __cil_tmp66, max, __cil_tmp71, __cil_tmp72,
71270                      __cil_tmp73);
71271#line 565
71272    __cil_tmp74 = (unsigned long )tmp___1;
71273#line 565
71274    data_end = data_end + __cil_tmp74;
71275    }
71276  } else {
71277
71278  }
71279  {
71280#line 573
71281  __cil_tmp75 = pages_start + 7936U;
71282#line 573
71283  data_end = usb_dump_desc(data_end, __cil_tmp75, usbdev);
71284  }
71285  {
71286#line 576
71287  __cil_tmp76 = (unsigned long )data_end;
71288#line 576
71289  __cil_tmp77 = pages_start + 7936U;
71290#line 576
71291  __cil_tmp78 = (unsigned long )__cil_tmp77;
71292#line 576
71293  if (__cil_tmp78 < __cil_tmp76) {
71294    {
71295#line 577
71296    tmp___2 = sprintf(data_end, "(truncated)\n");
71297#line 577
71298    __cil_tmp79 = (unsigned long )tmp___2;
71299#line 577
71300    data_end = data_end + __cil_tmp79;
71301    }
71302  } else {
71303
71304  }
71305  }
71306#line 579
71307  __cil_tmp80 = (long )pages_start;
71308#line 579
71309  __cil_tmp81 = (unsigned int )__cil_tmp80;
71310#line 579
71311  __cil_tmp82 = (long )data_end;
71312#line 579
71313  __cil_tmp83 = (unsigned int )__cil_tmp82;
71314#line 579
71315  length = __cil_tmp83 - __cil_tmp81;
71316  {
71317#line 581
71318  __cil_tmp84 = *skip_bytes;
71319#line 581
71320  __cil_tmp85 = (loff_t )length;
71321#line 581
71322  if (__cil_tmp85 > __cil_tmp84) {
71323#line 582
71324    __cil_tmp86 = *skip_bytes;
71325#line 582
71326    __cil_tmp87 = (unsigned int )__cil_tmp86;
71327#line 582
71328    length = length - __cil_tmp87;
71329    {
71330#line 583
71331    __cil_tmp88 = *nbytes;
71332#line 583
71333    __cil_tmp89 = (size_t )length;
71334#line 583
71335    if (__cil_tmp89 > __cil_tmp88) {
71336#line 584
71337      __cil_tmp90 = *nbytes;
71338#line 584
71339      length = (unsigned int )__cil_tmp90;
71340    } else {
71341
71342    }
71343    }
71344    {
71345#line 585
71346    __cil_tmp91 = *buffer;
71347#line 585
71348    __cil_tmp92 = (void *)__cil_tmp91;
71349#line 585
71350    __cil_tmp93 = *skip_bytes;
71351#line 585
71352    __cil_tmp94 = (unsigned long )__cil_tmp93;
71353#line 585
71354    __cil_tmp95 = (void const   *)pages_start;
71355#line 585
71356    __cil_tmp96 = __cil_tmp95 + __cil_tmp94;
71357#line 585
71358    tmp___3 = copy_to_user(__cil_tmp92, __cil_tmp96, length);
71359    }
71360#line 585
71361    if (tmp___3 != 0) {
71362      {
71363#line 586
71364      __cil_tmp97 = (unsigned long )pages_start;
71365#line 586
71366      free_pages(__cil_tmp97, 1U);
71367      }
71368#line 587
71369      return (-14L);
71370    } else {
71371
71372    }
71373#line 589
71374    __cil_tmp98 = (size_t )length;
71375#line 589
71376    __cil_tmp99 = *nbytes;
71377#line 589
71378    *nbytes = __cil_tmp99 - __cil_tmp98;
71379#line 590
71380    __cil_tmp100 = (loff_t )length;
71381#line 590
71382    __cil_tmp101 = *file_offset;
71383#line 590
71384    *file_offset = __cil_tmp101 + __cil_tmp100;
71385#line 591
71386    __cil_tmp102 = (ssize_t )length;
71387#line 591
71388    total_written = __cil_tmp102 + total_written;
71389#line 592
71390    __cil_tmp103 = (unsigned long )length;
71391#line 592
71392    __cil_tmp104 = *buffer;
71393#line 592
71394    *buffer = __cil_tmp104 + __cil_tmp103;
71395#line 593
71396    *skip_bytes = 0LL;
71397  } else {
71398#line 595
71399    __cil_tmp105 = (loff_t )length;
71400#line 595
71401    __cil_tmp106 = *skip_bytes;
71402#line 595
71403    *skip_bytes = __cil_tmp106 - __cil_tmp105;
71404  }
71405  }
71406  {
71407#line 597
71408  __cil_tmp107 = (unsigned long )pages_start;
71409#line 597
71410  free_pages(__cil_tmp107, 1U);
71411#line 600
71412  chix = 0;
71413  }
71414#line 600
71415  goto ldv_27783;
71416  ldv_27782: 
71417#line 601
71418  childdev = usbdev->children[chix];
71419  {
71420#line 603
71421  __cil_tmp108 = (struct usb_device *)0;
71422#line 603
71423  __cil_tmp109 = (unsigned long )__cil_tmp108;
71424#line 603
71425  __cil_tmp110 = (unsigned long )childdev;
71426#line 603
71427  if (__cil_tmp110 != __cil_tmp109) {
71428    {
71429#line 604
71430    __cil_tmp111 = & childdev->dev;
71431#line 604
71432    device_lock(__cil_tmp111);
71433#line 605
71434    cnt = cnt + 1;
71435#line 605
71436    __cil_tmp112 = level + 1;
71437#line 605
71438    tmp___4 = usb_device_dump(buffer, nbytes, skip_bytes, file_offset, childdev, bus,
71439                              __cil_tmp112, chix, cnt);
71440#line 605
71441    ret = (int )tmp___4;
71442#line 608
71443    __cil_tmp113 = & childdev->dev;
71444#line 608
71445    device_unlock(__cil_tmp113);
71446    }
71447#line 609
71448    if (ret == -14) {
71449#line 610
71450      return (total_written);
71451    } else {
71452
71453    }
71454#line 611
71455    __cil_tmp114 = (ssize_t )ret;
71456#line 611
71457    total_written = __cil_tmp114 + total_written;
71458  } else {
71459
71460  }
71461  }
71462#line 600
71463  chix = chix + 1;
71464  ldv_27783: ;
71465  {
71466#line 600
71467  __cil_tmp115 = usbdev->maxchild;
71468#line 600
71469  if (__cil_tmp115 > chix) {
71470#line 601
71471    goto ldv_27782;
71472  } else {
71473#line 603
71474    goto ldv_27784;
71475  }
71476  }
71477  ldv_27784: ;
71478#line 614
71479  return (total_written);
71480}
71481}
71482#line 617 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
71483static ssize_t usb_device_read(struct file *file , char *buf , size_t nbytes , loff_t *ppos ) 
71484{ struct usb_bus *bus ;
71485  ssize_t ret ;
71486  ssize_t total_written ;
71487  loff_t skip_bytes ;
71488  unsigned long flag ;
71489  unsigned long roksum ;
71490  struct thread_info *tmp ;
71491  long tmp___0 ;
71492  struct list_head  const  *__mptr ;
71493  struct list_head  const  *__mptr___0 ;
71494  loff_t __cil_tmp15 ;
71495  int __cil_tmp16 ;
71496  long __cil_tmp17 ;
71497  struct usb_bus *__cil_tmp18 ;
71498  struct usb_device *__cil_tmp19 ;
71499  unsigned long __cil_tmp20 ;
71500  struct usb_device *__cil_tmp21 ;
71501  unsigned long __cil_tmp22 ;
71502  struct usb_device *__cil_tmp23 ;
71503  struct device *__cil_tmp24 ;
71504  struct usb_device *__cil_tmp25 ;
71505  struct usb_device *__cil_tmp26 ;
71506  struct device *__cil_tmp27 ;
71507  struct list_head *__cil_tmp28 ;
71508  struct usb_bus *__cil_tmp29 ;
71509  unsigned long __cil_tmp30 ;
71510  struct list_head *__cil_tmp31 ;
71511  unsigned long __cil_tmp32 ;
71512
71513  {
71514#line 621
71515  total_written = 0L;
71516#line 622
71517  skip_bytes = *ppos;
71518  {
71519#line 624
71520  __cil_tmp15 = *ppos;
71521#line 624
71522  if (__cil_tmp15 < 0LL) {
71523#line 625
71524    return (-22L);
71525  } else {
71526
71527  }
71528  }
71529#line 626
71530  if (nbytes == 0UL) {
71531#line 627
71532    return (0L);
71533  } else {
71534
71535  }
71536  {
71537#line 628
71538  tmp = current_thread_info();
71539#line 628
71540  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (buf),
71541            "g" ((long )nbytes), "rm" (tmp->addr_limit.seg));
71542#line 628
71543  __cil_tmp16 = flag == 0UL;
71544#line 628
71545  __cil_tmp17 = (long )__cil_tmp16;
71546#line 628
71547  tmp___0 = __builtin_expect(__cil_tmp17, 1L);
71548  }
71549#line 628
71550  if (tmp___0 == 0L) {
71551#line 629
71552    return (-14L);
71553  } else {
71554
71555  }
71556  {
71557#line 631
71558  mutex_lock_nested(& usb_bus_list_lock, 0U);
71559#line 633
71560  __mptr = (struct list_head  const  *)usb_bus_list.next;
71561#line 633
71562  __cil_tmp18 = (struct usb_bus *)__mptr;
71563#line 633
71564  bus = __cil_tmp18 + 1152921504606846904UL;
71565  }
71566#line 633
71567  goto ldv_27804;
71568  ldv_27803: ;
71569  {
71570#line 635
71571  __cil_tmp19 = (struct usb_device *)0;
71572#line 635
71573  __cil_tmp20 = (unsigned long )__cil_tmp19;
71574#line 635
71575  __cil_tmp21 = bus->root_hub;
71576#line 635
71577  __cil_tmp22 = (unsigned long )__cil_tmp21;
71578#line 635
71579  if (__cil_tmp22 == __cil_tmp20) {
71580#line 636
71581    goto ldv_27802;
71582  } else {
71583
71584  }
71585  }
71586  {
71587#line 637
71588  __cil_tmp23 = bus->root_hub;
71589#line 637
71590  __cil_tmp24 = & __cil_tmp23->dev;
71591#line 637
71592  device_lock(__cil_tmp24);
71593#line 638
71594  __cil_tmp25 = bus->root_hub;
71595#line 638
71596  ret = usb_device_dump(& buf, & nbytes, & skip_bytes, ppos, __cil_tmp25, bus, 0,
71597                        0, 0);
71598#line 640
71599  __cil_tmp26 = bus->root_hub;
71600#line 640
71601  __cil_tmp27 = & __cil_tmp26->dev;
71602#line 640
71603  device_unlock(__cil_tmp27);
71604  }
71605#line 641
71606  if (ret < 0L) {
71607    {
71608#line 642
71609    mutex_unlock(& usb_bus_list_lock);
71610    }
71611#line 643
71612    return (ret);
71613  } else {
71614
71615  }
71616#line 645
71617  total_written = total_written + ret;
71618  ldv_27802: 
71619#line 633
71620  __cil_tmp28 = bus->bus_list.next;
71621#line 633
71622  __mptr___0 = (struct list_head  const  *)__cil_tmp28;
71623#line 633
71624  __cil_tmp29 = (struct usb_bus *)__mptr___0;
71625#line 633
71626  bus = __cil_tmp29 + 1152921504606846904UL;
71627  ldv_27804: ;
71628  {
71629#line 633
71630  __cil_tmp30 = (unsigned long )(& usb_bus_list);
71631#line 633
71632  __cil_tmp31 = & bus->bus_list;
71633#line 633
71634  __cil_tmp32 = (unsigned long )__cil_tmp31;
71635#line 633
71636  if (__cil_tmp32 != __cil_tmp30) {
71637#line 634
71638    goto ldv_27803;
71639  } else {
71640#line 636
71641    goto ldv_27805;
71642  }
71643  }
71644  ldv_27805: 
71645  {
71646#line 647
71647  mutex_unlock(& usb_bus_list_lock);
71648  }
71649#line 648
71650  return (total_written);
71651}
71652}
71653#line 652 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
71654static unsigned int usb_device_poll(struct file *file , struct poll_table_struct *wait ) 
71655{ unsigned int event_count ;
71656  int tmp ;
71657  wait_queue_head_t *__cil_tmp5 ;
71658  atomic_t *__cil_tmp6 ;
71659  atomic_t const   *__cil_tmp7 ;
71660  u64 __cil_tmp8 ;
71661  u64 __cil_tmp9 ;
71662
71663  {
71664  {
71665#line 657
71666  __cil_tmp5 = & device_event.wait;
71667#line 657
71668  poll_wait(file, __cil_tmp5, wait);
71669#line 659
71670  __cil_tmp6 = & device_event.count;
71671#line 659
71672  __cil_tmp7 = (atomic_t const   *)__cil_tmp6;
71673#line 659
71674  tmp = atomic_read(__cil_tmp7);
71675#line 659
71676  event_count = (unsigned int )tmp;
71677  }
71678  {
71679#line 660
71680  __cil_tmp8 = (u64 )event_count;
71681#line 660
71682  __cil_tmp9 = file->f_version;
71683#line 660
71684  if (__cil_tmp9 != __cil_tmp8) {
71685#line 661
71686    file->f_version = (u64 )event_count;
71687#line 662
71688    return (65U);
71689  } else {
71690
71691  }
71692  }
71693#line 665
71694  return (0U);
71695}
71696}
71697#line 668 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
71698static loff_t usb_device_lseek(struct file *file , loff_t offset , int orig ) 
71699{ loff_t ret ;
71700  struct dentry *__cil_tmp5 ;
71701  struct inode *__cil_tmp6 ;
71702  struct mutex *__cil_tmp7 ;
71703  loff_t __cil_tmp8 ;
71704  struct dentry *__cil_tmp9 ;
71705  struct inode *__cil_tmp10 ;
71706  struct mutex *__cil_tmp11 ;
71707
71708  {
71709  {
71710#line 672
71711  __cil_tmp5 = file->f_path.dentry;
71712#line 672
71713  __cil_tmp6 = __cil_tmp5->d_inode;
71714#line 672
71715  __cil_tmp7 = & __cil_tmp6->i_mutex;
71716#line 672
71717  mutex_lock_nested(__cil_tmp7, 0U);
71718  }
71719#line 675
71720  if (orig == 0) {
71721#line 675
71722    goto case_0;
71723  } else
71724#line 679
71725  if (orig == 1) {
71726#line 679
71727    goto case_1;
71728  } else
71729#line 683
71730  if (orig == 2) {
71731#line 683
71732    goto case_2;
71733  } else {
71734#line 684
71735    goto switch_default;
71736#line 674
71737    if (0) {
71738      case_0: 
71739#line 676
71740      file->f_pos = offset;
71741#line 677
71742      ret = file->f_pos;
71743#line 678
71744      goto ldv_27818;
71745      case_1: 
71746#line 680
71747      __cil_tmp8 = file->f_pos;
71748#line 680
71749      file->f_pos = __cil_tmp8 + offset;
71750#line 681
71751      ret = file->f_pos;
71752#line 682
71753      goto ldv_27818;
71754      case_2: ;
71755      switch_default: 
71756#line 685
71757      ret = -22LL;
71758    } else {
71759
71760    }
71761  }
71762  ldv_27818: 
71763  {
71764#line 688
71765  __cil_tmp9 = file->f_path.dentry;
71766#line 688
71767  __cil_tmp10 = __cil_tmp9->d_inode;
71768#line 688
71769  __cil_tmp11 = & __cil_tmp10->i_mutex;
71770#line 688
71771  mutex_unlock(__cil_tmp11);
71772  }
71773#line 689
71774  return (ret);
71775}
71776}
71777#line 692 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/devices.c.p"
71778struct file_operations  const  usbfs_devices_fops  = 
71779#line 692
71780     {(struct module *)0, & usb_device_lseek, & usb_device_read, (ssize_t (*)(struct file * ,
71781                                                                            char const   * ,
71782                                                                            size_t  ,
71783                                                                            loff_t * ))0,
71784    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
71785    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
71786    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
71787                                              u64  , unsigned int  ) ))0, & usb_device_poll,
71788    (long (*)(struct file * , unsigned int  , unsigned long  ))0, (long (*)(struct file * ,
71789                                                                            unsigned int  ,
71790                                                                            unsigned long  ))0,
71791    (int (*)(struct file * , struct vm_area_struct * ))0, (int (*)(struct inode * ,
71792                                                                   struct file * ))0,
71793    (int (*)(struct file * , fl_owner_t  ))0, (int (*)(struct inode * , struct file * ))0,
71794    (int (*)(struct file * , int  ))0, (int (*)(struct kiocb * , int  ))0, (int (*)(int  ,
71795                                                                                    struct file * ,
71796                                                                                    int  ))0,
71797    (int (*)(struct file * , int  , struct file_lock * ))0, (ssize_t (*)(struct file * ,
71798                                                                         struct page * ,
71799                                                                         int  , size_t  ,
71800                                                                         loff_t * ,
71801                                                                         int  ))0,
71802    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
71803                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
71804                                                                       int  , struct file_lock * ))0,
71805    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
71806    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
71807    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file * ,
71808                                                                        int  , loff_t  ,
71809                                                                        loff_t  ))0};
71810#line 309 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
71811__inline static int constant_test_bit(unsigned int nr , unsigned long const volatile   *addr ) 
71812{ int __cil_tmp3 ;
71813  int __cil_tmp4 ;
71814  unsigned int __cil_tmp5 ;
71815  unsigned long __cil_tmp6 ;
71816  unsigned long const volatile   *__cil_tmp7 ;
71817  unsigned long volatile   __cil_tmp8 ;
71818  unsigned long __cil_tmp9 ;
71819  unsigned long __cil_tmp10 ;
71820  int __cil_tmp11 ;
71821
71822  {
71823  {
71824#line 311
71825  __cil_tmp3 = (int )nr;
71826#line 311
71827  __cil_tmp4 = __cil_tmp3 & 63;
71828#line 311
71829  __cil_tmp5 = nr / 64U;
71830#line 311
71831  __cil_tmp6 = (unsigned long )__cil_tmp5;
71832#line 311
71833  __cil_tmp7 = addr + __cil_tmp6;
71834#line 311
71835  __cil_tmp8 = *__cil_tmp7;
71836#line 311
71837  __cil_tmp9 = (unsigned long )__cil_tmp8;
71838#line 311
71839  __cil_tmp10 = __cil_tmp9 >> __cil_tmp4;
71840#line 311
71841  __cil_tmp11 = (int )__cil_tmp10;
71842#line 311
71843  return (__cil_tmp11 & 1);
71844  }
71845}
71846}
71847#line 866 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
71848__inline static void arch_local_irq_enable(void) 
71849{ unsigned long __edi ;
71850  unsigned long __esi ;
71851  unsigned long __edx ;
71852  unsigned long __ecx ;
71853  unsigned long __eax ;
71854  long tmp ;
71855  void *__cil_tmp7 ;
71856  unsigned long __cil_tmp8 ;
71857  unsigned long __cil_tmp9 ;
71858  int __cil_tmp10 ;
71859  long __cil_tmp11 ;
71860
71861  {
71862  {
71863#line 868
71864  __edi = __edi;
71865#line 868
71866  __esi = __esi;
71867#line 868
71868  __edx = __edx;
71869#line 868
71870  __ecx = __ecx;
71871#line 868
71872  __eax = __eax;
71873#line 868
71874  __cil_tmp7 = (void *)0;
71875#line 868
71876  __cil_tmp8 = (unsigned long )__cil_tmp7;
71877#line 868
71878  __cil_tmp9 = (unsigned long )pv_irq_ops.irq_enable.func;
71879#line 868
71880  __cil_tmp10 = __cil_tmp9 == __cil_tmp8;
71881#line 868
71882  __cil_tmp11 = (long )__cil_tmp10;
71883#line 868
71884  tmp = __builtin_expect(__cil_tmp11, 0L);
71885  }
71886#line 868
71887  if (tmp != 0L) {
71888#line 868
71889    __asm__  volatile   ("1:\tud2\n.pushsection __bug_table,\"a\"\n2:\t.long 1b - 2b, %c0 - 2b\n\t.word %c1, 0\n\t.org 2b+%c2\n.popsection": : "i" ((char *)"/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"),
71890                         "i" (868), "i" (12UL));
71891    ldv_4733: ;
71892#line 868
71893    goto ldv_4733;
71894  } else {
71895
71896  }
71897#line 868
71898  __asm__  volatile   ("771:\n\tcall *%c2;\n772:\n.pushsection .parainstructions,\"a\"\n .balign 8 \n .quad  771b\n  .byte %c1\n  .byte 772b-771b\n  .short %c3\n.popsection\n": "=a" (__eax): [paravirt_typenum] "i" (49UL),
71899                       [paravirt_opptr] "i" (& pv_irq_ops.irq_enable.func), [paravirt_clobber] "i" (1): "memory",
71900                       "cc");
71901#line 870
71902  return;
71903}
71904}
71905#line 113 "include/linux/ioport.h"
71906extern struct resource ioport_resource ;
71907#line 114
71908extern struct resource iomem_resource ;
71909#line 156
71910extern struct resource *__request_region(struct resource * , resource_size_t  , resource_size_t  ,
71911                                         char const   * , int  ) ;
71912#line 167
71913extern void __release_region(struct resource * , resource_size_t  , resource_size_t  ) ;
71914#line 546 "include/linux/pm.h"
71915extern void __suspend_report_result(char const   * , void * , int  ) ;
71916#line 176 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/io.h"
71917extern void *ioremap_nocache(resource_size_t  , unsigned long  ) ;
71918#line 189
71919extern void iounmap(void volatile   * ) ;
71920#line 128 "include/linux/pci.h"
71921extern char const   *pci_power_names[] ;
71922#line 130 "include/linux/pci.h"
71923__inline static char const   *pci_power_name(pci_power_t state ) 
71924{ 
71925
71926  {
71927#line 132
71928  return (pci_power_names[state + 1]);
71929}
71930}
71931#line 707
71932extern struct pci_dev *pci_get_device(unsigned int  , unsigned int  , struct pci_dev * ) ;
71933#line 764
71934extern int pci_enable_device(struct pci_dev * ) ;
71935#line 781
71936extern void pci_disable_device(struct pci_dev * ) ;
71937#line 782
71938extern void pci_set_master(struct pci_dev * ) ;
71939#line 813
71940extern int pci_save_state(struct pci_dev * ) ;
71941#line 828
71942extern int pci_prepare_to_sleep(struct pci_dev * ) ;
71943#line 829
71944extern int pci_back_from_sleep(struct pci_dev * ) ;
71945#line 830
71946extern bool pci_dev_run_wake(struct pci_dev * ) ;
71947#line 1316 "include/linux/pci.h"
71948__inline static void *pci_get_drvdata(struct pci_dev *pdev ) 
71949{ void *tmp ;
71950  struct device *__cil_tmp3 ;
71951  struct device  const  *__cil_tmp4 ;
71952
71953  {
71954  {
71955#line 1318
71956  __cil_tmp3 = & pdev->dev;
71957#line 1318
71958  __cil_tmp4 = (struct device  const  *)__cil_tmp3;
71959#line 1318
71960  tmp = dev_get_drvdata(__cil_tmp4);
71961  }
71962#line 1318
71963  return (tmp);
71964}
71965}
71966#line 1329 "include/linux/pci.h"
71967__inline static char const   *pci_name(struct pci_dev  const  *pdev ) 
71968{ char const   *tmp ;
71969  struct device  const  *__cil_tmp3 ;
71970
71971  {
71972  {
71973#line 1331
71974  __cil_tmp3 = & pdev->dev;
71975#line 1331
71976  tmp = dev_name(__cil_tmp3);
71977  }
71978#line 1331
71979  return (tmp);
71980}
71981}
71982#line 127 "include/linux/hardirq.h"
71983extern void synchronize_irq(unsigned int  ) ;
71984#line 392 "include/linux/usb/hcd.h"
71985int usb_hcd_pci_probe(struct pci_dev *dev , struct pci_device_id  const  *id ) ;
71986#line 394
71987void usb_hcd_pci_remove(struct pci_dev *dev ) ;
71988#line 395
71989void usb_hcd_pci_shutdown(struct pci_dev *dev ) ;
71990#line 398
71991struct dev_pm_ops  const  usb_hcd_pci_pm_ops ;
71992#line 54 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
71993static struct mutex companions_mutex  =    {{1}, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
71994                                                                            {(struct lock_class *)0,
71995                                                                             (struct lock_class *)0},
71996                                                                            "companions_mutex.wait_lock",
71997                                                                            0, 0UL}}}},
71998    {& companions_mutex.wait_list, & companions_mutex.wait_list}, (struct task_struct *)0,
71999    (char const   *)0, (void *)(& companions_mutex), {(struct lock_class_key *)0,
72000                                                      {(struct lock_class *)0, (struct lock_class *)0},
72001                                                      "companions_mutex", 0, 0UL}};
72002#line 64 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
72003static void companion_common(struct pci_dev *pdev , struct usb_hcd *hcd , enum companion_action action ) 
72004{ struct pci_dev *companion ;
72005  struct usb_hcd *companion_hcd ;
72006  unsigned int slot ;
72007  void *tmp ;
72008  char const   *tmp___0 ;
72009  char const   *tmp___1 ;
72010  unsigned int __cil_tmp10 ;
72011  unsigned int __cil_tmp11 ;
72012  struct pci_bus *__cil_tmp12 ;
72013  unsigned long __cil_tmp13 ;
72014  struct pci_bus *__cil_tmp14 ;
72015  unsigned long __cil_tmp15 ;
72016  unsigned int __cil_tmp16 ;
72017  unsigned int __cil_tmp17 ;
72018  unsigned int __cil_tmp18 ;
72019  struct usb_hcd *__cil_tmp19 ;
72020  unsigned long __cil_tmp20 ;
72021  unsigned long __cil_tmp21 ;
72022  unsigned int __cil_tmp22 ;
72023  unsigned int __cil_tmp23 ;
72024  unsigned int __cil_tmp24 ;
72025  struct device *__cil_tmp25 ;
72026  struct device  const  *__cil_tmp26 ;
72027  struct device *__cil_tmp27 ;
72028  struct device  const  *__cil_tmp28 ;
72029  unsigned int __cil_tmp29 ;
72030  unsigned int __cil_tmp30 ;
72031  unsigned int __cil_tmp31 ;
72032  unsigned int __cil_tmp32 ;
72033  int __cil_tmp33 ;
72034  unsigned int __cil_tmp34 ;
72035  int __cil_tmp35 ;
72036  unsigned int __cil_tmp36 ;
72037  int __cil_tmp37 ;
72038  struct device *__cil_tmp38 ;
72039  struct device  const  *__cil_tmp39 ;
72040  struct device *__cil_tmp40 ;
72041  struct device  const  *__cil_tmp41 ;
72042  struct device *__cil_tmp42 ;
72043  struct device *__cil_tmp43 ;
72044  struct pci_dev *__cil_tmp44 ;
72045  unsigned long __cil_tmp45 ;
72046  unsigned long __cil_tmp46 ;
72047
72048  {
72049#line 69
72050  __cil_tmp10 = pdev->devfn;
72051#line 69
72052  __cil_tmp11 = __cil_tmp10 >> 3;
72053#line 69
72054  slot = __cil_tmp11 & 31U;
72055#line 75
72056  companion = (struct pci_dev *)0;
72057#line 76
72058  goto ldv_28626;
72059  ldv_28631: ;
72060  {
72061#line 77
72062  __cil_tmp12 = pdev->bus;
72063#line 77
72064  __cil_tmp13 = (unsigned long )__cil_tmp12;
72065#line 77
72066  __cil_tmp14 = companion->bus;
72067#line 77
72068  __cil_tmp15 = (unsigned long )__cil_tmp14;
72069#line 77
72070  if (__cil_tmp15 != __cil_tmp13) {
72071#line 79
72072    goto ldv_28626;
72073  } else {
72074    {
72075#line 77
72076    __cil_tmp16 = companion->devfn;
72077#line 77
72078    __cil_tmp17 = __cil_tmp16 >> 3;
72079#line 77
72080    __cil_tmp18 = __cil_tmp17 & 31U;
72081#line 77
72082    if (__cil_tmp18 != slot) {
72083#line 79
72084      goto ldv_28626;
72085    } else {
72086
72087    }
72088    }
72089  }
72090  }
72091  {
72092#line 81
72093  tmp = pci_get_drvdata(companion);
72094#line 81
72095  companion_hcd = (struct usb_hcd *)tmp;
72096  }
72097  {
72098#line 82
72099  __cil_tmp19 = (struct usb_hcd *)0;
72100#line 82
72101  __cil_tmp20 = (unsigned long )__cil_tmp19;
72102#line 82
72103  __cil_tmp21 = (unsigned long )companion_hcd;
72104#line 82
72105  if (__cil_tmp21 == __cil_tmp20) {
72106#line 83
72107    goto ldv_28626;
72108  } else {
72109
72110  }
72111  }
72112  {
72113#line 93
72114  __cil_tmp22 = pdev->class;
72115#line 93
72116  if (__cil_tmp22 == 787216U) {
72117#line 93
72118    goto _L___1;
72119  } else {
72120    {
72121#line 93
72122    __cil_tmp23 = pdev->class;
72123#line 93
72124    if (__cil_tmp23 == 787200U) {
72125      _L___1: 
72126      {
72127#line 93
72128      __cil_tmp24 = companion->class;
72129#line 93
72130      if (__cil_tmp24 == 787232U) {
72131        {
72132#line 96
72133        __cil_tmp25 = & pdev->dev;
72134#line 96
72135        __cil_tmp26 = (struct device  const  *)__cil_tmp25;
72136#line 96
72137        tmp___0 = dev_name(__cil_tmp26);
72138#line 96
72139        __cil_tmp27 = & companion->dev;
72140#line 96
72141        __cil_tmp28 = (struct device  const  *)__cil_tmp27;
72142#line 96
72143        dev_printk("<7>", __cil_tmp28, "HS companion for %s\n", tmp___0);
72144#line 98
72145        hcd->self.hs_companion = & companion_hcd->self;
72146        }
72147      } else {
72148#line 93
72149        goto _L___0;
72150      }
72151      }
72152    } else {
72153      _L___0: 
72154      {
72155#line 100
72156      __cil_tmp29 = pdev->class;
72157#line 100
72158      if (__cil_tmp29 == 787232U) {
72159        {
72160#line 100
72161        __cil_tmp30 = companion->class;
72162#line 100
72163        if (__cil_tmp30 == 787216U) {
72164#line 100
72165          goto _L;
72166        } else {
72167          {
72168#line 100
72169          __cil_tmp31 = companion->class;
72170#line 100
72171          if (__cil_tmp31 == 787200U) {
72172            _L: 
72173            {
72174#line 104
72175            __cil_tmp32 = (unsigned int )action;
72176#line 104
72177            __cil_tmp33 = (int )__cil_tmp32;
72178#line 104
72179            if (__cil_tmp33 == 0) {
72180#line 104
72181              goto case_0;
72182            } else {
72183              {
72184#line 109
72185              __cil_tmp34 = (unsigned int )action;
72186#line 109
72187              __cil_tmp35 = (int )__cil_tmp34;
72188#line 109
72189              if (__cil_tmp35 == 1) {
72190#line 109
72191                goto case_1;
72192              } else {
72193                {
72194#line 112
72195                __cil_tmp36 = (unsigned int )action;
72196#line 112
72197                __cil_tmp37 = (int )__cil_tmp36;
72198#line 112
72199                if (__cil_tmp37 == 2) {
72200#line 112
72201                  goto case_2;
72202                } else
72203#line 103
72204                if (0) {
72205                  case_0: 
72206                  {
72207#line 105
72208                  __cil_tmp38 = & companion->dev;
72209#line 105
72210                  __cil_tmp39 = (struct device  const  *)__cil_tmp38;
72211#line 105
72212                  tmp___1 = dev_name(__cil_tmp39);
72213#line 105
72214                  __cil_tmp40 = & pdev->dev;
72215#line 105
72216                  __cil_tmp41 = (struct device  const  *)__cil_tmp40;
72217#line 105
72218                  dev_printk("<7>", __cil_tmp41, "HS companion for %s\n", tmp___1);
72219#line 107
72220                  companion_hcd->self.hs_companion = & hcd->self;
72221                  }
72222#line 108
72223                  goto ldv_28628;
72224                  case_1: 
72225#line 110
72226                  companion_hcd->self.hs_companion = (struct usb_bus *)0;
72227#line 111
72228                  goto ldv_28628;
72229                  case_2: 
72230                  {
72231#line 113
72232                  __cil_tmp42 = & pdev->dev;
72233#line 113
72234                  __cil_tmp43 = & companion->dev;
72235#line 113
72236                  device_pm_wait_for_dev(__cil_tmp42, __cil_tmp43);
72237                  }
72238#line 115
72239                  goto ldv_28628;
72240                } else {
72241
72242                }
72243                }
72244              }
72245              }
72246            }
72247            }
72248            ldv_28628: ;
72249          } else {
72250
72251          }
72252          }
72253        }
72254        }
72255      } else {
72256
72257      }
72258      }
72259    }
72260    }
72261  }
72262  }
72263  ldv_28626: 
72264  {
72265#line 76
72266  companion = pci_get_device(4294967295U, 4294967295U, companion);
72267  }
72268  {
72269#line 76
72270  __cil_tmp44 = (struct pci_dev *)0;
72271#line 76
72272  __cil_tmp45 = (unsigned long )__cil_tmp44;
72273#line 76
72274  __cil_tmp46 = (unsigned long )companion;
72275#line 76
72276  if (__cil_tmp46 != __cil_tmp45) {
72277#line 77
72278    goto ldv_28631;
72279  } else {
72280#line 79
72281    goto ldv_28632;
72282  }
72283  }
72284  ldv_28632: ;
72285#line 81
72286  return;
72287}
72288}
72289#line 121 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
72290static void set_hs_companion(struct pci_dev *pdev , struct usb_hcd *hcd ) 
72291{ struct device *__cil_tmp3 ;
72292  void *__cil_tmp4 ;
72293  enum companion_action __cil_tmp5 ;
72294
72295  {
72296  {
72297#line 123
72298  mutex_lock_nested(& companions_mutex, 0U);
72299#line 124
72300  __cil_tmp3 = & pdev->dev;
72301#line 124
72302  __cil_tmp4 = (void *)hcd;
72303#line 124
72304  dev_set_drvdata(__cil_tmp3, __cil_tmp4);
72305#line 125
72306  __cil_tmp5 = (enum companion_action )0;
72307#line 125
72308  companion_common(pdev, hcd, __cil_tmp5);
72309#line 126
72310  mutex_unlock(& companions_mutex);
72311  }
72312#line 127
72313  return;
72314}
72315}
72316#line 129 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
72317static void clear_hs_companion(struct pci_dev *pdev , struct usb_hcd *hcd ) 
72318{ struct device *__cil_tmp3 ;
72319  void *__cil_tmp4 ;
72320  unsigned int __cil_tmp5 ;
72321  unsigned int __cil_tmp6 ;
72322  enum companion_action __cil_tmp7 ;
72323
72324  {
72325  {
72326#line 131
72327  mutex_lock_nested(& companions_mutex, 0U);
72328#line 132
72329  __cil_tmp3 = & pdev->dev;
72330#line 132
72331  __cil_tmp4 = (void *)0;
72332#line 132
72333  dev_set_drvdata(__cil_tmp3, __cil_tmp4);
72334  }
72335  {
72336#line 135
72337  __cil_tmp5 = pdev->class;
72338#line 135
72339  if (__cil_tmp5 == 787216U) {
72340#line 136
72341    hcd->self.hs_companion = (struct usb_bus *)0;
72342  } else {
72343    {
72344#line 135
72345    __cil_tmp6 = pdev->class;
72346#line 135
72347    if (__cil_tmp6 == 787200U) {
72348#line 136
72349      hcd->self.hs_companion = (struct usb_bus *)0;
72350    } else {
72351      {
72352#line 140
72353      __cil_tmp7 = (enum companion_action )1;
72354#line 140
72355      companion_common(pdev, hcd, __cil_tmp7);
72356      }
72357    }
72358    }
72359  }
72360  }
72361  {
72362#line 141
72363  mutex_unlock(& companions_mutex);
72364  }
72365#line 142
72366  return;
72367}
72368}
72369#line 144 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
72370static void wait_for_companions(struct pci_dev *pdev , struct usb_hcd *hcd ) 
72371{ unsigned int __cil_tmp3 ;
72372  enum companion_action __cil_tmp4 ;
72373
72374  {
72375  {
72376#line 150
72377  __cil_tmp3 = pdev->class;
72378#line 150
72379  if (__cil_tmp3 == 787232U) {
72380    {
72381#line 151
72382    __cil_tmp4 = (enum companion_action )2;
72383#line 151
72384    companion_common(pdev, hcd, __cil_tmp4);
72385    }
72386  } else {
72387
72388  }
72389  }
72390#line 152
72391  return;
72392}
72393}
72394#line 179 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
72395int usb_hcd_pci_probe(struct pci_dev *dev , struct pci_device_id  const  *id ) 
72396{ struct hc_driver *driver ;
72397  struct usb_hcd *hcd ;
72398  int retval ;
72399  int tmp ;
72400  int tmp___0 ;
72401  char const   *tmp___1 ;
72402  char const   *tmp___2 ;
72403  struct resource *tmp___3 ;
72404  int region ;
72405  struct resource *tmp___4 ;
72406  bool tmp___5 ;
72407  char const   *tmp___6 ;
72408  struct pci_device_id  const  *__cil_tmp15 ;
72409  unsigned long __cil_tmp16 ;
72410  unsigned long __cil_tmp17 ;
72411  kernel_ulong_t __cil_tmp18 ;
72412  struct hc_driver *__cil_tmp19 ;
72413  unsigned long __cil_tmp20 ;
72414  unsigned long __cil_tmp21 ;
72415  unsigned int __cil_tmp22 ;
72416  struct pci_dev  const  *__cil_tmp23 ;
72417  struct device *__cil_tmp24 ;
72418  struct device  const  *__cil_tmp25 ;
72419  struct pci_dev  const  *__cil_tmp26 ;
72420  struct hc_driver  const  *__cil_tmp27 ;
72421  struct device *__cil_tmp28 ;
72422  struct usb_hcd *__cil_tmp29 ;
72423  unsigned long __cil_tmp30 ;
72424  unsigned long __cil_tmp31 ;
72425  int __cil_tmp32 ;
72426  resource_size_t __cil_tmp33 ;
72427  resource_size_t __cil_tmp34 ;
72428  resource_size_t __cil_tmp35 ;
72429  resource_size_t __cil_tmp36 ;
72430  resource_size_t __cil_tmp37 ;
72431  resource_size_t __cil_tmp38 ;
72432  resource_size_t __cil_tmp39 ;
72433  resource_size_t __cil_tmp40 ;
72434  resource_size_t __cil_tmp41 ;
72435  u64 __cil_tmp42 ;
72436  u64 __cil_tmp43 ;
72437  char const   *__cil_tmp44 ;
72438  struct resource *__cil_tmp45 ;
72439  unsigned long __cil_tmp46 ;
72440  unsigned long __cil_tmp47 ;
72441  struct device *__cil_tmp48 ;
72442  struct device  const  *__cil_tmp49 ;
72443  u64 __cil_tmp50 ;
72444  u64 __cil_tmp51 ;
72445  unsigned long __cil_tmp52 ;
72446  void *__cil_tmp53 ;
72447  unsigned long __cil_tmp54 ;
72448  void *__cil_tmp55 ;
72449  unsigned long __cil_tmp56 ;
72450  struct device *__cil_tmp57 ;
72451  struct device  const  *__cil_tmp58 ;
72452  unsigned long __cil_tmp59 ;
72453  unsigned long __cil_tmp60 ;
72454  resource_size_t __cil_tmp61 ;
72455  resource_size_t __cil_tmp62 ;
72456  resource_size_t __cil_tmp63 ;
72457  resource_size_t __cil_tmp64 ;
72458  resource_size_t __cil_tmp65 ;
72459  resource_size_t __cil_tmp66 ;
72460  resource_size_t __cil_tmp67 ;
72461  resource_size_t __cil_tmp68 ;
72462  resource_size_t __cil_tmp69 ;
72463  u64 __cil_tmp70 ;
72464  u64 __cil_tmp71 ;
72465  char const   *__cil_tmp72 ;
72466  struct resource *__cil_tmp73 ;
72467  unsigned long __cil_tmp74 ;
72468  unsigned long __cil_tmp75 ;
72469  struct device *__cil_tmp76 ;
72470  struct device  const  *__cil_tmp77 ;
72471  unsigned int __cil_tmp78 ;
72472  struct device *__cil_tmp79 ;
72473  int __cil_tmp80 ;
72474  void *__cil_tmp81 ;
72475  void volatile   *__cil_tmp82 ;
72476  u64 __cil_tmp83 ;
72477  u64 __cil_tmp84 ;
72478  u64 __cil_tmp85 ;
72479  u64 __cil_tmp86 ;
72480  struct pci_dev  const  *__cil_tmp87 ;
72481  struct device *__cil_tmp88 ;
72482  struct device  const  *__cil_tmp89 ;
72483
72484  {
72485  {
72486#line 185
72487  tmp = usb_disabled();
72488  }
72489#line 185
72490  if (tmp != 0) {
72491#line 186
72492    return (-19);
72493  } else {
72494
72495  }
72496  {
72497#line 188
72498  __cil_tmp15 = (struct pci_device_id  const  *)0;
72499#line 188
72500  __cil_tmp16 = (unsigned long )__cil_tmp15;
72501#line 188
72502  __cil_tmp17 = (unsigned long )id;
72503#line 188
72504  if (__cil_tmp17 == __cil_tmp16) {
72505#line 189
72506    return (-22);
72507  } else {
72508
72509  }
72510  }
72511#line 190
72512  __cil_tmp18 = id->driver_data;
72513#line 190
72514  driver = (struct hc_driver *)__cil_tmp18;
72515  {
72516#line 191
72517  __cil_tmp19 = (struct hc_driver *)0;
72518#line 191
72519  __cil_tmp20 = (unsigned long )__cil_tmp19;
72520#line 191
72521  __cil_tmp21 = (unsigned long )driver;
72522#line 191
72523  if (__cil_tmp21 == __cil_tmp20) {
72524#line 192
72525    return (-22);
72526  } else {
72527
72528  }
72529  }
72530  {
72531#line 194
72532  tmp___0 = pci_enable_device(dev);
72533  }
72534#line 194
72535  if (tmp___0 < 0) {
72536#line 195
72537    return (-19);
72538  } else {
72539
72540  }
72541#line 196
72542  dev->current_state = 0;
72543  {
72544#line 198
72545  __cil_tmp22 = dev->irq;
72546#line 198
72547  if (__cil_tmp22 == 0U) {
72548    {
72549#line 199
72550    __cil_tmp23 = (struct pci_dev  const  *)dev;
72551#line 199
72552    tmp___1 = pci_name(__cil_tmp23);
72553#line 199
72554    __cil_tmp24 = & dev->dev;
72555#line 199
72556    __cil_tmp25 = (struct device  const  *)__cil_tmp24;
72557#line 199
72558    dev_err(__cil_tmp25, "Found HC with no IRQ.  Check BIOS/PCI %s setup!\n", tmp___1);
72559#line 202
72560    retval = -19;
72561    }
72562#line 203
72563    goto disable_pci;
72564  } else {
72565
72566  }
72567  }
72568  {
72569#line 206
72570  __cil_tmp26 = (struct pci_dev  const  *)dev;
72571#line 206
72572  tmp___2 = pci_name(__cil_tmp26);
72573#line 206
72574  __cil_tmp27 = (struct hc_driver  const  *)driver;
72575#line 206
72576  __cil_tmp28 = & dev->dev;
72577#line 206
72578  hcd = usb_create_hcd(__cil_tmp27, __cil_tmp28, tmp___2);
72579  }
72580  {
72581#line 207
72582  __cil_tmp29 = (struct usb_hcd *)0;
72583#line 207
72584  __cil_tmp30 = (unsigned long )__cil_tmp29;
72585#line 207
72586  __cil_tmp31 = (unsigned long )hcd;
72587#line 207
72588  if (__cil_tmp31 == __cil_tmp30) {
72589#line 208
72590    retval = -12;
72591#line 209
72592    goto disable_pci;
72593  } else {
72594
72595  }
72596  }
72597  {
72598#line 212
72599  __cil_tmp32 = driver->flags;
72600#line 212
72601  if (__cil_tmp32 & 1) {
72602#line 214
72603    hcd->rsrc_start = dev->resource[0].start;
72604    {
72605#line 215
72606    __cil_tmp33 = dev->resource[0].start;
72607#line 215
72608    if (__cil_tmp33 != 0ULL) {
72609#line 215
72610      __cil_tmp34 = dev->resource[0].start;
72611#line 215
72612      __cil_tmp35 = dev->resource[0].end;
72613#line 215
72614      __cil_tmp36 = __cil_tmp35 - __cil_tmp34;
72615#line 215
72616      hcd->rsrc_len = __cil_tmp36 + 1ULL;
72617    } else {
72618      {
72619#line 215
72620      __cil_tmp37 = dev->resource[0].start;
72621#line 215
72622      __cil_tmp38 = dev->resource[0].end;
72623#line 215
72624      if (__cil_tmp38 != __cil_tmp37) {
72625#line 215
72626        __cil_tmp39 = dev->resource[0].start;
72627#line 215
72628        __cil_tmp40 = dev->resource[0].end;
72629#line 215
72630        __cil_tmp41 = __cil_tmp40 - __cil_tmp39;
72631#line 215
72632        hcd->rsrc_len = __cil_tmp41 + 1ULL;
72633      } else {
72634#line 215
72635        hcd->rsrc_len = 0ULL;
72636      }
72637      }
72638    }
72639    }
72640    {
72641#line 216
72642    __cil_tmp42 = hcd->rsrc_start;
72643#line 216
72644    __cil_tmp43 = hcd->rsrc_len;
72645#line 216
72646    __cil_tmp44 = driver->description;
72647#line 216
72648    tmp___3 = __request_region(& iomem_resource, __cil_tmp42, __cil_tmp43, __cil_tmp44,
72649                               0);
72650    }
72651    {
72652#line 216
72653    __cil_tmp45 = (struct resource *)0;
72654#line 216
72655    __cil_tmp46 = (unsigned long )__cil_tmp45;
72656#line 216
72657    __cil_tmp47 = (unsigned long )tmp___3;
72658#line 216
72659    if (__cil_tmp47 == __cil_tmp46) {
72660      {
72661#line 218
72662      __cil_tmp48 = & dev->dev;
72663#line 218
72664      __cil_tmp49 = (struct device  const  *)__cil_tmp48;
72665#line 218
72666      dev_printk("<7>", __cil_tmp49, "controller already in use\n");
72667#line 219
72668      retval = -16;
72669      }
72670#line 220
72671      goto clear_companion;
72672    } else {
72673
72674    }
72675    }
72676    {
72677#line 222
72678    __cil_tmp50 = hcd->rsrc_start;
72679#line 222
72680    __cil_tmp51 = hcd->rsrc_len;
72681#line 222
72682    __cil_tmp52 = (unsigned long )__cil_tmp51;
72683#line 222
72684    hcd->regs = ioremap_nocache(__cil_tmp50, __cil_tmp52);
72685    }
72686    {
72687#line 223
72688    __cil_tmp53 = (void *)0;
72689#line 223
72690    __cil_tmp54 = (unsigned long )__cil_tmp53;
72691#line 223
72692    __cil_tmp55 = hcd->regs;
72693#line 223
72694    __cil_tmp56 = (unsigned long )__cil_tmp55;
72695#line 223
72696    if (__cil_tmp56 == __cil_tmp54) {
72697      {
72698#line 224
72699      __cil_tmp57 = & dev->dev;
72700#line 224
72701      __cil_tmp58 = (struct device  const  *)__cil_tmp57;
72702#line 224
72703      dev_printk("<7>", __cil_tmp58, "error mapping memory\n");
72704#line 225
72705      retval = -14;
72706      }
72707#line 226
72708      goto release_mem_region;
72709    } else {
72710
72711    }
72712    }
72713  } else {
72714#line 233
72715    region = 0;
72716#line 233
72717    goto ldv_28659;
72718    ldv_28658: ;
72719    {
72720#line 234
72721    __cil_tmp59 = dev->resource[region].flags;
72722#line 234
72723    __cil_tmp60 = __cil_tmp59 & 256UL;
72724#line 234
72725    if (__cil_tmp60 == 0UL) {
72726#line 236
72727      goto ldv_28656;
72728    } else {
72729
72730    }
72731    }
72732#line 238
72733    hcd->rsrc_start = dev->resource[region].start;
72734    {
72735#line 239
72736    __cil_tmp61 = dev->resource[region].start;
72737#line 239
72738    if (__cil_tmp61 != 0ULL) {
72739#line 239
72740      __cil_tmp62 = dev->resource[region].start;
72741#line 239
72742      __cil_tmp63 = dev->resource[region].end;
72743#line 239
72744      __cil_tmp64 = __cil_tmp63 - __cil_tmp62;
72745#line 239
72746      hcd->rsrc_len = __cil_tmp64 + 1ULL;
72747    } else {
72748      {
72749#line 239
72750      __cil_tmp65 = dev->resource[region].start;
72751#line 239
72752      __cil_tmp66 = dev->resource[region].end;
72753#line 239
72754      if (__cil_tmp66 != __cil_tmp65) {
72755#line 239
72756        __cil_tmp67 = dev->resource[region].start;
72757#line 239
72758        __cil_tmp68 = dev->resource[region].end;
72759#line 239
72760        __cil_tmp69 = __cil_tmp68 - __cil_tmp67;
72761#line 239
72762        hcd->rsrc_len = __cil_tmp69 + 1ULL;
72763      } else {
72764#line 239
72765        hcd->rsrc_len = 0ULL;
72766      }
72767      }
72768    }
72769    }
72770    {
72771#line 240
72772    __cil_tmp70 = hcd->rsrc_start;
72773#line 240
72774    __cil_tmp71 = hcd->rsrc_len;
72775#line 240
72776    __cil_tmp72 = driver->description;
72777#line 240
72778    tmp___4 = __request_region(& ioport_resource, __cil_tmp70, __cil_tmp71, __cil_tmp72,
72779                               0);
72780    }
72781    {
72782#line 240
72783    __cil_tmp73 = (struct resource *)0;
72784#line 240
72785    __cil_tmp74 = (unsigned long )__cil_tmp73;
72786#line 240
72787    __cil_tmp75 = (unsigned long )tmp___4;
72788#line 240
72789    if (__cil_tmp75 != __cil_tmp74) {
72790#line 242
72791      goto ldv_28657;
72792    } else {
72793
72794    }
72795    }
72796    ldv_28656: 
72797#line 233
72798    region = region + 1;
72799    ldv_28659: ;
72800#line 233
72801    if (region <= 5) {
72802#line 234
72803      goto ldv_28658;
72804    } else {
72805#line 236
72806      goto ldv_28657;
72807    }
72808    ldv_28657: ;
72809#line 244
72810    if (region == 6) {
72811      {
72812#line 245
72813      __cil_tmp76 = & dev->dev;
72814#line 245
72815      __cil_tmp77 = (struct device  const  *)__cil_tmp76;
72816#line 245
72817      dev_printk("<7>", __cil_tmp77, "no i/o regions available\n");
72818#line 246
72819      retval = -16;
72820      }
72821#line 247
72822      goto clear_companion;
72823    } else {
72824
72825    }
72826  }
72827  }
72828  {
72829#line 251
72830  pci_set_master(dev);
72831#line 253
72832  __cil_tmp78 = dev->irq;
72833#line 253
72834  retval = usb_add_hcd(hcd, __cil_tmp78, 160UL);
72835  }
72836#line 254
72837  if (retval != 0) {
72838#line 255
72839    goto unmap_registers;
72840  } else {
72841
72842  }
72843  {
72844#line 256
72845  set_hs_companion(dev, hcd);
72846#line 258
72847  tmp___5 = pci_dev_run_wake(dev);
72848  }
72849#line 258
72850  if ((int )tmp___5) {
72851    {
72852#line 259
72853    __cil_tmp79 = & dev->dev;
72854#line 259
72855    pm_runtime_put_noidle(__cil_tmp79);
72856    }
72857  } else {
72858
72859  }
72860#line 260
72861  return (retval);
72862  unmap_registers: ;
72863  {
72864#line 263
72865  __cil_tmp80 = driver->flags;
72866#line 263
72867  if (__cil_tmp80 & 1) {
72868    {
72869#line 264
72870    __cil_tmp81 = hcd->regs;
72871#line 264
72872    __cil_tmp82 = (void volatile   *)__cil_tmp81;
72873#line 264
72874    iounmap(__cil_tmp82);
72875    }
72876    release_mem_region: 
72877    {
72878#line 266
72879    __cil_tmp83 = hcd->rsrc_start;
72880#line 266
72881    __cil_tmp84 = hcd->rsrc_len;
72882#line 266
72883    __release_region(& iomem_resource, __cil_tmp83, __cil_tmp84);
72884    }
72885  } else {
72886    {
72887#line 268
72888    __cil_tmp85 = hcd->rsrc_start;
72889#line 268
72890    __cil_tmp86 = hcd->rsrc_len;
72891#line 268
72892    __release_region(& ioport_resource, __cil_tmp85, __cil_tmp86);
72893    }
72894  }
72895  }
72896  clear_companion: 
72897  {
72898#line 270
72899  clear_hs_companion(dev, hcd);
72900#line 271
72901  usb_put_hcd(hcd);
72902  }
72903  disable_pci: 
72904  {
72905#line 273
72906  pci_disable_device(dev);
72907#line 274
72908  __cil_tmp87 = (struct pci_dev  const  *)dev;
72909#line 274
72910  tmp___6 = pci_name(__cil_tmp87);
72911#line 274
72912  __cil_tmp88 = & dev->dev;
72913#line 274
72914  __cil_tmp89 = (struct device  const  *)__cil_tmp88;
72915#line 274
72916  dev_err(__cil_tmp89, "init %s fail, %d\n", tmp___6, retval);
72917  }
72918#line 275
72919  return (retval);
72920}
72921}
72922#line 294 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
72923void usb_hcd_pci_remove(struct pci_dev *dev ) 
72924{ struct usb_hcd *hcd ;
72925  void *tmp ;
72926  bool tmp___0 ;
72927  struct usb_hcd *__cil_tmp5 ;
72928  unsigned long __cil_tmp6 ;
72929  unsigned long __cil_tmp7 ;
72930  struct device *__cil_tmp8 ;
72931  void *__cil_tmp9 ;
72932  struct hc_driver  const  *__cil_tmp10 ;
72933  int __cil_tmp11 ;
72934  int __cil_tmp12 ;
72935  void *__cil_tmp13 ;
72936  void volatile   *__cil_tmp14 ;
72937  u64 __cil_tmp15 ;
72938  u64 __cil_tmp16 ;
72939  u64 __cil_tmp17 ;
72940  u64 __cil_tmp18 ;
72941
72942  {
72943  {
72944#line 298
72945  tmp = pci_get_drvdata(dev);
72946#line 298
72947  hcd = (struct usb_hcd *)tmp;
72948  }
72949  {
72950#line 299
72951  __cil_tmp5 = (struct usb_hcd *)0;
72952#line 299
72953  __cil_tmp6 = (unsigned long )__cil_tmp5;
72954#line 299
72955  __cil_tmp7 = (unsigned long )hcd;
72956#line 299
72957  if (__cil_tmp7 == __cil_tmp6) {
72958#line 300
72959    return;
72960  } else {
72961
72962  }
72963  }
72964  {
72965#line 302
72966  tmp___0 = pci_dev_run_wake(dev);
72967  }
72968#line 302
72969  if ((int )tmp___0) {
72970    {
72971#line 303
72972    __cil_tmp8 = & dev->dev;
72973#line 303
72974    pm_runtime_get_noresume(__cil_tmp8);
72975    }
72976  } else {
72977
72978  }
72979  {
72980#line 309
72981  arch_local_irq_disable();
72982#line 309
72983  trace_hardirqs_off();
72984#line 310
72985  __cil_tmp9 = (void *)hcd;
72986#line 310
72987  usb_hcd_irq(0, __cil_tmp9);
72988#line 311
72989  trace_hardirqs_on();
72990#line 311
72991  arch_local_irq_enable();
72992#line 313
72993  usb_remove_hcd(hcd);
72994  }
72995  {
72996#line 314
72997  __cil_tmp10 = hcd->driver;
72998#line 314
72999  __cil_tmp11 = __cil_tmp10->flags;
73000#line 314
73001  __cil_tmp12 = (int )__cil_tmp11;
73002#line 314
73003  if (__cil_tmp12 & 1) {
73004    {
73005#line 315
73006    __cil_tmp13 = hcd->regs;
73007#line 315
73008    __cil_tmp14 = (void volatile   *)__cil_tmp13;
73009#line 315
73010    iounmap(__cil_tmp14);
73011#line 316
73012    __cil_tmp15 = hcd->rsrc_start;
73013#line 316
73014    __cil_tmp16 = hcd->rsrc_len;
73015#line 316
73016    __release_region(& iomem_resource, __cil_tmp15, __cil_tmp16);
73017    }
73018  } else {
73019    {
73020#line 318
73021    __cil_tmp17 = hcd->rsrc_start;
73022#line 318
73023    __cil_tmp18 = hcd->rsrc_len;
73024#line 318
73025    __release_region(& ioport_resource, __cil_tmp17, __cil_tmp18);
73026    }
73027  }
73028  }
73029  {
73030#line 320
73031  clear_hs_companion(dev, hcd);
73032#line 321
73033  usb_put_hcd(hcd);
73034#line 322
73035  pci_disable_device(dev);
73036  }
73037#line 323
73038  return;
73039}
73040}
73041#line 330 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73042void usb_hcd_pci_shutdown(struct pci_dev *dev ) 
73043{ struct usb_hcd *hcd ;
73044  void *tmp ;
73045  int tmp___0 ;
73046  struct usb_hcd *__cil_tmp5 ;
73047  unsigned long __cil_tmp6 ;
73048  unsigned long __cil_tmp7 ;
73049  unsigned long *__cil_tmp8 ;
73050  unsigned long const volatile   *__cil_tmp9 ;
73051  void (*__cil_tmp10)(struct usb_hcd * ) ;
73052  unsigned long __cil_tmp11 ;
73053  struct hc_driver  const  *__cil_tmp12 ;
73054  void (*__cil_tmp13)(struct usb_hcd * ) ;
73055  unsigned long __cil_tmp14 ;
73056  struct hc_driver  const  *__cil_tmp15 ;
73057  void (*__cil_tmp16)(struct usb_hcd * ) ;
73058
73059  {
73060  {
73061#line 334
73062  tmp = pci_get_drvdata(dev);
73063#line 334
73064  hcd = (struct usb_hcd *)tmp;
73065  }
73066  {
73067#line 335
73068  __cil_tmp5 = (struct usb_hcd *)0;
73069#line 335
73070  __cil_tmp6 = (unsigned long )__cil_tmp5;
73071#line 335
73072  __cil_tmp7 = (unsigned long )hcd;
73073#line 335
73074  if (__cil_tmp7 == __cil_tmp6) {
73075#line 336
73076    return;
73077  } else {
73078
73079  }
73080  }
73081  {
73082#line 338
73083  __cil_tmp8 = & hcd->flags;
73084#line 338
73085  __cil_tmp9 = (unsigned long const volatile   *)__cil_tmp8;
73086#line 338
73087  tmp___0 = constant_test_bit(0U, __cil_tmp9);
73088  }
73089#line 338
73090  if (tmp___0 != 0) {
73091    {
73092#line 338
73093    __cil_tmp10 = (void (* const  )(struct usb_hcd * ))0;
73094#line 338
73095    __cil_tmp11 = (unsigned long )__cil_tmp10;
73096#line 338
73097    __cil_tmp12 = hcd->driver;
73098#line 338
73099    __cil_tmp13 = __cil_tmp12->shutdown;
73100#line 338
73101    __cil_tmp14 = (unsigned long )__cil_tmp13;
73102#line 338
73103    if (__cil_tmp14 != __cil_tmp11) {
73104      {
73105#line 340
73106      __cil_tmp15 = hcd->driver;
73107#line 340
73108      __cil_tmp16 = __cil_tmp15->shutdown;
73109#line 340
73110      (*__cil_tmp16)(hcd);
73111#line 341
73112      pci_disable_device(dev);
73113      }
73114    } else {
73115
73116    }
73117    }
73118  } else {
73119
73120  }
73121#line 343
73122  return;
73123}
73124}
73125#line 364 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73126__inline static void powermac_set_asic(struct pci_dev *pci_dev , int enable ) 
73127{ 
73128
73129  {
73130#line 366
73131  return;
73132}
73133}
73134#line 369 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73135static int check_root_hub_suspended(struct device *dev ) 
73136{ struct pci_dev *pci_dev ;
73137  struct device  const  *__mptr ;
73138  struct usb_hcd *hcd ;
73139  void *tmp ;
73140  struct pci_dev *__cil_tmp6 ;
73141  unsigned long __cil_tmp7 ;
73142  unsigned long __cil_tmp8 ;
73143  struct device  const  *__cil_tmp9 ;
73144  struct usb_hcd *__cil_tmp10 ;
73145  unsigned long __cil_tmp11 ;
73146  struct usb_hcd *__cil_tmp12 ;
73147  unsigned long __cil_tmp13 ;
73148  unsigned long __cil_tmp14 ;
73149  unsigned long __cil_tmp15 ;
73150  struct device  const  *__cil_tmp16 ;
73151
73152  {
73153  {
73154#line 371
73155  __mptr = (struct device  const  *)dev;
73156#line 371
73157  __cil_tmp6 = (struct pci_dev *)__mptr;
73158#line 371
73159  pci_dev = __cil_tmp6 + 1152921504606846832UL;
73160#line 372
73161  tmp = pci_get_drvdata(pci_dev);
73162#line 372
73163  hcd = (struct usb_hcd *)tmp;
73164  }
73165  {
73166#line 374
73167  __cil_tmp7 = hcd->flags;
73168#line 374
73169  __cil_tmp8 = __cil_tmp7 & 32UL;
73170#line 374
73171  if (__cil_tmp8 != 0UL) {
73172    {
73173#line 375
73174    __cil_tmp9 = (struct device  const  *)dev;
73175#line 375
73176    dev_warn(__cil_tmp9, "Root hub is not suspended\n");
73177    }
73178#line 376
73179    return (-16);
73180  } else {
73181
73182  }
73183  }
73184  {
73185#line 378
73186  __cil_tmp10 = (struct usb_hcd *)0;
73187#line 378
73188  __cil_tmp11 = (unsigned long )__cil_tmp10;
73189#line 378
73190  __cil_tmp12 = hcd->shared_hcd;
73191#line 378
73192  __cil_tmp13 = (unsigned long )__cil_tmp12;
73193#line 378
73194  if (__cil_tmp13 != __cil_tmp11) {
73195#line 379
73196    hcd = hcd->shared_hcd;
73197    {
73198#line 380
73199    __cil_tmp14 = hcd->flags;
73200#line 380
73201    __cil_tmp15 = __cil_tmp14 & 32UL;
73202#line 380
73203    if (__cil_tmp15 != 0UL) {
73204      {
73205#line 381
73206      __cil_tmp16 = (struct device  const  *)dev;
73207#line 381
73208      dev_warn(__cil_tmp16, "Secondary root hub is not suspended\n");
73209      }
73210#line 382
73211      return (-16);
73212    } else {
73213
73214    }
73215    }
73216  } else {
73217
73218  }
73219  }
73220#line 385
73221  return (0);
73222}
73223}
73224#line 388 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73225static int suspend_common(struct device *dev , bool do_wakeup ) 
73226{ struct pci_dev *pci_dev ;
73227  struct device  const  *__mptr ;
73228  struct usb_hcd *hcd ;
73229  void *tmp ;
73230  int retval ;
73231  struct pci_dev *__cil_tmp8 ;
73232  int (*__cil_tmp9)(struct usb_hcd * , bool  ) ;
73233  unsigned long __cil_tmp10 ;
73234  struct hc_driver  const  *__cil_tmp11 ;
73235  int (*__cil_tmp12)(struct usb_hcd * , bool  ) ;
73236  unsigned long __cil_tmp13 ;
73237  unsigned long __cil_tmp14 ;
73238  unsigned long __cil_tmp15 ;
73239  unsigned long __cil_tmp16 ;
73240  unsigned long __cil_tmp17 ;
73241  struct usb_hcd *__cil_tmp18 ;
73242  unsigned long __cil_tmp19 ;
73243  struct usb_hcd *__cil_tmp20 ;
73244  unsigned long __cil_tmp21 ;
73245  struct usb_hcd *__cil_tmp22 ;
73246  unsigned long __cil_tmp23 ;
73247  unsigned long __cil_tmp24 ;
73248  struct hc_driver  const  *__cil_tmp25 ;
73249  int (*__cil_tmp26)(struct usb_hcd * , bool  ) ;
73250  int __cil_tmp27 ;
73251  bool __cil_tmp28 ;
73252  struct hc_driver  const  *__cil_tmp29 ;
73253  int (*__cil_tmp30)(struct usb_hcd * , bool  ) ;
73254  void *__cil_tmp31 ;
73255  unsigned long __cil_tmp32 ;
73256  unsigned long __cil_tmp33 ;
73257  struct usb_hcd *__cil_tmp34 ;
73258  unsigned long __cil_tmp35 ;
73259  struct usb_hcd *__cil_tmp36 ;
73260  unsigned long __cil_tmp37 ;
73261  struct usb_hcd *__cil_tmp38 ;
73262  unsigned long __cil_tmp39 ;
73263  unsigned long __cil_tmp40 ;
73264  int (*__cil_tmp41)(struct usb_hcd * , bool  ) ;
73265  unsigned long __cil_tmp42 ;
73266  struct hc_driver  const  *__cil_tmp43 ;
73267  int (*__cil_tmp44)(struct usb_hcd * , bool  ) ;
73268  unsigned long __cil_tmp45 ;
73269  struct hc_driver  const  *__cil_tmp46 ;
73270  int (*__cil_tmp47)(struct usb_hcd * , bool  ) ;
73271  bool __cil_tmp48 ;
73272  unsigned char *__cil_tmp49 ;
73273  unsigned char *__cil_tmp50 ;
73274  unsigned char __cil_tmp51 ;
73275  unsigned int __cil_tmp52 ;
73276  unsigned int __cil_tmp53 ;
73277
73278  {
73279  {
73280#line 390
73281  __mptr = (struct device  const  *)dev;
73282#line 390
73283  __cil_tmp8 = (struct pci_dev *)__mptr;
73284#line 390
73285  pci_dev = __cil_tmp8 + 1152921504606846832UL;
73286#line 391
73287  tmp = pci_get_drvdata(pci_dev);
73288#line 391
73289  hcd = (struct usb_hcd *)tmp;
73290#line 399
73291  retval = check_root_hub_suspended(dev);
73292  }
73293#line 400
73294  if (retval != 0) {
73295#line 401
73296    return (retval);
73297  } else {
73298
73299  }
73300  {
73301#line 403
73302  __cil_tmp9 = (int (* const  )(struct usb_hcd * , bool  ))0;
73303#line 403
73304  __cil_tmp10 = (unsigned long )__cil_tmp9;
73305#line 403
73306  __cil_tmp11 = hcd->driver;
73307#line 403
73308  __cil_tmp12 = __cil_tmp11->pci_suspend;
73309#line 403
73310  __cil_tmp13 = (unsigned long )__cil_tmp12;
73311#line 403
73312  if (__cil_tmp13 != __cil_tmp10) {
73313    {
73314#line 403
73315    __cil_tmp14 = hcd->flags;
73316#line 403
73317    __cil_tmp15 = __cil_tmp14 & 64UL;
73318#line 403
73319    if (__cil_tmp15 == 0UL) {
73320#line 407
73321      if ((int )do_wakeup) {
73322        {
73323#line 407
73324        __cil_tmp16 = hcd->flags;
73325#line 407
73326        __cil_tmp17 = __cil_tmp16 & 16UL;
73327#line 407
73328        if (__cil_tmp17 != 0UL) {
73329#line 408
73330          return (-16);
73331        } else {
73332
73333        }
73334        }
73335      } else {
73336
73337      }
73338#line 409
73339      if ((int )do_wakeup) {
73340        {
73341#line 409
73342        __cil_tmp18 = (struct usb_hcd *)0;
73343#line 409
73344        __cil_tmp19 = (unsigned long )__cil_tmp18;
73345#line 409
73346        __cil_tmp20 = hcd->shared_hcd;
73347#line 409
73348        __cil_tmp21 = (unsigned long )__cil_tmp20;
73349#line 409
73350        if (__cil_tmp21 != __cil_tmp19) {
73351          {
73352#line 409
73353          __cil_tmp22 = hcd->shared_hcd;
73354#line 409
73355          __cil_tmp23 = __cil_tmp22->flags;
73356#line 409
73357          __cil_tmp24 = __cil_tmp23 & 16UL;
73358#line 409
73359          if (__cil_tmp24 != 0UL) {
73360#line 411
73361            return (-16);
73362          } else {
73363
73364          }
73365          }
73366        } else {
73367
73368        }
73369        }
73370      } else {
73371
73372      }
73373      {
73374#line 412
73375      __cil_tmp25 = hcd->driver;
73376#line 412
73377      __cil_tmp26 = __cil_tmp25->pci_suspend;
73378#line 412
73379      __cil_tmp27 = (int )do_wakeup;
73380#line 412
73381      __cil_tmp28 = (bool )__cil_tmp27;
73382#line 412
73383      retval = (*__cil_tmp26)(hcd, __cil_tmp28);
73384#line 413
73385      __cil_tmp29 = hcd->driver;
73386#line 413
73387      __cil_tmp30 = __cil_tmp29->pci_suspend;
73388#line 413
73389      __cil_tmp31 = (void *)__cil_tmp30;
73390#line 413
73391      __suspend_report_result("suspend_common", __cil_tmp31, retval);
73392      }
73393#line 416
73394      if (retval == 0) {
73395#line 416
73396        if ((int )do_wakeup) {
73397          {
73398#line 416
73399          __cil_tmp32 = hcd->flags;
73400#line 416
73401          __cil_tmp33 = __cil_tmp32 & 16UL;
73402#line 416
73403          if (__cil_tmp33 != 0UL) {
73404#line 416
73405            goto _L;
73406          } else {
73407#line 416
73408            goto _L___1;
73409          }
73410          }
73411        } else {
73412#line 416
73413          goto _L___1;
73414        }
73415      } else
73416      _L___1: 
73417#line 416
73418      if (retval == 0) {
73419#line 416
73420        if ((int )do_wakeup) {
73421          {
73422#line 416
73423          __cil_tmp34 = (struct usb_hcd *)0;
73424#line 416
73425          __cil_tmp35 = (unsigned long )__cil_tmp34;
73426#line 416
73427          __cil_tmp36 = hcd->shared_hcd;
73428#line 416
73429          __cil_tmp37 = (unsigned long )__cil_tmp36;
73430#line 416
73431          if (__cil_tmp37 != __cil_tmp35) {
73432            {
73433#line 416
73434            __cil_tmp38 = hcd->shared_hcd;
73435#line 416
73436            __cil_tmp39 = __cil_tmp38->flags;
73437#line 416
73438            __cil_tmp40 = __cil_tmp39 & 16UL;
73439#line 416
73440            if (__cil_tmp40 != 0UL) {
73441              _L: 
73442              {
73443#line 419
73444              __cil_tmp41 = (int (* const  )(struct usb_hcd * , bool  ))0;
73445#line 419
73446              __cil_tmp42 = (unsigned long )__cil_tmp41;
73447#line 419
73448              __cil_tmp43 = hcd->driver;
73449#line 419
73450              __cil_tmp44 = __cil_tmp43->pci_resume;
73451#line 419
73452              __cil_tmp45 = (unsigned long )__cil_tmp44;
73453#line 419
73454              if (__cil_tmp45 != __cil_tmp42) {
73455                {
73456#line 420
73457                __cil_tmp46 = hcd->driver;
73458#line 420
73459                __cil_tmp47 = __cil_tmp46->pci_resume;
73460#line 420
73461                __cil_tmp48 = (bool )0;
73462#line 420
73463                (*__cil_tmp47)(hcd, __cil_tmp48);
73464                }
73465              } else {
73466
73467              }
73468              }
73469#line 421
73470              retval = -16;
73471            } else {
73472
73473            }
73474            }
73475          } else {
73476
73477          }
73478          }
73479        } else {
73480
73481        }
73482      } else {
73483
73484      }
73485#line 423
73486      if (retval != 0) {
73487#line 424
73488        return (retval);
73489      } else {
73490
73491      }
73492    } else {
73493
73494    }
73495    }
73496  } else {
73497
73498  }
73499  }
73500  {
73501#line 431
73502  __cil_tmp49 = (unsigned char *)hcd;
73503#line 431
73504  __cil_tmp50 = __cil_tmp49 + 408UL;
73505#line 431
73506  __cil_tmp51 = *__cil_tmp50;
73507#line 431
73508  __cil_tmp52 = (unsigned int )__cil_tmp51;
73509#line 431
73510  if (__cil_tmp52 == 0U) {
73511    {
73512#line 432
73513    __cil_tmp53 = pci_dev->irq;
73514#line 432
73515    synchronize_irq(__cil_tmp53);
73516    }
73517  } else {
73518
73519  }
73520  }
73521  {
73522#line 439
73523  pci_disable_device(pci_dev);
73524  }
73525#line 440
73526  return (retval);
73527}
73528}
73529#line 443 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73530static int resume_common(struct device *dev , int event ) 
73531{ struct pci_dev *pci_dev ;
73532  struct device  const  *__mptr ;
73533  struct usb_hcd *hcd ;
73534  void *tmp ;
73535  int retval ;
73536  struct pci_dev *__cil_tmp8 ;
73537  unsigned long __cil_tmp9 ;
73538  unsigned long __cil_tmp10 ;
73539  struct device  const  *__cil_tmp11 ;
73540  struct usb_hcd *__cil_tmp12 ;
73541  unsigned long __cil_tmp13 ;
73542  struct usb_hcd *__cil_tmp14 ;
73543  unsigned long __cil_tmp15 ;
73544  struct usb_hcd *__cil_tmp16 ;
73545  unsigned long __cil_tmp17 ;
73546  unsigned long __cil_tmp18 ;
73547  struct device  const  *__cil_tmp19 ;
73548  struct device  const  *__cil_tmp20 ;
73549  unsigned long *__cil_tmp21 ;
73550  unsigned long volatile   *__cil_tmp22 ;
73551  struct usb_hcd *__cil_tmp23 ;
73552  unsigned long __cil_tmp24 ;
73553  struct usb_hcd *__cil_tmp25 ;
73554  unsigned long __cil_tmp26 ;
73555  struct usb_hcd *__cil_tmp27 ;
73556  unsigned long *__cil_tmp28 ;
73557  unsigned long volatile   *__cil_tmp29 ;
73558  int (*__cil_tmp30)(struct usb_hcd * , bool  ) ;
73559  unsigned long __cil_tmp31 ;
73560  struct hc_driver  const  *__cil_tmp32 ;
73561  int (*__cil_tmp33)(struct usb_hcd * , bool  ) ;
73562  unsigned long __cil_tmp34 ;
73563  unsigned long __cil_tmp35 ;
73564  unsigned long __cil_tmp36 ;
73565  struct hc_driver  const  *__cil_tmp37 ;
73566  int (*__cil_tmp38)(struct usb_hcd * , bool  ) ;
73567  int __cil_tmp39 ;
73568  bool __cil_tmp40 ;
73569  struct device  const  *__cil_tmp41 ;
73570  struct usb_hcd *__cil_tmp42 ;
73571  unsigned long __cil_tmp43 ;
73572  struct usb_hcd *__cil_tmp44 ;
73573  unsigned long __cil_tmp45 ;
73574  struct usb_hcd *__cil_tmp46 ;
73575
73576  {
73577  {
73578#line 445
73579  __mptr = (struct device  const  *)dev;
73580#line 445
73581  __cil_tmp8 = (struct pci_dev *)__mptr;
73582#line 445
73583  pci_dev = __cil_tmp8 + 1152921504606846832UL;
73584#line 446
73585  tmp = pci_get_drvdata(pci_dev);
73586#line 446
73587  hcd = (struct usb_hcd *)tmp;
73588  }
73589  {
73590#line 449
73591  __cil_tmp9 = hcd->flags;
73592#line 449
73593  __cil_tmp10 = __cil_tmp9 & 32UL;
73594#line 449
73595  if (__cil_tmp10 != 0UL) {
73596    {
73597#line 452
73598    __cil_tmp11 = (struct device  const  *)dev;
73599#line 452
73600    dev_printk("<7>", __cil_tmp11, "can\'t resume, not suspended!\n");
73601    }
73602#line 453
73603    return (0);
73604  } else {
73605    {
73606#line 449
73607    __cil_tmp12 = (struct usb_hcd *)0;
73608#line 449
73609    __cil_tmp13 = (unsigned long )__cil_tmp12;
73610#line 449
73611    __cil_tmp14 = hcd->shared_hcd;
73612#line 449
73613    __cil_tmp15 = (unsigned long )__cil_tmp14;
73614#line 449
73615    if (__cil_tmp15 != __cil_tmp13) {
73616      {
73617#line 449
73618      __cil_tmp16 = hcd->shared_hcd;
73619#line 449
73620      __cil_tmp17 = __cil_tmp16->flags;
73621#line 449
73622      __cil_tmp18 = __cil_tmp17 & 32UL;
73623#line 449
73624      if (__cil_tmp18 != 0UL) {
73625        {
73626#line 452
73627        __cil_tmp19 = (struct device  const  *)dev;
73628#line 452
73629        dev_printk("<7>", __cil_tmp19, "can\'t resume, not suspended!\n");
73630        }
73631#line 453
73632        return (0);
73633      } else {
73634
73635      }
73636      }
73637    } else {
73638
73639    }
73640    }
73641  }
73642  }
73643  {
73644#line 456
73645  retval = pci_enable_device(pci_dev);
73646  }
73647#line 457
73648  if (retval < 0) {
73649    {
73650#line 458
73651    __cil_tmp20 = (struct device  const  *)dev;
73652#line 458
73653    dev_err(__cil_tmp20, "can\'t re-enable after resume, %d!\n", retval);
73654    }
73655#line 459
73656    return (retval);
73657  } else {
73658
73659  }
73660  {
73661#line 462
73662  pci_set_master(pci_dev);
73663#line 464
73664  __cil_tmp21 = & hcd->flags;
73665#line 464
73666  __cil_tmp22 = (unsigned long volatile   *)__cil_tmp21;
73667#line 464
73668  clear_bit(1, __cil_tmp22);
73669  }
73670  {
73671#line 465
73672  __cil_tmp23 = (struct usb_hcd *)0;
73673#line 465
73674  __cil_tmp24 = (unsigned long )__cil_tmp23;
73675#line 465
73676  __cil_tmp25 = hcd->shared_hcd;
73677#line 465
73678  __cil_tmp26 = (unsigned long )__cil_tmp25;
73679#line 465
73680  if (__cil_tmp26 != __cil_tmp24) {
73681    {
73682#line 466
73683    __cil_tmp27 = hcd->shared_hcd;
73684#line 466
73685    __cil_tmp28 = & __cil_tmp27->flags;
73686#line 466
73687    __cil_tmp29 = (unsigned long volatile   *)__cil_tmp28;
73688#line 466
73689    clear_bit(1, __cil_tmp29);
73690    }
73691  } else {
73692
73693  }
73694  }
73695  {
73696#line 468
73697  __cil_tmp30 = (int (* const  )(struct usb_hcd * , bool  ))0;
73698#line 468
73699  __cil_tmp31 = (unsigned long )__cil_tmp30;
73700#line 468
73701  __cil_tmp32 = hcd->driver;
73702#line 468
73703  __cil_tmp33 = __cil_tmp32->pci_resume;
73704#line 468
73705  __cil_tmp34 = (unsigned long )__cil_tmp33;
73706#line 468
73707  if (__cil_tmp34 != __cil_tmp31) {
73708    {
73709#line 468
73710    __cil_tmp35 = hcd->flags;
73711#line 468
73712    __cil_tmp36 = __cil_tmp35 & 64UL;
73713#line 468
73714    if (__cil_tmp36 == 0UL) {
73715#line 469
73716      if (event != 1040) {
73717        {
73718#line 470
73719        wait_for_companions(pci_dev, hcd);
73720        }
73721      } else {
73722
73723      }
73724      {
73725#line 472
73726      __cil_tmp37 = hcd->driver;
73727#line 472
73728      __cil_tmp38 = __cil_tmp37->pci_resume;
73729#line 472
73730      __cil_tmp39 = event == 64;
73731#line 472
73732      __cil_tmp40 = (bool )__cil_tmp39;
73733#line 472
73734      retval = (*__cil_tmp38)(hcd, __cil_tmp40);
73735      }
73736#line 474
73737      if (retval != 0) {
73738        {
73739#line 475
73740        __cil_tmp41 = (struct device  const  *)dev;
73741#line 475
73742        dev_err(__cil_tmp41, "PCI post-resume error %d!\n", retval);
73743        }
73744        {
73745#line 476
73746        __cil_tmp42 = (struct usb_hcd *)0;
73747#line 476
73748        __cil_tmp43 = (unsigned long )__cil_tmp42;
73749#line 476
73750        __cil_tmp44 = hcd->shared_hcd;
73751#line 476
73752        __cil_tmp45 = (unsigned long )__cil_tmp44;
73753#line 476
73754        if (__cil_tmp45 != __cil_tmp43) {
73755          {
73756#line 477
73757          __cil_tmp46 = hcd->shared_hcd;
73758#line 477
73759          usb_hc_died(__cil_tmp46);
73760          }
73761        } else {
73762
73763        }
73764        }
73765        {
73766#line 478
73767        usb_hc_died(hcd);
73768        }
73769      } else {
73770
73771      }
73772    } else {
73773
73774    }
73775    }
73776  } else {
73777
73778  }
73779  }
73780#line 481
73781  return (retval);
73782}
73783}
73784#line 486 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73785static int hcd_pci_suspend(struct device *dev ) 
73786{ bool tmp ;
73787  int tmp___0 ;
73788  int __cil_tmp4 ;
73789  bool __cil_tmp5 ;
73790
73791  {
73792  {
73793#line 488
73794  tmp = device_may_wakeup(dev);
73795#line 488
73796  __cil_tmp4 = (int )tmp;
73797#line 488
73798  __cil_tmp5 = (bool )__cil_tmp4;
73799#line 488
73800  tmp___0 = suspend_common(dev, __cil_tmp5);
73801  }
73802#line 488
73803  return (tmp___0);
73804}
73805}
73806#line 491 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73807static int hcd_pci_suspend_noirq(struct device *dev ) 
73808{ struct pci_dev *pci_dev ;
73809  struct device  const  *__mptr ;
73810  struct usb_hcd *hcd ;
73811  void *tmp ;
73812  int retval ;
73813  bool tmp___0 ;
73814  char const   *tmp___1 ;
73815  struct pci_dev *__cil_tmp9 ;
73816  unsigned long __cil_tmp10 ;
73817  unsigned long __cil_tmp11 ;
73818  bool __cil_tmp12 ;
73819  struct device  const  *__cil_tmp13 ;
73820  int __cil_tmp14 ;
73821  struct device  const  *__cil_tmp15 ;
73822  pci_power_t __cil_tmp16 ;
73823  struct device  const  *__cil_tmp17 ;
73824  void *__cil_tmp18 ;
73825
73826  {
73827  {
73828#line 493
73829  __mptr = (struct device  const  *)dev;
73830#line 493
73831  __cil_tmp9 = (struct pci_dev *)__mptr;
73832#line 493
73833  pci_dev = __cil_tmp9 + 1152921504606846832UL;
73834#line 494
73835  tmp = pci_get_drvdata(pci_dev);
73836#line 494
73837  hcd = (struct usb_hcd *)tmp;
73838#line 497
73839  retval = check_root_hub_suspended(dev);
73840  }
73841#line 498
73842  if (retval != 0) {
73843#line 499
73844    return (retval);
73845  } else {
73846
73847  }
73848  {
73849#line 501
73850  pci_save_state(pci_dev);
73851  }
73852  {
73853#line 507
73854  __cil_tmp10 = hcd->flags;
73855#line 507
73856  __cil_tmp11 = __cil_tmp10 & 64UL;
73857#line 507
73858  if (__cil_tmp11 != 0UL) {
73859    {
73860#line 508
73861    __cil_tmp12 = (bool )0;
73862#line 508
73863    device_set_wakeup_enable(dev, __cil_tmp12);
73864    }
73865  } else {
73866
73867  }
73868  }
73869  {
73870#line 509
73871  tmp___0 = device_may_wakeup(dev);
73872#line 509
73873  __cil_tmp13 = (struct device  const  *)dev;
73874#line 509
73875  __cil_tmp14 = (int )tmp___0;
73876#line 509
73877  dev_printk("<7>", __cil_tmp13, "wakeup: %d\n", __cil_tmp14);
73878#line 514
73879  retval = pci_prepare_to_sleep(pci_dev);
73880  }
73881#line 515
73882  if (retval == -5) {
73883    {
73884#line 516
73885    __cil_tmp15 = (struct device  const  *)dev;
73886#line 516
73887    dev_printk("<7>", __cil_tmp15, "--> PCI D0 legacy\n");
73888#line 517
73889    retval = 0;
73890    }
73891  } else
73892#line 518
73893  if (retval == 0) {
73894    {
73895#line 519
73896    __cil_tmp16 = pci_dev->current_state;
73897#line 519
73898    tmp___1 = pci_power_name(__cil_tmp16);
73899#line 519
73900    __cil_tmp17 = (struct device  const  *)dev;
73901#line 519
73902    dev_printk("<7>", __cil_tmp17, "--> PCI %s\n", tmp___1);
73903    }
73904  } else {
73905    {
73906#line 522
73907    __cil_tmp18 = (void *)(& pci_prepare_to_sleep);
73908#line 522
73909    __suspend_report_result("hcd_pci_suspend_noirq", __cil_tmp18, retval);
73910    }
73911#line 523
73912    return (retval);
73913  }
73914  {
73915#line 526
73916  powermac_set_asic(pci_dev, 0);
73917  }
73918#line 527
73919  return (retval);
73920}
73921}
73922#line 530 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73923static int hcd_pci_resume_noirq(struct device *dev ) 
73924{ struct pci_dev *pci_dev ;
73925  struct device  const  *__mptr ;
73926  struct pci_dev *__cil_tmp4 ;
73927
73928  {
73929  {
73930#line 532
73931  __mptr = (struct device  const  *)dev;
73932#line 532
73933  __cil_tmp4 = (struct pci_dev *)__mptr;
73934#line 532
73935  pci_dev = __cil_tmp4 + 1152921504606846832UL;
73936#line 534
73937  powermac_set_asic(pci_dev, 1);
73938#line 537
73939  pci_back_from_sleep(pci_dev);
73940  }
73941#line 538
73942  return (0);
73943}
73944}
73945#line 541 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73946static int hcd_pci_resume(struct device *dev ) 
73947{ int tmp ;
73948
73949  {
73950  {
73951#line 543
73952  tmp = resume_common(dev, 16);
73953  }
73954#line 543
73955  return (tmp);
73956}
73957}
73958#line 546 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73959static int hcd_pci_restore(struct device *dev ) 
73960{ int tmp ;
73961
73962  {
73963  {
73964#line 548
73965  tmp = resume_common(dev, 64);
73966  }
73967#line 548
73968  return (tmp);
73969}
73970}
73971#line 563 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
73972static int hcd_pci_runtime_suspend(struct device *dev ) 
73973{ int retval ;
73974  struct device  const  *__mptr ;
73975  bool __cil_tmp4 ;
73976  struct pci_dev *__cil_tmp5 ;
73977  struct pci_dev *__cil_tmp6 ;
73978  struct device  const  *__cil_tmp7 ;
73979
73980  {
73981  {
73982#line 567
73983  __cil_tmp4 = (bool )1;
73984#line 567
73985  retval = suspend_common(dev, __cil_tmp4);
73986  }
73987#line 568
73988  if (retval == 0) {
73989    {
73990#line 569
73991    __mptr = (struct device  const  *)dev;
73992#line 569
73993    __cil_tmp5 = (struct pci_dev *)__mptr;
73994#line 569
73995    __cil_tmp6 = __cil_tmp5 + 1152921504606846832UL;
73996#line 569
73997    powermac_set_asic(__cil_tmp6, 0);
73998    }
73999  } else {
74000
74001  }
74002  {
74003#line 570
74004  __cil_tmp7 = (struct device  const  *)dev;
74005#line 570
74006  dev_printk("<7>", __cil_tmp7, "hcd_pci_runtime_suspend: %d\n", retval);
74007  }
74008#line 571
74009  return (retval);
74010}
74011}
74012#line 574 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
74013static int hcd_pci_runtime_resume(struct device *dev ) 
74014{ int retval ;
74015  struct device  const  *__mptr ;
74016  struct pci_dev *__cil_tmp4 ;
74017  struct pci_dev *__cil_tmp5 ;
74018  struct device  const  *__cil_tmp6 ;
74019
74020  {
74021  {
74022#line 578
74023  __mptr = (struct device  const  *)dev;
74024#line 578
74025  __cil_tmp4 = (struct pci_dev *)__mptr;
74026#line 578
74027  __cil_tmp5 = __cil_tmp4 + 1152921504606846832UL;
74028#line 578
74029  powermac_set_asic(__cil_tmp5, 1);
74030#line 579
74031  retval = resume_common(dev, 1040);
74032#line 580
74033  __cil_tmp6 = (struct device  const  *)dev;
74034#line 580
74035  dev_printk("<7>", __cil_tmp6, "hcd_pci_runtime_resume: %d\n", retval);
74036  }
74037#line 581
74038  return (retval);
74039}
74040}
74041#line 591 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/hcd-pci.c.p"
74042struct dev_pm_ops  const  usb_hcd_pci_pm_ops  = 
74043#line 591
74044     {(int (*)(struct device * ))0, (void (*)(struct device * ))0, & hcd_pci_suspend,
74045    & hcd_pci_resume, & check_root_hub_suspended, (int (*)(struct device * ))0, & hcd_pci_suspend,
74046    & hcd_pci_restore, & hcd_pci_suspend_noirq, & hcd_pci_resume_noirq, & check_root_hub_suspended,
74047    (int (*)(struct device * ))0, & hcd_pci_suspend_noirq, & hcd_pci_resume_noirq,
74048    & hcd_pci_runtime_suspend, & hcd_pci_runtime_resume, (int (*)(struct device * ))0};
74049#line 90 "include/linux/string.h"
74050extern char *strsep(char ** , char const   * ) ;
74051#line 23 "include/linux/spinlock_api_smp.h"
74052extern void _raw_spin_lock_nested(raw_spinlock_t * , int  ) ;
74053#line 51 "include/linux/list_bl.h"
74054__inline static int hlist_bl_unhashed(struct hlist_bl_node  const  *h ) 
74055{ struct hlist_bl_node **__cil_tmp2 ;
74056  unsigned long __cil_tmp3 ;
74057  struct hlist_bl_node **__cil_tmp4 ;
74058  unsigned long __cil_tmp5 ;
74059
74060  {
74061  {
74062#line 53
74063  __cil_tmp2 = (struct hlist_bl_node ** const  )0;
74064#line 53
74065  __cil_tmp3 = (unsigned long )__cil_tmp2;
74066#line 53
74067  __cil_tmp4 = h->pprev;
74068#line 53
74069  __cil_tmp5 = (unsigned long )__cil_tmp4;
74070#line 53
74071  return (__cil_tmp5 == __cil_tmp3);
74072  }
74073}
74074}
74075#line 232 "include/linux/dcache.h"
74076extern void d_instantiate(struct dentry * , struct inode * ) ;
74077#line 237
74078extern void d_delete(struct dentry * ) ;
74079#line 252
74080extern struct dentry *d_alloc_root(struct inode * ) ;
74081#line 359 "include/linux/dcache.h"
74082__inline static struct dentry *dget_dlock(struct dentry *dentry ) 
74083{ struct dentry *__cil_tmp2 ;
74084  unsigned long __cil_tmp3 ;
74085  unsigned long __cil_tmp4 ;
74086  unsigned int __cil_tmp5 ;
74087
74088  {
74089  {
74090#line 361
74091  __cil_tmp2 = (struct dentry *)0;
74092#line 361
74093  __cil_tmp3 = (unsigned long )__cil_tmp2;
74094#line 361
74095  __cil_tmp4 = (unsigned long )dentry;
74096#line 361
74097  if (__cil_tmp4 != __cil_tmp3) {
74098#line 362
74099    __cil_tmp5 = dentry->d_count;
74100#line 362
74101    dentry->d_count = __cil_tmp5 + 1U;
74102  } else {
74103
74104  }
74105  }
74106#line 363
74107  return (dentry);
74108}
74109}
74110#line 366 "include/linux/dcache.h"
74111__inline static struct dentry *dget(struct dentry *dentry ) 
74112{ struct dentry *__cil_tmp2 ;
74113  unsigned long __cil_tmp3 ;
74114  unsigned long __cil_tmp4 ;
74115  spinlock_t *__cil_tmp5 ;
74116  spinlock_t *__cil_tmp6 ;
74117
74118  {
74119  {
74120#line 368
74121  __cil_tmp2 = (struct dentry *)0;
74122#line 368
74123  __cil_tmp3 = (unsigned long )__cil_tmp2;
74124#line 368
74125  __cil_tmp4 = (unsigned long )dentry;
74126#line 368
74127  if (__cil_tmp4 != __cil_tmp3) {
74128    {
74129#line 369
74130    __cil_tmp5 = & dentry->d_lock;
74131#line 369
74132    spin_lock(__cil_tmp5);
74133#line 370
74134    dget_dlock(dentry);
74135#line 371
74136    __cil_tmp6 = & dentry->d_lock;
74137#line 371
74138    spin_unlock(__cil_tmp6);
74139    }
74140  } else {
74141
74142  }
74143  }
74144#line 373
74145  return (dentry);
74146}
74147}
74148#line 385 "include/linux/dcache.h"
74149__inline static int d_unhashed(struct dentry *dentry ) 
74150{ int tmp ;
74151  struct hlist_bl_node *__cil_tmp3 ;
74152  struct hlist_bl_node  const  *__cil_tmp4 ;
74153
74154  {
74155  {
74156#line 387
74157  __cil_tmp3 = & dentry->d_hash;
74158#line 387
74159  __cil_tmp4 = (struct hlist_bl_node  const  *)__cil_tmp3;
74160#line 387
74161  tmp = hlist_bl_unhashed(__cil_tmp4);
74162  }
74163#line 387
74164  return (tmp);
74165}
74166}
74167#line 400 "include/linux/dcache.h"
74168__inline static void dont_mount(struct dentry *dentry ) 
74169{ spinlock_t *__cil_tmp2 ;
74170  unsigned int __cil_tmp3 ;
74171  spinlock_t *__cil_tmp4 ;
74172
74173  {
74174  {
74175#line 402
74176  __cil_tmp2 = & dentry->d_lock;
74177#line 402
74178  spin_lock(__cil_tmp2);
74179#line 403
74180  __cil_tmp3 = dentry->d_flags;
74181#line 403
74182  dentry->d_flags = __cil_tmp3 | 256U;
74183#line 404
74184  __cil_tmp4 = & dentry->d_lock;
74185#line 404
74186  spin_unlock(__cil_tmp4);
74187  }
74188#line 405
74189  return;
74190}
74191}
74192#line 407
74193extern void dput(struct dentry * ) ;
74194#line 1488 "include/linux/fs.h"
74195extern void dentry_unhash(struct dentry * ) ;
74196#line 1731 "include/linux/fs.h"
74197__inline static void inc_nlink(struct inode *inode ) 
74198{ unsigned int __cil_tmp2 ;
74199
74200  {
74201#line 1733
74202  __cil_tmp2 = inode->i_nlink;
74203#line 1733
74204  inode->i_nlink = __cil_tmp2 + 1U;
74205#line 1734
74206  return;
74207}
74208}
74209#line 1753 "include/linux/fs.h"
74210__inline static void drop_nlink(struct inode *inode ) 
74211{ unsigned int __cil_tmp2 ;
74212
74213  {
74214#line 1755
74215  __cil_tmp2 = inode->i_nlink;
74216#line 1755
74217  inode->i_nlink = __cil_tmp2 - 1U;
74218#line 1756
74219  return;
74220}
74221}
74222#line 1827
74223extern struct dentry *mount_single(struct file_system_type * , int  , void * , int (*)(struct super_block * ,
74224                                                                                       void * ,
74225                                                                                       int  ) ) ;
74226#line 1836
74227extern void kill_litter_super(struct super_block * ) ;
74228#line 1868
74229extern int register_filesystem(struct file_system_type * ) ;
74230#line 1869
74231extern int unregister_filesystem(struct file_system_type * ) ;
74232#line 2123
74233extern void init_special_inode(struct inode * , umode_t  , dev_t  ) ;
74234#line 2254
74235extern void iput(struct inode * ) ;
74236#line 2258
74237extern int generic_delete_inode(struct inode * ) ;
74238#line 2273
74239extern unsigned int get_next_ino(void) ;
74240#line 2279
74241extern struct inode *new_inode(struct super_block * ) ;
74242#line 2442
74243extern int simple_statfs(struct dentry * , struct kstatfs * ) ;
74244#line 2459
74245extern struct file_operations  const  simple_dir_operations ;
74246#line 2460
74247extern struct inode_operations  const  simple_dir_inode_operations ;
74248#line 2464
74249extern int simple_pin_fs(struct file_system_type * , struct vfsmount ** , int * ) ;
74250#line 2465
74251extern void simple_release_fs(struct vfsmount ** , int * ) ;
74252#line 115 "include/linux/proc_fs.h"
74253extern void remove_proc_entry(char const   * , struct proc_dir_entry * ) ;
74254#line 148
74255extern struct proc_dir_entry *proc_mkdir(char const   * , struct proc_dir_entry * ) ;
74256#line 85 "include/linux/namei.h"
74257extern struct dentry *lookup_one_len(char const   * , struct dentry * , int  ) ;
74258#line 28 "include/linux/parser.h"
74259extern int match_token(char * , struct match_token  const  * , substring_t * ) ;
74260#line 29
74261extern int match_int(substring_t * , int * ) ;
74262#line 30
74263extern int match_octal(substring_t * , int * ) ;
74264#line 86 "include/linux/seq_file.h"
74265extern int seq_printf(struct seq_file * , char const   *  , ...) ;
74266#line 58 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74267static struct file_operations  const  default_file_operations ;
74268#line 59 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74269static struct vfsmount *usbfs_mount  ;
74270#line 60 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74271static int usbfs_mount_count  ;
74272#line 61 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74273static int ignore_mount  =    0;
74274#line 63 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74275static struct dentry *devices_usbfs_dentry  ;
74276#line 64 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74277static int num_buses  ;
74278#line 66 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74279static uid_t devuid  ;
74280#line 67 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74281static uid_t busuid  ;
74282#line 68 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74283static uid_t listuid  ;
74284#line 69 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74285static gid_t devgid  ;
74286#line 70 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74287static gid_t busgid  ;
74288#line 71 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74289static gid_t listgid  ;
74290#line 72 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74291static umode_t devmode  =    (umode_t )420U;
74292#line 73 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74293static umode_t busmode  =    (umode_t )365U;
74294#line 74 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74295static umode_t listmode  =    (umode_t )292U;
74296#line 76 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74297static int usbfs_show_options(struct seq_file *seq , struct vfsmount *mnt ) 
74298{ unsigned int __cil_tmp3 ;
74299  int __cil_tmp4 ;
74300  unsigned int __cil_tmp5 ;
74301  int __cil_tmp6 ;
74302  unsigned int __cil_tmp7 ;
74303  int __cil_tmp8 ;
74304
74305  {
74306#line 78
74307  if (devuid != 0U) {
74308    {
74309#line 79
74310    seq_printf(seq, ",devuid=%u", devuid);
74311    }
74312  } else {
74313
74314  }
74315#line 80
74316  if (devgid != 0U) {
74317    {
74318#line 81
74319    seq_printf(seq, ",devgid=%u", devgid);
74320    }
74321  } else {
74322
74323  }
74324  {
74325#line 82
74326  __cil_tmp3 = (unsigned int )devmode;
74327#line 82
74328  if (__cil_tmp3 != 420U) {
74329    {
74330#line 83
74331    __cil_tmp4 = (int )devmode;
74332#line 83
74333    seq_printf(seq, ",devmode=%o", __cil_tmp4);
74334    }
74335  } else {
74336
74337  }
74338  }
74339#line 84
74340  if (busuid != 0U) {
74341    {
74342#line 85
74343    seq_printf(seq, ",busuid=%u", busuid);
74344    }
74345  } else {
74346
74347  }
74348#line 86
74349  if (busgid != 0U) {
74350    {
74351#line 87
74352    seq_printf(seq, ",busgid=%u", busgid);
74353    }
74354  } else {
74355
74356  }
74357  {
74358#line 88
74359  __cil_tmp5 = (unsigned int )busmode;
74360#line 88
74361  if (__cil_tmp5 != 365U) {
74362    {
74363#line 89
74364    __cil_tmp6 = (int )busmode;
74365#line 89
74366    seq_printf(seq, ",busmode=%o", __cil_tmp6);
74367    }
74368  } else {
74369
74370  }
74371  }
74372#line 90
74373  if (listuid != 0U) {
74374    {
74375#line 91
74376    seq_printf(seq, ",listuid=%u", listuid);
74377    }
74378  } else {
74379
74380  }
74381#line 92
74382  if (listgid != 0U) {
74383    {
74384#line 93
74385    seq_printf(seq, ",listgid=%u", listgid);
74386    }
74387  } else {
74388
74389  }
74390  {
74391#line 94
74392  __cil_tmp7 = (unsigned int )listmode;
74393#line 94
74394  if (__cil_tmp7 != 292U) {
74395    {
74396#line 95
74397    __cil_tmp8 = (int )listmode;
74398#line 95
74399    seq_printf(seq, ",listmode=%o", __cil_tmp8);
74400    }
74401  } else {
74402
74403  }
74404  }
74405#line 97
74406  return (0);
74407}
74408}
74409#line 107 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74410static struct match_token  const  tokens[10U]  = 
74411#line 107
74412  {      {0, "devuid=%u"}, 
74413        {1, "devgid=%u"}, 
74414        {2, "devmode=%o"}, 
74415        {3, "busuid=%u"}, 
74416        {4, "busgid=%u"}, 
74417        {5, "busmode=%o"}, 
74418        {6, "listuid=%u"}, 
74419        {7, "listgid=%u"}, 
74420        {8, "listmode=%o"}, 
74421        {9, (char const   *)0}};
74422#line 120 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74423static int parse_options(struct super_block *s , char *data ) 
74424{ char *p ;
74425  int option ;
74426  substring_t args[3U] ;
74427  int token ;
74428  int tmp ;
74429  int tmp___0 ;
74430  int tmp___1 ;
74431  int tmp___2 ;
74432  int tmp___3 ;
74433  int tmp___4 ;
74434  int tmp___5 ;
74435  int tmp___6 ;
74436  int tmp___7 ;
74437  char __cil_tmp16 ;
74438  signed char __cil_tmp17 ;
74439  int __cil_tmp18 ;
74440  struct match_token  const  *__cil_tmp19 ;
74441  substring_t *__cil_tmp20 ;
74442  substring_t *__cil_tmp21 ;
74443  substring_t *__cil_tmp22 ;
74444  substring_t *__cil_tmp23 ;
74445  umode_t __cil_tmp24 ;
74446  unsigned int __cil_tmp25 ;
74447  unsigned int __cil_tmp26 ;
74448  substring_t *__cil_tmp27 ;
74449  substring_t *__cil_tmp28 ;
74450  substring_t *__cil_tmp29 ;
74451  umode_t __cil_tmp30 ;
74452  unsigned int __cil_tmp31 ;
74453  unsigned int __cil_tmp32 ;
74454  substring_t *__cil_tmp33 ;
74455  substring_t *__cil_tmp34 ;
74456  substring_t *__cil_tmp35 ;
74457  umode_t __cil_tmp36 ;
74458  unsigned int __cil_tmp37 ;
74459  unsigned int __cil_tmp38 ;
74460  char *__cil_tmp39 ;
74461  unsigned long __cil_tmp40 ;
74462  unsigned long __cil_tmp41 ;
74463
74464  {
74465#line 126
74466  devuid = 0U;
74467#line 127
74468  busuid = 0U;
74469#line 128
74470  listuid = 0U;
74471#line 129
74472  devgid = 0U;
74473#line 130
74474  busgid = 0U;
74475#line 131
74476  listgid = 0U;
74477#line 132
74478  devmode = (umode_t )420U;
74479#line 133
74480  busmode = (umode_t )365U;
74481#line 134
74482  listmode = (umode_t )292U;
74483#line 136
74484  goto ldv_28762;
74485  ldv_28774: ;
74486  {
74487#line 139
74488  __cil_tmp16 = *p;
74489#line 139
74490  __cil_tmp17 = (signed char )__cil_tmp16;
74491#line 139
74492  __cil_tmp18 = (int )__cil_tmp17;
74493#line 139
74494  if (__cil_tmp18 == 0) {
74495#line 140
74496    goto ldv_28762;
74497  } else {
74498
74499  }
74500  }
74501  {
74502#line 142
74503  __cil_tmp19 = (struct match_token  const  *)(& tokens);
74504#line 142
74505  __cil_tmp20 = (substring_t *)(& args);
74506#line 142
74507  token = match_token(p, __cil_tmp19, __cil_tmp20);
74508  }
74509#line 144
74510  if (token == 0) {
74511#line 144
74512    goto case_0;
74513  } else
74514#line 149
74515  if (token == 1) {
74516#line 149
74517    goto case_1;
74518  } else
74519#line 154
74520  if (token == 2) {
74521#line 154
74522    goto case_2;
74523  } else
74524#line 159
74525  if (token == 3) {
74526#line 159
74527    goto case_3;
74528  } else
74529#line 164
74530  if (token == 4) {
74531#line 164
74532    goto case_4;
74533  } else
74534#line 169
74535  if (token == 5) {
74536#line 169
74537    goto case_5;
74538  } else
74539#line 174
74540  if (token == 6) {
74541#line 174
74542    goto case_6;
74543  } else
74544#line 179
74545  if (token == 7) {
74546#line 179
74547    goto case_7;
74548  } else
74549#line 184
74550  if (token == 8) {
74551#line 184
74552    goto case_8;
74553  } else {
74554#line 189
74555    goto switch_default;
74556#line 143
74557    if (0) {
74558      case_0: 
74559      {
74560#line 145
74561      __cil_tmp21 = (substring_t *)(& args);
74562#line 145
74563      tmp = match_int(__cil_tmp21, & option);
74564      }
74565#line 145
74566      if (tmp != 0) {
74567#line 146
74568        return (-22);
74569      } else {
74570
74571      }
74572#line 147
74573      devuid = (uid_t )option;
74574#line 148
74575      goto ldv_28764;
74576      case_1: 
74577      {
74578#line 150
74579      __cil_tmp22 = (substring_t *)(& args);
74580#line 150
74581      tmp___0 = match_int(__cil_tmp22, & option);
74582      }
74583#line 150
74584      if (tmp___0 != 0) {
74585#line 151
74586        return (-22);
74587      } else {
74588
74589      }
74590#line 152
74591      devgid = (gid_t )option;
74592#line 153
74593      goto ldv_28764;
74594      case_2: 
74595      {
74596#line 155
74597      __cil_tmp23 = (substring_t *)(& args);
74598#line 155
74599      tmp___1 = match_octal(__cil_tmp23, & option);
74600      }
74601#line 155
74602      if (tmp___1 != 0) {
74603#line 156
74604        return (-22);
74605      } else {
74606
74607      }
74608#line 157
74609      __cil_tmp24 = (umode_t )option;
74610#line 157
74611      __cil_tmp25 = (unsigned int )__cil_tmp24;
74612#line 157
74613      __cil_tmp26 = __cil_tmp25 & 511U;
74614#line 157
74615      devmode = (umode_t )__cil_tmp26;
74616#line 158
74617      goto ldv_28764;
74618      case_3: 
74619      {
74620#line 160
74621      __cil_tmp27 = (substring_t *)(& args);
74622#line 160
74623      tmp___2 = match_int(__cil_tmp27, & option);
74624      }
74625#line 160
74626      if (tmp___2 != 0) {
74627#line 161
74628        return (-22);
74629      } else {
74630
74631      }
74632#line 162
74633      busuid = (uid_t )option;
74634#line 163
74635      goto ldv_28764;
74636      case_4: 
74637      {
74638#line 165
74639      __cil_tmp28 = (substring_t *)(& args);
74640#line 165
74641      tmp___3 = match_int(__cil_tmp28, & option);
74642      }
74643#line 165
74644      if (tmp___3 != 0) {
74645#line 166
74646        return (-22);
74647      } else {
74648
74649      }
74650#line 167
74651      busgid = (gid_t )option;
74652#line 168
74653      goto ldv_28764;
74654      case_5: 
74655      {
74656#line 170
74657      __cil_tmp29 = (substring_t *)(& args);
74658#line 170
74659      tmp___4 = match_octal(__cil_tmp29, & option);
74660      }
74661#line 170
74662      if (tmp___4 != 0) {
74663#line 171
74664        return (-22);
74665      } else {
74666
74667      }
74668#line 172
74669      __cil_tmp30 = (umode_t )option;
74670#line 172
74671      __cil_tmp31 = (unsigned int )__cil_tmp30;
74672#line 172
74673      __cil_tmp32 = __cil_tmp31 & 511U;
74674#line 172
74675      busmode = (umode_t )__cil_tmp32;
74676#line 173
74677      goto ldv_28764;
74678      case_6: 
74679      {
74680#line 175
74681      __cil_tmp33 = (substring_t *)(& args);
74682#line 175
74683      tmp___5 = match_int(__cil_tmp33, & option);
74684      }
74685#line 175
74686      if (tmp___5 != 0) {
74687#line 176
74688        return (-22);
74689      } else {
74690
74691      }
74692#line 177
74693      listuid = (uid_t )option;
74694#line 178
74695      goto ldv_28764;
74696      case_7: 
74697      {
74698#line 180
74699      __cil_tmp34 = (substring_t *)(& args);
74700#line 180
74701      tmp___6 = match_int(__cil_tmp34, & option);
74702      }
74703#line 180
74704      if (tmp___6 != 0) {
74705#line 181
74706        return (-22);
74707      } else {
74708
74709      }
74710#line 182
74711      listgid = (gid_t )option;
74712#line 183
74713      goto ldv_28764;
74714      case_8: 
74715      {
74716#line 185
74717      __cil_tmp35 = (substring_t *)(& args);
74718#line 185
74719      tmp___7 = match_octal(__cil_tmp35, & option);
74720      }
74721#line 185
74722      if (tmp___7 != 0) {
74723#line 186
74724        return (-22);
74725      } else {
74726
74727      }
74728#line 187
74729      __cil_tmp36 = (umode_t )option;
74730#line 187
74731      __cil_tmp37 = (unsigned int )__cil_tmp36;
74732#line 187
74733      __cil_tmp38 = __cil_tmp37 & 511U;
74734#line 187
74735      listmode = (umode_t )__cil_tmp38;
74736#line 188
74737      goto ldv_28764;
74738      switch_default: 
74739      {
74740#line 190
74741      printk("<3>usbfs: unrecognised mount option \"%s\" or missing value\n", p);
74742      }
74743#line 192
74744      return (-22);
74745    } else {
74746
74747    }
74748  }
74749  ldv_28764: ;
74750  ldv_28762: 
74751  {
74752#line 136
74753  p = strsep(& data, ",");
74754  }
74755  {
74756#line 136
74757  __cil_tmp39 = (char *)0;
74758#line 136
74759  __cil_tmp40 = (unsigned long )__cil_tmp39;
74760#line 136
74761  __cil_tmp41 = (unsigned long )p;
74762#line 136
74763  if (__cil_tmp41 != __cil_tmp40) {
74764#line 137
74765    goto ldv_28774;
74766  } else {
74767#line 139
74768    goto ldv_28775;
74769  }
74770  }
74771  ldv_28775: ;
74772#line 196
74773  return (0);
74774}
74775}
74776#line 199 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74777static void update_special(struct dentry *special ) 
74778{ struct inode *__cil_tmp2 ;
74779  struct inode *__cil_tmp3 ;
74780  struct inode *__cil_tmp4 ;
74781  unsigned int __cil_tmp5 ;
74782  unsigned int __cil_tmp6 ;
74783
74784  {
74785#line 201
74786  __cil_tmp2 = special->d_inode;
74787#line 201
74788  __cil_tmp2->i_uid = listuid;
74789#line 202
74790  __cil_tmp3 = special->d_inode;
74791#line 202
74792  __cil_tmp3->i_gid = listgid;
74793#line 203
74794  __cil_tmp4 = special->d_inode;
74795#line 203
74796  __cil_tmp5 = (unsigned int )listmode;
74797#line 203
74798  __cil_tmp6 = __cil_tmp5 | 32768U;
74799#line 203
74800  __cil_tmp4->i_mode = (umode_t )__cil_tmp6;
74801#line 204
74802  return;
74803}
74804}
74805#line 206 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74806static void update_dev(struct dentry *dev ) 
74807{ struct inode *__cil_tmp2 ;
74808  struct inode *__cil_tmp3 ;
74809  struct inode *__cil_tmp4 ;
74810  unsigned int __cil_tmp5 ;
74811  unsigned int __cil_tmp6 ;
74812
74813  {
74814#line 208
74815  __cil_tmp2 = dev->d_inode;
74816#line 208
74817  __cil_tmp2->i_uid = devuid;
74818#line 209
74819  __cil_tmp3 = dev->d_inode;
74820#line 209
74821  __cil_tmp3->i_gid = devgid;
74822#line 210
74823  __cil_tmp4 = dev->d_inode;
74824#line 210
74825  __cil_tmp5 = (unsigned int )devmode;
74826#line 210
74827  __cil_tmp6 = __cil_tmp5 | 32768U;
74828#line 210
74829  __cil_tmp4->i_mode = (umode_t )__cil_tmp6;
74830#line 211
74831  return;
74832}
74833}
74834#line 213 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74835static void update_bus(struct dentry *bus ) 
74836{ struct dentry *dev ;
74837  struct list_head  const  *__mptr ;
74838  struct list_head  const  *__mptr___0 ;
74839  struct inode *__cil_tmp5 ;
74840  struct inode *__cil_tmp6 ;
74841  struct inode *__cil_tmp7 ;
74842  unsigned int __cil_tmp8 ;
74843  unsigned int __cil_tmp9 ;
74844  struct inode *__cil_tmp10 ;
74845  struct mutex *__cil_tmp11 ;
74846  struct list_head *__cil_tmp12 ;
74847  struct dentry *__cil_tmp13 ;
74848  struct inode *__cil_tmp14 ;
74849  unsigned long __cil_tmp15 ;
74850  struct inode *__cil_tmp16 ;
74851  unsigned long __cil_tmp17 ;
74852  struct list_head *__cil_tmp18 ;
74853  struct dentry *__cil_tmp19 ;
74854  struct list_head *__cil_tmp20 ;
74855  unsigned long __cil_tmp21 ;
74856  struct list_head *__cil_tmp22 ;
74857  unsigned long __cil_tmp23 ;
74858  struct inode *__cil_tmp24 ;
74859  struct mutex *__cil_tmp25 ;
74860
74861  {
74862  {
74863#line 215
74864  dev = (struct dentry *)0;
74865#line 217
74866  __cil_tmp5 = bus->d_inode;
74867#line 217
74868  __cil_tmp5->i_uid = busuid;
74869#line 218
74870  __cil_tmp6 = bus->d_inode;
74871#line 218
74872  __cil_tmp6->i_gid = busgid;
74873#line 219
74874  __cil_tmp7 = bus->d_inode;
74875#line 219
74876  __cil_tmp8 = (unsigned int )busmode;
74877#line 219
74878  __cil_tmp9 = __cil_tmp8 | 16384U;
74879#line 219
74880  __cil_tmp7->i_mode = (umode_t )__cil_tmp9;
74881#line 221
74882  __cil_tmp10 = bus->d_inode;
74883#line 221
74884  __cil_tmp11 = & __cil_tmp10->i_mutex;
74885#line 221
74886  mutex_lock_nested(__cil_tmp11, 0U);
74887#line 223
74888  __cil_tmp12 = bus->d_subdirs.next;
74889#line 223
74890  __mptr = (struct list_head  const  *)__cil_tmp12;
74891#line 223
74892  __cil_tmp13 = (struct dentry *)__mptr;
74893#line 223
74894  dev = __cil_tmp13 + 1152921504606846760UL;
74895  }
74896#line 223
74897  goto ldv_28791;
74898  ldv_28790: ;
74899  {
74900#line 224
74901  __cil_tmp14 = (struct inode *)0;
74902#line 224
74903  __cil_tmp15 = (unsigned long )__cil_tmp14;
74904#line 224
74905  __cil_tmp16 = dev->d_inode;
74906#line 224
74907  __cil_tmp17 = (unsigned long )__cil_tmp16;
74908#line 224
74909  if (__cil_tmp17 != __cil_tmp15) {
74910    {
74911#line 225
74912    update_dev(dev);
74913    }
74914  } else {
74915
74916  }
74917  }
74918#line 223
74919  __cil_tmp18 = dev->d_u.d_child.next;
74920#line 223
74921  __mptr___0 = (struct list_head  const  *)__cil_tmp18;
74922#line 223
74923  __cil_tmp19 = (struct dentry *)__mptr___0;
74924#line 223
74925  dev = __cil_tmp19 + 1152921504606846760UL;
74926  ldv_28791: ;
74927  {
74928#line 223
74929  __cil_tmp20 = & bus->d_subdirs;
74930#line 223
74931  __cil_tmp21 = (unsigned long )__cil_tmp20;
74932#line 223
74933  __cil_tmp22 = & dev->d_u.d_child;
74934#line 223
74935  __cil_tmp23 = (unsigned long )__cil_tmp22;
74936#line 223
74937  if (__cil_tmp23 != __cil_tmp21) {
74938#line 224
74939    goto ldv_28790;
74940  } else {
74941#line 226
74942    goto ldv_28792;
74943  }
74944  }
74945  ldv_28792: 
74946  {
74947#line 227
74948  __cil_tmp24 = bus->d_inode;
74949#line 227
74950  __cil_tmp25 = & __cil_tmp24->i_mutex;
74951#line 227
74952  mutex_unlock(__cil_tmp25);
74953  }
74954#line 228
74955  return;
74956}
74957}
74958#line 230 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
74959static void update_sb(struct super_block *sb ) 
74960{ struct dentry *root ;
74961  struct dentry *bus ;
74962  struct list_head  const  *__mptr ;
74963  struct list_head  const  *__mptr___0 ;
74964  struct dentry *__cil_tmp6 ;
74965  unsigned long __cil_tmp7 ;
74966  unsigned long __cil_tmp8 ;
74967  struct inode *__cil_tmp9 ;
74968  struct mutex *__cil_tmp10 ;
74969  struct list_head *__cil_tmp11 ;
74970  struct dentry *__cil_tmp12 ;
74971  struct inode *__cil_tmp13 ;
74972  unsigned long __cil_tmp14 ;
74973  struct inode *__cil_tmp15 ;
74974  unsigned long __cil_tmp16 ;
74975  struct inode *__cil_tmp17 ;
74976  umode_t __cil_tmp18 ;
74977  int __cil_tmp19 ;
74978  int __cil_tmp20 ;
74979  struct inode *__cil_tmp21 ;
74980  umode_t __cil_tmp22 ;
74981  int __cil_tmp23 ;
74982  int __cil_tmp24 ;
74983  unsigned char const   *__cil_tmp25 ;
74984  struct inode *__cil_tmp26 ;
74985  umode_t __cil_tmp27 ;
74986  int __cil_tmp28 ;
74987  struct list_head *__cil_tmp29 ;
74988  struct dentry *__cil_tmp30 ;
74989  struct list_head *__cil_tmp31 ;
74990  unsigned long __cil_tmp32 ;
74991  struct list_head *__cil_tmp33 ;
74992  unsigned long __cil_tmp34 ;
74993  struct inode *__cil_tmp35 ;
74994  struct mutex *__cil_tmp36 ;
74995
74996  {
74997#line 232
74998  root = sb->s_root;
74999#line 233
75000  bus = (struct dentry *)0;
75001  {
75002#line 235
75003  __cil_tmp6 = (struct dentry *)0;
75004#line 235
75005  __cil_tmp7 = (unsigned long )__cil_tmp6;
75006#line 235
75007  __cil_tmp8 = (unsigned long )root;
75008#line 235
75009  if (__cil_tmp8 == __cil_tmp7) {
75010#line 236
75011    return;
75012  } else {
75013
75014  }
75015  }
75016  {
75017#line 238
75018  __cil_tmp9 = root->d_inode;
75019#line 238
75020  __cil_tmp10 = & __cil_tmp9->i_mutex;
75021#line 238
75022  mutex_lock_nested(__cil_tmp10, 1U);
75023#line 240
75024  __cil_tmp11 = root->d_subdirs.next;
75025#line 240
75026  __mptr = (struct list_head  const  *)__cil_tmp11;
75027#line 240
75028  __cil_tmp12 = (struct dentry *)__mptr;
75029#line 240
75030  bus = __cil_tmp12 + 1152921504606846760UL;
75031  }
75032#line 240
75033  goto ldv_28807;
75034  ldv_28806: ;
75035  {
75036#line 241
75037  __cil_tmp13 = (struct inode *)0;
75038#line 241
75039  __cil_tmp14 = (unsigned long )__cil_tmp13;
75040#line 241
75041  __cil_tmp15 = bus->d_inode;
75042#line 241
75043  __cil_tmp16 = (unsigned long )__cil_tmp15;
75044#line 241
75045  if (__cil_tmp16 != __cil_tmp14) {
75046    {
75047#line 243
75048    __cil_tmp17 = bus->d_inode;
75049#line 243
75050    __cil_tmp18 = __cil_tmp17->i_mode;
75051#line 243
75052    __cil_tmp19 = (int )__cil_tmp18;
75053#line 243
75054    __cil_tmp20 = __cil_tmp19 & 61440;
75055#line 243
75056    if (__cil_tmp20 == 16384) {
75057#line 243
75058      goto case_16384;
75059    } else {
75060      {
75061#line 246
75062      __cil_tmp21 = bus->d_inode;
75063#line 246
75064      __cil_tmp22 = __cil_tmp21->i_mode;
75065#line 246
75066      __cil_tmp23 = (int )__cil_tmp22;
75067#line 246
75068      __cil_tmp24 = __cil_tmp23 & 61440;
75069#line 246
75070      if (__cil_tmp24 == 32768) {
75071#line 246
75072        goto case_32768;
75073      } else {
75074#line 249
75075        goto switch_default;
75076#line 242
75077        if (0) {
75078          case_16384: 
75079          {
75080#line 244
75081          update_bus(bus);
75082          }
75083#line 245
75084          goto ldv_28803;
75085          case_32768: 
75086          {
75087#line 247
75088          update_special(bus);
75089          }
75090#line 248
75091          goto ldv_28803;
75092          switch_default: 
75093          {
75094#line 250
75095          __cil_tmp25 = bus->d_name.name;
75096#line 250
75097          __cil_tmp26 = bus->d_inode;
75098#line 250
75099          __cil_tmp27 = __cil_tmp26->i_mode;
75100#line 250
75101          __cil_tmp28 = (int )__cil_tmp27;
75102#line 250
75103          printk("<4>usbfs: Unknown node %s mode %x found on remount!\n", __cil_tmp25,
75104                 __cil_tmp28);
75105          }
75106#line 253
75107          goto ldv_28803;
75108        } else {
75109
75110        }
75111      }
75112      }
75113    }
75114    }
75115    ldv_28803: ;
75116  } else {
75117
75118  }
75119  }
75120#line 240
75121  __cil_tmp29 = bus->d_u.d_child.next;
75122#line 240
75123  __mptr___0 = (struct list_head  const  *)__cil_tmp29;
75124#line 240
75125  __cil_tmp30 = (struct dentry *)__mptr___0;
75126#line 240
75127  bus = __cil_tmp30 + 1152921504606846760UL;
75128  ldv_28807: ;
75129  {
75130#line 240
75131  __cil_tmp31 = & root->d_subdirs;
75132#line 240
75133  __cil_tmp32 = (unsigned long )__cil_tmp31;
75134#line 240
75135  __cil_tmp33 = & bus->d_u.d_child;
75136#line 240
75137  __cil_tmp34 = (unsigned long )__cil_tmp33;
75138#line 240
75139  if (__cil_tmp34 != __cil_tmp32) {
75140#line 241
75141    goto ldv_28806;
75142  } else {
75143#line 243
75144    goto ldv_28808;
75145  }
75146  }
75147  ldv_28808: 
75148  {
75149#line 258
75150  __cil_tmp35 = root->d_inode;
75151#line 258
75152  __cil_tmp36 = & __cil_tmp35->i_mutex;
75153#line 258
75154  mutex_unlock(__cil_tmp36);
75155  }
75156#line 259
75157  return;
75158}
75159}
75160#line 261 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75161static int remount(struct super_block *sb , int *flags , char *data ) 
75162{ int tmp ;
75163  struct vfsmount *__cil_tmp5 ;
75164  unsigned long __cil_tmp6 ;
75165  unsigned long __cil_tmp7 ;
75166  struct super_block *__cil_tmp8 ;
75167  unsigned long __cil_tmp9 ;
75168  struct super_block *__cil_tmp10 ;
75169  unsigned long __cil_tmp11 ;
75170  struct super_block *__cil_tmp12 ;
75171
75172  {
75173#line 267
75174  if (ignore_mount != 0) {
75175#line 268
75176    return (0);
75177  } else {
75178
75179  }
75180  {
75181#line 270
75182  tmp = parse_options(sb, data);
75183  }
75184#line 270
75185  if (tmp != 0) {
75186    {
75187#line 271
75188    printk("<4>usbfs: mount parameter error.\n");
75189    }
75190#line 272
75191    return (-22);
75192  } else {
75193
75194  }
75195  {
75196#line 275
75197  __cil_tmp5 = (struct vfsmount *)0;
75198#line 275
75199  __cil_tmp6 = (unsigned long )__cil_tmp5;
75200#line 275
75201  __cil_tmp7 = (unsigned long )usbfs_mount;
75202#line 275
75203  if (__cil_tmp7 != __cil_tmp6) {
75204    {
75205#line 275
75206    __cil_tmp8 = (struct super_block *)0;
75207#line 275
75208    __cil_tmp9 = (unsigned long )__cil_tmp8;
75209#line 275
75210    __cil_tmp10 = usbfs_mount->mnt_sb;
75211#line 275
75212    __cil_tmp11 = (unsigned long )__cil_tmp10;
75213#line 275
75214    if (__cil_tmp11 != __cil_tmp9) {
75215      {
75216#line 276
75217      __cil_tmp12 = usbfs_mount->mnt_sb;
75218#line 276
75219      update_sb(__cil_tmp12);
75220      }
75221    } else {
75222
75223    }
75224    }
75225  } else {
75226
75227  }
75228  }
75229#line 278
75230  return (0);
75231}
75232}
75233#line 281 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75234static struct inode *usbfs_get_inode(struct super_block *sb , int mode , dev_t dev ) 
75235{ struct inode *inode ;
75236  struct inode *tmp ;
75237  unsigned int tmp___0 ;
75238  struct task_struct *tmp___1 ;
75239  struct task_struct *tmp___2 ;
75240  struct timespec tmp___3 ;
75241  struct timespec tmp___4 ;
75242  struct inode *__cil_tmp11 ;
75243  unsigned long __cil_tmp12 ;
75244  unsigned long __cil_tmp13 ;
75245  struct cred  const  *__cil_tmp14 ;
75246  uid_t __cil_tmp15 ;
75247  struct cred  const  *__cil_tmp16 ;
75248  gid_t __cil_tmp17 ;
75249  int __cil_tmp18 ;
75250  int __cil_tmp19 ;
75251  umode_t __cil_tmp20 ;
75252  int __cil_tmp21 ;
75253  umode_t __cil_tmp22 ;
75254
75255  {
75256  {
75257#line 283
75258  tmp = new_inode(sb);
75259#line 283
75260  inode = tmp;
75261  }
75262  {
75263#line 285
75264  __cil_tmp11 = (struct inode *)0;
75265#line 285
75266  __cil_tmp12 = (unsigned long )__cil_tmp11;
75267#line 285
75268  __cil_tmp13 = (unsigned long )inode;
75269#line 285
75270  if (__cil_tmp13 != __cil_tmp12) {
75271    {
75272#line 286
75273    tmp___0 = get_next_ino();
75274#line 286
75275    inode->i_ino = (unsigned long )tmp___0;
75276#line 287
75277    inode->i_mode = (umode_t )mode;
75278#line 288
75279    tmp___1 = get_current();
75280#line 288
75281    __cil_tmp14 = tmp___1->cred;
75282#line 288
75283    __cil_tmp15 = __cil_tmp14->fsuid;
75284#line 288
75285    inode->i_uid = (uid_t )__cil_tmp15;
75286#line 289
75287    tmp___2 = get_current();
75288#line 289
75289    __cil_tmp16 = tmp___2->cred;
75290#line 289
75291    __cil_tmp17 = __cil_tmp16->fsgid;
75292#line 289
75293    inode->i_gid = (gid_t )__cil_tmp17;
75294#line 290
75295    tmp___4 = current_kernel_time();
75296#line 290
75297    inode->i_ctime = tmp___4;
75298#line 290
75299    tmp___3 = tmp___4;
75300#line 290
75301    inode->i_mtime = tmp___3;
75302#line 290
75303    inode->i_atime = tmp___3;
75304    }
75305    {
75306#line 295
75307    __cil_tmp18 = mode & 61440;
75308#line 295
75309    if (__cil_tmp18 == 32768) {
75310#line 295
75311      goto case_32768;
75312    } else {
75313      {
75314#line 298
75315      __cil_tmp19 = mode & 61440;
75316#line 298
75317      if (__cil_tmp19 == 16384) {
75318#line 298
75319        goto case_16384;
75320      } else {
75321#line 292
75322        goto switch_default;
75323#line 291
75324        if (0) {
75325          switch_default: 
75326          {
75327#line 293
75328          __cil_tmp20 = (umode_t )mode;
75329#line 293
75330          __cil_tmp21 = (int )__cil_tmp20;
75331#line 293
75332          __cil_tmp22 = (umode_t )__cil_tmp21;
75333#line 293
75334          init_special_inode(inode, __cil_tmp22, dev);
75335          }
75336#line 294
75337          goto ldv_28821;
75338          case_32768: 
75339#line 296
75340          inode->i_fop = & default_file_operations;
75341#line 297
75342          goto ldv_28821;
75343          case_16384: 
75344          {
75345#line 299
75346          inode->i_op = & simple_dir_inode_operations;
75347#line 300
75348          inode->i_fop = & simple_dir_operations;
75349#line 303
75350          inc_nlink(inode);
75351          }
75352#line 304
75353          goto ldv_28821;
75354        } else {
75355
75356        }
75357      }
75358      }
75359    }
75360    }
75361    ldv_28821: ;
75362  } else {
75363
75364  }
75365  }
75366#line 307
75367  return (inode);
75368}
75369}
75370#line 311 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75371static int usbfs_mknod(struct inode *dir , struct dentry *dentry , int mode , dev_t dev ) 
75372{ struct inode *inode ;
75373  struct inode *tmp ;
75374  int error ;
75375  struct super_block *__cil_tmp8 ;
75376  struct inode *__cil_tmp9 ;
75377  unsigned long __cil_tmp10 ;
75378  struct inode *__cil_tmp11 ;
75379  unsigned long __cil_tmp12 ;
75380  struct inode *__cil_tmp13 ;
75381  unsigned long __cil_tmp14 ;
75382  unsigned long __cil_tmp15 ;
75383
75384  {
75385  {
75386#line 314
75387  __cil_tmp8 = dir->i_sb;
75388#line 314
75389  tmp = usbfs_get_inode(__cil_tmp8, mode, dev);
75390#line 314
75391  inode = tmp;
75392#line 315
75393  error = -1;
75394  }
75395  {
75396#line 317
75397  __cil_tmp9 = (struct inode *)0;
75398#line 317
75399  __cil_tmp10 = (unsigned long )__cil_tmp9;
75400#line 317
75401  __cil_tmp11 = dentry->d_inode;
75402#line 317
75403  __cil_tmp12 = (unsigned long )__cil_tmp11;
75404#line 317
75405  if (__cil_tmp12 != __cil_tmp10) {
75406#line 318
75407    return (-17);
75408  } else {
75409
75410  }
75411  }
75412  {
75413#line 320
75414  __cil_tmp13 = (struct inode *)0;
75415#line 320
75416  __cil_tmp14 = (unsigned long )__cil_tmp13;
75417#line 320
75418  __cil_tmp15 = (unsigned long )inode;
75419#line 320
75420  if (__cil_tmp15 != __cil_tmp14) {
75421    {
75422#line 321
75423    d_instantiate(dentry, inode);
75424#line 322
75425    dget(dentry);
75426#line 323
75427    error = 0;
75428    }
75429  } else {
75430
75431  }
75432  }
75433#line 325
75434  return (error);
75435}
75436}
75437#line 328 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75438static int usbfs_mkdir(struct inode *dir , struct dentry *dentry , int mode ) 
75439{ int res ;
75440  int __cil_tmp5 ;
75441
75442  {
75443  {
75444#line 332
75445  __cil_tmp5 = mode & 1023;
75446#line 332
75447  mode = __cil_tmp5 | 16384;
75448#line 333
75449  res = usbfs_mknod(dir, dentry, mode, 0U);
75450  }
75451#line 334
75452  if (res == 0) {
75453    {
75454#line 335
75455    inc_nlink(dir);
75456    }
75457  } else {
75458
75459  }
75460#line 336
75461  return (res);
75462}
75463}
75464#line 339 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75465static int usbfs_create(struct inode *dir , struct dentry *dentry , int mode ) 
75466{ int tmp ;
75467  int __cil_tmp5 ;
75468
75469  {
75470  {
75471#line 341
75472  __cil_tmp5 = mode & 4095;
75473#line 341
75474  mode = __cil_tmp5 | 32768;
75475#line 342
75476  tmp = usbfs_mknod(dir, dentry, mode, 0U);
75477  }
75478#line 342
75479  return (tmp);
75480}
75481}
75482#line 345 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75483__inline static int usbfs_positive(struct dentry *dentry ) 
75484{ int tmp ;
75485  int tmp___0 ;
75486  struct inode *__cil_tmp4 ;
75487  unsigned long __cil_tmp5 ;
75488  struct inode *__cil_tmp6 ;
75489  unsigned long __cil_tmp7 ;
75490
75491  {
75492  {
75493#line 347
75494  __cil_tmp4 = (struct inode *)0;
75495#line 347
75496  __cil_tmp5 = (unsigned long )__cil_tmp4;
75497#line 347
75498  __cil_tmp6 = dentry->d_inode;
75499#line 347
75500  __cil_tmp7 = (unsigned long )__cil_tmp6;
75501#line 347
75502  if (__cil_tmp7 != __cil_tmp5) {
75503    {
75504#line 347
75505    tmp = d_unhashed(dentry);
75506    }
75507#line 347
75508    if (tmp == 0) {
75509#line 347
75510      tmp___0 = 1;
75511    } else {
75512#line 347
75513      tmp___0 = 0;
75514    }
75515  } else {
75516#line 347
75517    tmp___0 = 0;
75518  }
75519  }
75520#line 347
75521  return (tmp___0);
75522}
75523}
75524#line 350 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75525static int usbfs_empty(struct dentry *dentry ) 
75526{ struct list_head *list ;
75527  struct dentry *de ;
75528  struct list_head  const  *__mptr ;
75529  raw_spinlock_t *tmp ;
75530  int tmp___0 ;
75531  spinlock_t *__cil_tmp7 ;
75532  struct dentry *__cil_tmp8 ;
75533  spinlock_t *__cil_tmp9 ;
75534  spinlock_t *__cil_tmp10 ;
75535  spinlock_t *__cil_tmp11 ;
75536  spinlock_t *__cil_tmp12 ;
75537  unsigned long __cil_tmp13 ;
75538  struct list_head *__cil_tmp14 ;
75539  unsigned long __cil_tmp15 ;
75540  spinlock_t *__cil_tmp16 ;
75541
75542  {
75543  {
75544#line 354
75545  __cil_tmp7 = & dentry->d_lock;
75546#line 354
75547  spin_lock(__cil_tmp7);
75548#line 355
75549  list = dentry->d_subdirs.next;
75550  }
75551#line 355
75552  goto ldv_28854;
75553  ldv_28853: 
75554  {
75555#line 356
75556  __mptr = (struct list_head  const  *)list;
75557#line 356
75558  __cil_tmp8 = (struct dentry *)__mptr;
75559#line 356
75560  de = __cil_tmp8 + 1152921504606846760UL;
75561#line 358
75562  __cil_tmp9 = & de->d_lock;
75563#line 358
75564  tmp = spinlock_check(__cil_tmp9);
75565#line 358
75566  _raw_spin_lock_nested(tmp, 1);
75567#line 359
75568  tmp___0 = usbfs_positive(de);
75569  }
75570#line 359
75571  if (tmp___0 != 0) {
75572    {
75573#line 360
75574    __cil_tmp10 = & de->d_lock;
75575#line 360
75576    spin_unlock(__cil_tmp10);
75577#line 361
75578    __cil_tmp11 = & dentry->d_lock;
75579#line 361
75580    spin_unlock(__cil_tmp11);
75581    }
75582#line 362
75583    return (0);
75584  } else {
75585
75586  }
75587  {
75588#line 364
75589  __cil_tmp12 = & de->d_lock;
75590#line 364
75591  spin_unlock(__cil_tmp12);
75592#line 355
75593  list = list->next;
75594  }
75595  ldv_28854: ;
75596  {
75597#line 355
75598  __cil_tmp13 = (unsigned long )list;
75599#line 355
75600  __cil_tmp14 = & dentry->d_subdirs;
75601#line 355
75602  __cil_tmp15 = (unsigned long )__cil_tmp14;
75603#line 355
75604  if (__cil_tmp15 != __cil_tmp13) {
75605#line 356
75606    goto ldv_28853;
75607  } else {
75608#line 358
75609    goto ldv_28855;
75610  }
75611  }
75612  ldv_28855: 
75613  {
75614#line 366
75615  __cil_tmp16 = & dentry->d_lock;
75616#line 366
75617  spin_unlock(__cil_tmp16);
75618  }
75619#line 367
75620  return (1);
75621}
75622}
75623#line 370 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75624static int usbfs_unlink(struct inode *dir , struct dentry *dentry ) 
75625{ struct inode *inode ;
75626  struct mutex *__cil_tmp4 ;
75627  struct inode *__cil_tmp5 ;
75628  struct mutex *__cil_tmp6 ;
75629
75630  {
75631  {
75632#line 372
75633  inode = dentry->d_inode;
75634#line 373
75635  __cil_tmp4 = & inode->i_mutex;
75636#line 373
75637  mutex_lock_nested(__cil_tmp4, 0U);
75638#line 374
75639  __cil_tmp5 = dentry->d_inode;
75640#line 374
75641  drop_nlink(__cil_tmp5);
75642#line 375
75643  dput(dentry);
75644#line 376
75645  __cil_tmp6 = & inode->i_mutex;
75646#line 376
75647  mutex_unlock(__cil_tmp6);
75648#line 377
75649  d_delete(dentry);
75650  }
75651#line 378
75652  return (0);
75653}
75654}
75655#line 381 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75656static int usbfs_rmdir(struct inode *dir , struct dentry *dentry ) 
75657{ int error ;
75658  struct inode *inode ;
75659  int tmp ;
75660  struct mutex *__cil_tmp6 ;
75661  struct inode *__cil_tmp7 ;
75662  struct inode *__cil_tmp8 ;
75663  unsigned int __cil_tmp9 ;
75664  struct mutex *__cil_tmp10 ;
75665
75666  {
75667  {
75668#line 383
75669  error = -39;
75670#line 384
75671  inode = dentry->d_inode;
75672#line 386
75673  __cil_tmp6 = & inode->i_mutex;
75674#line 386
75675  mutex_lock_nested(__cil_tmp6, 0U);
75676#line 387
75677  dentry_unhash(dentry);
75678#line 388
75679  tmp = usbfs_empty(dentry);
75680  }
75681#line 388
75682  if (tmp != 0) {
75683    {
75684#line 389
75685    dont_mount(dentry);
75686#line 390
75687    __cil_tmp7 = dentry->d_inode;
75688#line 390
75689    drop_nlink(__cil_tmp7);
75690#line 391
75691    __cil_tmp8 = dentry->d_inode;
75692#line 391
75693    drop_nlink(__cil_tmp8);
75694#line 392
75695    dput(dentry);
75696#line 393
75697    __cil_tmp9 = inode->i_flags;
75698#line 393
75699    inode->i_flags = __cil_tmp9 | 16U;
75700#line 394
75701    drop_nlink(dir);
75702#line 395
75703    error = 0;
75704    }
75705  } else {
75706
75707  }
75708  {
75709#line 397
75710  __cil_tmp10 = & inode->i_mutex;
75711#line 397
75712  mutex_unlock(__cil_tmp10);
75713  }
75714#line 398
75715  if (error == 0) {
75716    {
75717#line 399
75718    d_delete(dentry);
75719    }
75720  } else {
75721
75722  }
75723#line 400
75724  return (error);
75725}
75726}
75727#line 405 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75728static ssize_t default_read_file(struct file *file , char *buf , size_t count , loff_t *ppos ) 
75729{ 
75730
75731  {
75732#line 408
75733  return (0L);
75734}
75735}
75736#line 411 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75737static ssize_t default_write_file(struct file *file , char const   *buf , size_t count ,
75738                                  loff_t *ppos ) 
75739{ 
75740
75741  {
75742#line 414
75743  return ((ssize_t )count);
75744}
75745}
75746#line 417 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75747static loff_t default_file_lseek(struct file *file , loff_t offset , int orig ) 
75748{ loff_t retval ;
75749  struct dentry *__cil_tmp5 ;
75750  struct inode *__cil_tmp6 ;
75751  struct mutex *__cil_tmp7 ;
75752  loff_t __cil_tmp8 ;
75753  loff_t __cil_tmp9 ;
75754  loff_t __cil_tmp10 ;
75755  struct dentry *__cil_tmp11 ;
75756  struct inode *__cil_tmp12 ;
75757  struct mutex *__cil_tmp13 ;
75758
75759  {
75760  {
75761#line 419
75762  retval = -22LL;
75763#line 421
75764  __cil_tmp5 = file->f_path.dentry;
75765#line 421
75766  __cil_tmp6 = __cil_tmp5->d_inode;
75767#line 421
75768  __cil_tmp7 = & __cil_tmp6->i_mutex;
75769#line 421
75770  mutex_lock_nested(__cil_tmp7, 0U);
75771  }
75772#line 423
75773  if (orig == 0) {
75774#line 423
75775    goto case_0;
75776  } else
75777#line 429
75778  if (orig == 1) {
75779#line 429
75780    goto case_1;
75781  } else {
75782#line 435
75783    goto switch_default;
75784#line 422
75785    if (0) {
75786      case_0: ;
75787#line 424
75788      if (offset > 0LL) {
75789#line 425
75790        file->f_pos = offset;
75791#line 426
75792        retval = file->f_pos;
75793      } else {
75794
75795      }
75796#line 428
75797      goto ldv_28886;
75798      case_1: ;
75799      {
75800#line 430
75801      __cil_tmp8 = file->f_pos;
75802#line 430
75803      __cil_tmp9 = __cil_tmp8 + offset;
75804#line 430
75805      if (__cil_tmp9 > 0LL) {
75806#line 431
75807        __cil_tmp10 = file->f_pos;
75808#line 431
75809        file->f_pos = __cil_tmp10 + offset;
75810#line 432
75811        retval = file->f_pos;
75812      } else {
75813
75814      }
75815      }
75816#line 434
75817      goto ldv_28886;
75818      switch_default: ;
75819#line 436
75820      goto ldv_28886;
75821    } else {
75822
75823    }
75824  }
75825  ldv_28886: 
75826  {
75827#line 438
75828  __cil_tmp11 = file->f_path.dentry;
75829#line 438
75830  __cil_tmp12 = __cil_tmp11->d_inode;
75831#line 438
75832  __cil_tmp13 = & __cil_tmp12->i_mutex;
75833#line 438
75834  mutex_unlock(__cil_tmp13);
75835  }
75836#line 439
75837  return (retval);
75838}
75839}
75840#line 442 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75841static int default_open(struct inode *inode , struct file *file ) 
75842{ void *__cil_tmp3 ;
75843  unsigned long __cil_tmp4 ;
75844  void *__cil_tmp5 ;
75845  unsigned long __cil_tmp6 ;
75846
75847  {
75848  {
75849#line 444
75850  __cil_tmp3 = (void *)0;
75851#line 444
75852  __cil_tmp4 = (unsigned long )__cil_tmp3;
75853#line 444
75854  __cil_tmp5 = inode->i_private;
75855#line 444
75856  __cil_tmp6 = (unsigned long )__cil_tmp5;
75857#line 444
75858  if (__cil_tmp6 != __cil_tmp4) {
75859#line 445
75860    file->private_data = inode->i_private;
75861  } else {
75862
75863  }
75864  }
75865#line 447
75866  return (0);
75867}
75868}
75869#line 450 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75870static struct file_operations  const  default_file_operations  = 
75871#line 450
75872     {(struct module *)0, & default_file_lseek, & default_read_file, & default_write_file,
75873    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
75874    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
75875    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
75876                                              u64  , unsigned int  ) ))0, (unsigned int (*)(struct file * ,
75877                                                                                            struct poll_table_struct * ))0,
75878    (long (*)(struct file * , unsigned int  , unsigned long  ))0, (long (*)(struct file * ,
75879                                                                            unsigned int  ,
75880                                                                            unsigned long  ))0,
75881    (int (*)(struct file * , struct vm_area_struct * ))0, & default_open, (int (*)(struct file * ,
75882                                                                                   fl_owner_t  ))0,
75883    (int (*)(struct inode * , struct file * ))0, (int (*)(struct file * , int  ))0,
75884    (int (*)(struct kiocb * , int  ))0, (int (*)(int  , struct file * , int  ))0,
75885    (int (*)(struct file * , int  , struct file_lock * ))0, (ssize_t (*)(struct file * ,
75886                                                                         struct page * ,
75887                                                                         int  , size_t  ,
75888                                                                         loff_t * ,
75889                                                                         int  ))0,
75890    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
75891                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
75892                                                                       int  , struct file_lock * ))0,
75893    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
75894    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
75895    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file * ,
75896                                                                        int  , loff_t  ,
75897                                                                        loff_t  ))0};
75898#line 457 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75899static struct super_operations  const  usbfs_ops  = 
75900#line 457
75901     {(struct inode *(*)(struct super_block * ))0, (void (*)(struct inode * ))0, (void (*)(struct inode * ,
75902                                                                                         int  ))0,
75903    (int (*)(struct inode * , struct writeback_control * ))0, & generic_delete_inode,
75904    (void (*)(struct inode * ))0, (void (*)(struct super_block * ))0, (void (*)(struct super_block * ))0,
75905    (int (*)(struct super_block * , int  ))0, (int (*)(struct super_block * ))0, (int (*)(struct super_block * ))0,
75906    & simple_statfs, & remount, (void (*)(struct super_block * ))0, & usbfs_show_options,
75907    (int (*)(struct seq_file * , struct vfsmount * ))0, (int (*)(struct seq_file * ,
75908                                                                 struct vfsmount * ))0,
75909    (int (*)(struct seq_file * , struct vfsmount * ))0, (ssize_t (*)(struct super_block * ,
75910                                                                     int  , char * ,
75911                                                                     size_t  , loff_t  ))0,
75912    (ssize_t (*)(struct super_block * , int  , char const   * , size_t  , loff_t  ))0,
75913    (int (*)(struct super_block * , struct page * , gfp_t  ))0};
75914#line 464 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75915static int usbfs_fill_super(struct super_block *sb , void *data , int silent ) 
75916{ struct inode *inode ;
75917  struct dentry *root ;
75918  struct inode *__cil_tmp6 ;
75919  unsigned long __cil_tmp7 ;
75920  unsigned long __cil_tmp8 ;
75921  char *__cil_tmp9 ;
75922  struct dentry *__cil_tmp10 ;
75923  unsigned long __cil_tmp11 ;
75924  unsigned long __cil_tmp12 ;
75925  char *__cil_tmp13 ;
75926
75927  {
75928  {
75929#line 469
75930  sb->s_blocksize = 4096UL;
75931#line 470
75932  sb->s_blocksize_bits = (unsigned char)12;
75933#line 471
75934  sb->s_magic = 40866UL;
75935#line 472
75936  sb->s_op = & usbfs_ops;
75937#line 473
75938  sb->s_time_gran = 1U;
75939#line 474
75940  inode = usbfs_get_inode(sb, 16877, 0U);
75941  }
75942  {
75943#line 476
75944  __cil_tmp6 = (struct inode *)0;
75945#line 476
75946  __cil_tmp7 = (unsigned long )__cil_tmp6;
75947#line 476
75948  __cil_tmp8 = (unsigned long )inode;
75949#line 476
75950  if (__cil_tmp8 == __cil_tmp7) {
75951    {
75952#line 477
75953    __cil_tmp9 = (char *)"/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p";
75954#line 477
75955    printk("<7>%s: %s: could not get inode!\n", __cil_tmp9, "usbfs_fill_super");
75956    }
75957#line 478
75958    return (-12);
75959  } else {
75960
75961  }
75962  }
75963  {
75964#line 481
75965  root = d_alloc_root(inode);
75966  }
75967  {
75968#line 482
75969  __cil_tmp10 = (struct dentry *)0;
75970#line 482
75971  __cil_tmp11 = (unsigned long )__cil_tmp10;
75972#line 482
75973  __cil_tmp12 = (unsigned long )root;
75974#line 482
75975  if (__cil_tmp12 == __cil_tmp11) {
75976    {
75977#line 483
75978    __cil_tmp13 = (char *)"/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p";
75979#line 483
75980    printk("<7>%s: %s: could not get root dentry!\n", __cil_tmp13, "usbfs_fill_super");
75981#line 484
75982    iput(inode);
75983    }
75984#line 485
75985    return (-12);
75986  } else {
75987
75988  }
75989  }
75990#line 487
75991  sb->s_root = root;
75992#line 488
75993  return (0);
75994}
75995}
75996#line 500 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
75997static int fs_create_by_name(char const   *name , mode_t mode , struct dentry *parent ,
75998                             struct dentry **dentry ) 
75999{ int error ;
76000  size_t tmp ;
76001  long tmp___0 ;
76002  long tmp___1 ;
76003  struct dentry *__cil_tmp9 ;
76004  unsigned long __cil_tmp10 ;
76005  unsigned long __cil_tmp11 ;
76006  struct vfsmount *__cil_tmp12 ;
76007  unsigned long __cil_tmp13 ;
76008  unsigned long __cil_tmp14 ;
76009  struct super_block *__cil_tmp15 ;
76010  unsigned long __cil_tmp16 ;
76011  struct super_block *__cil_tmp17 ;
76012  unsigned long __cil_tmp18 ;
76013  struct super_block *__cil_tmp19 ;
76014  struct dentry *__cil_tmp20 ;
76015  unsigned long __cil_tmp21 ;
76016  unsigned long __cil_tmp22 ;
76017  char *__cil_tmp23 ;
76018  struct inode *__cil_tmp24 ;
76019  struct mutex *__cil_tmp25 ;
76020  int __cil_tmp26 ;
76021  struct dentry *__cil_tmp27 ;
76022  void const   *__cil_tmp28 ;
76023  unsigned int __cil_tmp29 ;
76024  struct inode *__cil_tmp30 ;
76025  struct dentry *__cil_tmp31 ;
76026  int __cil_tmp32 ;
76027  struct inode *__cil_tmp33 ;
76028  struct dentry *__cil_tmp34 ;
76029  int __cil_tmp35 ;
76030  struct dentry *__cil_tmp36 ;
76031  void const   *__cil_tmp37 ;
76032  struct inode *__cil_tmp38 ;
76033  struct mutex *__cil_tmp39 ;
76034
76035  {
76036#line 503
76037  error = 0;
76038  {
76039#line 510
76040  __cil_tmp9 = (struct dentry *)0;
76041#line 510
76042  __cil_tmp10 = (unsigned long )__cil_tmp9;
76043#line 510
76044  __cil_tmp11 = (unsigned long )parent;
76045#line 510
76046  if (__cil_tmp11 == __cil_tmp10) {
76047    {
76048#line 511
76049    __cil_tmp12 = (struct vfsmount *)0;
76050#line 511
76051    __cil_tmp13 = (unsigned long )__cil_tmp12;
76052#line 511
76053    __cil_tmp14 = (unsigned long )usbfs_mount;
76054#line 511
76055    if (__cil_tmp14 != __cil_tmp13) {
76056      {
76057#line 511
76058      __cil_tmp15 = (struct super_block *)0;
76059#line 511
76060      __cil_tmp16 = (unsigned long )__cil_tmp15;
76061#line 511
76062      __cil_tmp17 = usbfs_mount->mnt_sb;
76063#line 511
76064      __cil_tmp18 = (unsigned long )__cil_tmp17;
76065#line 511
76066      if (__cil_tmp18 != __cil_tmp16) {
76067#line 512
76068        __cil_tmp19 = usbfs_mount->mnt_sb;
76069#line 512
76070        parent = __cil_tmp19->s_root;
76071      } else {
76072
76073      }
76074      }
76075    } else {
76076
76077    }
76078    }
76079  } else {
76080
76081  }
76082  }
76083  {
76084#line 516
76085  __cil_tmp20 = (struct dentry *)0;
76086#line 516
76087  __cil_tmp21 = (unsigned long )__cil_tmp20;
76088#line 516
76089  __cil_tmp22 = (unsigned long )parent;
76090#line 516
76091  if (__cil_tmp22 == __cil_tmp21) {
76092    {
76093#line 517
76094    __cil_tmp23 = (char *)"/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p";
76095#line 517
76096    printk("<7>%s: Ah! can not find a parent!\n", __cil_tmp23);
76097    }
76098#line 518
76099    return (-14);
76100  } else {
76101
76102  }
76103  }
76104  {
76105#line 521
76106  *dentry = (struct dentry *)0;
76107#line 522
76108  __cil_tmp24 = parent->d_inode;
76109#line 522
76110  __cil_tmp25 = & __cil_tmp24->i_mutex;
76111#line 522
76112  mutex_lock_nested(__cil_tmp25, 0U);
76113#line 523
76114  tmp = strlen(name);
76115#line 523
76116  __cil_tmp26 = (int )tmp;
76117#line 523
76118  *dentry = lookup_one_len(name, parent, __cil_tmp26);
76119#line 524
76120  __cil_tmp27 = *dentry;
76121#line 524
76122  __cil_tmp28 = (void const   *)__cil_tmp27;
76123#line 524
76124  tmp___1 = IS_ERR(__cil_tmp28);
76125  }
76126#line 524
76127  if (tmp___1 == 0L) {
76128    {
76129#line 525
76130    __cil_tmp29 = mode & 61440U;
76131#line 525
76132    if (__cil_tmp29 == 16384U) {
76133      {
76134#line 526
76135      __cil_tmp30 = parent->d_inode;
76136#line 526
76137      __cil_tmp31 = *dentry;
76138#line 526
76139      __cil_tmp32 = (int )mode;
76140#line 526
76141      error = usbfs_mkdir(__cil_tmp30, __cil_tmp31, __cil_tmp32);
76142      }
76143    } else {
76144      {
76145#line 528
76146      __cil_tmp33 = parent->d_inode;
76147#line 528
76148      __cil_tmp34 = *dentry;
76149#line 528
76150      __cil_tmp35 = (int )mode;
76151#line 528
76152      error = usbfs_create(__cil_tmp33, __cil_tmp34, __cil_tmp35);
76153      }
76154    }
76155    }
76156  } else {
76157    {
76158#line 530
76159    __cil_tmp36 = *dentry;
76160#line 530
76161    __cil_tmp37 = (void const   *)__cil_tmp36;
76162#line 530
76163    tmp___0 = PTR_ERR(__cil_tmp37);
76164#line 530
76165    error = (int )tmp___0;
76166    }
76167  }
76168  {
76169#line 531
76170  __cil_tmp38 = parent->d_inode;
76171#line 531
76172  __cil_tmp39 = & __cil_tmp38->i_mutex;
76173#line 531
76174  mutex_unlock(__cil_tmp39);
76175  }
76176#line 533
76177  return (error);
76178}
76179}
76180#line 536 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76181static struct dentry *fs_create_file(char const   *name , mode_t mode , struct dentry *parent ,
76182                                     void *data , struct file_operations  const  *fops ,
76183                                     uid_t uid , gid_t gid ) 
76184{ struct dentry *dentry ;
76185  int error ;
76186  char *__cil_tmp10 ;
76187  struct inode *__cil_tmp11 ;
76188  unsigned long __cil_tmp12 ;
76189  struct inode *__cil_tmp13 ;
76190  unsigned long __cil_tmp14 ;
76191  void *__cil_tmp15 ;
76192  unsigned long __cil_tmp16 ;
76193  unsigned long __cil_tmp17 ;
76194  struct inode *__cil_tmp18 ;
76195  struct file_operations  const  *__cil_tmp19 ;
76196  unsigned long __cil_tmp20 ;
76197  unsigned long __cil_tmp21 ;
76198  struct inode *__cil_tmp22 ;
76199  struct inode *__cil_tmp23 ;
76200  struct inode *__cil_tmp24 ;
76201
76202  {
76203  {
76204#line 544
76205  __cil_tmp10 = (char *)"/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p";
76206#line 544
76207  printk("<7>%s: creating file \'%s\'\n", __cil_tmp10, name);
76208#line 546
76209  error = fs_create_by_name(name, mode, parent, & dentry);
76210  }
76211#line 547
76212  if (error != 0) {
76213#line 548
76214    dentry = (struct dentry *)0;
76215  } else {
76216    {
76217#line 550
76218    __cil_tmp11 = (struct inode *)0;
76219#line 550
76220    __cil_tmp12 = (unsigned long )__cil_tmp11;
76221#line 550
76222    __cil_tmp13 = dentry->d_inode;
76223#line 550
76224    __cil_tmp14 = (unsigned long )__cil_tmp13;
76225#line 550
76226    if (__cil_tmp14 != __cil_tmp12) {
76227      {
76228#line 551
76229      __cil_tmp15 = (void *)0;
76230#line 551
76231      __cil_tmp16 = (unsigned long )__cil_tmp15;
76232#line 551
76233      __cil_tmp17 = (unsigned long )data;
76234#line 551
76235      if (__cil_tmp17 != __cil_tmp16) {
76236#line 552
76237        __cil_tmp18 = dentry->d_inode;
76238#line 552
76239        __cil_tmp18->i_private = data;
76240      } else {
76241
76242      }
76243      }
76244      {
76245#line 553
76246      __cil_tmp19 = (struct file_operations  const  *)0;
76247#line 553
76248      __cil_tmp20 = (unsigned long )__cil_tmp19;
76249#line 553
76250      __cil_tmp21 = (unsigned long )fops;
76251#line 553
76252      if (__cil_tmp21 != __cil_tmp20) {
76253#line 554
76254        __cil_tmp22 = dentry->d_inode;
76255#line 554
76256        __cil_tmp22->i_fop = fops;
76257      } else {
76258
76259      }
76260      }
76261#line 555
76262      __cil_tmp23 = dentry->d_inode;
76263#line 555
76264      __cil_tmp23->i_uid = uid;
76265#line 556
76266      __cil_tmp24 = dentry->d_inode;
76267#line 556
76268      __cil_tmp24->i_gid = gid;
76269    } else {
76270
76271    }
76272    }
76273  }
76274#line 560
76275  return (dentry);
76276}
76277}
76278#line 563 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76279static void fs_remove_file(struct dentry *dentry ) 
76280{ struct dentry *parent ;
76281  int tmp ;
76282  struct dentry *__cil_tmp4 ;
76283  unsigned long __cil_tmp5 ;
76284  unsigned long __cil_tmp6 ;
76285  struct inode *__cil_tmp7 ;
76286  unsigned long __cil_tmp8 ;
76287  struct inode *__cil_tmp9 ;
76288  unsigned long __cil_tmp10 ;
76289  struct inode *__cil_tmp11 ;
76290  struct mutex *__cil_tmp12 ;
76291  struct inode *__cil_tmp13 ;
76292  unsigned long __cil_tmp14 ;
76293  struct inode *__cil_tmp15 ;
76294  unsigned long __cil_tmp16 ;
76295  struct inode *__cil_tmp17 ;
76296  umode_t __cil_tmp18 ;
76297  int __cil_tmp19 ;
76298  int __cil_tmp20 ;
76299  struct inode *__cil_tmp21 ;
76300  struct inode *__cil_tmp22 ;
76301  struct inode *__cil_tmp23 ;
76302  struct mutex *__cil_tmp24 ;
76303
76304  {
76305#line 565
76306  parent = dentry->d_parent;
76307  {
76308#line 567
76309  __cil_tmp4 = (struct dentry *)0;
76310#line 567
76311  __cil_tmp5 = (unsigned long )__cil_tmp4;
76312#line 567
76313  __cil_tmp6 = (unsigned long )parent;
76314#line 567
76315  if (__cil_tmp6 == __cil_tmp5) {
76316#line 568
76317    return;
76318  } else {
76319    {
76320#line 567
76321    __cil_tmp7 = (struct inode *)0;
76322#line 567
76323    __cil_tmp8 = (unsigned long )__cil_tmp7;
76324#line 567
76325    __cil_tmp9 = parent->d_inode;
76326#line 567
76327    __cil_tmp10 = (unsigned long )__cil_tmp9;
76328#line 567
76329    if (__cil_tmp10 == __cil_tmp8) {
76330#line 568
76331      return;
76332    } else {
76333
76334    }
76335    }
76336  }
76337  }
76338  {
76339#line 570
76340  __cil_tmp11 = parent->d_inode;
76341#line 570
76342  __cil_tmp12 = & __cil_tmp11->i_mutex;
76343#line 570
76344  mutex_lock_nested(__cil_tmp12, 1U);
76345#line 571
76346  tmp = usbfs_positive(dentry);
76347  }
76348#line 571
76349  if (tmp != 0) {
76350    {
76351#line 572
76352    __cil_tmp13 = (struct inode *)0;
76353#line 572
76354    __cil_tmp14 = (unsigned long )__cil_tmp13;
76355#line 572
76356    __cil_tmp15 = dentry->d_inode;
76357#line 572
76358    __cil_tmp16 = (unsigned long )__cil_tmp15;
76359#line 572
76360    if (__cil_tmp16 != __cil_tmp14) {
76361      {
76362#line 573
76363      __cil_tmp17 = dentry->d_inode;
76364#line 573
76365      __cil_tmp18 = __cil_tmp17->i_mode;
76366#line 573
76367      __cil_tmp19 = (int )__cil_tmp18;
76368#line 573
76369      __cil_tmp20 = __cil_tmp19 & 61440;
76370#line 573
76371      if (__cil_tmp20 == 16384) {
76372        {
76373#line 574
76374        __cil_tmp21 = parent->d_inode;
76375#line 574
76376        usbfs_rmdir(__cil_tmp21, dentry);
76377        }
76378      } else {
76379        {
76380#line 576
76381        __cil_tmp22 = parent->d_inode;
76382#line 576
76383        usbfs_unlink(__cil_tmp22, dentry);
76384        }
76385      }
76386      }
76387      {
76388#line 577
76389      dput(dentry);
76390      }
76391    } else {
76392
76393    }
76394    }
76395  } else {
76396
76397  }
76398  {
76399#line 580
76400  __cil_tmp23 = parent->d_inode;
76401#line 580
76402  __cil_tmp24 = & __cil_tmp23->i_mutex;
76403#line 580
76404  mutex_unlock(__cil_tmp24);
76405  }
76406#line 581
76407  return;
76408}
76409}
76410#line 585 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76411static struct dentry *usb_mount(struct file_system_type *fs_type , int flags , char const   *dev_name___0 ,
76412                                void *data ) 
76413{ struct dentry *tmp ;
76414
76415  {
76416  {
76417#line 588
76418  tmp = mount_single(fs_type, flags, data, & usbfs_fill_super);
76419  }
76420#line 588
76421  return (tmp);
76422}
76423}
76424#line 591 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76425static struct file_system_type usb_fs_type  = 
76426#line 591
76427     {"usbfs", 0, & usb_mount, & kill_litter_super, & __this_module, (struct file_system_type *)0,
76428    {(struct list_head *)0, (struct list_head *)0}, {{{(char)0}, {(char)0}, {(char)0},
76429                                                      {(char)0}, {(char)0}, {(char)0},
76430                                                      {(char)0}, {(char)0}}}, {{{(char)0},
76431                                                                                {(char)0},
76432                                                                                {(char)0},
76433                                                                                {(char)0},
76434                                                                                {(char)0},
76435                                                                                {(char)0},
76436                                                                                {(char)0},
76437                                                                                {(char)0}}},
76438    {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
76439      {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
76440                     {(char)0}, {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0},
76441                                               {(char)0}, {(char)0}, {(char)0}, {(char)0}}},
76442    {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
76443      {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
76444                     {(char)0}, {(char)0}}}};
76445#line 600 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76446static int create_special_files(void) 
76447{ struct dentry *parent ;
76448  int retval ;
76449  struct super_block *__cil_tmp3 ;
76450  unsigned int __cil_tmp4 ;
76451  unsigned int __cil_tmp5 ;
76452  void *__cil_tmp6 ;
76453  struct dentry *__cil_tmp7 ;
76454  unsigned long __cil_tmp8 ;
76455  unsigned long __cil_tmp9 ;
76456
76457  {
76458  {
76459#line 608
76460  ignore_mount = 1;
76461#line 611
76462  retval = simple_pin_fs(& usb_fs_type, & usbfs_mount, & usbfs_mount_count);
76463  }
76464#line 612
76465  if (retval != 0) {
76466    {
76467#line 613
76468    printk("<3>Unable to get usbfs mount\n");
76469    }
76470#line 614
76471    goto exit;
76472  } else {
76473
76474  }
76475  {
76476#line 617
76477  ignore_mount = 0;
76478#line 619
76479  __cil_tmp3 = usbfs_mount->mnt_sb;
76480#line 619
76481  parent = __cil_tmp3->s_root;
76482#line 620
76483  __cil_tmp4 = (unsigned int )listmode;
76484#line 620
76485  __cil_tmp5 = __cil_tmp4 | 32768U;
76486#line 620
76487  __cil_tmp6 = (void *)0;
76488#line 620
76489  devices_usbfs_dentry = fs_create_file("devices", __cil_tmp5, parent, __cil_tmp6,
76490                                        & usbfs_devices_fops, listuid, listgid);
76491  }
76492  {
76493#line 624
76494  __cil_tmp7 = (struct dentry *)0;
76495#line 624
76496  __cil_tmp8 = (unsigned long )__cil_tmp7;
76497#line 624
76498  __cil_tmp9 = (unsigned long )devices_usbfs_dentry;
76499#line 624
76500  if (__cil_tmp9 == __cil_tmp8) {
76501    {
76502#line 625
76503    printk("<3>Unable to create devices usbfs file\n");
76504#line 626
76505    retval = -19;
76506    }
76507#line 627
76508    goto error_clean_mounts;
76509  } else {
76510
76511  }
76512  }
76513#line 630
76514  goto exit;
76515  error_clean_mounts: 
76516  {
76517#line 633
76518  simple_release_fs(& usbfs_mount, & usbfs_mount_count);
76519  }
76520  exit: ;
76521#line 635
76522  return (retval);
76523}
76524}
76525#line 638 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76526static void remove_special_files(void) 
76527{ struct dentry *__cil_tmp1 ;
76528  unsigned long __cil_tmp2 ;
76529  unsigned long __cil_tmp3 ;
76530
76531  {
76532  {
76533#line 640
76534  __cil_tmp1 = (struct dentry *)0;
76535#line 640
76536  __cil_tmp2 = (unsigned long )__cil_tmp1;
76537#line 640
76538  __cil_tmp3 = (unsigned long )devices_usbfs_dentry;
76539#line 640
76540  if (__cil_tmp3 != __cil_tmp2) {
76541    {
76542#line 641
76543    fs_remove_file(devices_usbfs_dentry);
76544    }
76545  } else {
76546
76547  }
76548  }
76549  {
76550#line 642
76551  devices_usbfs_dentry = (struct dentry *)0;
76552#line 643
76553  simple_release_fs(& usbfs_mount, & usbfs_mount_count);
76554  }
76555#line 644
76556  return;
76557}
76558}
76559#line 646 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76560void usbfs_update_special(void) 
76561{ struct inode *inode ;
76562  struct timespec tmp ;
76563  struct timespec tmp___0 ;
76564  struct dentry *__cil_tmp4 ;
76565  unsigned long __cil_tmp5 ;
76566  unsigned long __cil_tmp6 ;
76567  struct inode *__cil_tmp7 ;
76568  unsigned long __cil_tmp8 ;
76569  unsigned long __cil_tmp9 ;
76570
76571  {
76572  {
76573#line 650
76574  __cil_tmp4 = (struct dentry *)0;
76575#line 650
76576  __cil_tmp5 = (unsigned long )__cil_tmp4;
76577#line 650
76578  __cil_tmp6 = (unsigned long )devices_usbfs_dentry;
76579#line 650
76580  if (__cil_tmp6 != __cil_tmp5) {
76581#line 651
76582    inode = devices_usbfs_dentry->d_inode;
76583    {
76584#line 652
76585    __cil_tmp7 = (struct inode *)0;
76586#line 652
76587    __cil_tmp8 = (unsigned long )__cil_tmp7;
76588#line 652
76589    __cil_tmp9 = (unsigned long )inode;
76590#line 652
76591    if (__cil_tmp9 != __cil_tmp8) {
76592      {
76593#line 653
76594      tmp___0 = current_kernel_time();
76595#line 653
76596      inode->i_ctime = tmp___0;
76597#line 653
76598      tmp = tmp___0;
76599#line 653
76600      inode->i_mtime = tmp;
76601#line 653
76602      inode->i_atime = tmp;
76603      }
76604    } else {
76605
76606    }
76607    }
76608  } else {
76609
76610  }
76611  }
76612#line 655
76613  return;
76614}
76615}
76616#line 657 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76617static void usbfs_add_bus(struct usb_bus *bus ) 
76618{ struct dentry *parent ;
76619  char name[8U] ;
76620  int retval ;
76621  char *__cil_tmp5 ;
76622  int __cil_tmp6 ;
76623  struct super_block *__cil_tmp7 ;
76624  char const   *__cil_tmp8 ;
76625  unsigned int __cil_tmp9 ;
76626  unsigned int __cil_tmp10 ;
76627  void *__cil_tmp11 ;
76628  struct file_operations  const  *__cil_tmp12 ;
76629  struct dentry *__cil_tmp13 ;
76630  unsigned long __cil_tmp14 ;
76631  struct dentry *__cil_tmp15 ;
76632  unsigned long __cil_tmp16 ;
76633
76634  {
76635#line 664
76636  if (num_buses == 0) {
76637    {
76638#line 665
76639    retval = create_special_files();
76640    }
76641#line 666
76642    if (retval != 0) {
76643#line 667
76644      return;
76645    } else {
76646
76647    }
76648  } else {
76649
76650  }
76651  {
76652#line 669
76653  num_buses = num_buses + 1;
76654#line 671
76655  __cil_tmp5 = (char *)(& name);
76656#line 671
76657  __cil_tmp6 = bus->busnum;
76658#line 671
76659  sprintf(__cil_tmp5, "%03d", __cil_tmp6);
76660#line 673
76661  __cil_tmp7 = usbfs_mount->mnt_sb;
76662#line 673
76663  parent = __cil_tmp7->s_root;
76664#line 674
76665  __cil_tmp8 = (char const   *)(& name);
76666#line 674
76667  __cil_tmp9 = (unsigned int )busmode;
76668#line 674
76669  __cil_tmp10 = __cil_tmp9 | 16384U;
76670#line 674
76671  __cil_tmp11 = (void *)bus;
76672#line 674
76673  __cil_tmp12 = (struct file_operations  const  *)0;
76674#line 674
76675  bus->usbfs_dentry = fs_create_file(__cil_tmp8, __cil_tmp10, parent, __cil_tmp11,
76676                                     __cil_tmp12, busuid, busgid);
76677  }
76678  {
76679#line 676
76680  __cil_tmp13 = (struct dentry *)0;
76681#line 676
76682  __cil_tmp14 = (unsigned long )__cil_tmp13;
76683#line 676
76684  __cil_tmp15 = bus->usbfs_dentry;
76685#line 676
76686  __cil_tmp16 = (unsigned long )__cil_tmp15;
76687#line 676
76688  if (__cil_tmp16 == __cil_tmp14) {
76689    {
76690#line 677
76691    printk("<3>Error creating usbfs bus entry\n");
76692    }
76693#line 678
76694    return;
76695  } else {
76696
76697  }
76698  }
76699#line 680
76700  return;
76701}
76702}
76703#line 682 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76704static void usbfs_remove_bus(struct usb_bus *bus ) 
76705{ struct dentry *__cil_tmp2 ;
76706  unsigned long __cil_tmp3 ;
76707  struct dentry *__cil_tmp4 ;
76708  unsigned long __cil_tmp5 ;
76709  struct dentry *__cil_tmp6 ;
76710
76711  {
76712  {
76713#line 684
76714  __cil_tmp2 = (struct dentry *)0;
76715#line 684
76716  __cil_tmp3 = (unsigned long )__cil_tmp2;
76717#line 684
76718  __cil_tmp4 = bus->usbfs_dentry;
76719#line 684
76720  __cil_tmp5 = (unsigned long )__cil_tmp4;
76721#line 684
76722  if (__cil_tmp5 != __cil_tmp3) {
76723    {
76724#line 685
76725    __cil_tmp6 = bus->usbfs_dentry;
76726#line 685
76727    fs_remove_file(__cil_tmp6);
76728#line 686
76729    bus->usbfs_dentry = (struct dentry *)0;
76730    }
76731  } else {
76732
76733  }
76734  }
76735#line 689
76736  num_buses = num_buses - 1;
76737#line 690
76738  if (num_buses <= 0) {
76739    {
76740#line 691
76741    remove_special_files();
76742#line 692
76743    num_buses = 0;
76744    }
76745  } else {
76746
76747  }
76748#line 694
76749  return;
76750}
76751}
76752#line 696 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76753static void usbfs_add_device(struct usb_device *dev ) 
76754{ char name[8U] ;
76755  int i ;
76756  int i_size ;
76757  struct usb_config_descriptor *config ;
76758  char *__cil_tmp6 ;
76759  int __cil_tmp7 ;
76760  char const   *__cil_tmp8 ;
76761  unsigned int __cil_tmp9 ;
76762  unsigned int __cil_tmp10 ;
76763  struct usb_bus *__cil_tmp11 ;
76764  struct dentry *__cil_tmp12 ;
76765  void *__cil_tmp13 ;
76766  struct dentry *__cil_tmp14 ;
76767  unsigned long __cil_tmp15 ;
76768  struct dentry *__cil_tmp16 ;
76769  unsigned long __cil_tmp17 ;
76770  unsigned long __cil_tmp18 ;
76771  char **__cil_tmp19 ;
76772  char **__cil_tmp20 ;
76773  char *__cil_tmp21 ;
76774  __le16 __cil_tmp22 ;
76775  int __cil_tmp23 ;
76776  __u8 __cil_tmp24 ;
76777  int __cil_tmp25 ;
76778  struct inode *__cil_tmp26 ;
76779  unsigned long __cil_tmp27 ;
76780  struct dentry *__cil_tmp28 ;
76781  struct inode *__cil_tmp29 ;
76782  unsigned long __cil_tmp30 ;
76783  struct dentry *__cil_tmp31 ;
76784  struct inode *__cil_tmp32 ;
76785
76786  {
76787  {
76788#line 702
76789  __cil_tmp6 = (char *)(& name);
76790#line 702
76791  __cil_tmp7 = dev->devnum;
76792#line 702
76793  sprintf(__cil_tmp6, "%03d", __cil_tmp7);
76794#line 703
76795  __cil_tmp8 = (char const   *)(& name);
76796#line 703
76797  __cil_tmp9 = (unsigned int )devmode;
76798#line 703
76799  __cil_tmp10 = __cil_tmp9 | 32768U;
76800#line 703
76801  __cil_tmp11 = dev->bus;
76802#line 703
76803  __cil_tmp12 = __cil_tmp11->usbfs_dentry;
76804#line 703
76805  __cil_tmp13 = (void *)dev;
76806#line 703
76807  dev->usbfs_dentry = fs_create_file(__cil_tmp8, __cil_tmp10, __cil_tmp12, __cil_tmp13,
76808                                     & usbdev_file_operations, devuid, devgid);
76809  }
76810  {
76811#line 707
76812  __cil_tmp14 = (struct dentry *)0;
76813#line 707
76814  __cil_tmp15 = (unsigned long )__cil_tmp14;
76815#line 707
76816  __cil_tmp16 = dev->usbfs_dentry;
76817#line 707
76818  __cil_tmp17 = (unsigned long )__cil_tmp16;
76819#line 707
76820  if (__cil_tmp17 == __cil_tmp15) {
76821    {
76822#line 708
76823    printk("<3>Error creating usbfs device entry\n");
76824    }
76825#line 709
76826    return;
76827  } else {
76828
76829  }
76830  }
76831#line 714
76832  i_size = 18;
76833#line 715
76834  i = 0;
76835#line 715
76836  goto ldv_28963;
76837  ldv_28962: 
76838#line 716
76839  __cil_tmp18 = (unsigned long )i;
76840#line 716
76841  __cil_tmp19 = dev->rawdescriptors;
76842#line 716
76843  __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
76844#line 716
76845  __cil_tmp21 = *__cil_tmp20;
76846#line 716
76847  config = (struct usb_config_descriptor *)__cil_tmp21;
76848#line 718
76849  __cil_tmp22 = config->wTotalLength;
76850#line 718
76851  __cil_tmp23 = (int )__cil_tmp22;
76852#line 718
76853  i_size = __cil_tmp23 + i_size;
76854#line 715
76855  i = i + 1;
76856  ldv_28963: ;
76857  {
76858#line 715
76859  __cil_tmp24 = dev->descriptor.bNumConfigurations;
76860#line 715
76861  __cil_tmp25 = (int )__cil_tmp24;
76862#line 715
76863  if (__cil_tmp25 > i) {
76864#line 716
76865    goto ldv_28962;
76866  } else {
76867#line 718
76868    goto ldv_28964;
76869  }
76870  }
76871  ldv_28964: ;
76872  {
76873#line 720
76874  __cil_tmp26 = (struct inode *)0;
76875#line 720
76876  __cil_tmp27 = (unsigned long )__cil_tmp26;
76877#line 720
76878  __cil_tmp28 = dev->usbfs_dentry;
76879#line 720
76880  __cil_tmp29 = __cil_tmp28->d_inode;
76881#line 720
76882  __cil_tmp30 = (unsigned long )__cil_tmp29;
76883#line 720
76884  if (__cil_tmp30 != __cil_tmp27) {
76885#line 721
76886    __cil_tmp31 = dev->usbfs_dentry;
76887#line 721
76888    __cil_tmp32 = __cil_tmp31->d_inode;
76889#line 721
76890    __cil_tmp32->i_size = (loff_t )i_size;
76891  } else {
76892
76893  }
76894  }
76895#line 722
76896  return;
76897}
76898}
76899#line 724 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76900static void usbfs_remove_device(struct usb_device *dev ) 
76901{ struct dentry *__cil_tmp2 ;
76902  unsigned long __cil_tmp3 ;
76903  struct dentry *__cil_tmp4 ;
76904  unsigned long __cil_tmp5 ;
76905  struct dentry *__cil_tmp6 ;
76906
76907  {
76908  {
76909#line 726
76910  __cil_tmp2 = (struct dentry *)0;
76911#line 726
76912  __cil_tmp3 = (unsigned long )__cil_tmp2;
76913#line 726
76914  __cil_tmp4 = dev->usbfs_dentry;
76915#line 726
76916  __cil_tmp5 = (unsigned long )__cil_tmp4;
76917#line 726
76918  if (__cil_tmp5 != __cil_tmp3) {
76919    {
76920#line 727
76921    __cil_tmp6 = dev->usbfs_dentry;
76922#line 727
76923    fs_remove_file(__cil_tmp6);
76924#line 728
76925    dev->usbfs_dentry = (struct dentry *)0;
76926    }
76927  } else {
76928
76929  }
76930  }
76931#line 730
76932  return;
76933}
76934}
76935#line 732 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
76936static int usbfs_notify(struct notifier_block *self , unsigned long action , void *dev ) 
76937{ int __cil_tmp4 ;
76938  int __cil_tmp5 ;
76939  int __cil_tmp6 ;
76940  int __cil_tmp7 ;
76941  struct usb_device *__cil_tmp8 ;
76942  struct usb_device *__cil_tmp9 ;
76943  struct usb_bus *__cil_tmp10 ;
76944  struct usb_bus *__cil_tmp11 ;
76945
76946  {
76947  {
76948#line 735
76949  __cil_tmp4 = (int )action;
76950#line 735
76951  if (__cil_tmp4 == 1) {
76952#line 735
76953    goto case_1;
76954  } else {
76955    {
76956#line 738
76957    __cil_tmp5 = (int )action;
76958#line 738
76959    if (__cil_tmp5 == 2) {
76960#line 738
76961      goto case_2;
76962    } else {
76963      {
76964#line 741
76965      __cil_tmp6 = (int )action;
76966#line 741
76967      if (__cil_tmp6 == 3) {
76968#line 741
76969        goto case_3;
76970      } else {
76971        {
76972#line 744
76973        __cil_tmp7 = (int )action;
76974#line 744
76975        if (__cil_tmp7 == 4) {
76976#line 744
76977          goto case_4;
76978        } else
76979#line 734
76980        if (0) {
76981          case_1: 
76982          {
76983#line 736
76984          __cil_tmp8 = (struct usb_device *)dev;
76985#line 736
76986          usbfs_add_device(__cil_tmp8);
76987          }
76988#line 737
76989          goto ldv_28974;
76990          case_2: 
76991          {
76992#line 739
76993          __cil_tmp9 = (struct usb_device *)dev;
76994#line 739
76995          usbfs_remove_device(__cil_tmp9);
76996          }
76997#line 740
76998          goto ldv_28974;
76999          case_3: 
77000          {
77001#line 742
77002          __cil_tmp10 = (struct usb_bus *)dev;
77003#line 742
77004          usbfs_add_bus(__cil_tmp10);
77005          }
77006#line 743
77007          goto ldv_28974;
77008          case_4: 
77009          {
77010#line 745
77011          __cil_tmp11 = (struct usb_bus *)dev;
77012#line 745
77013          usbfs_remove_bus(__cil_tmp11);
77014          }
77015        } else {
77016
77017        }
77018        }
77019      }
77020      }
77021    }
77022    }
77023  }
77024  }
77025  ldv_28974: 
77026  {
77027#line 748
77028  usbfs_update_special();
77029#line 749
77030  usbfs_conn_disc_event();
77031  }
77032#line 750
77033  return (1);
77034}
77035}
77036#line 753 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
77037static struct notifier_block usbfs_nb  =    {& usbfs_notify, (struct notifier_block *)0, 0};
77038#line 759 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
77039static struct proc_dir_entry *usbdir  =    (struct proc_dir_entry *)0;
77040#line 761 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
77041int usbfs_init(void) 
77042{ int retval ;
77043  struct proc_dir_entry *__cil_tmp2 ;
77044
77045  {
77046  {
77047#line 765
77048  retval = register_filesystem(& usb_fs_type);
77049  }
77050#line 766
77051  if (retval != 0) {
77052#line 767
77053    return (retval);
77054  } else {
77055
77056  }
77057  {
77058#line 769
77059  usb_register_notify(& usbfs_nb);
77060#line 772
77061  __cil_tmp2 = (struct proc_dir_entry *)0;
77062#line 772
77063  usbdir = proc_mkdir("bus/usb", __cil_tmp2);
77064  }
77065#line 774
77066  return (0);
77067}
77068}
77069#line 777 "/anthill/stuff/tacas-comp/work/current--X--drivers/usb/core/usbcore.ko--X--bulklinux-3.0.1--X--08_1/linux-3.0.1/csd_deg_dscv/28/dscv_tempdir/dscv/ri/08_1/drivers/usb/core/inode.c.p"
77070void usbfs_cleanup(void) 
77071{ struct proc_dir_entry *__cil_tmp1 ;
77072  unsigned long __cil_tmp2 ;
77073  unsigned long __cil_tmp3 ;
77074  struct proc_dir_entry *__cil_tmp4 ;
77075
77076  {
77077  {
77078#line 779
77079  usb_unregister_notify(& usbfs_nb);
77080#line 780
77081  unregister_filesystem(& usb_fs_type);
77082  }
77083  {
77084#line 781
77085  __cil_tmp1 = (struct proc_dir_entry *)0;
77086#line 781
77087  __cil_tmp2 = (unsigned long )__cil_tmp1;
77088#line 781
77089  __cil_tmp3 = (unsigned long )usbdir;
77090#line 781
77091  if (__cil_tmp3 != __cil_tmp2) {
77092    {
77093#line 782
77094    __cil_tmp4 = (struct proc_dir_entry *)0;
77095#line 782
77096    remove_proc_entry("bus/usb", __cil_tmp4);
77097    }
77098  } else {
77099
77100  }
77101  }
77102#line 783
77103  return;
77104}
77105}