Showing error 191

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: 6860
Project: SV-COMP 2012
Tools: Manual Work
Entered: 2012-11-19 13:47:39 UTC


Source:

    1/* Generated by CIL v. 1.3.7 */
    2/* print_CIL_Input is true */
    3
    4#line 19 "include/asm-generic/int-ll64.h"
    5typedef signed char __s8;
    6#line 20 "include/asm-generic/int-ll64.h"
    7typedef unsigned char __u8;
    8#line 22 "include/asm-generic/int-ll64.h"
    9typedef short __s16;
   10#line 23 "include/asm-generic/int-ll64.h"
   11typedef unsigned short __u16;
   12#line 25 "include/asm-generic/int-ll64.h"
   13typedef int __s32;
   14#line 26 "include/asm-generic/int-ll64.h"
   15typedef unsigned int __u32;
   16#line 29 "include/asm-generic/int-ll64.h"
   17typedef long long __s64;
   18#line 30 "include/asm-generic/int-ll64.h"
   19typedef unsigned long long __u64;
   20#line 43 "include/asm-generic/int-ll64.h"
   21typedef unsigned char u8;
   22#line 46 "include/asm-generic/int-ll64.h"
   23typedef unsigned short u16;
   24#line 49 "include/asm-generic/int-ll64.h"
   25typedef unsigned int u32;
   26#line 51 "include/asm-generic/int-ll64.h"
   27typedef long long s64;
   28#line 52 "include/asm-generic/int-ll64.h"
   29typedef unsigned long long u64;
   30#line 11 "include/asm-generic/types.h"
   31typedef unsigned short umode_t;
   32#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   33typedef unsigned int __kernel_mode_t;
   34#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   35typedef int __kernel_pid_t;
   36#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   37typedef unsigned int __kernel_uid_t;
   38#line 17 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   39typedef unsigned int __kernel_gid_t;
   40#line 18 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   41typedef unsigned long __kernel_size_t;
   42#line 19 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   43typedef long __kernel_ssize_t;
   44#line 21 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   45typedef long __kernel_time_t;
   46#line 23 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   47typedef long __kernel_clock_t;
   48#line 24 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   49typedef int __kernel_timer_t;
   50#line 25 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   51typedef int __kernel_clockid_t;
   52#line 32 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   53typedef long long __kernel_loff_t;
   54#line 41 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   55typedef __kernel_uid_t __kernel_uid32_t;
   56#line 42 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/posix_types_64.h"
   57typedef __kernel_gid_t __kernel_gid32_t;
   58#line 21 "include/linux/types.h"
   59typedef __u32 __kernel_dev_t;
   60#line 24 "include/linux/types.h"
   61typedef __kernel_dev_t dev_t;
   62#line 26 "include/linux/types.h"
   63typedef __kernel_mode_t mode_t;
   64#line 29 "include/linux/types.h"
   65typedef __kernel_pid_t pid_t;
   66#line 34 "include/linux/types.h"
   67typedef __kernel_clockid_t clockid_t;
   68#line 37 "include/linux/types.h"
   69typedef _Bool bool;
   70#line 39 "include/linux/types.h"
   71typedef __kernel_uid32_t uid_t;
   72#line 40 "include/linux/types.h"
   73typedef __kernel_gid32_t gid_t;
   74#line 53 "include/linux/types.h"
   75typedef __kernel_loff_t loff_t;
   76#line 62 "include/linux/types.h"
   77typedef __kernel_size_t size_t;
   78#line 67 "include/linux/types.h"
   79typedef __kernel_ssize_t ssize_t;
   80#line 77 "include/linux/types.h"
   81typedef __kernel_time_t time_t;
   82#line 110 "include/linux/types.h"
   83typedef __s32 int32_t;
   84#line 116 "include/linux/types.h"
   85typedef __u32 uint32_t;
   86#line 141 "include/linux/types.h"
   87typedef unsigned long sector_t;
   88#line 142 "include/linux/types.h"
   89typedef unsigned long blkcnt_t;
   90#line 154 "include/linux/types.h"
   91typedef u64 dma_addr_t;
   92#line 177 "include/linux/types.h"
   93typedef __u16 __le16;
   94#line 201 "include/linux/types.h"
   95typedef unsigned int gfp_t;
   96#line 202 "include/linux/types.h"
   97typedef unsigned int fmode_t;
   98#line 214 "include/linux/types.h"
   99struct __anonstruct_atomic_t_6 {
  100   int counter ;
  101};
  102#line 214 "include/linux/types.h"
  103typedef struct __anonstruct_atomic_t_6 atomic_t;
  104#line 219 "include/linux/types.h"
  105struct __anonstruct_atomic64_t_7 {
  106   long counter ;
  107};
  108#line 219 "include/linux/types.h"
  109typedef struct __anonstruct_atomic64_t_7 atomic64_t;
  110#line 220 "include/linux/types.h"
  111struct list_head {
  112   struct list_head *next ;
  113   struct list_head *prev ;
  114};
  115#line 225
  116struct hlist_node;
  117#line 225
  118struct hlist_node;
  119#line 225 "include/linux/types.h"
  120struct hlist_head {
  121   struct hlist_node *first ;
  122};
  123#line 229 "include/linux/types.h"
  124struct hlist_node {
  125   struct hlist_node *next ;
  126   struct hlist_node **pprev ;
  127};
  128#line 58 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/alternative.h"
  129struct module;
  130#line 58
  131struct module;
  132#line 145 "include/linux/init.h"
  133typedef void (*ctor_fn_t)(void);
  134#line 48 "include/linux/dynamic_debug.h"
  135struct bug_entry {
  136   int bug_addr_disp ;
  137   int file_disp ;
  138   unsigned short line ;
  139   unsigned short flags ;
  140};
  141#line 70 "include/asm-generic/bug.h"
  142struct completion;
  143#line 70
  144struct completion;
  145#line 71
  146struct pt_regs;
  147#line 71
  148struct pt_regs;
  149#line 321 "include/linux/kernel.h"
  150struct pid;
  151#line 321
  152struct pid;
  153#line 671
  154struct timespec;
  155#line 671
  156struct timespec;
  157#line 59 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/page_types.h"
  158struct page;
  159#line 59
  160struct page;
  161#line 21 "include/asm-generic/getorder.h"
  162struct task_struct;
  163#line 21
  164struct task_struct;
  165#line 23
  166struct mm_struct;
  167#line 23
  168struct mm_struct;
  169#line 215 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/segment.h"
  170struct pt_regs {
  171   unsigned long r15 ;
  172   unsigned long r14 ;
  173   unsigned long r13 ;
  174   unsigned long r12 ;
  175   unsigned long bp ;
  176   unsigned long bx ;
  177   unsigned long r11 ;
  178   unsigned long r10 ;
  179   unsigned long r9 ;
  180   unsigned long r8 ;
  181   unsigned long ax ;
  182   unsigned long cx ;
  183   unsigned long dx ;
  184   unsigned long si ;
  185   unsigned long di ;
  186   unsigned long orig_ax ;
  187   unsigned long ip ;
  188   unsigned long cs ;
  189   unsigned long flags ;
  190   unsigned long sp ;
  191   unsigned long ss ;
  192};
  193#line 282 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/ptrace.h"
  194struct kernel_vm86_regs {
  195   struct pt_regs pt ;
  196   unsigned short es ;
  197   unsigned short __esh ;
  198   unsigned short ds ;
  199   unsigned short __dsh ;
  200   unsigned short fs ;
  201   unsigned short __fsh ;
  202   unsigned short gs ;
  203   unsigned short __gsh ;
  204};
  205#line 203 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/vm86.h"
  206union __anonunion_ldv_2292_12 {
  207   struct pt_regs *regs ;
  208   struct kernel_vm86_regs *vm86 ;
  209};
  210#line 203 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/vm86.h"
  211struct math_emu_info {
  212   long ___orig_eip ;
  213   union __anonunion_ldv_2292_12 ldv_2292 ;
  214};
  215#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"
  216typedef unsigned long pgdval_t;
  217#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"
  218typedef unsigned long pgprotval_t;
  219#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"
  220struct pgprot {
  221   pgprotval_t pgprot ;
  222};
  223#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  224typedef struct pgprot pgprot_t;
  225#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  226struct __anonstruct_pgd_t_15 {
  227   pgdval_t pgd ;
  228};
  229#line 192 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  230typedef struct __anonstruct_pgd_t_15 pgd_t;
  231#line 280 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  232typedef struct page *pgtable_t;
  233#line 288
  234struct file;
  235#line 288
  236struct file;
  237#line 303
  238struct seq_file;
  239#line 303
  240struct seq_file;
  241#line 335 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  242struct __anonstruct_ldv_2526_19 {
  243   unsigned int a ;
  244   unsigned int b ;
  245};
  246#line 335 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  247struct __anonstruct_ldv_2541_20 {
  248   u16 limit0 ;
  249   u16 base0 ;
  250   unsigned char base1 ;
  251   unsigned char type : 4 ;
  252   unsigned char s : 1 ;
  253   unsigned char dpl : 2 ;
  254   unsigned char p : 1 ;
  255   unsigned char limit : 4 ;
  256   unsigned char avl : 1 ;
  257   unsigned char l : 1 ;
  258   unsigned char d : 1 ;
  259   unsigned char g : 1 ;
  260   unsigned char base2 ;
  261};
  262#line 335 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  263union __anonunion_ldv_2542_18 {
  264   struct __anonstruct_ldv_2526_19 ldv_2526 ;
  265   struct __anonstruct_ldv_2541_20 ldv_2541 ;
  266};
  267#line 335 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/pgtable_types.h"
  268struct desc_struct {
  269   union __anonunion_ldv_2542_18 ldv_2542 ;
  270};
  271#line 122 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
  272struct thread_struct;
  273#line 122
  274struct thread_struct;
  275#line 124
  276struct cpumask;
  277#line 124
  278struct cpumask;
  279#line 320 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
  280struct arch_spinlock;
  281#line 320
  282struct arch_spinlock;
  283#line 304 "include/linux/bitmap.h"
  284struct cpumask {
  285   unsigned long bits[64U] ;
  286};
  287#line 13 "include/linux/cpumask.h"
  288typedef struct cpumask cpumask_t;
  289#line 622 "include/linux/cpumask.h"
  290typedef struct cpumask *cpumask_var_t;
  291#line 277 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  292struct i387_fsave_struct {
  293   u32 cwd ;
  294   u32 swd ;
  295   u32 twd ;
  296   u32 fip ;
  297   u32 fcs ;
  298   u32 foo ;
  299   u32 fos ;
  300   u32 st_space[20U] ;
  301   u32 status ;
  302};
  303#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  304struct __anonstruct_ldv_5171_24 {
  305   u64 rip ;
  306   u64 rdp ;
  307};
  308#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  309struct __anonstruct_ldv_5177_25 {
  310   u32 fip ;
  311   u32 fcs ;
  312   u32 foo ;
  313   u32 fos ;
  314};
  315#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  316union __anonunion_ldv_5178_23 {
  317   struct __anonstruct_ldv_5171_24 ldv_5171 ;
  318   struct __anonstruct_ldv_5177_25 ldv_5177 ;
  319};
  320#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  321union __anonunion_ldv_5187_26 {
  322   u32 padding1[12U] ;
  323   u32 sw_reserved[12U] ;
  324};
  325#line 295 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  326struct i387_fxsave_struct {
  327   u16 cwd ;
  328   u16 swd ;
  329   u16 twd ;
  330   u16 fop ;
  331   union __anonunion_ldv_5178_23 ldv_5178 ;
  332   u32 mxcsr ;
  333   u32 mxcsr_mask ;
  334   u32 st_space[32U] ;
  335   u32 xmm_space[64U] ;
  336   u32 padding[12U] ;
  337   union __anonunion_ldv_5187_26 ldv_5187 ;
  338};
  339#line 329 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  340struct i387_soft_struct {
  341   u32 cwd ;
  342   u32 swd ;
  343   u32 twd ;
  344   u32 fip ;
  345   u32 fcs ;
  346   u32 foo ;
  347   u32 fos ;
  348   u32 st_space[20U] ;
  349   u8 ftop ;
  350   u8 changed ;
  351   u8 lookahead ;
  352   u8 no_update ;
  353   u8 rm ;
  354   u8 alimit ;
  355   struct math_emu_info *info ;
  356   u32 entry_eip ;
  357};
  358#line 350 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  359struct ymmh_struct {
  360   u32 ymmh_space[64U] ;
  361};
  362#line 355 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  363struct xsave_hdr_struct {
  364   u64 xstate_bv ;
  365   u64 reserved1[2U] ;
  366   u64 reserved2[5U] ;
  367};
  368#line 361 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  369struct xsave_struct {
  370   struct i387_fxsave_struct i387 ;
  371   struct xsave_hdr_struct xsave_hdr ;
  372   struct ymmh_struct ymmh ;
  373};
  374#line 367 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  375union thread_xstate {
  376   struct i387_fsave_struct fsave ;
  377   struct i387_fxsave_struct fxsave ;
  378   struct i387_soft_struct soft ;
  379   struct xsave_struct xsave ;
  380};
  381#line 375 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  382struct fpu {
  383   union thread_xstate *state ;
  384};
  385#line 421
  386struct kmem_cache;
  387#line 421
  388struct kmem_cache;
  389#line 422
  390struct perf_event;
  391#line 422
  392struct perf_event;
  393#line 423 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
  394struct thread_struct {
  395   struct desc_struct tls_array[3U] ;
  396   unsigned long sp0 ;
  397   unsigned long sp ;
  398   unsigned long usersp ;
  399   unsigned short es ;
  400   unsigned short ds ;
  401   unsigned short fsindex ;
  402   unsigned short gsindex ;
  403   unsigned long fs ;
  404   unsigned long gs ;
  405   struct perf_event *ptrace_bps[4U] ;
  406   unsigned long debugreg6 ;
  407   unsigned long ptrace_dr7 ;
  408   unsigned long cr2 ;
  409   unsigned long trap_no ;
  410   unsigned long error_code ;
  411   struct fpu fpu ;
  412   unsigned long *io_bitmap_ptr ;
  413   unsigned long iopl ;
  414   unsigned int io_bitmap_max ;
  415};
  416#line 23 "include/asm-generic/atomic-long.h"
  417typedef atomic64_t atomic_long_t;
  418#line 8 "include/linux/bottom_half.h"
  419struct arch_spinlock {
  420   unsigned int slock ;
  421};
  422#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  423typedef struct arch_spinlock arch_spinlock_t;
  424#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  425struct __anonstruct_arch_rwlock_t_29 {
  426   unsigned int lock ;
  427};
  428#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/spinlock_types.h"
  429typedef struct __anonstruct_arch_rwlock_t_29 arch_rwlock_t;
  430#line 17
  431struct lockdep_map;
  432#line 17
  433struct lockdep_map;
  434#line 55 "include/linux/debug_locks.h"
  435struct stack_trace {
  436   unsigned int nr_entries ;
  437   unsigned int max_entries ;
  438   unsigned long *entries ;
  439   int skip ;
  440};
  441#line 26 "include/linux/stacktrace.h"
  442struct lockdep_subclass_key {
  443   char __one_byte ;
  444};
  445#line 53 "include/linux/lockdep.h"
  446struct lock_class_key {
  447   struct lockdep_subclass_key subkeys[8U] ;
  448};
  449#line 59 "include/linux/lockdep.h"
  450struct lock_class {
  451   struct list_head hash_entry ;
  452   struct list_head lock_entry ;
  453   struct lockdep_subclass_key *key ;
  454   unsigned int subclass ;
  455   unsigned int dep_gen_id ;
  456   unsigned long usage_mask ;
  457   struct stack_trace usage_traces[13U] ;
  458   struct list_head locks_after ;
  459   struct list_head locks_before ;
  460   unsigned int version ;
  461   unsigned long ops ;
  462   char const   *name ;
  463   int name_version ;
  464   unsigned long contention_point[4U] ;
  465   unsigned long contending_point[4U] ;
  466};
  467#line 144 "include/linux/lockdep.h"
  468struct lockdep_map {
  469   struct lock_class_key *key ;
  470   struct lock_class *class_cache[2U] ;
  471   char const   *name ;
  472   int cpu ;
  473   unsigned long ip ;
  474};
  475#line 187 "include/linux/lockdep.h"
  476struct held_lock {
  477   u64 prev_chain_key ;
  478   unsigned long acquire_ip ;
  479   struct lockdep_map *instance ;
  480   struct lockdep_map *nest_lock ;
  481   u64 waittime_stamp ;
  482   u64 holdtime_stamp ;
  483   unsigned short class_idx : 13 ;
  484   unsigned char irq_context : 2 ;
  485   unsigned char trylock : 1 ;
  486   unsigned char read : 2 ;
  487   unsigned char check : 2 ;
  488   unsigned char hardirqs_off : 1 ;
  489   unsigned short references : 11 ;
  490};
  491#line 552 "include/linux/lockdep.h"
  492struct raw_spinlock {
  493   arch_spinlock_t raw_lock ;
  494   unsigned int magic ;
  495   unsigned int owner_cpu ;
  496   void *owner ;
  497   struct lockdep_map dep_map ;
  498};
  499#line 32 "include/linux/spinlock_types.h"
  500typedef struct raw_spinlock raw_spinlock_t;
  501#line 33 "include/linux/spinlock_types.h"
  502struct __anonstruct_ldv_6059_31 {
  503   u8 __padding[24U] ;
  504   struct lockdep_map dep_map ;
  505};
  506#line 33 "include/linux/spinlock_types.h"
  507union __anonunion_ldv_6060_30 {
  508   struct raw_spinlock rlock ;
  509   struct __anonstruct_ldv_6059_31 ldv_6059 ;
  510};
  511#line 33 "include/linux/spinlock_types.h"
  512struct spinlock {
  513   union __anonunion_ldv_6060_30 ldv_6060 ;
  514};
  515#line 76 "include/linux/spinlock_types.h"
  516typedef struct spinlock spinlock_t;
  517#line 23 "include/linux/rwlock_types.h"
  518struct __anonstruct_rwlock_t_32 {
  519   arch_rwlock_t raw_lock ;
  520   unsigned int magic ;
  521   unsigned int owner_cpu ;
  522   void *owner ;
  523   struct lockdep_map dep_map ;
  524};
  525#line 23 "include/linux/rwlock_types.h"
  526typedef struct __anonstruct_rwlock_t_32 rwlock_t;
  527#line 110 "include/linux/seqlock.h"
  528struct seqcount {
  529   unsigned int sequence ;
  530};
  531#line 121 "include/linux/seqlock.h"
  532typedef struct seqcount seqcount_t;
  533#line 233 "include/linux/seqlock.h"
  534struct timespec {
  535   __kernel_time_t tv_sec ;
  536   long tv_nsec ;
  537};
  538#line 286 "include/linux/time.h"
  539struct kstat {
  540   u64 ino ;
  541   dev_t dev ;
  542   umode_t mode ;
  543   unsigned int nlink ;
  544   uid_t uid ;
  545   gid_t gid ;
  546   dev_t rdev ;
  547   loff_t size ;
  548   struct timespec atime ;
  549   struct timespec mtime ;
  550   struct timespec ctime ;
  551   unsigned long blksize ;
  552   unsigned long long blocks ;
  553};
  554#line 49 "include/linux/wait.h"
  555struct __wait_queue_head {
  556   spinlock_t lock ;
  557   struct list_head task_list ;
  558};
  559#line 54 "include/linux/wait.h"
  560typedef struct __wait_queue_head wait_queue_head_t;
  561#line 96 "include/linux/nodemask.h"
  562struct __anonstruct_nodemask_t_34 {
  563   unsigned long bits[16U] ;
  564};
  565#line 96 "include/linux/nodemask.h"
  566typedef struct __anonstruct_nodemask_t_34 nodemask_t;
  567#line 640 "include/linux/mmzone.h"
  568struct mutex {
  569   atomic_t count ;
  570   spinlock_t wait_lock ;
  571   struct list_head wait_list ;
  572   struct task_struct *owner ;
  573   char const   *name ;
  574   void *magic ;
  575   struct lockdep_map dep_map ;
  576};
  577#line 63 "include/linux/mutex.h"
  578struct mutex_waiter {
  579   struct list_head list ;
  580   struct task_struct *task ;
  581   void *magic ;
  582};
  583#line 171
  584struct rw_semaphore;
  585#line 171
  586struct rw_semaphore;
  587#line 172 "include/linux/mutex.h"
  588struct rw_semaphore {
  589   long count ;
  590   spinlock_t wait_lock ;
  591   struct list_head wait_list ;
  592   struct lockdep_map dep_map ;
  593};
  594#line 170 "include/linux/srcu.h"
  595struct notifier_block {
  596   int (*notifier_call)(struct notifier_block * , unsigned long  , void * ) ;
  597   struct notifier_block *next ;
  598   int priority ;
  599};
  600#line 175 "include/linux/ioport.h"
  601struct device;
  602#line 175
  603struct device;
  604#line 312 "include/linux/jiffies.h"
  605union ktime {
  606   s64 tv64 ;
  607};
  608#line 59 "include/linux/ktime.h"
  609typedef union ktime ktime_t;
  610#line 99 "include/linux/debugobjects.h"
  611struct tvec_base;
  612#line 99
  613struct tvec_base;
  614#line 100 "include/linux/debugobjects.h"
  615struct timer_list {
  616   struct list_head entry ;
  617   unsigned long expires ;
  618   struct tvec_base *base ;
  619   void (*function)(unsigned long  ) ;
  620   unsigned long data ;
  621   int slack ;
  622   int start_pid ;
  623   void *start_site ;
  624   char start_comm[16U] ;
  625   struct lockdep_map lockdep_map ;
  626};
  627#line 289 "include/linux/timer.h"
  628struct hrtimer;
  629#line 289
  630struct hrtimer;
  631#line 290
  632enum hrtimer_restart;
  633#line 290
  634enum hrtimer_restart;
  635#line 290
  636enum hrtimer_restart;
  637#line 302
  638struct work_struct;
  639#line 302
  640struct work_struct;
  641#line 45 "include/linux/workqueue.h"
  642struct work_struct {
  643   atomic_long_t data ;
  644   struct list_head entry ;
  645   void (*func)(struct work_struct * ) ;
  646   struct lockdep_map lockdep_map ;
  647};
  648#line 86 "include/linux/workqueue.h"
  649struct delayed_work {
  650   struct work_struct work ;
  651   struct timer_list timer ;
  652};
  653#line 443 "include/linux/workqueue.h"
  654struct completion {
  655   unsigned int done ;
  656   wait_queue_head_t wait ;
  657};
  658#line 46 "include/linux/pm.h"
  659struct pm_message {
  660   int event ;
  661};
  662#line 52 "include/linux/pm.h"
  663typedef struct pm_message pm_message_t;
  664#line 53 "include/linux/pm.h"
  665struct dev_pm_ops {
  666   int (*prepare)(struct device * ) ;
  667   void (*complete)(struct device * ) ;
  668   int (*suspend)(struct device * ) ;
  669   int (*resume)(struct device * ) ;
  670   int (*freeze)(struct device * ) ;
  671   int (*thaw)(struct device * ) ;
  672   int (*poweroff)(struct device * ) ;
  673   int (*restore)(struct device * ) ;
  674   int (*suspend_noirq)(struct device * ) ;
  675   int (*resume_noirq)(struct device * ) ;
  676   int (*freeze_noirq)(struct device * ) ;
  677   int (*thaw_noirq)(struct device * ) ;
  678   int (*poweroff_noirq)(struct device * ) ;
  679   int (*restore_noirq)(struct device * ) ;
  680   int (*runtime_suspend)(struct device * ) ;
  681   int (*runtime_resume)(struct device * ) ;
  682   int (*runtime_idle)(struct device * ) ;
  683};
  684#line 272
  685enum rpm_status {
  686    RPM_ACTIVE = 0,
  687    RPM_RESUMING = 1,
  688    RPM_SUSPENDED = 2,
  689    RPM_SUSPENDING = 3
  690} ;
  691#line 279
  692enum rpm_request {
  693    RPM_REQ_NONE = 0,
  694    RPM_REQ_IDLE = 1,
  695    RPM_REQ_SUSPEND = 2,
  696    RPM_REQ_AUTOSUSPEND = 3,
  697    RPM_REQ_RESUME = 4
  698} ;
  699#line 287
  700struct wakeup_source;
  701#line 287
  702struct wakeup_source;
  703#line 288 "include/linux/pm.h"
  704struct dev_pm_info {
  705   pm_message_t power_state ;
  706   unsigned char can_wakeup : 1 ;
  707   unsigned char async_suspend : 1 ;
  708   bool is_prepared ;
  709   bool is_suspended ;
  710   spinlock_t lock ;
  711   struct list_head entry ;
  712   struct completion completion ;
  713   struct wakeup_source *wakeup ;
  714   struct timer_list suspend_timer ;
  715   unsigned long timer_expires ;
  716   struct work_struct work ;
  717   wait_queue_head_t wait_queue ;
  718   atomic_t usage_count ;
  719   atomic_t child_count ;
  720   unsigned char disable_depth : 3 ;
  721   unsigned char ignore_children : 1 ;
  722   unsigned char idle_notification : 1 ;
  723   unsigned char request_pending : 1 ;
  724   unsigned char deferred_resume : 1 ;
  725   unsigned char run_wake : 1 ;
  726   unsigned char runtime_auto : 1 ;
  727   unsigned char no_callbacks : 1 ;
  728   unsigned char irq_safe : 1 ;
  729   unsigned char use_autosuspend : 1 ;
  730   unsigned char timer_autosuspends : 1 ;
  731   enum rpm_request request ;
  732   enum rpm_status runtime_status ;
  733   int runtime_error ;
  734   int autosuspend_delay ;
  735   unsigned long last_busy ;
  736   unsigned long active_jiffies ;
  737   unsigned long suspended_jiffies ;
  738   unsigned long accounting_timestamp ;
  739   void *subsys_data ;
  740};
  741#line 469 "include/linux/pm.h"
  742struct dev_power_domain {
  743   struct dev_pm_ops ops ;
  744};
  745#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
  746struct __anonstruct_mm_context_t_99 {
  747   void *ldt ;
  748   int size ;
  749   unsigned short ia32_compat ;
  750   struct mutex lock ;
  751   void *vdso ;
  752};
  753#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/mmu.h"
  754typedef struct __anonstruct_mm_context_t_99 mm_context_t;
  755#line 71 "include/asm-generic/iomap.h"
  756struct vm_area_struct;
  757#line 71
  758struct vm_area_struct;
  759#line 53 "include/linux/rcupdate.h"
  760struct rcu_head {
  761   struct rcu_head *next ;
  762   void (*func)(struct rcu_head * ) ;
  763};
  764#line 841
  765struct nsproxy;
  766#line 841
  767struct nsproxy;
  768#line 36 "include/linux/kmod.h"
  769struct cred;
  770#line 36
  771struct cred;
  772#line 27 "include/linux/elf.h"
  773typedef __u64 Elf64_Addr;
  774#line 28 "include/linux/elf.h"
  775typedef __u16 Elf64_Half;
  776#line 32 "include/linux/elf.h"
  777typedef __u32 Elf64_Word;
  778#line 33 "include/linux/elf.h"
  779typedef __u64 Elf64_Xword;
  780#line 202 "include/linux/elf.h"
  781struct elf64_sym {
  782   Elf64_Word st_name ;
  783   unsigned char st_info ;
  784   unsigned char st_other ;
  785   Elf64_Half st_shndx ;
  786   Elf64_Addr st_value ;
  787   Elf64_Xword st_size ;
  788};
  789#line 210 "include/linux/elf.h"
  790typedef struct elf64_sym Elf64_Sym;
  791#line 444
  792struct sock;
  793#line 444
  794struct sock;
  795#line 445
  796struct kobject;
  797#line 445
  798struct kobject;
  799#line 446
  800enum kobj_ns_type {
  801    KOBJ_NS_TYPE_NONE = 0,
  802    KOBJ_NS_TYPE_NET = 1,
  803    KOBJ_NS_TYPES = 2
  804} ;
  805#line 452 "include/linux/elf.h"
  806struct kobj_ns_type_operations {
  807   enum kobj_ns_type type ;
  808   void *(*grab_current_ns)(void) ;
  809   void const   *(*netlink_ns)(struct sock * ) ;
  810   void const   *(*initial_ns)(void) ;
  811   void (*drop_ns)(void * ) ;
  812};
  813#line 57 "include/linux/kobject_ns.h"
  814struct attribute {
  815   char const   *name ;
  816   mode_t mode ;
  817   struct lock_class_key *key ;
  818   struct lock_class_key skey ;
  819};
  820#line 33 "include/linux/sysfs.h"
  821struct attribute_group {
  822   char const   *name ;
  823   mode_t (*is_visible)(struct kobject * , struct attribute * , int  ) ;
  824   struct attribute **attrs ;
  825};
  826#line 62 "include/linux/sysfs.h"
  827struct bin_attribute {
  828   struct attribute attr ;
  829   size_t size ;
  830   void *private ;
  831   ssize_t (*read)(struct file * , struct kobject * , struct bin_attribute * , char * ,
  832                   loff_t  , size_t  ) ;
  833   ssize_t (*write)(struct file * , struct kobject * , struct bin_attribute * , char * ,
  834                    loff_t  , size_t  ) ;
  835   int (*mmap)(struct file * , struct kobject * , struct bin_attribute * , struct vm_area_struct * ) ;
  836};
  837#line 98 "include/linux/sysfs.h"
  838struct sysfs_ops {
  839   ssize_t (*show)(struct kobject * , struct attribute * , char * ) ;
  840   ssize_t (*store)(struct kobject * , struct attribute * , char const   * , size_t  ) ;
  841};
  842#line 116
  843struct sysfs_dirent;
  844#line 116
  845struct sysfs_dirent;
  846#line 181 "include/linux/sysfs.h"
  847struct kref {
  848   atomic_t refcount ;
  849};
  850#line 49 "include/linux/kobject.h"
  851struct kset;
  852#line 49
  853struct kset;
  854#line 49
  855struct kobj_type;
  856#line 49
  857struct kobj_type;
  858#line 49 "include/linux/kobject.h"
  859struct kobject {
  860   char const   *name ;
  861   struct list_head entry ;
  862   struct kobject *parent ;
  863   struct kset *kset ;
  864   struct kobj_type *ktype ;
  865   struct sysfs_dirent *sd ;
  866   struct kref kref ;
  867   unsigned char state_initialized : 1 ;
  868   unsigned char state_in_sysfs : 1 ;
  869   unsigned char state_add_uevent_sent : 1 ;
  870   unsigned char state_remove_uevent_sent : 1 ;
  871   unsigned char uevent_suppress : 1 ;
  872};
  873#line 109 "include/linux/kobject.h"
  874struct kobj_type {
  875   void (*release)(struct kobject * ) ;
  876   struct sysfs_ops  const  *sysfs_ops ;
  877   struct attribute **default_attrs ;
  878   struct kobj_ns_type_operations  const  *(*child_ns_type)(struct kobject * ) ;
  879   void const   *(*namespace)(struct kobject * ) ;
  880};
  881#line 117 "include/linux/kobject.h"
  882struct kobj_uevent_env {
  883   char *envp[32U] ;
  884   int envp_idx ;
  885   char buf[2048U] ;
  886   int buflen ;
  887};
  888#line 124 "include/linux/kobject.h"
  889struct kset_uevent_ops {
  890   int (* const  filter)(struct kset * , struct kobject * ) ;
  891   char const   *(* const  name)(struct kset * , struct kobject * ) ;
  892   int (* const  uevent)(struct kset * , struct kobject * , struct kobj_uevent_env * ) ;
  893};
  894#line 141 "include/linux/kobject.h"
  895struct kset {
  896   struct list_head list ;
  897   spinlock_t list_lock ;
  898   struct kobject kobj ;
  899   struct kset_uevent_ops  const  *uevent_ops ;
  900};
  901#line 219
  902struct kernel_param;
  903#line 219
  904struct kernel_param;
  905#line 220 "include/linux/kobject.h"
  906struct kernel_param_ops {
  907   int (*set)(char const   * , struct kernel_param  const  * ) ;
  908   int (*get)(char * , struct kernel_param  const  * ) ;
  909   void (*free)(void * ) ;
  910};
  911#line 44 "include/linux/moduleparam.h"
  912struct kparam_string;
  913#line 44
  914struct kparam_string;
  915#line 44
  916struct kparam_array;
  917#line 44
  918struct kparam_array;
  919#line 44 "include/linux/moduleparam.h"
  920union __anonunion_ldv_12924_129 {
  921   void *arg ;
  922   struct kparam_string  const  *str ;
  923   struct kparam_array  const  *arr ;
  924};
  925#line 44 "include/linux/moduleparam.h"
  926struct kernel_param {
  927   char const   *name ;
  928   struct kernel_param_ops  const  *ops ;
  929   u16 perm ;
  930   u16 flags ;
  931   union __anonunion_ldv_12924_129 ldv_12924 ;
  932};
  933#line 59 "include/linux/moduleparam.h"
  934struct kparam_string {
  935   unsigned int maxlen ;
  936   char *string ;
  937};
  938#line 65 "include/linux/moduleparam.h"
  939struct kparam_array {
  940   unsigned int max ;
  941   unsigned int elemsize ;
  942   unsigned int *num ;
  943   struct kernel_param_ops  const  *ops ;
  944   void *elem ;
  945};
  946#line 404 "include/linux/moduleparam.h"
  947struct jump_label_key {
  948   atomic_t enabled ;
  949};
  950#line 99 "include/linux/jump_label.h"
  951struct tracepoint;
  952#line 99
  953struct tracepoint;
  954#line 100 "include/linux/jump_label.h"
  955struct tracepoint_func {
  956   void *func ;
  957   void *data ;
  958};
  959#line 29 "include/linux/tracepoint.h"
  960struct tracepoint {
  961   char const   *name ;
  962   struct jump_label_key key ;
  963   void (*regfunc)(void) ;
  964   void (*unregfunc)(void) ;
  965   struct tracepoint_func *funcs ;
  966};
  967#line 84 "include/linux/tracepoint.h"
  968struct mod_arch_specific {
  969
  970};
  971#line 127 "include/trace/events/module.h"
  972struct kernel_symbol {
  973   unsigned long value ;
  974   char const   *name ;
  975};
  976#line 48 "include/linux/module.h"
  977struct module_attribute {
  978   struct attribute attr ;
  979   ssize_t (*show)(struct module_attribute * , struct module * , char * ) ;
  980   ssize_t (*store)(struct module_attribute * , struct module * , char const   * ,
  981                    size_t  ) ;
  982   void (*setup)(struct module * , char const   * ) ;
  983   int (*test)(struct module * ) ;
  984   void (*free)(struct module * ) ;
  985};
  986#line 68
  987struct module_param_attrs;
  988#line 68
  989struct module_param_attrs;
  990#line 68 "include/linux/module.h"
  991struct module_kobject {
  992   struct kobject kobj ;
  993   struct module *mod ;
  994   struct kobject *drivers_dir ;
  995   struct module_param_attrs *mp ;
  996};
  997#line 81
  998struct exception_table_entry;
  999#line 81
 1000struct exception_table_entry;
 1001#line 218
 1002enum module_state {
 1003    MODULE_STATE_LIVE = 0,
 1004    MODULE_STATE_COMING = 1,
 1005    MODULE_STATE_GOING = 2
 1006} ;
 1007#line 224 "include/linux/module.h"
 1008struct module_ref {
 1009   unsigned int incs ;
 1010   unsigned int decs ;
 1011};
 1012#line 418
 1013struct module_sect_attrs;
 1014#line 418
 1015struct module_sect_attrs;
 1016#line 418
 1017struct module_notes_attrs;
 1018#line 418
 1019struct module_notes_attrs;
 1020#line 418
 1021struct ftrace_event_call;
 1022#line 418
 1023struct ftrace_event_call;
 1024#line 418 "include/linux/module.h"
 1025struct module {
 1026   enum module_state state ;
 1027   struct list_head list ;
 1028   char name[56U] ;
 1029   struct module_kobject mkobj ;
 1030   struct module_attribute *modinfo_attrs ;
 1031   char const   *version ;
 1032   char const   *srcversion ;
 1033   struct kobject *holders_dir ;
 1034   struct kernel_symbol  const  *syms ;
 1035   unsigned long const   *crcs ;
 1036   unsigned int num_syms ;
 1037   struct kernel_param *kp ;
 1038   unsigned int num_kp ;
 1039   unsigned int num_gpl_syms ;
 1040   struct kernel_symbol  const  *gpl_syms ;
 1041   unsigned long const   *gpl_crcs ;
 1042   struct kernel_symbol  const  *unused_syms ;
 1043   unsigned long const   *unused_crcs ;
 1044   unsigned int num_unused_syms ;
 1045   unsigned int num_unused_gpl_syms ;
 1046   struct kernel_symbol  const  *unused_gpl_syms ;
 1047   unsigned long const   *unused_gpl_crcs ;
 1048   struct kernel_symbol  const  *gpl_future_syms ;
 1049   unsigned long const   *gpl_future_crcs ;
 1050   unsigned int num_gpl_future_syms ;
 1051   unsigned int num_exentries ;
 1052   struct exception_table_entry *extable ;
 1053   int (*init)(void) ;
 1054   void *module_init ;
 1055   void *module_core ;
 1056   unsigned int init_size ;
 1057   unsigned int core_size ;
 1058   unsigned int init_text_size ;
 1059   unsigned int core_text_size ;
 1060   unsigned int init_ro_size ;
 1061   unsigned int core_ro_size ;
 1062   struct mod_arch_specific arch ;
 1063   unsigned int taints ;
 1064   unsigned int num_bugs ;
 1065   struct list_head bug_list ;
 1066   struct bug_entry *bug_table ;
 1067   Elf64_Sym *symtab ;
 1068   Elf64_Sym *core_symtab ;
 1069   unsigned int num_symtab ;
 1070   unsigned int core_num_syms ;
 1071   char *strtab ;
 1072   char *core_strtab ;
 1073   struct module_sect_attrs *sect_attrs ;
 1074   struct module_notes_attrs *notes_attrs ;
 1075   char *args ;
 1076   void *percpu ;
 1077   unsigned int percpu_size ;
 1078   unsigned int num_tracepoints ;
 1079   struct tracepoint * const  *tracepoints_ptrs ;
 1080   unsigned int num_trace_bprintk_fmt ;
 1081   char const   **trace_bprintk_fmt_start ;
 1082   struct ftrace_event_call **trace_events ;
 1083   unsigned int num_trace_events ;
 1084   unsigned int num_ftrace_callsites ;
 1085   unsigned long *ftrace_callsites ;
 1086   struct list_head source_list ;
 1087   struct list_head target_list ;
 1088   struct task_struct *waiter ;
 1089   void (*exit)(void) ;
 1090   struct module_ref *refptr ;
 1091   ctor_fn_t (**ctors)(void) ;
 1092   unsigned int num_ctors ;
 1093};
 1094#line 118 "include/linux/kmemleak.h"
 1095struct kmem_cache_cpu {
 1096   void **freelist ;
 1097   unsigned long tid ;
 1098   struct page *page ;
 1099   int node ;
 1100   unsigned int stat[19U] ;
 1101};
 1102#line 46 "include/linux/slub_def.h"
 1103struct kmem_cache_node {
 1104   spinlock_t list_lock ;
 1105   unsigned long nr_partial ;
 1106   struct list_head partial ;
 1107   atomic_long_t nr_slabs ;
 1108   atomic_long_t total_objects ;
 1109   struct list_head full ;
 1110};
 1111#line 57 "include/linux/slub_def.h"
 1112struct kmem_cache_order_objects {
 1113   unsigned long x ;
 1114};
 1115#line 67 "include/linux/slub_def.h"
 1116struct kmem_cache {
 1117   struct kmem_cache_cpu *cpu_slab ;
 1118   unsigned long flags ;
 1119   unsigned long min_partial ;
 1120   int size ;
 1121   int objsize ;
 1122   int offset ;
 1123   struct kmem_cache_order_objects oo ;
 1124   struct kmem_cache_order_objects max ;
 1125   struct kmem_cache_order_objects min ;
 1126   gfp_t allocflags ;
 1127   int refcount ;
 1128   void (*ctor)(void * ) ;
 1129   int inuse ;
 1130   int align ;
 1131   int reserved ;
 1132   char const   *name ;
 1133   struct list_head list ;
 1134   struct kobject kobj ;
 1135   int remote_node_defrag_ratio ;
 1136   struct kmem_cache_node *node[1024U] ;
 1137};
 1138#line 335 "include/linux/slab.h"
 1139enum irqreturn {
 1140    IRQ_NONE = 0,
 1141    IRQ_HANDLED = 1,
 1142    IRQ_WAKE_THREAD = 2
 1143} ;
 1144#line 16 "include/linux/irqreturn.h"
 1145typedef enum irqreturn irqreturn_t;
 1146#line 331 "include/linux/irq.h"
 1147struct proc_dir_entry;
 1148#line 331
 1149struct proc_dir_entry;
 1150#line 333
 1151struct irqaction;
 1152#line 333
 1153struct irqaction;
 1154#line 41 "include/asm-generic/sections.h"
 1155struct exception_table_entry {
 1156   unsigned long insn ;
 1157   unsigned long fixup ;
 1158};
 1159#line 210 "include/linux/hardirq.h"
 1160struct rb_node {
 1161   unsigned long rb_parent_color ;
 1162   struct rb_node *rb_right ;
 1163   struct rb_node *rb_left ;
 1164};
 1165#line 108 "include/linux/rbtree.h"
 1166struct rb_root {
 1167   struct rb_node *rb_node ;
 1168};
 1169#line 176 "include/linux/rbtree.h"
 1170struct timerqueue_node {
 1171   struct rb_node node ;
 1172   ktime_t expires ;
 1173};
 1174#line 12 "include/linux/timerqueue.h"
 1175struct timerqueue_head {
 1176   struct rb_root head ;
 1177   struct timerqueue_node *next ;
 1178};
 1179#line 50
 1180struct hrtimer_clock_base;
 1181#line 50
 1182struct hrtimer_clock_base;
 1183#line 51
 1184struct hrtimer_cpu_base;
 1185#line 51
 1186struct hrtimer_cpu_base;
 1187#line 60
 1188enum hrtimer_restart {
 1189    HRTIMER_NORESTART = 0,
 1190    HRTIMER_RESTART = 1
 1191} ;
 1192#line 65 "include/linux/timerqueue.h"
 1193struct hrtimer {
 1194   struct timerqueue_node node ;
 1195   ktime_t _softexpires ;
 1196   enum hrtimer_restart (*function)(struct hrtimer * ) ;
 1197   struct hrtimer_clock_base *base ;
 1198   unsigned long state ;
 1199   int start_pid ;
 1200   void *start_site ;
 1201   char start_comm[16U] ;
 1202};
 1203#line 132 "include/linux/hrtimer.h"
 1204struct hrtimer_clock_base {
 1205   struct hrtimer_cpu_base *cpu_base ;
 1206   int index ;
 1207   clockid_t clockid ;
 1208   struct timerqueue_head active ;
 1209   ktime_t resolution ;
 1210   ktime_t (*get_time)(void) ;
 1211   ktime_t softirq_time ;
 1212   ktime_t offset ;
 1213};
 1214#line 162 "include/linux/hrtimer.h"
 1215struct hrtimer_cpu_base {
 1216   raw_spinlock_t lock ;
 1217   unsigned long active_bases ;
 1218   ktime_t expires_next ;
 1219   int hres_active ;
 1220   int hang_detected ;
 1221   unsigned long nr_events ;
 1222   unsigned long nr_retries ;
 1223   unsigned long nr_hangs ;
 1224   ktime_t max_hang_time ;
 1225   struct hrtimer_clock_base clock_base[3U] ;
 1226};
 1227#line 91 "include/linux/interrupt.h"
 1228struct irqaction {
 1229   irqreturn_t (*handler)(int  , void * ) ;
 1230   unsigned long flags ;
 1231   void *dev_id ;
 1232   struct irqaction *next ;
 1233   int irq ;
 1234   irqreturn_t (*thread_fn)(int  , void * ) ;
 1235   struct task_struct *thread ;
 1236   unsigned long thread_flags ;
 1237   unsigned long thread_mask ;
 1238   char const   *name ;
 1239   struct proc_dir_entry *dir ;
 1240};
 1241#line 12 "include/linux/mod_devicetable.h"
 1242typedef unsigned long kernel_ulong_t;
 1243#line 38 "include/linux/mod_devicetable.h"
 1244struct usb_device_id {
 1245   __u16 match_flags ;
 1246   __u16 idVendor ;
 1247   __u16 idProduct ;
 1248   __u16 bcdDevice_lo ;
 1249   __u16 bcdDevice_hi ;
 1250   __u8 bDeviceClass ;
 1251   __u8 bDeviceSubClass ;
 1252   __u8 bDeviceProtocol ;
 1253   __u8 bInterfaceClass ;
 1254   __u8 bInterfaceSubClass ;
 1255   __u8 bInterfaceProtocol ;
 1256   kernel_ulong_t driver_info ;
 1257};
 1258#line 215 "include/linux/mod_devicetable.h"
 1259struct of_device_id {
 1260   char name[32U] ;
 1261   char type[32U] ;
 1262   char compatible[128U] ;
 1263   void *data ;
 1264};
 1265#line 178 "include/linux/usb/ch9.h"
 1266struct usb_descriptor_header {
 1267   __u8 bLength ;
 1268   __u8 bDescriptorType ;
 1269};
 1270#line 239 "include/linux/usb/ch9.h"
 1271struct usb_device_descriptor {
 1272   __u8 bLength ;
 1273   __u8 bDescriptorType ;
 1274   __le16 bcdUSB ;
 1275   __u8 bDeviceClass ;
 1276   __u8 bDeviceSubClass ;
 1277   __u8 bDeviceProtocol ;
 1278   __u8 bMaxPacketSize0 ;
 1279   __le16 idVendor ;
 1280   __le16 idProduct ;
 1281   __le16 bcdDevice ;
 1282   __u8 iManufacturer ;
 1283   __u8 iProduct ;
 1284   __u8 iSerialNumber ;
 1285   __u8 bNumConfigurations ;
 1286};
 1287#line 261 "include/linux/usb/ch9.h"
 1288struct usb_config_descriptor {
 1289   __u8 bLength ;
 1290   __u8 bDescriptorType ;
 1291   __le16 wTotalLength ;
 1292   __u8 bNumInterfaces ;
 1293   __u8 bConfigurationValue ;
 1294   __u8 iConfiguration ;
 1295   __u8 bmAttributes ;
 1296   __u8 bMaxPower ;
 1297};
 1298#line 329 "include/linux/usb/ch9.h"
 1299struct usb_interface_descriptor {
 1300   __u8 bLength ;
 1301   __u8 bDescriptorType ;
 1302   __u8 bInterfaceNumber ;
 1303   __u8 bAlternateSetting ;
 1304   __u8 bNumEndpoints ;
 1305   __u8 bInterfaceClass ;
 1306   __u8 bInterfaceSubClass ;
 1307   __u8 bInterfaceProtocol ;
 1308   __u8 iInterface ;
 1309};
 1310#line 349 "include/linux/usb/ch9.h"
 1311struct usb_endpoint_descriptor {
 1312   __u8 bLength ;
 1313   __u8 bDescriptorType ;
 1314   __u8 bEndpointAddress ;
 1315   __u8 bmAttributes ;
 1316   __le16 wMaxPacketSize ;
 1317   __u8 bInterval ;
 1318   __u8 bRefresh ;
 1319   __u8 bSynchAddress ;
 1320};
 1321#line 572 "include/linux/usb/ch9.h"
 1322struct usb_ss_ep_comp_descriptor {
 1323   __u8 bLength ;
 1324   __u8 bDescriptorType ;
 1325   __u8 bMaxBurst ;
 1326   __u8 bmAttributes ;
 1327   __le16 wBytesPerInterval ;
 1328};
 1329#line 633 "include/linux/usb/ch9.h"
 1330struct usb_interface_assoc_descriptor {
 1331   __u8 bLength ;
 1332   __u8 bDescriptorType ;
 1333   __u8 bFirstInterface ;
 1334   __u8 bInterfaceCount ;
 1335   __u8 bFunctionClass ;
 1336   __u8 bFunctionSubClass ;
 1337   __u8 bFunctionProtocol ;
 1338   __u8 iFunction ;
 1339};
 1340#line 841
 1341enum usb_device_speed {
 1342    USB_SPEED_UNKNOWN = 0,
 1343    USB_SPEED_LOW = 1,
 1344    USB_SPEED_FULL = 2,
 1345    USB_SPEED_HIGH = 3,
 1346    USB_SPEED_WIRELESS = 4,
 1347    USB_SPEED_SUPER = 5
 1348} ;
 1349#line 850
 1350enum usb_device_state {
 1351    USB_STATE_NOTATTACHED = 0,
 1352    USB_STATE_ATTACHED = 1,
 1353    USB_STATE_POWERED = 2,
 1354    USB_STATE_RECONNECTING = 3,
 1355    USB_STATE_UNAUTHENTICATED = 4,
 1356    USB_STATE_DEFAULT = 5,
 1357    USB_STATE_ADDRESS = 6,
 1358    USB_STATE_CONFIGURED = 7,
 1359    USB_STATE_SUSPENDED = 8
 1360} ;
 1361#line 54 "include/linux/delay.h"
 1362struct klist_node;
 1363#line 54
 1364struct klist_node;
 1365#line 37 "include/linux/klist.h"
 1366struct klist_node {
 1367   void *n_klist ;
 1368   struct list_head n_node ;
 1369   struct kref n_ref ;
 1370};
 1371#line 67
 1372struct dma_map_ops;
 1373#line 67
 1374struct dma_map_ops;
 1375#line 67 "include/linux/klist.h"
 1376struct dev_archdata {
 1377   void *acpi_handle ;
 1378   struct dma_map_ops *dma_ops ;
 1379   void *iommu ;
 1380};
 1381#line 17 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 1382struct device_private;
 1383#line 17
 1384struct device_private;
 1385#line 18
 1386struct device_driver;
 1387#line 18
 1388struct device_driver;
 1389#line 19
 1390struct driver_private;
 1391#line 19
 1392struct driver_private;
 1393#line 20
 1394struct class;
 1395#line 20
 1396struct class;
 1397#line 21
 1398struct subsys_private;
 1399#line 21
 1400struct subsys_private;
 1401#line 22
 1402struct bus_type;
 1403#line 22
 1404struct bus_type;
 1405#line 23
 1406struct device_node;
 1407#line 23
 1408struct device_node;
 1409#line 24 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 1410struct bus_attribute {
 1411   struct attribute attr ;
 1412   ssize_t (*show)(struct bus_type * , char * ) ;
 1413   ssize_t (*store)(struct bus_type * , char const   * , size_t  ) ;
 1414};
 1415#line 49 "include/linux/device.h"
 1416struct device_attribute;
 1417#line 49
 1418struct device_attribute;
 1419#line 49
 1420struct driver_attribute;
 1421#line 49
 1422struct driver_attribute;
 1423#line 49 "include/linux/device.h"
 1424struct bus_type {
 1425   char const   *name ;
 1426   struct bus_attribute *bus_attrs ;
 1427   struct device_attribute *dev_attrs ;
 1428   struct driver_attribute *drv_attrs ;
 1429   int (*match)(struct device * , struct device_driver * ) ;
 1430   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 1431   int (*probe)(struct device * ) ;
 1432   int (*remove)(struct device * ) ;
 1433   void (*shutdown)(struct device * ) ;
 1434   int (*suspend)(struct device * , pm_message_t  ) ;
 1435   int (*resume)(struct device * ) ;
 1436   struct dev_pm_ops  const  *pm ;
 1437   struct subsys_private *p ;
 1438};
 1439#line 153 "include/linux/device.h"
 1440struct device_driver {
 1441   char const   *name ;
 1442   struct bus_type *bus ;
 1443   struct module *owner ;
 1444   char const   *mod_name ;
 1445   bool suppress_bind_attrs ;
 1446   struct of_device_id  const  *of_match_table ;
 1447   int (*probe)(struct device * ) ;
 1448   int (*remove)(struct device * ) ;
 1449   void (*shutdown)(struct device * ) ;
 1450   int (*suspend)(struct device * , pm_message_t  ) ;
 1451   int (*resume)(struct device * ) ;
 1452   struct attribute_group  const  **groups ;
 1453   struct dev_pm_ops  const  *pm ;
 1454   struct driver_private *p ;
 1455};
 1456#line 218 "include/linux/device.h"
 1457struct driver_attribute {
 1458   struct attribute attr ;
 1459   ssize_t (*show)(struct device_driver * , char * ) ;
 1460   ssize_t (*store)(struct device_driver * , char const   * , size_t  ) ;
 1461};
 1462#line 248
 1463struct class_attribute;
 1464#line 248
 1465struct class_attribute;
 1466#line 248 "include/linux/device.h"
 1467struct class {
 1468   char const   *name ;
 1469   struct module *owner ;
 1470   struct class_attribute *class_attrs ;
 1471   struct device_attribute *dev_attrs ;
 1472   struct bin_attribute *dev_bin_attrs ;
 1473   struct kobject *dev_kobj ;
 1474   int (*dev_uevent)(struct device * , struct kobj_uevent_env * ) ;
 1475   char *(*devnode)(struct device * , mode_t * ) ;
 1476   void (*class_release)(struct class * ) ;
 1477   void (*dev_release)(struct device * ) ;
 1478   int (*suspend)(struct device * , pm_message_t  ) ;
 1479   int (*resume)(struct device * ) ;
 1480   struct kobj_ns_type_operations  const  *ns_type ;
 1481   void const   *(*namespace)(struct device * ) ;
 1482   struct dev_pm_ops  const  *pm ;
 1483   struct subsys_private *p ;
 1484};
 1485#line 305
 1486struct device_type;
 1487#line 305
 1488struct device_type;
 1489#line 344 "include/linux/device.h"
 1490struct class_attribute {
 1491   struct attribute attr ;
 1492   ssize_t (*show)(struct class * , struct class_attribute * , char * ) ;
 1493   ssize_t (*store)(struct class * , struct class_attribute * , char const   * , size_t  ) ;
 1494};
 1495#line 395 "include/linux/device.h"
 1496struct device_type {
 1497   char const   *name ;
 1498   struct attribute_group  const  **groups ;
 1499   int (*uevent)(struct device * , struct kobj_uevent_env * ) ;
 1500   char *(*devnode)(struct device * , mode_t * ) ;
 1501   void (*release)(struct device * ) ;
 1502   struct dev_pm_ops  const  *pm ;
 1503};
 1504#line 422 "include/linux/device.h"
 1505struct device_attribute {
 1506   struct attribute attr ;
 1507   ssize_t (*show)(struct device * , struct device_attribute * , char * ) ;
 1508   ssize_t (*store)(struct device * , struct device_attribute * , char const   * ,
 1509                    size_t  ) ;
 1510};
 1511#line 483 "include/linux/device.h"
 1512struct device_dma_parameters {
 1513   unsigned int max_segment_size ;
 1514   unsigned long segment_boundary_mask ;
 1515};
 1516#line 492
 1517struct dma_coherent_mem;
 1518#line 492
 1519struct dma_coherent_mem;
 1520#line 492 "include/linux/device.h"
 1521struct device {
 1522   struct device *parent ;
 1523   struct device_private *p ;
 1524   struct kobject kobj ;
 1525   char const   *init_name ;
 1526   struct device_type  const  *type ;
 1527   struct mutex mutex ;
 1528   struct bus_type *bus ;
 1529   struct device_driver *driver ;
 1530   void *platform_data ;
 1531   struct dev_pm_info power ;
 1532   struct dev_power_domain *pwr_domain ;
 1533   int numa_node ;
 1534   u64 *dma_mask ;
 1535   u64 coherent_dma_mask ;
 1536   struct device_dma_parameters *dma_parms ;
 1537   struct list_head dma_pools ;
 1538   struct dma_coherent_mem *dma_mem ;
 1539   struct dev_archdata archdata ;
 1540   struct device_node *of_node ;
 1541   dev_t devt ;
 1542   spinlock_t devres_lock ;
 1543   struct list_head devres_head ;
 1544   struct klist_node knode_class ;
 1545   struct class *class ;
 1546   struct attribute_group  const  **groups ;
 1547   void (*release)(struct device * ) ;
 1548};
 1549#line 604 "include/linux/device.h"
 1550struct wakeup_source {
 1551   char *name ;
 1552   struct list_head entry ;
 1553   spinlock_t lock ;
 1554   struct timer_list timer ;
 1555   unsigned long timer_expires ;
 1556   ktime_t total_time ;
 1557   ktime_t max_time ;
 1558   ktime_t last_time ;
 1559   unsigned long event_count ;
 1560   unsigned long active_count ;
 1561   unsigned long relax_count ;
 1562   unsigned long hit_count ;
 1563   unsigned char active : 1 ;
 1564};
 1565#line 906
 1566struct block_device;
 1567#line 906
 1568struct block_device;
 1569#line 92 "include/linux/bit_spinlock.h"
 1570struct hlist_bl_node;
 1571#line 92
 1572struct hlist_bl_node;
 1573#line 92 "include/linux/bit_spinlock.h"
 1574struct hlist_bl_head {
 1575   struct hlist_bl_node *first ;
 1576};
 1577#line 36 "include/linux/list_bl.h"
 1578struct hlist_bl_node {
 1579   struct hlist_bl_node *next ;
 1580   struct hlist_bl_node **pprev ;
 1581};
 1582#line 114 "include/linux/rculist_bl.h"
 1583struct nameidata;
 1584#line 114
 1585struct nameidata;
 1586#line 115
 1587struct path;
 1588#line 115
 1589struct path;
 1590#line 116
 1591struct vfsmount;
 1592#line 116
 1593struct vfsmount;
 1594#line 117 "include/linux/rculist_bl.h"
 1595struct qstr {
 1596   unsigned int hash ;
 1597   unsigned int len ;
 1598   unsigned char const   *name ;
 1599};
 1600#line 100 "include/linux/dcache.h"
 1601struct inode;
 1602#line 100
 1603struct inode;
 1604#line 100
 1605struct dentry_operations;
 1606#line 100
 1607struct dentry_operations;
 1608#line 100
 1609struct super_block;
 1610#line 100
 1611struct super_block;
 1612#line 100 "include/linux/dcache.h"
 1613union __anonunion_d_u_132 {
 1614   struct list_head d_child ;
 1615   struct rcu_head d_rcu ;
 1616};
 1617#line 100 "include/linux/dcache.h"
 1618struct dentry {
 1619   unsigned int d_flags ;
 1620   seqcount_t d_seq ;
 1621   struct hlist_bl_node d_hash ;
 1622   struct dentry *d_parent ;
 1623   struct qstr d_name ;
 1624   struct inode *d_inode ;
 1625   unsigned char d_iname[32U] ;
 1626   unsigned int d_count ;
 1627   spinlock_t d_lock ;
 1628   struct dentry_operations  const  *d_op ;
 1629   struct super_block *d_sb ;
 1630   unsigned long d_time ;
 1631   void *d_fsdata ;
 1632   struct list_head d_lru ;
 1633   union __anonunion_d_u_132 d_u ;
 1634   struct list_head d_subdirs ;
 1635   struct list_head d_alias ;
 1636};
 1637#line 151 "include/linux/dcache.h"
 1638struct dentry_operations {
 1639   int (*d_revalidate)(struct dentry * , struct nameidata * ) ;
 1640   int (*d_hash)(struct dentry  const  * , struct inode  const  * , struct qstr * ) ;
 1641   int (*d_compare)(struct dentry  const  * , struct inode  const  * , struct dentry  const  * ,
 1642                    struct inode  const  * , unsigned int  , char const   * , struct qstr  const  * ) ;
 1643   int (*d_delete)(struct dentry  const  * ) ;
 1644   void (*d_release)(struct dentry * ) ;
 1645   void (*d_iput)(struct dentry * , struct inode * ) ;
 1646   char *(*d_dname)(struct dentry * , char * , int  ) ;
 1647   struct vfsmount *(*d_automount)(struct path * ) ;
 1648   int (*d_manage)(struct dentry * , bool  ) ;
 1649};
 1650#line 422 "include/linux/dcache.h"
 1651struct path {
 1652   struct vfsmount *mnt ;
 1653   struct dentry *dentry ;
 1654};
 1655#line 51 "include/linux/radix-tree.h"
 1656struct radix_tree_node;
 1657#line 51
 1658struct radix_tree_node;
 1659#line 51 "include/linux/radix-tree.h"
 1660struct radix_tree_root {
 1661   unsigned int height ;
 1662   gfp_t gfp_mask ;
 1663   struct radix_tree_node *rnode ;
 1664};
 1665#line 229
 1666struct prio_tree_node;
 1667#line 229
 1668struct prio_tree_node;
 1669#line 229 "include/linux/radix-tree.h"
 1670struct raw_prio_tree_node {
 1671   struct prio_tree_node *left ;
 1672   struct prio_tree_node *right ;
 1673   struct prio_tree_node *parent ;
 1674};
 1675#line 19 "include/linux/prio_tree.h"
 1676struct prio_tree_node {
 1677   struct prio_tree_node *left ;
 1678   struct prio_tree_node *right ;
 1679   struct prio_tree_node *parent ;
 1680   unsigned long start ;
 1681   unsigned long last ;
 1682};
 1683#line 27 "include/linux/prio_tree.h"
 1684struct prio_tree_root {
 1685   struct prio_tree_node *prio_tree_node ;
 1686   unsigned short index_bits ;
 1687   unsigned short raw ;
 1688};
 1689#line 111
 1690enum pid_type {
 1691    PIDTYPE_PID = 0,
 1692    PIDTYPE_PGID = 1,
 1693    PIDTYPE_SID = 2,
 1694    PIDTYPE_MAX = 3
 1695} ;
 1696#line 118
 1697struct pid_namespace;
 1698#line 118
 1699struct pid_namespace;
 1700#line 118 "include/linux/prio_tree.h"
 1701struct upid {
 1702   int nr ;
 1703   struct pid_namespace *ns ;
 1704   struct hlist_node pid_chain ;
 1705};
 1706#line 56 "include/linux/pid.h"
 1707struct pid {
 1708   atomic_t count ;
 1709   unsigned int level ;
 1710   struct hlist_head tasks[3U] ;
 1711   struct rcu_head rcu ;
 1712   struct upid numbers[1U] ;
 1713};
 1714#line 68 "include/linux/pid.h"
 1715struct pid_link {
 1716   struct hlist_node node ;
 1717   struct pid *pid ;
 1718};
 1719#line 93 "include/linux/capability.h"
 1720struct kernel_cap_struct {
 1721   __u32 cap[2U] ;
 1722};
 1723#line 96 "include/linux/capability.h"
 1724typedef struct kernel_cap_struct kernel_cap_t;
 1725#line 104
 1726struct user_namespace;
 1727#line 104
 1728struct user_namespace;
 1729#line 45 "include/linux/semaphore.h"
 1730struct fiemap_extent {
 1731   __u64 fe_logical ;
 1732   __u64 fe_physical ;
 1733   __u64 fe_length ;
 1734   __u64 fe_reserved64[2U] ;
 1735   __u32 fe_flags ;
 1736   __u32 fe_reserved[3U] ;
 1737};
 1738#line 38 "include/linux/fiemap.h"
 1739struct export_operations;
 1740#line 38
 1741struct export_operations;
 1742#line 40
 1743struct iovec;
 1744#line 40
 1745struct iovec;
 1746#line 41
 1747struct kiocb;
 1748#line 41
 1749struct kiocb;
 1750#line 42
 1751struct pipe_inode_info;
 1752#line 42
 1753struct pipe_inode_info;
 1754#line 43
 1755struct poll_table_struct;
 1756#line 43
 1757struct poll_table_struct;
 1758#line 44
 1759struct kstatfs;
 1760#line 44
 1761struct kstatfs;
 1762#line 426 "include/linux/fs.h"
 1763struct iattr {
 1764   unsigned int ia_valid ;
 1765   umode_t ia_mode ;
 1766   uid_t ia_uid ;
 1767   gid_t ia_gid ;
 1768   loff_t ia_size ;
 1769   struct timespec ia_atime ;
 1770   struct timespec ia_mtime ;
 1771   struct timespec ia_ctime ;
 1772   struct file *ia_file ;
 1773};
 1774#line 119 "include/linux/quota.h"
 1775struct if_dqinfo {
 1776   __u64 dqi_bgrace ;
 1777   __u64 dqi_igrace ;
 1778   __u32 dqi_flags ;
 1779   __u32 dqi_valid ;
 1780};
 1781#line 176 "include/linux/percpu_counter.h"
 1782struct fs_disk_quota {
 1783   __s8 d_version ;
 1784   __s8 d_flags ;
 1785   __u16 d_fieldmask ;
 1786   __u32 d_id ;
 1787   __u64 d_blk_hardlimit ;
 1788   __u64 d_blk_softlimit ;
 1789   __u64 d_ino_hardlimit ;
 1790   __u64 d_ino_softlimit ;
 1791   __u64 d_bcount ;
 1792   __u64 d_icount ;
 1793   __s32 d_itimer ;
 1794   __s32 d_btimer ;
 1795   __u16 d_iwarns ;
 1796   __u16 d_bwarns ;
 1797   __s32 d_padding2 ;
 1798   __u64 d_rtb_hardlimit ;
 1799   __u64 d_rtb_softlimit ;
 1800   __u64 d_rtbcount ;
 1801   __s32 d_rtbtimer ;
 1802   __u16 d_rtbwarns ;
 1803   __s16 d_padding3 ;
 1804   char d_padding4[8U] ;
 1805};
 1806#line 75 "include/linux/dqblk_xfs.h"
 1807struct fs_qfilestat {
 1808   __u64 qfs_ino ;
 1809   __u64 qfs_nblks ;
 1810   __u32 qfs_nextents ;
 1811};
 1812#line 150 "include/linux/dqblk_xfs.h"
 1813typedef struct fs_qfilestat fs_qfilestat_t;
 1814#line 151 "include/linux/dqblk_xfs.h"
 1815struct fs_quota_stat {
 1816   __s8 qs_version ;
 1817   __u16 qs_flags ;
 1818   __s8 qs_pad ;
 1819   fs_qfilestat_t qs_uquota ;
 1820   fs_qfilestat_t qs_gquota ;
 1821   __u32 qs_incoredqs ;
 1822   __s32 qs_btimelimit ;
 1823   __s32 qs_itimelimit ;
 1824   __s32 qs_rtbtimelimit ;
 1825   __u16 qs_bwarnlimit ;
 1826   __u16 qs_iwarnlimit ;
 1827};
 1828#line 165
 1829struct dquot;
 1830#line 165
 1831struct dquot;
 1832#line 185 "include/linux/quota.h"
 1833typedef __kernel_uid32_t qid_t;
 1834#line 186 "include/linux/quota.h"
 1835typedef long long qsize_t;
 1836#line 189 "include/linux/quota.h"
 1837struct mem_dqblk {
 1838   qsize_t dqb_bhardlimit ;
 1839   qsize_t dqb_bsoftlimit ;
 1840   qsize_t dqb_curspace ;
 1841   qsize_t dqb_rsvspace ;
 1842   qsize_t dqb_ihardlimit ;
 1843   qsize_t dqb_isoftlimit ;
 1844   qsize_t dqb_curinodes ;
 1845   time_t dqb_btime ;
 1846   time_t dqb_itime ;
 1847};
 1848#line 211
 1849struct quota_format_type;
 1850#line 211
 1851struct quota_format_type;
 1852#line 212 "include/linux/quota.h"
 1853struct mem_dqinfo {
 1854   struct quota_format_type *dqi_format ;
 1855   int dqi_fmt_id ;
 1856   struct list_head dqi_dirty_list ;
 1857   unsigned long dqi_flags ;
 1858   unsigned int dqi_bgrace ;
 1859   unsigned int dqi_igrace ;
 1860   qsize_t dqi_maxblimit ;
 1861   qsize_t dqi_maxilimit ;
 1862   void *dqi_priv ;
 1863};
 1864#line 271 "include/linux/quota.h"
 1865struct dquot {
 1866   struct hlist_node dq_hash ;
 1867   struct list_head dq_inuse ;
 1868   struct list_head dq_free ;
 1869   struct list_head dq_dirty ;
 1870   struct mutex dq_lock ;
 1871   atomic_t dq_count ;
 1872   wait_queue_head_t dq_wait_unused ;
 1873   struct super_block *dq_sb ;
 1874   unsigned int dq_id ;
 1875   loff_t dq_off ;
 1876   unsigned long dq_flags ;
 1877   short dq_type ;
 1878   struct mem_dqblk dq_dqb ;
 1879};
 1880#line 299 "include/linux/quota.h"
 1881struct quota_format_ops {
 1882   int (*check_quota_file)(struct super_block * , int  ) ;
 1883   int (*read_file_info)(struct super_block * , int  ) ;
 1884   int (*write_file_info)(struct super_block * , int  ) ;
 1885   int (*free_file_info)(struct super_block * , int  ) ;
 1886   int (*read_dqblk)(struct dquot * ) ;
 1887   int (*commit_dqblk)(struct dquot * ) ;
 1888   int (*release_dqblk)(struct dquot * ) ;
 1889};
 1890#line 310 "include/linux/quota.h"
 1891struct dquot_operations {
 1892   int (*write_dquot)(struct dquot * ) ;
 1893   struct dquot *(*alloc_dquot)(struct super_block * , int  ) ;
 1894   void (*destroy_dquot)(struct dquot * ) ;
 1895   int (*acquire_dquot)(struct dquot * ) ;
 1896   int (*release_dquot)(struct dquot * ) ;
 1897   int (*mark_dirty)(struct dquot * ) ;
 1898   int (*write_info)(struct super_block * , int  ) ;
 1899   qsize_t *(*get_reserved_space)(struct inode * ) ;
 1900};
 1901#line 324 "include/linux/quota.h"
 1902struct quotactl_ops {
 1903   int (*quota_on)(struct super_block * , int  , int  , struct path * ) ;
 1904   int (*quota_on_meta)(struct super_block * , int  , int  ) ;
 1905   int (*quota_off)(struct super_block * , int  ) ;
 1906   int (*quota_sync)(struct super_block * , int  , int  ) ;
 1907   int (*get_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 1908   int (*set_info)(struct super_block * , int  , struct if_dqinfo * ) ;
 1909   int (*get_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 1910   int (*set_dqblk)(struct super_block * , int  , qid_t  , struct fs_disk_quota * ) ;
 1911   int (*get_xstate)(struct super_block * , struct fs_quota_stat * ) ;
 1912   int (*set_xstate)(struct super_block * , unsigned int  , int  ) ;
 1913};
 1914#line 340 "include/linux/quota.h"
 1915struct quota_format_type {
 1916   int qf_fmt_id ;
 1917   struct quota_format_ops  const  *qf_ops ;
 1918   struct module *qf_owner ;
 1919   struct quota_format_type *qf_next ;
 1920};
 1921#line 386 "include/linux/quota.h"
 1922struct quota_info {
 1923   unsigned int flags ;
 1924   struct mutex dqio_mutex ;
 1925   struct mutex dqonoff_mutex ;
 1926   struct rw_semaphore dqptr_sem ;
 1927   struct inode *files[2U] ;
 1928   struct mem_dqinfo info[2U] ;
 1929   struct quota_format_ops  const  *ops[2U] ;
 1930};
 1931#line 417
 1932struct address_space;
 1933#line 417
 1934struct address_space;
 1935#line 418
 1936struct writeback_control;
 1937#line 418
 1938struct writeback_control;
 1939#line 576 "include/linux/fs.h"
 1940union __anonunion_arg_135 {
 1941   char *buf ;
 1942   void *data ;
 1943};
 1944#line 576 "include/linux/fs.h"
 1945struct __anonstruct_read_descriptor_t_134 {
 1946   size_t written ;
 1947   size_t count ;
 1948   union __anonunion_arg_135 arg ;
 1949   int error ;
 1950};
 1951#line 576 "include/linux/fs.h"
 1952typedef struct __anonstruct_read_descriptor_t_134 read_descriptor_t;
 1953#line 579 "include/linux/fs.h"
 1954struct address_space_operations {
 1955   int (*writepage)(struct page * , struct writeback_control * ) ;
 1956   int (*readpage)(struct file * , struct page * ) ;
 1957   int (*writepages)(struct address_space * , struct writeback_control * ) ;
 1958   int (*set_page_dirty)(struct page * ) ;
 1959   int (*readpages)(struct file * , struct address_space * , struct list_head * ,
 1960                    unsigned int  ) ;
 1961   int (*write_begin)(struct file * , struct address_space * , loff_t  , unsigned int  ,
 1962                      unsigned int  , struct page ** , void ** ) ;
 1963   int (*write_end)(struct file * , struct address_space * , loff_t  , unsigned int  ,
 1964                    unsigned int  , struct page * , void * ) ;
 1965   sector_t (*bmap)(struct address_space * , sector_t  ) ;
 1966   void (*invalidatepage)(struct page * , unsigned long  ) ;
 1967   int (*releasepage)(struct page * , gfp_t  ) ;
 1968   void (*freepage)(struct page * ) ;
 1969   ssize_t (*direct_IO)(int  , struct kiocb * , struct iovec  const  * , loff_t  ,
 1970                        unsigned long  ) ;
 1971   int (*get_xip_mem)(struct address_space * , unsigned long  , int  , void ** , unsigned long * ) ;
 1972   int (*migratepage)(struct address_space * , struct page * , struct page * ) ;
 1973   int (*launder_page)(struct page * ) ;
 1974   int (*is_partially_uptodate)(struct page * , read_descriptor_t * , unsigned long  ) ;
 1975   int (*error_remove_page)(struct address_space * , struct page * ) ;
 1976};
 1977#line 630
 1978struct backing_dev_info;
 1979#line 630
 1980struct backing_dev_info;
 1981#line 631 "include/linux/fs.h"
 1982struct address_space {
 1983   struct inode *host ;
 1984   struct radix_tree_root page_tree ;
 1985   spinlock_t tree_lock ;
 1986   unsigned int i_mmap_writable ;
 1987   struct prio_tree_root i_mmap ;
 1988   struct list_head i_mmap_nonlinear ;
 1989   struct mutex i_mmap_mutex ;
 1990   unsigned long nrpages ;
 1991   unsigned long writeback_index ;
 1992   struct address_space_operations  const  *a_ops ;
 1993   unsigned long flags ;
 1994   struct backing_dev_info *backing_dev_info ;
 1995   spinlock_t private_lock ;
 1996   struct list_head private_list ;
 1997   struct address_space *assoc_mapping ;
 1998};
 1999#line 652
 2000struct hd_struct;
 2001#line 652
 2002struct hd_struct;
 2003#line 652
 2004struct gendisk;
 2005#line 652
 2006struct gendisk;
 2007#line 652 "include/linux/fs.h"
 2008struct block_device {
 2009   dev_t bd_dev ;
 2010   int bd_openers ;
 2011   struct inode *bd_inode ;
 2012   struct super_block *bd_super ;
 2013   struct mutex bd_mutex ;
 2014   struct list_head bd_inodes ;
 2015   void *bd_claiming ;
 2016   void *bd_holder ;
 2017   int bd_holders ;
 2018   bool bd_write_holder ;
 2019   struct list_head bd_holder_disks ;
 2020   struct block_device *bd_contains ;
 2021   unsigned int bd_block_size ;
 2022   struct hd_struct *bd_part ;
 2023   unsigned int bd_part_count ;
 2024   int bd_invalidated ;
 2025   struct gendisk *bd_disk ;
 2026   struct list_head bd_list ;
 2027   unsigned long bd_private ;
 2028   int bd_fsfreeze_count ;
 2029   struct mutex bd_fsfreeze_mutex ;
 2030};
 2031#line 723
 2032struct posix_acl;
 2033#line 723
 2034struct posix_acl;
 2035#line 724
 2036struct inode_operations;
 2037#line 724
 2038struct inode_operations;
 2039#line 724 "include/linux/fs.h"
 2040union __anonunion_ldv_18350_136 {
 2041   struct list_head i_dentry ;
 2042   struct rcu_head i_rcu ;
 2043};
 2044#line 724
 2045struct file_operations;
 2046#line 724
 2047struct file_operations;
 2048#line 724
 2049struct file_lock;
 2050#line 724
 2051struct file_lock;
 2052#line 724
 2053struct cdev;
 2054#line 724
 2055struct cdev;
 2056#line 724 "include/linux/fs.h"
 2057union __anonunion_ldv_18377_137 {
 2058   struct pipe_inode_info *i_pipe ;
 2059   struct block_device *i_bdev ;
 2060   struct cdev *i_cdev ;
 2061};
 2062#line 724 "include/linux/fs.h"
 2063struct inode {
 2064   umode_t i_mode ;
 2065   uid_t i_uid ;
 2066   gid_t i_gid ;
 2067   struct inode_operations  const  *i_op ;
 2068   struct super_block *i_sb ;
 2069   spinlock_t i_lock ;
 2070   unsigned int i_flags ;
 2071   unsigned long i_state ;
 2072   void *i_security ;
 2073   struct mutex i_mutex ;
 2074   unsigned long dirtied_when ;
 2075   struct hlist_node i_hash ;
 2076   struct list_head i_wb_list ;
 2077   struct list_head i_lru ;
 2078   struct list_head i_sb_list ;
 2079   union __anonunion_ldv_18350_136 ldv_18350 ;
 2080   unsigned long i_ino ;
 2081   atomic_t i_count ;
 2082   unsigned int i_nlink ;
 2083   dev_t i_rdev ;
 2084   unsigned int i_blkbits ;
 2085   u64 i_version ;
 2086   loff_t i_size ;
 2087   struct timespec i_atime ;
 2088   struct timespec i_mtime ;
 2089   struct timespec i_ctime ;
 2090   blkcnt_t i_blocks ;
 2091   unsigned short i_bytes ;
 2092   struct rw_semaphore i_alloc_sem ;
 2093   struct file_operations  const  *i_fop ;
 2094   struct file_lock *i_flock ;
 2095   struct address_space *i_mapping ;
 2096   struct address_space i_data ;
 2097   struct dquot *i_dquot[2U] ;
 2098   struct list_head i_devices ;
 2099   union __anonunion_ldv_18377_137 ldv_18377 ;
 2100   __u32 i_generation ;
 2101   __u32 i_fsnotify_mask ;
 2102   struct hlist_head i_fsnotify_marks ;
 2103   atomic_t i_readcount ;
 2104   atomic_t i_writecount ;
 2105   struct posix_acl *i_acl ;
 2106   struct posix_acl *i_default_acl ;
 2107   void *i_private ;
 2108};
 2109#line 902 "include/linux/fs.h"
 2110struct fown_struct {
 2111   rwlock_t lock ;
 2112   struct pid *pid ;
 2113   enum pid_type pid_type ;
 2114   uid_t uid ;
 2115   uid_t euid ;
 2116   int signum ;
 2117};
 2118#line 910 "include/linux/fs.h"
 2119struct file_ra_state {
 2120   unsigned long start ;
 2121   unsigned int size ;
 2122   unsigned int async_size ;
 2123   unsigned int ra_pages ;
 2124   unsigned int mmap_miss ;
 2125   loff_t prev_pos ;
 2126};
 2127#line 933 "include/linux/fs.h"
 2128union __anonunion_f_u_138 {
 2129   struct list_head fu_list ;
 2130   struct rcu_head fu_rcuhead ;
 2131};
 2132#line 933 "include/linux/fs.h"
 2133struct file {
 2134   union __anonunion_f_u_138 f_u ;
 2135   struct path f_path ;
 2136   struct file_operations  const  *f_op ;
 2137   spinlock_t f_lock ;
 2138   int f_sb_list_cpu ;
 2139   atomic_long_t f_count ;
 2140   unsigned int f_flags ;
 2141   fmode_t f_mode ;
 2142   loff_t f_pos ;
 2143   struct fown_struct f_owner ;
 2144   struct cred  const  *f_cred ;
 2145   struct file_ra_state f_ra ;
 2146   u64 f_version ;
 2147   void *f_security ;
 2148   void *private_data ;
 2149   struct list_head f_ep_links ;
 2150   struct address_space *f_mapping ;
 2151   unsigned long f_mnt_write_state ;
 2152};
 2153#line 1064
 2154struct files_struct;
 2155#line 1064
 2156struct files_struct;
 2157#line 1064 "include/linux/fs.h"
 2158typedef struct files_struct *fl_owner_t;
 2159#line 1065 "include/linux/fs.h"
 2160struct file_lock_operations {
 2161   void (*fl_copy_lock)(struct file_lock * , struct file_lock * ) ;
 2162   void (*fl_release_private)(struct file_lock * ) ;
 2163};
 2164#line 1070 "include/linux/fs.h"
 2165struct lock_manager_operations {
 2166   int (*fl_compare_owner)(struct file_lock * , struct file_lock * ) ;
 2167   void (*fl_notify)(struct file_lock * ) ;
 2168   int (*fl_grant)(struct file_lock * , struct file_lock * , int  ) ;
 2169   void (*fl_release_private)(struct file_lock * ) ;
 2170   void (*fl_break)(struct file_lock * ) ;
 2171   int (*fl_change)(struct file_lock ** , int  ) ;
 2172};
 2173#line 163 "include/linux/nfs.h"
 2174struct nlm_lockowner;
 2175#line 163
 2176struct nlm_lockowner;
 2177#line 164 "include/linux/nfs.h"
 2178struct nfs_lock_info {
 2179   u32 state ;
 2180   struct nlm_lockowner *owner ;
 2181   struct list_head list ;
 2182};
 2183#line 18 "include/linux/nfs_fs_i.h"
 2184struct nfs4_lock_state;
 2185#line 18
 2186struct nfs4_lock_state;
 2187#line 19 "include/linux/nfs_fs_i.h"
 2188struct nfs4_lock_info {
 2189   struct nfs4_lock_state *owner ;
 2190};
 2191#line 23
 2192struct fasync_struct;
 2193#line 23
 2194struct fasync_struct;
 2195#line 23 "include/linux/nfs_fs_i.h"
 2196struct __anonstruct_afs_140 {
 2197   struct list_head link ;
 2198   int state ;
 2199};
 2200#line 23 "include/linux/nfs_fs_i.h"
 2201union __anonunion_fl_u_139 {
 2202   struct nfs_lock_info nfs_fl ;
 2203   struct nfs4_lock_info nfs4_fl ;
 2204   struct __anonstruct_afs_140 afs ;
 2205};
 2206#line 23 "include/linux/nfs_fs_i.h"
 2207struct file_lock {
 2208   struct file_lock *fl_next ;
 2209   struct list_head fl_link ;
 2210   struct list_head fl_block ;
 2211   fl_owner_t fl_owner ;
 2212   unsigned char fl_flags ;
 2213   unsigned char fl_type ;
 2214   unsigned int fl_pid ;
 2215   struct pid *fl_nspid ;
 2216   wait_queue_head_t fl_wait ;
 2217   struct file *fl_file ;
 2218   loff_t fl_start ;
 2219   loff_t fl_end ;
 2220   struct fasync_struct *fl_fasync ;
 2221   unsigned long fl_break_time ;
 2222   struct file_lock_operations  const  *fl_ops ;
 2223   struct lock_manager_operations  const  *fl_lmops ;
 2224   union __anonunion_fl_u_139 fl_u ;
 2225};
 2226#line 1171 "include/linux/fs.h"
 2227struct fasync_struct {
 2228   spinlock_t fa_lock ;
 2229   int magic ;
 2230   int fa_fd ;
 2231   struct fasync_struct *fa_next ;
 2232   struct file *fa_file ;
 2233   struct rcu_head fa_rcu ;
 2234};
 2235#line 1363
 2236struct file_system_type;
 2237#line 1363
 2238struct file_system_type;
 2239#line 1363
 2240struct super_operations;
 2241#line 1363
 2242struct super_operations;
 2243#line 1363
 2244struct xattr_handler;
 2245#line 1363
 2246struct xattr_handler;
 2247#line 1363
 2248struct mtd_info;
 2249#line 1363
 2250struct mtd_info;
 2251#line 1363 "include/linux/fs.h"
 2252struct super_block {
 2253   struct list_head s_list ;
 2254   dev_t s_dev ;
 2255   unsigned char s_dirt ;
 2256   unsigned char s_blocksize_bits ;
 2257   unsigned long s_blocksize ;
 2258   loff_t s_maxbytes ;
 2259   struct file_system_type *s_type ;
 2260   struct super_operations  const  *s_op ;
 2261   struct dquot_operations  const  *dq_op ;
 2262   struct quotactl_ops  const  *s_qcop ;
 2263   struct export_operations  const  *s_export_op ;
 2264   unsigned long s_flags ;
 2265   unsigned long s_magic ;
 2266   struct dentry *s_root ;
 2267   struct rw_semaphore s_umount ;
 2268   struct mutex s_lock ;
 2269   int s_count ;
 2270   atomic_t s_active ;
 2271   void *s_security ;
 2272   struct xattr_handler  const  **s_xattr ;
 2273   struct list_head s_inodes ;
 2274   struct hlist_bl_head s_anon ;
 2275   struct list_head *s_files ;
 2276   struct list_head s_dentry_lru ;
 2277   int s_nr_dentry_unused ;
 2278   struct block_device *s_bdev ;
 2279   struct backing_dev_info *s_bdi ;
 2280   struct mtd_info *s_mtd ;
 2281   struct list_head s_instances ;
 2282   struct quota_info s_dquot ;
 2283   int s_frozen ;
 2284   wait_queue_head_t s_wait_unfrozen ;
 2285   char s_id[32U] ;
 2286   u8 s_uuid[16U] ;
 2287   void *s_fs_info ;
 2288   fmode_t s_mode ;
 2289   u32 s_time_gran ;
 2290   struct mutex s_vfs_rename_mutex ;
 2291   char *s_subtype ;
 2292   char *s_options ;
 2293   struct dentry_operations  const  *s_d_op ;
 2294   int cleancache_poolid ;
 2295};
 2296#line 1495 "include/linux/fs.h"
 2297struct fiemap_extent_info {
 2298   unsigned int fi_flags ;
 2299   unsigned int fi_extents_mapped ;
 2300   unsigned int fi_extents_max ;
 2301   struct fiemap_extent *fi_extents_start ;
 2302};
 2303#line 1534 "include/linux/fs.h"
 2304struct file_operations {
 2305   struct module *owner ;
 2306   loff_t (*llseek)(struct file * , loff_t  , int  ) ;
 2307   ssize_t (*read)(struct file * , char * , size_t  , loff_t * ) ;
 2308   ssize_t (*write)(struct file * , char const   * , size_t  , loff_t * ) ;
 2309   ssize_t (*aio_read)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 2310                       loff_t  ) ;
 2311   ssize_t (*aio_write)(struct kiocb * , struct iovec  const  * , unsigned long  ,
 2312                        loff_t  ) ;
 2313   int (*readdir)(struct file * , void * , int (*)(void * , char const   * , int  ,
 2314                                                   loff_t  , u64  , unsigned int  ) ) ;
 2315   unsigned int (*poll)(struct file * , struct poll_table_struct * ) ;
 2316   long (*unlocked_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 2317   long (*compat_ioctl)(struct file * , unsigned int  , unsigned long  ) ;
 2318   int (*mmap)(struct file * , struct vm_area_struct * ) ;
 2319   int (*open)(struct inode * , struct file * ) ;
 2320   int (*flush)(struct file * , fl_owner_t  ) ;
 2321   int (*release)(struct inode * , struct file * ) ;
 2322   int (*fsync)(struct file * , int  ) ;
 2323   int (*aio_fsync)(struct kiocb * , int  ) ;
 2324   int (*fasync)(int  , struct file * , int  ) ;
 2325   int (*lock)(struct file * , int  , struct file_lock * ) ;
 2326   ssize_t (*sendpage)(struct file * , struct page * , int  , size_t  , loff_t * ,
 2327                       int  ) ;
 2328   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 2329                                      unsigned long  , unsigned long  ) ;
 2330   int (*check_flags)(int  ) ;
 2331   int (*flock)(struct file * , int  , struct file_lock * ) ;
 2332   ssize_t (*splice_write)(struct pipe_inode_info * , struct file * , loff_t * , size_t  ,
 2333                           unsigned int  ) ;
 2334   ssize_t (*splice_read)(struct file * , loff_t * , struct pipe_inode_info * , size_t  ,
 2335                          unsigned int  ) ;
 2336   int (*setlease)(struct file * , long  , struct file_lock ** ) ;
 2337   long (*fallocate)(struct file * , int  , loff_t  , loff_t  ) ;
 2338};
 2339#line 1574 "include/linux/fs.h"
 2340struct inode_operations {
 2341   struct dentry *(*lookup)(struct inode * , struct dentry * , struct nameidata * ) ;
 2342   void *(*follow_link)(struct dentry * , struct nameidata * ) ;
 2343   int (*permission)(struct inode * , int  , unsigned int  ) ;
 2344   int (*check_acl)(struct inode * , int  , unsigned int  ) ;
 2345   int (*readlink)(struct dentry * , char * , int  ) ;
 2346   void (*put_link)(struct dentry * , struct nameidata * , void * ) ;
 2347   int (*create)(struct inode * , struct dentry * , int  , struct nameidata * ) ;
 2348   int (*link)(struct dentry * , struct inode * , struct dentry * ) ;
 2349   int (*unlink)(struct inode * , struct dentry * ) ;
 2350   int (*symlink)(struct inode * , struct dentry * , char const   * ) ;
 2351   int (*mkdir)(struct inode * , struct dentry * , int  ) ;
 2352   int (*rmdir)(struct inode * , struct dentry * ) ;
 2353   int (*mknod)(struct inode * , struct dentry * , int  , dev_t  ) ;
 2354   int (*rename)(struct inode * , struct dentry * , struct inode * , struct dentry * ) ;
 2355   void (*truncate)(struct inode * ) ;
 2356   int (*setattr)(struct dentry * , struct iattr * ) ;
 2357   int (*getattr)(struct vfsmount * , struct dentry * , struct kstat * ) ;
 2358   int (*setxattr)(struct dentry * , char const   * , void const   * , size_t  , int  ) ;
 2359   ssize_t (*getxattr)(struct dentry * , char const   * , void * , size_t  ) ;
 2360   ssize_t (*listxattr)(struct dentry * , char * , size_t  ) ;
 2361   int (*removexattr)(struct dentry * , char const   * ) ;
 2362   void (*truncate_range)(struct inode * , loff_t  , loff_t  ) ;
 2363   int (*fiemap)(struct inode * , struct fiemap_extent_info * , u64  , u64  ) ;
 2364};
 2365#line 1620 "include/linux/fs.h"
 2366struct super_operations {
 2367   struct inode *(*alloc_inode)(struct super_block * ) ;
 2368   void (*destroy_inode)(struct inode * ) ;
 2369   void (*dirty_inode)(struct inode * , int  ) ;
 2370   int (*write_inode)(struct inode * , struct writeback_control * ) ;
 2371   int (*drop_inode)(struct inode * ) ;
 2372   void (*evict_inode)(struct inode * ) ;
 2373   void (*put_super)(struct super_block * ) ;
 2374   void (*write_super)(struct super_block * ) ;
 2375   int (*sync_fs)(struct super_block * , int  ) ;
 2376   int (*freeze_fs)(struct super_block * ) ;
 2377   int (*unfreeze_fs)(struct super_block * ) ;
 2378   int (*statfs)(struct dentry * , struct kstatfs * ) ;
 2379   int (*remount_fs)(struct super_block * , int * , char * ) ;
 2380   void (*umount_begin)(struct super_block * ) ;
 2381   int (*show_options)(struct seq_file * , struct vfsmount * ) ;
 2382   int (*show_devname)(struct seq_file * , struct vfsmount * ) ;
 2383   int (*show_path)(struct seq_file * , struct vfsmount * ) ;
 2384   int (*show_stats)(struct seq_file * , struct vfsmount * ) ;
 2385   ssize_t (*quota_read)(struct super_block * , int  , char * , size_t  , loff_t  ) ;
 2386   ssize_t (*quota_write)(struct super_block * , int  , char const   * , size_t  ,
 2387                          loff_t  ) ;
 2388   int (*bdev_try_to_free_page)(struct super_block * , struct page * , gfp_t  ) ;
 2389};
 2390#line 1801 "include/linux/fs.h"
 2391struct file_system_type {
 2392   char const   *name ;
 2393   int fs_flags ;
 2394   struct dentry *(*mount)(struct file_system_type * , int  , char const   * , void * ) ;
 2395   void (*kill_sb)(struct super_block * ) ;
 2396   struct module *owner ;
 2397   struct file_system_type *next ;
 2398   struct list_head fs_supers ;
 2399   struct lock_class_key s_lock_key ;
 2400   struct lock_class_key s_umount_key ;
 2401   struct lock_class_key s_vfs_rename_key ;
 2402   struct lock_class_key i_lock_key ;
 2403   struct lock_class_key i_mutex_key ;
 2404   struct lock_class_key i_mutex_dir_key ;
 2405   struct lock_class_key i_alloc_sem_key ;
 2406};
 2407#line 54 "include/linux/sched.h"
 2408struct __anonstruct_ldv_20389_142 {
 2409   u16 inuse ;
 2410   u16 objects ;
 2411};
 2412#line 54 "include/linux/sched.h"
 2413union __anonunion_ldv_20390_141 {
 2414   atomic_t _mapcount ;
 2415   struct __anonstruct_ldv_20389_142 ldv_20389 ;
 2416};
 2417#line 54 "include/linux/sched.h"
 2418struct __anonstruct_ldv_20395_144 {
 2419   unsigned long private ;
 2420   struct address_space *mapping ;
 2421};
 2422#line 54 "include/linux/sched.h"
 2423union __anonunion_ldv_20398_143 {
 2424   struct __anonstruct_ldv_20395_144 ldv_20395 ;
 2425   struct kmem_cache *slab ;
 2426   struct page *first_page ;
 2427};
 2428#line 54 "include/linux/sched.h"
 2429union __anonunion_ldv_20402_145 {
 2430   unsigned long index ;
 2431   void *freelist ;
 2432};
 2433#line 54 "include/linux/sched.h"
 2434struct page {
 2435   unsigned long flags ;
 2436   atomic_t _count ;
 2437   union __anonunion_ldv_20390_141 ldv_20390 ;
 2438   union __anonunion_ldv_20398_143 ldv_20398 ;
 2439   union __anonunion_ldv_20402_145 ldv_20402 ;
 2440   struct list_head lru ;
 2441};
 2442#line 124 "include/linux/mm_types.h"
 2443struct __anonstruct_vm_set_147 {
 2444   struct list_head list ;
 2445   void *parent ;
 2446   struct vm_area_struct *head ;
 2447};
 2448#line 124 "include/linux/mm_types.h"
 2449union __anonunion_shared_146 {
 2450   struct __anonstruct_vm_set_147 vm_set ;
 2451   struct raw_prio_tree_node prio_tree_node ;
 2452};
 2453#line 124
 2454struct anon_vma;
 2455#line 124
 2456struct anon_vma;
 2457#line 124
 2458struct vm_operations_struct;
 2459#line 124
 2460struct vm_operations_struct;
 2461#line 124
 2462struct mempolicy;
 2463#line 124
 2464struct mempolicy;
 2465#line 124 "include/linux/mm_types.h"
 2466struct vm_area_struct {
 2467   struct mm_struct *vm_mm ;
 2468   unsigned long vm_start ;
 2469   unsigned long vm_end ;
 2470   struct vm_area_struct *vm_next ;
 2471   struct vm_area_struct *vm_prev ;
 2472   pgprot_t vm_page_prot ;
 2473   unsigned long vm_flags ;
 2474   struct rb_node vm_rb ;
 2475   union __anonunion_shared_146 shared ;
 2476   struct list_head anon_vma_chain ;
 2477   struct anon_vma *anon_vma ;
 2478   struct vm_operations_struct  const  *vm_ops ;
 2479   unsigned long vm_pgoff ;
 2480   struct file *vm_file ;
 2481   void *vm_private_data ;
 2482   struct mempolicy *vm_policy ;
 2483};
 2484#line 187 "include/linux/mm_types.h"
 2485struct core_thread {
 2486   struct task_struct *task ;
 2487   struct core_thread *next ;
 2488};
 2489#line 193 "include/linux/mm_types.h"
 2490struct core_state {
 2491   atomic_t nr_threads ;
 2492   struct core_thread dumper ;
 2493   struct completion startup ;
 2494};
 2495#line 206 "include/linux/mm_types.h"
 2496struct mm_rss_stat {
 2497   atomic_long_t count[3U] ;
 2498};
 2499#line 219
 2500struct linux_binfmt;
 2501#line 219
 2502struct linux_binfmt;
 2503#line 219
 2504struct mmu_notifier_mm;
 2505#line 219
 2506struct mmu_notifier_mm;
 2507#line 219 "include/linux/mm_types.h"
 2508struct mm_struct {
 2509   struct vm_area_struct *mmap ;
 2510   struct rb_root mm_rb ;
 2511   struct vm_area_struct *mmap_cache ;
 2512   unsigned long (*get_unmapped_area)(struct file * , unsigned long  , unsigned long  ,
 2513                                      unsigned long  , unsigned long  ) ;
 2514   void (*unmap_area)(struct mm_struct * , unsigned long  ) ;
 2515   unsigned long mmap_base ;
 2516   unsigned long task_size ;
 2517   unsigned long cached_hole_size ;
 2518   unsigned long free_area_cache ;
 2519   pgd_t *pgd ;
 2520   atomic_t mm_users ;
 2521   atomic_t mm_count ;
 2522   int map_count ;
 2523   spinlock_t page_table_lock ;
 2524   struct rw_semaphore mmap_sem ;
 2525   struct list_head mmlist ;
 2526   unsigned long hiwater_rss ;
 2527   unsigned long hiwater_vm ;
 2528   unsigned long total_vm ;
 2529   unsigned long locked_vm ;
 2530   unsigned long shared_vm ;
 2531   unsigned long exec_vm ;
 2532   unsigned long stack_vm ;
 2533   unsigned long reserved_vm ;
 2534   unsigned long def_flags ;
 2535   unsigned long nr_ptes ;
 2536   unsigned long start_code ;
 2537   unsigned long end_code ;
 2538   unsigned long start_data ;
 2539   unsigned long end_data ;
 2540   unsigned long start_brk ;
 2541   unsigned long brk ;
 2542   unsigned long start_stack ;
 2543   unsigned long arg_start ;
 2544   unsigned long arg_end ;
 2545   unsigned long env_start ;
 2546   unsigned long env_end ;
 2547   unsigned long saved_auxv[44U] ;
 2548   struct mm_rss_stat rss_stat ;
 2549   struct linux_binfmt *binfmt ;
 2550   cpumask_var_t cpu_vm_mask_var ;
 2551   mm_context_t context ;
 2552   unsigned int faultstamp ;
 2553   unsigned int token_priority ;
 2554   unsigned int last_interval ;
 2555   atomic_t oom_disable_count ;
 2556   unsigned long flags ;
 2557   struct core_state *core_state ;
 2558   spinlock_t ioctx_lock ;
 2559   struct hlist_head ioctx_list ;
 2560   struct task_struct *owner ;
 2561   struct file *exe_file ;
 2562   unsigned long num_exe_file_vmas ;
 2563   struct mmu_notifier_mm *mmu_notifier_mm ;
 2564   pgtable_t pmd_huge_pte ;
 2565   struct cpumask cpumask_allocation ;
 2566};
 2567#line 7 "include/asm-generic/cputime.h"
 2568typedef unsigned long cputime_t;
 2569#line 118 "include/linux/sem.h"
 2570struct sem_undo_list;
 2571#line 118
 2572struct sem_undo_list;
 2573#line 131 "include/linux/sem.h"
 2574struct sem_undo_list {
 2575   atomic_t refcnt ;
 2576   spinlock_t lock ;
 2577   struct list_head list_proc ;
 2578};
 2579#line 140 "include/linux/sem.h"
 2580struct sysv_sem {
 2581   struct sem_undo_list *undo_list ;
 2582};
 2583#line 149
 2584struct siginfo;
 2585#line 149
 2586struct siginfo;
 2587#line 32 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2588struct __anonstruct_sigset_t_148 {
 2589   unsigned long sig[1U] ;
 2590};
 2591#line 32 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2592typedef struct __anonstruct_sigset_t_148 sigset_t;
 2593#line 17 "include/asm-generic/signal-defs.h"
 2594typedef void __signalfn_t(int  );
 2595#line 18 "include/asm-generic/signal-defs.h"
 2596typedef __signalfn_t *__sighandler_t;
 2597#line 20 "include/asm-generic/signal-defs.h"
 2598typedef void __restorefn_t(void);
 2599#line 21 "include/asm-generic/signal-defs.h"
 2600typedef __restorefn_t *__sigrestore_t;
 2601#line 126 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2602struct sigaction {
 2603   __sighandler_t sa_handler ;
 2604   unsigned long sa_flags ;
 2605   __sigrestore_t sa_restorer ;
 2606   sigset_t sa_mask ;
 2607};
 2608#line 173 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2609struct k_sigaction {
 2610   struct sigaction sa ;
 2611};
 2612#line 185 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/signal.h"
 2613union sigval {
 2614   int sival_int ;
 2615   void *sival_ptr ;
 2616};
 2617#line 10 "include/asm-generic/siginfo.h"
 2618typedef union sigval sigval_t;
 2619#line 11 "include/asm-generic/siginfo.h"
 2620struct __anonstruct__kill_150 {
 2621   __kernel_pid_t _pid ;
 2622   __kernel_uid32_t _uid ;
 2623};
 2624#line 11 "include/asm-generic/siginfo.h"
 2625struct __anonstruct__timer_151 {
 2626   __kernel_timer_t _tid ;
 2627   int _overrun ;
 2628   char _pad[0U] ;
 2629   sigval_t _sigval ;
 2630   int _sys_private ;
 2631};
 2632#line 11 "include/asm-generic/siginfo.h"
 2633struct __anonstruct__rt_152 {
 2634   __kernel_pid_t _pid ;
 2635   __kernel_uid32_t _uid ;
 2636   sigval_t _sigval ;
 2637};
 2638#line 11 "include/asm-generic/siginfo.h"
 2639struct __anonstruct__sigchld_153 {
 2640   __kernel_pid_t _pid ;
 2641   __kernel_uid32_t _uid ;
 2642   int _status ;
 2643   __kernel_clock_t _utime ;
 2644   __kernel_clock_t _stime ;
 2645};
 2646#line 11 "include/asm-generic/siginfo.h"
 2647struct __anonstruct__sigfault_154 {
 2648   void *_addr ;
 2649   short _addr_lsb ;
 2650};
 2651#line 11 "include/asm-generic/siginfo.h"
 2652struct __anonstruct__sigpoll_155 {
 2653   long _band ;
 2654   int _fd ;
 2655};
 2656#line 11 "include/asm-generic/siginfo.h"
 2657union __anonunion__sifields_149 {
 2658   int _pad[28U] ;
 2659   struct __anonstruct__kill_150 _kill ;
 2660   struct __anonstruct__timer_151 _timer ;
 2661   struct __anonstruct__rt_152 _rt ;
 2662   struct __anonstruct__sigchld_153 _sigchld ;
 2663   struct __anonstruct__sigfault_154 _sigfault ;
 2664   struct __anonstruct__sigpoll_155 _sigpoll ;
 2665};
 2666#line 11 "include/asm-generic/siginfo.h"
 2667struct siginfo {
 2668   int si_signo ;
 2669   int si_errno ;
 2670   int si_code ;
 2671   union __anonunion__sifields_149 _sifields ;
 2672};
 2673#line 94 "include/asm-generic/siginfo.h"
 2674typedef struct siginfo siginfo_t;
 2675#line 14 "include/linux/signal.h"
 2676struct user_struct;
 2677#line 14
 2678struct user_struct;
 2679#line 24 "include/linux/signal.h"
 2680struct sigpending {
 2681   struct list_head list ;
 2682   sigset_t signal ;
 2683};
 2684#line 90 "include/linux/proportions.h"
 2685struct prop_local_single {
 2686   unsigned long events ;
 2687   unsigned long period ;
 2688   int shift ;
 2689   spinlock_t lock ;
 2690};
 2691#line 10 "include/linux/seccomp.h"
 2692struct __anonstruct_seccomp_t_158 {
 2693   int mode ;
 2694};
 2695#line 10 "include/linux/seccomp.h"
 2696typedef struct __anonstruct_seccomp_t_158 seccomp_t;
 2697#line 21 "include/linux/seccomp.h"
 2698struct plist_head {
 2699   struct list_head node_list ;
 2700   raw_spinlock_t *rawlock ;
 2701   spinlock_t *spinlock ;
 2702};
 2703#line 88 "include/linux/plist.h"
 2704struct plist_node {
 2705   int prio ;
 2706   struct list_head prio_list ;
 2707   struct list_head node_list ;
 2708};
 2709#line 38 "include/linux/rtmutex.h"
 2710struct rt_mutex_waiter;
 2711#line 38
 2712struct rt_mutex_waiter;
 2713#line 41 "include/linux/resource.h"
 2714struct rlimit {
 2715   unsigned long rlim_cur ;
 2716   unsigned long rlim_max ;
 2717};
 2718#line 85 "include/linux/resource.h"
 2719struct task_io_accounting {
 2720   u64 rchar ;
 2721   u64 wchar ;
 2722   u64 syscr ;
 2723   u64 syscw ;
 2724   u64 read_bytes ;
 2725   u64 write_bytes ;
 2726   u64 cancelled_write_bytes ;
 2727};
 2728#line 45 "include/linux/task_io_accounting.h"
 2729struct latency_record {
 2730   unsigned long backtrace[12U] ;
 2731   unsigned int count ;
 2732   unsigned long time ;
 2733   unsigned long max ;
 2734};
 2735#line 29 "include/linux/key.h"
 2736typedef int32_t key_serial_t;
 2737#line 32 "include/linux/key.h"
 2738typedef uint32_t key_perm_t;
 2739#line 33
 2740struct key;
 2741#line 33
 2742struct key;
 2743#line 34
 2744struct signal_struct;
 2745#line 34
 2746struct signal_struct;
 2747#line 35
 2748struct key_type;
 2749#line 35
 2750struct key_type;
 2751#line 37
 2752struct keyring_list;
 2753#line 37
 2754struct keyring_list;
 2755#line 115
 2756struct key_user;
 2757#line 115
 2758struct key_user;
 2759#line 115 "include/linux/key.h"
 2760union __anonunion_ldv_21220_159 {
 2761   time_t expiry ;
 2762   time_t revoked_at ;
 2763};
 2764#line 115 "include/linux/key.h"
 2765union __anonunion_type_data_160 {
 2766   struct list_head link ;
 2767   unsigned long x[2U] ;
 2768   void *p[2U] ;
 2769   int reject_error ;
 2770};
 2771#line 115 "include/linux/key.h"
 2772union __anonunion_payload_161 {
 2773   unsigned long value ;
 2774   void *rcudata ;
 2775   void *data ;
 2776   struct keyring_list *subscriptions ;
 2777};
 2778#line 115 "include/linux/key.h"
 2779struct key {
 2780   atomic_t usage ;
 2781   key_serial_t serial ;
 2782   struct rb_node serial_node ;
 2783   struct key_type *type ;
 2784   struct rw_semaphore sem ;
 2785   struct key_user *user ;
 2786   void *security ;
 2787   union __anonunion_ldv_21220_159 ldv_21220 ;
 2788   uid_t uid ;
 2789   gid_t gid ;
 2790   key_perm_t perm ;
 2791   unsigned short quotalen ;
 2792   unsigned short datalen ;
 2793   unsigned long flags ;
 2794   char *description ;
 2795   union __anonunion_type_data_160 type_data ;
 2796   union __anonunion_payload_161 payload ;
 2797};
 2798#line 310
 2799struct audit_context;
 2800#line 310
 2801struct audit_context;
 2802#line 27 "include/linux/selinux.h"
 2803struct group_info {
 2804   atomic_t usage ;
 2805   int ngroups ;
 2806   int nblocks ;
 2807   gid_t small_block[32U] ;
 2808   gid_t *blocks[0U] ;
 2809};
 2810#line 77 "include/linux/cred.h"
 2811struct thread_group_cred {
 2812   atomic_t usage ;
 2813   pid_t tgid ;
 2814   spinlock_t lock ;
 2815   struct key *session_keyring ;
 2816   struct key *process_keyring ;
 2817   struct rcu_head rcu ;
 2818};
 2819#line 91 "include/linux/cred.h"
 2820struct cred {
 2821   atomic_t usage ;
 2822   atomic_t subscribers ;
 2823   void *put_addr ;
 2824   unsigned int magic ;
 2825   uid_t uid ;
 2826   gid_t gid ;
 2827   uid_t suid ;
 2828   gid_t sgid ;
 2829   uid_t euid ;
 2830   gid_t egid ;
 2831   uid_t fsuid ;
 2832   gid_t fsgid ;
 2833   unsigned int securebits ;
 2834   kernel_cap_t cap_inheritable ;
 2835   kernel_cap_t cap_permitted ;
 2836   kernel_cap_t cap_effective ;
 2837   kernel_cap_t cap_bset ;
 2838   unsigned char jit_keyring ;
 2839   struct key *thread_keyring ;
 2840   struct key *request_key_auth ;
 2841   struct thread_group_cred *tgcred ;
 2842   void *security ;
 2843   struct user_struct *user ;
 2844   struct user_namespace *user_ns ;
 2845   struct group_info *group_info ;
 2846   struct rcu_head rcu ;
 2847};
 2848#line 264
 2849struct futex_pi_state;
 2850#line 264
 2851struct futex_pi_state;
 2852#line 265
 2853struct robust_list_head;
 2854#line 265
 2855struct robust_list_head;
 2856#line 266
 2857struct bio_list;
 2858#line 266
 2859struct bio_list;
 2860#line 267
 2861struct fs_struct;
 2862#line 267
 2863struct fs_struct;
 2864#line 268
 2865struct perf_event_context;
 2866#line 268
 2867struct perf_event_context;
 2868#line 269
 2869struct blk_plug;
 2870#line 269
 2871struct blk_plug;
 2872#line 149 "include/linux/sched.h"
 2873struct cfs_rq;
 2874#line 149
 2875struct cfs_rq;
 2876#line 44 "include/linux/aio_abi.h"
 2877struct io_event {
 2878   __u64 data ;
 2879   __u64 obj ;
 2880   __s64 res ;
 2881   __s64 res2 ;
 2882};
 2883#line 106 "include/linux/aio_abi.h"
 2884struct iovec {
 2885   void *iov_base ;
 2886   __kernel_size_t iov_len ;
 2887};
 2888#line 54 "include/linux/uio.h"
 2889struct kioctx;
 2890#line 54
 2891struct kioctx;
 2892#line 55 "include/linux/uio.h"
 2893union __anonunion_ki_obj_162 {
 2894   void *user ;
 2895   struct task_struct *tsk ;
 2896};
 2897#line 55
 2898struct eventfd_ctx;
 2899#line 55
 2900struct eventfd_ctx;
 2901#line 55 "include/linux/uio.h"
 2902struct kiocb {
 2903   struct list_head ki_run_list ;
 2904   unsigned long ki_flags ;
 2905   int ki_users ;
 2906   unsigned int ki_key ;
 2907   struct file *ki_filp ;
 2908   struct kioctx *ki_ctx ;
 2909   int (*ki_cancel)(struct kiocb * , struct io_event * ) ;
 2910   ssize_t (*ki_retry)(struct kiocb * ) ;
 2911   void (*ki_dtor)(struct kiocb * ) ;
 2912   union __anonunion_ki_obj_162 ki_obj ;
 2913   __u64 ki_user_data ;
 2914   loff_t ki_pos ;
 2915   void *private ;
 2916   unsigned short ki_opcode ;
 2917   size_t ki_nbytes ;
 2918   char *ki_buf ;
 2919   size_t ki_left ;
 2920   struct iovec ki_inline_vec ;
 2921   struct iovec *ki_iovec ;
 2922   unsigned long ki_nr_segs ;
 2923   unsigned long ki_cur_seg ;
 2924   struct list_head ki_list ;
 2925   struct eventfd_ctx *ki_eventfd ;
 2926};
 2927#line 161 "include/linux/aio.h"
 2928struct aio_ring_info {
 2929   unsigned long mmap_base ;
 2930   unsigned long mmap_size ;
 2931   struct page **ring_pages ;
 2932   spinlock_t ring_lock ;
 2933   long nr_pages ;
 2934   unsigned int nr ;
 2935   unsigned int tail ;
 2936   struct page *internal_pages[8U] ;
 2937};
 2938#line 177 "include/linux/aio.h"
 2939struct kioctx {
 2940   atomic_t users ;
 2941   int dead ;
 2942   struct mm_struct *mm ;
 2943   unsigned long user_id ;
 2944   struct hlist_node list ;
 2945   wait_queue_head_t wait ;
 2946   spinlock_t ctx_lock ;
 2947   int reqs_active ;
 2948   struct list_head active_reqs ;
 2949   struct list_head run_list ;
 2950   unsigned int max_reqs ;
 2951   struct aio_ring_info ring_info ;
 2952   struct delayed_work wq ;
 2953   struct rcu_head rcu_head ;
 2954};
 2955#line 404 "include/linux/sched.h"
 2956struct sighand_struct {
 2957   atomic_t count ;
 2958   struct k_sigaction action[64U] ;
 2959   spinlock_t siglock ;
 2960   wait_queue_head_t signalfd_wqh ;
 2961};
 2962#line 447 "include/linux/sched.h"
 2963struct pacct_struct {
 2964   int ac_flag ;
 2965   long ac_exitcode ;
 2966   unsigned long ac_mem ;
 2967   cputime_t ac_utime ;
 2968   cputime_t ac_stime ;
 2969   unsigned long ac_minflt ;
 2970   unsigned long ac_majflt ;
 2971};
 2972#line 455 "include/linux/sched.h"
 2973struct cpu_itimer {
 2974   cputime_t expires ;
 2975   cputime_t incr ;
 2976   u32 error ;
 2977   u32 incr_error ;
 2978};
 2979#line 462 "include/linux/sched.h"
 2980struct task_cputime {
 2981   cputime_t utime ;
 2982   cputime_t stime ;
 2983   unsigned long long sum_exec_runtime ;
 2984};
 2985#line 479 "include/linux/sched.h"
 2986struct thread_group_cputimer {
 2987   struct task_cputime cputime ;
 2988   int running ;
 2989   spinlock_t lock ;
 2990};
 2991#line 515
 2992struct autogroup;
 2993#line 515
 2994struct autogroup;
 2995#line 516
 2996struct tty_struct;
 2997#line 516
 2998struct tty_struct;
 2999#line 516
 3000struct taskstats;
 3001#line 516
 3002struct taskstats;
 3003#line 516
 3004struct tty_audit_buf;
 3005#line 516
 3006struct tty_audit_buf;
 3007#line 516 "include/linux/sched.h"
 3008struct signal_struct {
 3009   atomic_t sigcnt ;
 3010   atomic_t live ;
 3011   int nr_threads ;
 3012   wait_queue_head_t wait_chldexit ;
 3013   struct task_struct *curr_target ;
 3014   struct sigpending shared_pending ;
 3015   int group_exit_code ;
 3016   int notify_count ;
 3017   struct task_struct *group_exit_task ;
 3018   int group_stop_count ;
 3019   unsigned int flags ;
 3020   struct list_head posix_timers ;
 3021   struct hrtimer real_timer ;
 3022   struct pid *leader_pid ;
 3023   ktime_t it_real_incr ;
 3024   struct cpu_itimer it[2U] ;
 3025   struct thread_group_cputimer cputimer ;
 3026   struct task_cputime cputime_expires ;
 3027   struct list_head cpu_timers[3U] ;
 3028   struct pid *tty_old_pgrp ;
 3029   int leader ;
 3030   struct tty_struct *tty ;
 3031   struct autogroup *autogroup ;
 3032   cputime_t utime ;
 3033   cputime_t stime ;
 3034   cputime_t cutime ;
 3035   cputime_t cstime ;
 3036   cputime_t gtime ;
 3037   cputime_t cgtime ;
 3038   cputime_t prev_utime ;
 3039   cputime_t prev_stime ;
 3040   unsigned long nvcsw ;
 3041   unsigned long nivcsw ;
 3042   unsigned long cnvcsw ;
 3043   unsigned long cnivcsw ;
 3044   unsigned long min_flt ;
 3045   unsigned long maj_flt ;
 3046   unsigned long cmin_flt ;
 3047   unsigned long cmaj_flt ;
 3048   unsigned long inblock ;
 3049   unsigned long oublock ;
 3050   unsigned long cinblock ;
 3051   unsigned long coublock ;
 3052   unsigned long maxrss ;
 3053   unsigned long cmaxrss ;
 3054   struct task_io_accounting ioac ;
 3055   unsigned long long sum_sched_runtime ;
 3056   struct rlimit rlim[16U] ;
 3057   struct pacct_struct pacct ;
 3058   struct taskstats *stats ;
 3059   unsigned int audit_tty ;
 3060   struct tty_audit_buf *tty_audit_buf ;
 3061   struct rw_semaphore threadgroup_fork_lock ;
 3062   int oom_adj ;
 3063   int oom_score_adj ;
 3064   int oom_score_adj_min ;
 3065   struct mutex cred_guard_mutex ;
 3066};
 3067#line 683 "include/linux/sched.h"
 3068struct user_struct {
 3069   atomic_t __count ;
 3070   atomic_t processes ;
 3071   atomic_t files ;
 3072   atomic_t sigpending ;
 3073   atomic_t inotify_watches ;
 3074   atomic_t inotify_devs ;
 3075   atomic_t fanotify_listeners ;
 3076   atomic_long_t epoll_watches ;
 3077   unsigned long mq_bytes ;
 3078   unsigned long locked_shm ;
 3079   struct key *uid_keyring ;
 3080   struct key *session_keyring ;
 3081   struct hlist_node uidhash_node ;
 3082   uid_t uid ;
 3083   struct user_namespace *user_ns ;
 3084   atomic_long_t locked_vm ;
 3085};
 3086#line 728
 3087struct reclaim_state;
 3088#line 728
 3089struct reclaim_state;
 3090#line 729 "include/linux/sched.h"
 3091struct sched_info {
 3092   unsigned long pcount ;
 3093   unsigned long long run_delay ;
 3094   unsigned long long last_arrival ;
 3095   unsigned long long last_queued ;
 3096};
 3097#line 744 "include/linux/sched.h"
 3098struct task_delay_info {
 3099   spinlock_t lock ;
 3100   unsigned int flags ;
 3101   struct timespec blkio_start ;
 3102   struct timespec blkio_end ;
 3103   u64 blkio_delay ;
 3104   u64 swapin_delay ;
 3105   u32 blkio_count ;
 3106   u32 swapin_count ;
 3107   struct timespec freepages_start ;
 3108   struct timespec freepages_end ;
 3109   u64 freepages_delay ;
 3110   u32 freepages_count ;
 3111};
 3112#line 1037
 3113struct io_context;
 3114#line 1037
 3115struct io_context;
 3116#line 1060
 3117struct rq;
 3118#line 1060
 3119struct rq;
 3120#line 1061 "include/linux/sched.h"
 3121struct sched_class {
 3122   struct sched_class  const  *next ;
 3123   void (*enqueue_task)(struct rq * , struct task_struct * , int  ) ;
 3124   void (*dequeue_task)(struct rq * , struct task_struct * , int  ) ;
 3125   void (*yield_task)(struct rq * ) ;
 3126   bool (*yield_to_task)(struct rq * , struct task_struct * , bool  ) ;
 3127   void (*check_preempt_curr)(struct rq * , struct task_struct * , int  ) ;
 3128   struct task_struct *(*pick_next_task)(struct rq * ) ;
 3129   void (*put_prev_task)(struct rq * , struct task_struct * ) ;
 3130   int (*select_task_rq)(struct task_struct * , int  , int  ) ;
 3131   void (*pre_schedule)(struct rq * , struct task_struct * ) ;
 3132   void (*post_schedule)(struct rq * ) ;
 3133   void (*task_waking)(struct task_struct * ) ;
 3134   void (*task_woken)(struct rq * , struct task_struct * ) ;
 3135   void (*set_cpus_allowed)(struct task_struct * , struct cpumask  const  * ) ;
 3136   void (*rq_online)(struct rq * ) ;
 3137   void (*rq_offline)(struct rq * ) ;
 3138   void (*set_curr_task)(struct rq * ) ;
 3139   void (*task_tick)(struct rq * , struct task_struct * , int  ) ;
 3140   void (*task_fork)(struct task_struct * ) ;
 3141   void (*switched_from)(struct rq * , struct task_struct * ) ;
 3142   void (*switched_to)(struct rq * , struct task_struct * ) ;
 3143   void (*prio_changed)(struct rq * , struct task_struct * , int  ) ;
 3144   unsigned int (*get_rr_interval)(struct rq * , struct task_struct * ) ;
 3145   void (*task_move_group)(struct task_struct * , int  ) ;
 3146};
 3147#line 1127 "include/linux/sched.h"
 3148struct load_weight {
 3149   unsigned long weight ;
 3150   unsigned long inv_weight ;
 3151};
 3152#line 1132 "include/linux/sched.h"
 3153struct sched_statistics {
 3154   u64 wait_start ;
 3155   u64 wait_max ;
 3156   u64 wait_count ;
 3157   u64 wait_sum ;
 3158   u64 iowait_count ;
 3159   u64 iowait_sum ;
 3160   u64 sleep_start ;
 3161   u64 sleep_max ;
 3162   s64 sum_sleep_runtime ;
 3163   u64 block_start ;
 3164   u64 block_max ;
 3165   u64 exec_max ;
 3166   u64 slice_max ;
 3167   u64 nr_migrations_cold ;
 3168   u64 nr_failed_migrations_affine ;
 3169   u64 nr_failed_migrations_running ;
 3170   u64 nr_failed_migrations_hot ;
 3171   u64 nr_forced_migrations ;
 3172   u64 nr_wakeups ;
 3173   u64 nr_wakeups_sync ;
 3174   u64 nr_wakeups_migrate ;
 3175   u64 nr_wakeups_local ;
 3176   u64 nr_wakeups_remote ;
 3177   u64 nr_wakeups_affine ;
 3178   u64 nr_wakeups_affine_attempts ;
 3179   u64 nr_wakeups_passive ;
 3180   u64 nr_wakeups_idle ;
 3181};
 3182#line 1167 "include/linux/sched.h"
 3183struct sched_entity {
 3184   struct load_weight load ;
 3185   struct rb_node run_node ;
 3186   struct list_head group_node ;
 3187   unsigned int on_rq ;
 3188   u64 exec_start ;
 3189   u64 sum_exec_runtime ;
 3190   u64 vruntime ;
 3191   u64 prev_sum_exec_runtime ;
 3192   u64 nr_migrations ;
 3193   struct sched_statistics statistics ;
 3194   struct sched_entity *parent ;
 3195   struct cfs_rq *cfs_rq ;
 3196   struct cfs_rq *my_q ;
 3197};
 3198#line 1193
 3199struct rt_rq;
 3200#line 1193
 3201struct rt_rq;
 3202#line 1193 "include/linux/sched.h"
 3203struct sched_rt_entity {
 3204   struct list_head run_list ;
 3205   unsigned long timeout ;
 3206   unsigned int time_slice ;
 3207   int nr_cpus_allowed ;
 3208   struct sched_rt_entity *back ;
 3209   struct sched_rt_entity *parent ;
 3210   struct rt_rq *rt_rq ;
 3211   struct rt_rq *my_q ;
 3212};
 3213#line 1217
 3214struct mem_cgroup;
 3215#line 1217
 3216struct mem_cgroup;
 3217#line 1217 "include/linux/sched.h"
 3218struct memcg_batch_info {
 3219   int do_batch ;
 3220   struct mem_cgroup *memcg ;
 3221   unsigned long nr_pages ;
 3222   unsigned long memsw_nr_pages ;
 3223};
 3224#line 1569
 3225struct css_set;
 3226#line 1569
 3227struct css_set;
 3228#line 1569
 3229struct compat_robust_list_head;
 3230#line 1569
 3231struct compat_robust_list_head;
 3232#line 1569
 3233struct ftrace_ret_stack;
 3234#line 1569
 3235struct ftrace_ret_stack;
 3236#line 1569 "include/linux/sched.h"
 3237struct task_struct {
 3238   long volatile   state ;
 3239   void *stack ;
 3240   atomic_t usage ;
 3241   unsigned int flags ;
 3242   unsigned int ptrace ;
 3243   struct task_struct *wake_entry ;
 3244   int on_cpu ;
 3245   int on_rq ;
 3246   int prio ;
 3247   int static_prio ;
 3248   int normal_prio ;
 3249   unsigned int rt_priority ;
 3250   struct sched_class  const  *sched_class ;
 3251   struct sched_entity se ;
 3252   struct sched_rt_entity rt ;
 3253   struct hlist_head preempt_notifiers ;
 3254   unsigned char fpu_counter ;
 3255   unsigned int btrace_seq ;
 3256   unsigned int policy ;
 3257   cpumask_t cpus_allowed ;
 3258   struct sched_info sched_info ;
 3259   struct list_head tasks ;
 3260   struct plist_node pushable_tasks ;
 3261   struct mm_struct *mm ;
 3262   struct mm_struct *active_mm ;
 3263   unsigned char brk_randomized : 1 ;
 3264   int exit_state ;
 3265   int exit_code ;
 3266   int exit_signal ;
 3267   int pdeath_signal ;
 3268   unsigned int group_stop ;
 3269   unsigned int personality ;
 3270   unsigned char did_exec : 1 ;
 3271   unsigned char in_execve : 1 ;
 3272   unsigned char in_iowait : 1 ;
 3273   unsigned char sched_reset_on_fork : 1 ;
 3274   unsigned char sched_contributes_to_load : 1 ;
 3275   pid_t pid ;
 3276   pid_t tgid ;
 3277   unsigned long stack_canary ;
 3278   struct task_struct *real_parent ;
 3279   struct task_struct *parent ;
 3280   struct list_head children ;
 3281   struct list_head sibling ;
 3282   struct task_struct *group_leader ;
 3283   struct list_head ptraced ;
 3284   struct list_head ptrace_entry ;
 3285   struct pid_link pids[3U] ;
 3286   struct list_head thread_group ;
 3287   struct completion *vfork_done ;
 3288   int *set_child_tid ;
 3289   int *clear_child_tid ;
 3290   cputime_t utime ;
 3291   cputime_t stime ;
 3292   cputime_t utimescaled ;
 3293   cputime_t stimescaled ;
 3294   cputime_t gtime ;
 3295   cputime_t prev_utime ;
 3296   cputime_t prev_stime ;
 3297   unsigned long nvcsw ;
 3298   unsigned long nivcsw ;
 3299   struct timespec start_time ;
 3300   struct timespec real_start_time ;
 3301   unsigned long min_flt ;
 3302   unsigned long maj_flt ;
 3303   struct task_cputime cputime_expires ;
 3304   struct list_head cpu_timers[3U] ;
 3305   struct cred  const  *real_cred ;
 3306   struct cred  const  *cred ;
 3307   struct cred *replacement_session_keyring ;
 3308   char comm[16U] ;
 3309   int link_count ;
 3310   int total_link_count ;
 3311   struct sysv_sem sysvsem ;
 3312   unsigned long last_switch_count ;
 3313   struct thread_struct thread ;
 3314   struct fs_struct *fs ;
 3315   struct files_struct *files ;
 3316   struct nsproxy *nsproxy ;
 3317   struct signal_struct *signal ;
 3318   struct sighand_struct *sighand ;
 3319   sigset_t blocked ;
 3320   sigset_t real_blocked ;
 3321   sigset_t saved_sigmask ;
 3322   struct sigpending pending ;
 3323   unsigned long sas_ss_sp ;
 3324   size_t sas_ss_size ;
 3325   int (*notifier)(void * ) ;
 3326   void *notifier_data ;
 3327   sigset_t *notifier_mask ;
 3328   struct audit_context *audit_context ;
 3329   uid_t loginuid ;
 3330   unsigned int sessionid ;
 3331   seccomp_t seccomp ;
 3332   u32 parent_exec_id ;
 3333   u32 self_exec_id ;
 3334   spinlock_t alloc_lock ;
 3335   struct irqaction *irqaction ;
 3336   raw_spinlock_t pi_lock ;
 3337   struct plist_head pi_waiters ;
 3338   struct rt_mutex_waiter *pi_blocked_on ;
 3339   struct mutex_waiter *blocked_on ;
 3340   unsigned int irq_events ;
 3341   unsigned long hardirq_enable_ip ;
 3342   unsigned long hardirq_disable_ip ;
 3343   unsigned int hardirq_enable_event ;
 3344   unsigned int hardirq_disable_event ;
 3345   int hardirqs_enabled ;
 3346   int hardirq_context ;
 3347   unsigned long softirq_disable_ip ;
 3348   unsigned long softirq_enable_ip ;
 3349   unsigned int softirq_disable_event ;
 3350   unsigned int softirq_enable_event ;
 3351   int softirqs_enabled ;
 3352   int softirq_context ;
 3353   u64 curr_chain_key ;
 3354   int lockdep_depth ;
 3355   unsigned int lockdep_recursion ;
 3356   struct held_lock held_locks[48U] ;
 3357   gfp_t lockdep_reclaim_gfp ;
 3358   void *journal_info ;
 3359   struct bio_list *bio_list ;
 3360   struct blk_plug *plug ;
 3361   struct reclaim_state *reclaim_state ;
 3362   struct backing_dev_info *backing_dev_info ;
 3363   struct io_context *io_context ;
 3364   unsigned long ptrace_message ;
 3365   siginfo_t *last_siginfo ;
 3366   struct task_io_accounting ioac ;
 3367   u64 acct_rss_mem1 ;
 3368   u64 acct_vm_mem1 ;
 3369   cputime_t acct_timexpd ;
 3370   nodemask_t mems_allowed ;
 3371   int mems_allowed_change_disable ;
 3372   int cpuset_mem_spread_rotor ;
 3373   int cpuset_slab_spread_rotor ;
 3374   struct css_set *cgroups ;
 3375   struct list_head cg_list ;
 3376   struct robust_list_head *robust_list ;
 3377   struct compat_robust_list_head *compat_robust_list ;
 3378   struct list_head pi_state_list ;
 3379   struct futex_pi_state *pi_state_cache ;
 3380   struct perf_event_context *perf_event_ctxp[2U] ;
 3381   struct mutex perf_event_mutex ;
 3382   struct list_head perf_event_list ;
 3383   struct mempolicy *mempolicy ;
 3384   short il_next ;
 3385   short pref_node_fork ;
 3386   atomic_t fs_excl ;
 3387   struct rcu_head rcu ;
 3388   struct pipe_inode_info *splice_pipe ;
 3389   struct task_delay_info *delays ;
 3390   int make_it_fail ;
 3391   struct prop_local_single dirties ;
 3392   int latency_record_count ;
 3393   struct latency_record latency_record[32U] ;
 3394   unsigned long timer_slack_ns ;
 3395   unsigned long default_timer_slack_ns ;
 3396   struct list_head *scm_work_list ;
 3397   int curr_ret_stack ;
 3398   struct ftrace_ret_stack *ret_stack ;
 3399   unsigned long long ftrace_timestamp ;
 3400   atomic_t trace_overrun ;
 3401   atomic_t tracing_graph_pause ;
 3402   unsigned long trace ;
 3403   unsigned long trace_recursion ;
 3404   struct memcg_batch_info memcg_batch ;
 3405   atomic_t ptrace_bp_refcnt ;
 3406};
 3407#line 287 "include/linux/pm_runtime.h"
 3408struct usb_device;
 3409#line 287
 3410struct usb_device;
 3411#line 288
 3412struct usb_driver;
 3413#line 288
 3414struct usb_driver;
 3415#line 289
 3416struct wusb_dev;
 3417#line 289
 3418struct wusb_dev;
 3419#line 290
 3420struct ep_device;
 3421#line 290
 3422struct ep_device;
 3423#line 291 "include/linux/pm_runtime.h"
 3424struct usb_host_endpoint {
 3425   struct usb_endpoint_descriptor desc ;
 3426   struct usb_ss_ep_comp_descriptor ss_ep_comp ;
 3427   struct list_head urb_list ;
 3428   void *hcpriv ;
 3429   struct ep_device *ep_dev ;
 3430   unsigned char *extra ;
 3431   int extralen ;
 3432   int enabled ;
 3433};
 3434#line 75 "include/linux/usb.h"
 3435struct usb_host_interface {
 3436   struct usb_interface_descriptor desc ;
 3437   struct usb_host_endpoint *endpoint ;
 3438   char *string ;
 3439   unsigned char *extra ;
 3440   int extralen ;
 3441};
 3442#line 89
 3443enum usb_interface_condition {
 3444    USB_INTERFACE_UNBOUND = 0,
 3445    USB_INTERFACE_BINDING = 1,
 3446    USB_INTERFACE_BOUND = 2,
 3447    USB_INTERFACE_UNBINDING = 3
 3448} ;
 3449#line 96 "include/linux/usb.h"
 3450struct usb_interface {
 3451   struct usb_host_interface *altsetting ;
 3452   struct usb_host_interface *cur_altsetting ;
 3453   unsigned int num_altsetting ;
 3454   struct usb_interface_assoc_descriptor *intf_assoc ;
 3455   int minor ;
 3456   enum usb_interface_condition condition ;
 3457   unsigned char sysfs_files_created : 1 ;
 3458   unsigned char ep_devs_created : 1 ;
 3459   unsigned char unregistering : 1 ;
 3460   unsigned char needs_remote_wakeup : 1 ;
 3461   unsigned char needs_altsetting0 : 1 ;
 3462   unsigned char needs_binding : 1 ;
 3463   unsigned char reset_running : 1 ;
 3464   unsigned char resetting_device : 1 ;
 3465   struct device dev ;
 3466   struct device *usb_dev ;
 3467   atomic_t pm_usage_cnt ;
 3468   struct work_struct reset_ws ;
 3469};
 3470#line 203 "include/linux/usb.h"
 3471struct usb_interface_cache {
 3472   unsigned int num_altsetting ;
 3473   struct kref ref ;
 3474   struct usb_host_interface altsetting[0U] ;
 3475};
 3476#line 230 "include/linux/usb.h"
 3477struct usb_host_config {
 3478   struct usb_config_descriptor desc ;
 3479   char *string ;
 3480   struct usb_interface_assoc_descriptor *intf_assoc[16U] ;
 3481   struct usb_interface *interface[32U] ;
 3482   struct usb_interface_cache *intf_cache[32U] ;
 3483   unsigned char *extra ;
 3484   int extralen ;
 3485};
 3486#line 296 "include/linux/usb.h"
 3487struct usb_devmap {
 3488   unsigned long devicemap[2U] ;
 3489};
 3490#line 308
 3491struct mon_bus;
 3492#line 308
 3493struct mon_bus;
 3494#line 308 "include/linux/usb.h"
 3495struct usb_bus {
 3496   struct device *controller ;
 3497   int busnum ;
 3498   char const   *bus_name ;
 3499   u8 uses_dma ;
 3500   u8 uses_pio_for_control ;
 3501   u8 otg_port ;
 3502   unsigned char is_b_host : 1 ;
 3503   unsigned char b_hnp_enable : 1 ;
 3504   unsigned int sg_tablesize ;
 3505   int devnum_next ;
 3506   struct usb_devmap devmap ;
 3507   struct usb_device *root_hub ;
 3508   struct usb_bus *hs_companion ;
 3509   struct list_head bus_list ;
 3510   int bandwidth_allocated ;
 3511   int bandwidth_int_reqs ;
 3512   int bandwidth_isoc_reqs ;
 3513   struct dentry *usbfs_dentry ;
 3514   struct mon_bus *mon_bus ;
 3515   int monitored ;
 3516};
 3517#line 352
 3518struct usb_tt;
 3519#line 352
 3520struct usb_tt;
 3521#line 353 "include/linux/usb.h"
 3522struct usb_device {
 3523   int devnum ;
 3524   char devpath[16U] ;
 3525   u32 route ;
 3526   enum usb_device_state state ;
 3527   enum usb_device_speed speed ;
 3528   struct usb_tt *tt ;
 3529   int ttport ;
 3530   unsigned int toggle[2U] ;
 3531   struct usb_device *parent ;
 3532   struct usb_bus *bus ;
 3533   struct usb_host_endpoint ep0 ;
 3534   struct device dev ;
 3535   struct usb_device_descriptor descriptor ;
 3536   struct usb_host_config *config ;
 3537   struct usb_host_config *actconfig ;
 3538   struct usb_host_endpoint *ep_in[16U] ;
 3539   struct usb_host_endpoint *ep_out[16U] ;
 3540   char **rawdescriptors ;
 3541   unsigned short bus_mA ;
 3542   u8 portnum ;
 3543   u8 level ;
 3544   unsigned char can_submit : 1 ;
 3545   unsigned char persist_enabled : 1 ;
 3546   unsigned char have_langid : 1 ;
 3547   unsigned char authorized : 1 ;
 3548   unsigned char authenticated : 1 ;
 3549   unsigned char wusb : 1 ;
 3550   int string_langid ;
 3551   char *product ;
 3552   char *manufacturer ;
 3553   char *serial ;
 3554   struct list_head filelist ;
 3555   struct device *usb_classdev ;
 3556   struct dentry *usbfs_dentry ;
 3557   int maxchild ;
 3558   struct usb_device *children[31U] ;
 3559   u32 quirks ;
 3560   atomic_t urbnum ;
 3561   unsigned long active_duration ;
 3562   unsigned long connect_time ;
 3563   unsigned char do_remote_wakeup : 1 ;
 3564   unsigned char reset_resume : 1 ;
 3565   struct wusb_dev *wusb_dev ;
 3566   int slot_id ;
 3567};
 3568#line 644 "include/linux/usb.h"
 3569struct usb_dynids {
 3570   spinlock_t lock ;
 3571   struct list_head list ;
 3572};
 3573#line 774 "include/linux/usb.h"
 3574struct usbdrv_wrap {
 3575   struct device_driver driver ;
 3576   int for_devices ;
 3577};
 3578#line 786 "include/linux/usb.h"
 3579struct usb_driver {
 3580   char const   *name ;
 3581   int (*probe)(struct usb_interface * , struct usb_device_id  const  * ) ;
 3582   void (*disconnect)(struct usb_interface * ) ;
 3583   int (*unlocked_ioctl)(struct usb_interface * , unsigned int  , void * ) ;
 3584   int (*suspend)(struct usb_interface * , pm_message_t  ) ;
 3585   int (*resume)(struct usb_interface * ) ;
 3586   int (*reset_resume)(struct usb_interface * ) ;
 3587   int (*pre_reset)(struct usb_interface * ) ;
 3588   int (*post_reset)(struct usb_interface * ) ;
 3589   struct usb_device_id  const  *id_table ;
 3590   struct usb_dynids dynids ;
 3591   struct usbdrv_wrap drvwrap ;
 3592   unsigned char no_dynamic_id : 1 ;
 3593   unsigned char supports_autosuspend : 1 ;
 3594   unsigned char soft_unbind : 1 ;
 3595};
 3596#line 869 "include/linux/usb.h"
 3597struct usb_device_driver {
 3598   char const   *name ;
 3599   int (*probe)(struct usb_device * ) ;
 3600   void (*disconnect)(struct usb_device * ) ;
 3601   int (*suspend)(struct usb_device * , pm_message_t  ) ;
 3602   int (*resume)(struct usb_device * , pm_message_t  ) ;
 3603   struct usbdrv_wrap drvwrap ;
 3604   unsigned char supports_autosuspend : 1 ;
 3605};
 3606#line 947 "include/linux/usb.h"
 3607struct usb_iso_packet_descriptor {
 3608   unsigned int offset ;
 3609   unsigned int length ;
 3610   unsigned int actual_length ;
 3611   int status ;
 3612};
 3613#line 989
 3614struct urb;
 3615#line 989
 3616struct urb;
 3617#line 990 "include/linux/usb.h"
 3618struct usb_anchor {
 3619   struct list_head urb_list ;
 3620   wait_queue_head_t wait ;
 3621   spinlock_t lock ;
 3622   unsigned char poisoned : 1 ;
 3623};
 3624#line 1007
 3625struct scatterlist;
 3626#line 1007
 3627struct scatterlist;
 3628#line 1007 "include/linux/usb.h"
 3629struct urb {
 3630   struct kref kref ;
 3631   void *hcpriv ;
 3632   atomic_t use_count ;
 3633   atomic_t reject ;
 3634   int unlinked ;
 3635   struct list_head urb_list ;
 3636   struct list_head anchor_list ;
 3637   struct usb_anchor *anchor ;
 3638   struct usb_device *dev ;
 3639   struct usb_host_endpoint *ep ;
 3640   unsigned int pipe ;
 3641   unsigned int stream_id ;
 3642   int status ;
 3643   unsigned int transfer_flags ;
 3644   void *transfer_buffer ;
 3645   dma_addr_t transfer_dma ;
 3646   struct scatterlist *sg ;
 3647   int num_sgs ;
 3648   u32 transfer_buffer_length ;
 3649   u32 actual_length ;
 3650   unsigned char *setup_packet ;
 3651   dma_addr_t setup_dma ;
 3652   int start_frame ;
 3653   int number_of_packets ;
 3654   int interval ;
 3655   int error_count ;
 3656   void *context ;
 3657   void (*complete)(struct urb * ) ;
 3658   struct usb_iso_packet_descriptor iso_frame_desc[0U] ;
 3659};
 3660#line 1606
 3661struct hc_driver;
 3662#line 1606
 3663struct hc_driver;
 3664#line 1606
 3665struct dma_pool;
 3666#line 1606
 3667struct dma_pool;
 3668#line 1606 "include/linux/usb.h"
 3669struct usb_hcd {
 3670   struct usb_bus self ;
 3671   struct kref kref ;
 3672   char const   *product_desc ;
 3673   int speed ;
 3674   char irq_descr[24U] ;
 3675   struct timer_list rh_timer ;
 3676   struct urb *status_urb ;
 3677   struct work_struct wakeup_work ;
 3678   struct hc_driver  const  *driver ;
 3679   unsigned long flags ;
 3680   unsigned char rh_registered : 1 ;
 3681   unsigned char rh_pollable : 1 ;
 3682   unsigned char msix_enabled : 1 ;
 3683   unsigned char uses_new_polling : 1 ;
 3684   unsigned char wireless : 1 ;
 3685   unsigned char authorized_default : 1 ;
 3686   unsigned char has_tt : 1 ;
 3687   int irq ;
 3688   void *regs ;
 3689   u64 rsrc_start ;
 3690   u64 rsrc_len ;
 3691   unsigned int power_budget ;
 3692   struct mutex *bandwidth_mutex ;
 3693   struct usb_hcd *shared_hcd ;
 3694   struct usb_hcd *primary_hcd ;
 3695   struct dma_pool *pool[4U] ;
 3696   int state ;
 3697   unsigned long hcd_priv[0U] ;
 3698};
 3699#line 199 "include/linux/usb/hcd.h"
 3700struct hc_driver {
 3701   char const   *description ;
 3702   char const   *product_desc ;
 3703   size_t hcd_priv_size ;
 3704   irqreturn_t (*irq)(struct usb_hcd * ) ;
 3705   int flags ;
 3706   int (*reset)(struct usb_hcd * ) ;
 3707   int (*start)(struct usb_hcd * ) ;
 3708   int (*pci_suspend)(struct usb_hcd * , bool  ) ;
 3709   int (*pci_resume)(struct usb_hcd * , bool  ) ;
 3710   void (*stop)(struct usb_hcd * ) ;
 3711   void (*shutdown)(struct usb_hcd * ) ;
 3712   int (*get_frame_number)(struct usb_hcd * ) ;
 3713   int (*urb_enqueue)(struct usb_hcd * , struct urb * , gfp_t  ) ;
 3714   int (*urb_dequeue)(struct usb_hcd * , struct urb * , int  ) ;
 3715   int (*map_urb_for_dma)(struct usb_hcd * , struct urb * , gfp_t  ) ;
 3716   void (*unmap_urb_for_dma)(struct usb_hcd * , struct urb * ) ;
 3717   void (*endpoint_disable)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 3718   void (*endpoint_reset)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 3719   int (*hub_status_data)(struct usb_hcd * , char * ) ;
 3720   int (*hub_control)(struct usb_hcd * , u16  , u16  , u16  , char * , u16  ) ;
 3721   int (*bus_suspend)(struct usb_hcd * ) ;
 3722   int (*bus_resume)(struct usb_hcd * ) ;
 3723   int (*start_port_reset)(struct usb_hcd * , unsigned int  ) ;
 3724   void (*relinquish_port)(struct usb_hcd * , int  ) ;
 3725   int (*port_handed_over)(struct usb_hcd * , int  ) ;
 3726   void (*clear_tt_buffer_complete)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 3727   int (*alloc_dev)(struct usb_hcd * , struct usb_device * ) ;
 3728   void (*free_dev)(struct usb_hcd * , struct usb_device * ) ;
 3729   int (*alloc_streams)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
 3730                        unsigned int  , unsigned int  , gfp_t  ) ;
 3731   int (*free_streams)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
 3732                       unsigned int  , gfp_t  ) ;
 3733   int (*add_endpoint)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
 3734   int (*drop_endpoint)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
 3735   int (*check_bandwidth)(struct usb_hcd * , struct usb_device * ) ;
 3736   void (*reset_bandwidth)(struct usb_hcd * , struct usb_device * ) ;
 3737   int (*address_device)(struct usb_hcd * , struct usb_device * ) ;
 3738   int (*update_hub_device)(struct usb_hcd * , struct usb_device * , struct usb_tt * ,
 3739                            gfp_t  ) ;
 3740   int (*reset_device)(struct usb_hcd * , struct usb_device * ) ;
 3741   int (*update_device)(struct usb_hcd * , struct usb_device * ) ;
 3742};
 3743#line 235 "include/linux/usb/ch11.h"
 3744struct usb_tt {
 3745   struct usb_device *hub ;
 3746   int multi ;
 3747   unsigned int think_time ;
 3748   spinlock_t lock ;
 3749   struct list_head clear_list ;
 3750   struct work_struct clear_work ;
 3751};
 3752#line 78 "include/linux/debugfs.h"
 3753struct scatterlist {
 3754   unsigned long sg_magic ;
 3755   unsigned long page_link ;
 3756   unsigned int offset ;
 3757   unsigned int length ;
 3758   dma_addr_t dma_address ;
 3759   unsigned int dma_length ;
 3760};
 3761#line 175 "include/linux/mm.h"
 3762struct vm_fault {
 3763   unsigned int flags ;
 3764   unsigned long pgoff ;
 3765   void *virtual_address ;
 3766   struct page *page ;
 3767};
 3768#line 192 "include/linux/mm.h"
 3769struct vm_operations_struct {
 3770   void (*open)(struct vm_area_struct * ) ;
 3771   void (*close)(struct vm_area_struct * ) ;
 3772   int (*fault)(struct vm_area_struct * , struct vm_fault * ) ;
 3773   int (*page_mkwrite)(struct vm_area_struct * , struct vm_fault * ) ;
 3774   int (*access)(struct vm_area_struct * , unsigned long  , void * , int  , int  ) ;
 3775   int (*set_policy)(struct vm_area_struct * , struct mempolicy * ) ;
 3776   struct mempolicy *(*get_policy)(struct vm_area_struct * , unsigned long  ) ;
 3777   int (*migrate)(struct vm_area_struct * , nodemask_t const   * , nodemask_t const   * ,
 3778                  unsigned long  ) ;
 3779};
 3780#line 34 "include/linux/bug.h"
 3781struct dma_attrs {
 3782   unsigned long flags[1U] ;
 3783};
 3784#line 65 "include/linux/dma-attrs.h"
 3785enum dma_data_direction {
 3786    DMA_BIDIRECTIONAL = 0,
 3787    DMA_TO_DEVICE = 1,
 3788    DMA_FROM_DEVICE = 2,
 3789    DMA_NONE = 3
 3790} ;
 3791#line 72 "include/linux/dma-attrs.h"
 3792struct dma_map_ops {
 3793   void *(*alloc_coherent)(struct device * , size_t  , dma_addr_t * , gfp_t  ) ;
 3794   void (*free_coherent)(struct device * , size_t  , void * , dma_addr_t  ) ;
 3795   dma_addr_t (*map_page)(struct device * , struct page * , unsigned long  , size_t  ,
 3796                          enum dma_data_direction  , struct dma_attrs * ) ;
 3797   void (*unmap_page)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
 3798                      struct dma_attrs * ) ;
 3799   int (*map_sg)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
 3800                 struct dma_attrs * ) ;
 3801   void (*unmap_sg)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
 3802                    struct dma_attrs * ) ;
 3803   void (*sync_single_for_cpu)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ) ;
 3804   void (*sync_single_for_device)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ) ;
 3805   void (*sync_sg_for_cpu)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ) ;
 3806   void (*sync_sg_for_device)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ) ;
 3807   int (*mapping_error)(struct device * , dma_addr_t  ) ;
 3808   int (*dma_supported)(struct device * , u64  ) ;
 3809   int (*set_dma_mask)(struct device * , u64  ) ;
 3810   int is_phys ;
 3811};
 3812#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"
 3813struct find_interface_arg {
 3814   int minor ;
 3815   struct device_driver *drv ;
 3816};
 3817#line 48 "include/asm-generic/int-ll64.h"
 3818typedef int s32;
 3819#line 672 "include/linux/kernel.h"
 3820struct compat_timespec;
 3821#line 672
 3822struct compat_timespec;
 3823#line 673 "include/linux/kernel.h"
 3824struct __anonstruct_futex_9 {
 3825   u32 *uaddr ;
 3826   u32 val ;
 3827   u32 flags ;
 3828   u32 bitset ;
 3829   u64 time ;
 3830   u32 *uaddr2 ;
 3831};
 3832#line 673 "include/linux/kernel.h"
 3833struct __anonstruct_nanosleep_10 {
 3834   clockid_t clockid ;
 3835   struct timespec *rmtp ;
 3836   struct compat_timespec *compat_rmtp ;
 3837   u64 expires ;
 3838};
 3839#line 673
 3840struct pollfd;
 3841#line 673
 3842struct pollfd;
 3843#line 673 "include/linux/kernel.h"
 3844struct __anonstruct_poll_11 {
 3845   struct pollfd *ufds ;
 3846   int nfds ;
 3847   int has_timeout ;
 3848   unsigned long tv_sec ;
 3849   unsigned long tv_nsec ;
 3850};
 3851#line 673 "include/linux/kernel.h"
 3852union __anonunion_ldv_2052_8 {
 3853   struct __anonstruct_futex_9 futex ;
 3854   struct __anonstruct_nanosleep_10 nanosleep ;
 3855   struct __anonstruct_poll_11 poll ;
 3856};
 3857#line 673 "include/linux/kernel.h"
 3858struct restart_block {
 3859   long (*fn)(struct restart_block * ) ;
 3860   union __anonunion_ldv_2052_8 ldv_2052 ;
 3861};
 3862#line 22 "include/asm-generic/getorder.h"
 3863struct exec_domain;
 3864#line 22
 3865struct exec_domain;
 3866#line 90 "include/linux/personality.h"
 3867struct map_segment;
 3868#line 90
 3869struct map_segment;
 3870#line 90 "include/linux/personality.h"
 3871struct exec_domain {
 3872   char const   *name ;
 3873   void (*handler)(int  , struct pt_regs * ) ;
 3874   unsigned char pers_low ;
 3875   unsigned char pers_high ;
 3876   unsigned long *signal_map ;
 3877   unsigned long *signal_invmap ;
 3878   struct map_segment *err_map ;
 3879   struct map_segment *socktype_map ;
 3880   struct map_segment *sockopt_map ;
 3881   struct map_segment *af_map ;
 3882   struct module *module ;
 3883   struct exec_domain *next ;
 3884};
 3885#line 622 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
 3886struct __anonstruct_mm_segment_t_28 {
 3887   unsigned long seg ;
 3888};
 3889#line 622 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
 3890typedef struct __anonstruct_mm_segment_t_28 mm_segment_t;
 3891#line 131 "include/asm-generic/atomic-long.h"
 3892struct thread_info {
 3893   struct task_struct *task ;
 3894   struct exec_domain *exec_domain ;
 3895   __u32 flags ;
 3896   __u32 status ;
 3897   __u32 cpu ;
 3898   int preempt_count ;
 3899   mm_segment_t addr_limit ;
 3900   struct restart_block restart_block ;
 3901   void *sysenter_return ;
 3902   int uaccess_err ;
 3903};
 3904#line 28 "include/linux/wait.h"
 3905struct __wait_queue;
 3906#line 28
 3907struct __wait_queue;
 3908#line 28 "include/linux/wait.h"
 3909typedef struct __wait_queue wait_queue_t;
 3910#line 31 "include/linux/wait.h"
 3911struct __wait_queue {
 3912   unsigned int flags ;
 3913   void *private ;
 3914   int (*func)(wait_queue_t * , unsigned int  , int  , void * ) ;
 3915   struct list_head task_list ;
 3916};
 3917#line 290 "include/linux/timer.h"
 3918enum hrtimer_restart;
 3919#line 290
 3920enum hrtimer_restart;
 3921#line 584 "include/linux/usb/ch9.h"
 3922struct usb_qualifier_descriptor {
 3923   __u8 bLength ;
 3924   __u8 bDescriptorType ;
 3925   __le16 bcdUSB ;
 3926   __u8 bDeviceClass ;
 3927   __u8 bDeviceSubClass ;
 3928   __u8 bDeviceProtocol ;
 3929   __u8 bMaxPacketSize0 ;
 3930   __u8 bNumConfigurations ;
 3931   __u8 bRESERVED ;
 3932};
 3933#line 606 "include/linux/usb/ch9.h"
 3934struct usb_otg_descriptor {
 3935   __u8 bLength ;
 3936   __u8 bDescriptorType ;
 3937   __u8 bmAttributes ;
 3938};
 3939#line 120 "include/linux/usbdevice_fs.h"
 3940struct usbdevfs_hub_portinfo {
 3941   char nports ;
 3942   char port[127U] ;
 3943};
 3944#line 16 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3945typedef s32 compat_time_t;
 3946#line 37 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3947typedef s32 compat_long_t;
 3948#line 42 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3949struct compat_timespec {
 3950   compat_time_t tv_sec ;
 3951   s32 tv_nsec ;
 3952};
 3953#line 196 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 3954typedef u32 compat_uptr_t;
 3955#line 205 "include/linux/compat.h"
 3956struct compat_robust_list {
 3957   compat_uptr_t next ;
 3958};
 3959#line 209 "include/linux/compat.h"
 3960struct compat_robust_list_head {
 3961   struct compat_robust_list list ;
 3962   compat_long_t futex_offset ;
 3963   compat_uptr_t list_op_pending ;
 3964};
 3965#line 434 "include/linux/usb/hcd.h"
 3966struct usb_port_status {
 3967   __le16 wPortStatus ;
 3968   __le16 wPortChange ;
 3969};
 3970#line 94 "include/linux/usb/ch11.h"
 3971struct usb_hub_status {
 3972   __le16 wHubStatus ;
 3973   __le16 wHubChange ;
 3974};
 3975#line 178 "include/linux/usb/ch11.h"
 3976struct __anonstruct_hs_181 {
 3977   __u8 DeviceRemovable[4U] ;
 3978   __u8 PortPwrCtrlMask[4U] ;
 3979};
 3980#line 178 "include/linux/usb/ch11.h"
 3981struct __anonstruct_ss_182 {
 3982   __u8 bHubHdrDecLat ;
 3983   __u16 wHubDelay ;
 3984   __u16 DeviceRemovable ;
 3985};
 3986#line 178 "include/linux/usb/ch11.h"
 3987union __anonunion_u_180 {
 3988   struct __anonstruct_hs_181 hs ;
 3989   struct __anonstruct_ss_182 ss ;
 3990};
 3991#line 178 "include/linux/usb/ch11.h"
 3992struct usb_hub_descriptor {
 3993   __u8 bDescLength ;
 3994   __u8 bDescriptorType ;
 3995   __u8 bNbrPorts ;
 3996   __le16 wHubCharacteristics ;
 3997   __u8 bPwrOn2PwrGood ;
 3998   __u8 bHubContrCurrent ;
 3999   union __anonunion_u_180 u ;
 4000};
 4001#line 466 "include/linux/usb/hcd.h"
 4002struct usb_tt_clear {
 4003   struct list_head clear_list ;
 4004   unsigned int tt ;
 4005   u16 devinfo ;
 4006   struct usb_hcd *hcd ;
 4007   struct usb_host_endpoint *ep ;
 4008};
 4009#line 164 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 4010union __anonunion_status_183 {
 4011   struct usb_hub_status hub ;
 4012   struct usb_port_status port ;
 4013};
 4014#line 164 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 4015struct usb_hub {
 4016   struct device *intfdev ;
 4017   struct usb_device *hdev ;
 4018   struct kref kref ;
 4019   struct urb *urb ;
 4020   char (*buffer)[8U] ;
 4021   union __anonunion_status_183 *status ;
 4022   struct mutex status_mutex ;
 4023   int error ;
 4024   int nerrors ;
 4025   struct list_head event_list ;
 4026   unsigned long event_bits[1U] ;
 4027   unsigned long change_bits[1U] ;
 4028   unsigned long busy_bits[1U] ;
 4029   unsigned long removed_bits[1U] ;
 4030   struct usb_hub_descriptor *descriptor ;
 4031   struct usb_tt tt ;
 4032   unsigned int mA_per_port ;
 4033   unsigned char limited_power : 1 ;
 4034   unsigned char quiescing : 1 ;
 4035   unsigned char disconnected : 1 ;
 4036   unsigned char has_indicators : 1 ;
 4037   u8 indicator[31U] ;
 4038   struct delayed_work leds ;
 4039   struct delayed_work init_work ;
 4040   void **port_owners ;
 4041};
 4042#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"
 4043enum hub_activation_type {
 4044    HUB_INIT = 0,
 4045    HUB_INIT2 = 1,
 4046    HUB_INIT3 = 2,
 4047    HUB_POST_RESET = 3,
 4048    HUB_RESUME = 4,
 4049    HUB_RESET_RESUME = 5
 4050} ;
 4051#line 912
 4052enum hub_quiescing_type {
 4053    HUB_DISCONNECT = 0,
 4054    HUB_PRE_RESET = 1,
 4055    HUB_SUSPEND = 2
 4056} ;
 4057#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"
 4058union __anonunion_185 {
 4059   struct usb_hub_status hub ;
 4060   struct usb_port_status port ;
 4061};
 4062#line 179 "include/linux/types.h"
 4063typedef __u32 __le32;
 4064#line 181 "include/linux/types.h"
 4065typedef __u64 __le64;
 4066#line 205 "include/linux/types.h"
 4067typedef u64 phys_addr_t;
 4068#line 210 "include/linux/types.h"
 4069typedef phys_addr_t resource_size_t;
 4070#line 125 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/desc_defs.h"
 4071struct paravirt_callee_save {
 4072   void *func ;
 4073};
 4074#line 190 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
 4075struct pv_irq_ops {
 4076   struct paravirt_callee_save save_fl ;
 4077   struct paravirt_callee_save restore_fl ;
 4078   struct paravirt_callee_save irq_disable ;
 4079   struct paravirt_callee_save irq_enable ;
 4080   void (*safe_halt)(void) ;
 4081   void (*halt)(void) ;
 4082   void (*adjust_exception_frame)(void) ;
 4083};
 4084#line 139 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/e820.h"
 4085struct resource {
 4086   resource_size_t start ;
 4087   resource_size_t end ;
 4088   char const   *name ;
 4089   unsigned long flags ;
 4090   struct resource *parent ;
 4091   struct resource *sibling ;
 4092   struct resource *child ;
 4093};
 4094#line 290 "include/linux/timer.h"
 4095enum hrtimer_restart;
 4096#line 290
 4097enum hrtimer_restart;
 4098#line 301
 4099struct workqueue_struct;
 4100#line 301
 4101struct workqueue_struct;
 4102#line 23 "include/linux/utsname.h"
 4103struct new_utsname {
 4104   char sysname[65U] ;
 4105   char nodename[65U] ;
 4106   char release[65U] ;
 4107   char version[65U] ;
 4108   char machine[65U] ;
 4109   char domainname[65U] ;
 4110};
 4111#line 1060 "include/linux/sched.h"
 4112struct uts_namespace;
 4113#line 1060
 4114struct uts_namespace;
 4115#line 2698
 4116struct mnt_namespace;
 4117#line 2698
 4118struct mnt_namespace;
 4119#line 2699
 4120struct ipc_namespace;
 4121#line 2699
 4122struct ipc_namespace;
 4123#line 2700
 4124struct net;
 4125#line 2700
 4126struct net;
 4127#line 2700 "include/linux/sched.h"
 4128struct nsproxy {
 4129   atomic_t count ;
 4130   struct uts_namespace *uts_ns ;
 4131   struct ipc_namespace *ipc_ns ;
 4132   struct mnt_namespace *mnt_ns ;
 4133   struct pid_namespace *pid_ns ;
 4134   struct net *net_ns ;
 4135};
 4136#line 42 "include/linux/utsname.h"
 4137struct uts_namespace {
 4138   struct kref kref ;
 4139   struct new_utsname name ;
 4140   struct user_namespace *user_ns ;
 4141};
 4142#line 14 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/device.h"
 4143struct pdev_archdata {
 4144
 4145};
 4146#line 474 "include/linux/mod_devicetable.h"
 4147struct platform_device_id {
 4148   char name[20U] ;
 4149   kernel_ulong_t driver_data ;
 4150};
 4151#line 535
 4152struct mfd_cell;
 4153#line 535
 4154struct mfd_cell;
 4155#line 536 "include/linux/mod_devicetable.h"
 4156struct platform_device {
 4157   char const   *name ;
 4158   int id ;
 4159   struct device dev ;
 4160   u32 num_resources ;
 4161   struct resource *resource ;
 4162   struct platform_device_id  const  *id_entry ;
 4163   struct mfd_cell *mfd_cell ;
 4164   struct pdev_archdata archdata ;
 4165};
 4166#line 234 "include/linux/platform_device.h"
 4167struct usb_ctrlrequest {
 4168   __u8 bRequestType ;
 4169   __u8 bRequest ;
 4170   __le16 wValue ;
 4171   __le16 wIndex ;
 4172   __le16 wLength ;
 4173};
 4174#line 598 "include/linux/usb/hcd.h"
 4175struct usb_mon_operations {
 4176   void (*urb_submit)(struct usb_bus * , struct urb * ) ;
 4177   void (*urb_submit_error)(struct usb_bus * , struct urb * , int  ) ;
 4178   void (*urb_complete)(struct usb_bus * , struct urb * , int  ) ;
 4179};
 4180#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"
 4181struct usb_busmap {
 4182   unsigned long busmap[1U] ;
 4183};
 4184#line 290 "include/linux/timer.h"
 4185enum hrtimer_restart;
 4186#line 290
 4187enum hrtimer_restart;
 4188#line 290
 4189enum hrtimer_restart;
 4190#line 290
 4191enum hrtimer_restart;
 4192#line 1427 "include/linux/usb.h"
 4193struct usb_sg_request {
 4194   int status ;
 4195   size_t bytes ;
 4196   spinlock_t lock ;
 4197   struct usb_device *dev ;
 4198   int pipe ;
 4199   int entries ;
 4200   struct urb **urbs ;
 4201   int count ;
 4202   struct completion complete ;
 4203};
 4204#line 18 "include/linux/nls.h"
 4205typedef u16 wchar_t;
 4206#line 35
 4207enum utf16_endian {
 4208    UTF16_HOST_ENDIAN = 0,
 4209    UTF16_LITTLE_ENDIAN = 1,
 4210    UTF16_BIG_ENDIAN = 2
 4211} ;
 4212#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"
 4213struct api_context {
 4214   struct completion done ;
 4215   int status ;
 4216};
 4217#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"
 4218struct set_config_request {
 4219   struct usb_device *udev ;
 4220   int config ;
 4221   struct work_struct work ;
 4222   struct list_head node ;
 4223};
 4224#line 290 "include/linux/timer.h"
 4225enum hrtimer_restart;
 4226#line 290
 4227enum hrtimer_restart;
 4228#line 767 "include/linux/usb.h"
 4229struct usb_dynid {
 4230   struct list_head node ;
 4231   struct usb_device_id id ;
 4232};
 4233#line 290 "include/linux/timer.h"
 4234enum hrtimer_restart;
 4235#line 290
 4236enum hrtimer_restart;
 4237#line 290
 4238enum hrtimer_restart;
 4239#line 290
 4240enum hrtimer_restart;
 4241#line 905 "include/linux/usb.h"
 4242struct usb_class_driver {
 4243   char *name ;
 4244   char *(*devnode)(struct device * , mode_t * ) ;
 4245   struct file_operations  const  *fops ;
 4246   int minor_base ;
 4247};
 4248#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"
 4249struct usb_class {
 4250   struct kref kref ;
 4251   struct class *class ;
 4252};
 4253#line 290 "include/linux/timer.h"
 4254enum hrtimer_restart;
 4255#line 290
 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 164 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 4266struct ep_device {
 4267   struct usb_endpoint_descriptor *desc ;
 4268   struct usb_device *udev ;
 4269   struct device dev ;
 4270};
 4271#line 290 "include/linux/timer.h"
 4272enum hrtimer_restart;
 4273#line 290
 4274enum hrtimer_restart;
 4275#line 229 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/elf.h"
 4276struct linux_binprm;
 4277#line 229
 4278struct linux_binprm;
 4279#line 387 "include/linux/signal.h"
 4280struct pollfd {
 4281   int fd ;
 4282   short events ;
 4283   short revents ;
 4284};
 4285#line 230 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
 4286struct __large_struct {
 4287   unsigned long buf[100U] ;
 4288};
 4289#line 34 "include/linux/poll.h"
 4290struct poll_table_struct {
 4291   void (*qproc)(struct file * , wait_queue_head_t * , struct poll_table_struct * ) ;
 4292   unsigned long key ;
 4293};
 4294#line 38 "include/linux/poll.h"
 4295typedef struct poll_table_struct poll_table;
 4296#line 1606 "include/linux/usb.h"
 4297struct usbdevfs_ctrltransfer {
 4298   __u8 bRequestType ;
 4299   __u8 bRequest ;
 4300   __u16 wValue ;
 4301   __u16 wIndex ;
 4302   __u16 wLength ;
 4303   __u32 timeout ;
 4304   void *data ;
 4305};
 4306#line 48 "include/linux/usbdevice_fs.h"
 4307struct usbdevfs_bulktransfer {
 4308   unsigned int ep ;
 4309   unsigned int len ;
 4310   unsigned int timeout ;
 4311   void *data ;
 4312};
 4313#line 55 "include/linux/usbdevice_fs.h"
 4314struct usbdevfs_setinterface {
 4315   unsigned int interface ;
 4316   unsigned int altsetting ;
 4317};
 4318#line 60 "include/linux/usbdevice_fs.h"
 4319struct usbdevfs_disconnectsignal {
 4320   unsigned int signr ;
 4321   void *context ;
 4322};
 4323#line 65 "include/linux/usbdevice_fs.h"
 4324struct usbdevfs_getdriver {
 4325   unsigned int interface ;
 4326   char driver[256U] ;
 4327};
 4328#line 72 "include/linux/usbdevice_fs.h"
 4329struct usbdevfs_connectinfo {
 4330   unsigned int devnum ;
 4331   unsigned char slow ;
 4332};
 4333#line 77 "include/linux/usbdevice_fs.h"
 4334struct usbdevfs_iso_packet_desc {
 4335   unsigned int length ;
 4336   unsigned int actual_length ;
 4337   unsigned int status ;
 4338};
 4339#line 95 "include/linux/usbdevice_fs.h"
 4340struct usbdevfs_urb {
 4341   unsigned char type ;
 4342   unsigned char endpoint ;
 4343   int status ;
 4344   unsigned int flags ;
 4345   void *buffer ;
 4346   int buffer_length ;
 4347   int actual_length ;
 4348   int start_frame ;
 4349   int number_of_packets ;
 4350   int error_count ;
 4351   unsigned int signr ;
 4352   void *usercontext ;
 4353   struct usbdevfs_iso_packet_desc iso_frame_desc[0U] ;
 4354};
 4355#line 112 "include/linux/usbdevice_fs.h"
 4356struct usbdevfs_ioctl {
 4357   int ifno ;
 4358   int ioctl_code ;
 4359   void *data ;
 4360};
 4361#line 31 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 4362typedef u32 compat_caddr_t;
 4363#line 36 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 4364typedef s32 compat_int_t;
 4365#line 39 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
 4366typedef u32 compat_uint_t;
 4367#line 563 "include/linux/compat.h"
 4368struct usbdevfs_ctrltransfer32 {
 4369   u8 bRequestType ;
 4370   u8 bRequest ;
 4371   u16 wValue ;
 4372   u16 wIndex ;
 4373   u16 wLength ;
 4374   u32 timeout ;
 4375   compat_caddr_t data ;
 4376};
 4377#line 141 "include/linux/usbdevice_fs.h"
 4378struct usbdevfs_bulktransfer32 {
 4379   compat_uint_t ep ;
 4380   compat_uint_t len ;
 4381   compat_uint_t timeout ;
 4382   compat_caddr_t data ;
 4383};
 4384#line 148 "include/linux/usbdevice_fs.h"
 4385struct usbdevfs_disconnectsignal32 {
 4386   compat_int_t signr ;
 4387   compat_caddr_t context ;
 4388};
 4389#line 153 "include/linux/usbdevice_fs.h"
 4390struct usbdevfs_urb32 {
 4391   unsigned char type ;
 4392   unsigned char endpoint ;
 4393   compat_int_t status ;
 4394   compat_uint_t flags ;
 4395   compat_caddr_t buffer ;
 4396   compat_int_t buffer_length ;
 4397   compat_int_t actual_length ;
 4398   compat_int_t start_frame ;
 4399   compat_int_t number_of_packets ;
 4400   compat_int_t error_count ;
 4401   compat_uint_t signr ;
 4402   compat_caddr_t usercontext ;
 4403   struct usbdevfs_iso_packet_desc iso_frame_desc[0U] ;
 4404};
 4405#line 169 "include/linux/usbdevice_fs.h"
 4406struct usbdevfs_ioctl32 {
 4407   s32 ifno ;
 4408   s32 ioctl_code ;
 4409   compat_caddr_t data ;
 4410};
 4411#line 671 "include/linux/usb/hcd.h"
 4412struct cdev {
 4413   struct kobject kobj ;
 4414   struct module *owner ;
 4415   struct file_operations  const  *ops ;
 4416   struct list_head list ;
 4417   dev_t dev ;
 4418   unsigned int count ;
 4419};
 4420#line 327 "include/linux/fsnotify.h"
 4421struct linux_binprm {
 4422   char buf[128U] ;
 4423   struct vm_area_struct *vma ;
 4424   unsigned long vma_pages ;
 4425   struct mm_struct *mm ;
 4426   unsigned long p ;
 4427   unsigned char cred_prepared : 1 ;
 4428   unsigned char cap_effective : 1 ;
 4429   unsigned int recursion_depth ;
 4430   struct file *file ;
 4431   struct cred *cred ;
 4432   int unsafe ;
 4433   unsigned int per_clear ;
 4434   int argc ;
 4435   int envc ;
 4436   char const   *filename ;
 4437   char const   *interp ;
 4438   unsigned int interp_flags ;
 4439   unsigned int interp_data ;
 4440   unsigned long loader ;
 4441   unsigned long exec ;
 4442};
 4443#line 62 "include/linux/binfmts.h"
 4444struct coredump_params {
 4445   long signr ;
 4446   struct pt_regs *regs ;
 4447   struct file *file ;
 4448   unsigned long limit ;
 4449   unsigned long mm_flags ;
 4450};
 4451#line 80 "include/linux/binfmts.h"
 4452struct linux_binfmt {
 4453   struct list_head lh ;
 4454   struct module *module ;
 4455   int (*load_binary)(struct linux_binprm * , struct pt_regs * ) ;
 4456   int (*load_shlib)(struct file * ) ;
 4457   int (*core_dump)(struct coredump_params * ) ;
 4458   unsigned long min_coredump ;
 4459};
 4460#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"
 4461struct dev_state {
 4462   struct list_head list ;
 4463   struct usb_device *dev ;
 4464   struct file *file ;
 4465   spinlock_t lock ;
 4466   struct list_head async_pending ;
 4467   struct list_head async_completed ;
 4468   wait_queue_head_t wait ;
 4469   unsigned int discsignr ;
 4470   struct pid *disc_pid ;
 4471   uid_t disc_uid ;
 4472   uid_t disc_euid ;
 4473   void *disccontext ;
 4474   unsigned long ifclaimed ;
 4475   u32 secid ;
 4476   u32 disabled_bulk_eps ;
 4477};
 4478#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"
 4479struct async {
 4480   struct list_head asynclist ;
 4481   struct dev_state *ps ;
 4482   struct pid *pid ;
 4483   uid_t uid ;
 4484   uid_t euid ;
 4485   unsigned int signr ;
 4486   unsigned int ifnum ;
 4487   void *userbuffer ;
 4488   void *userurb ;
 4489   struct urb *urb ;
 4490   int status ;
 4491   u32 secid ;
 4492   u8 bulk_addr ;
 4493   u8 bulk_status ;
 4494};
 4495#line 105
 4496enum snoop_when {
 4497    SUBMIT = 0,
 4498    COMPLETE = 1
 4499} ;
 4500#line 60 "include/linux/notifier.h"
 4501struct blocking_notifier_head {
 4502   struct rw_semaphore rwsem ;
 4503   struct notifier_block *head ;
 4504};
 4505#line 290 "include/linux/timer.h"
 4506enum hrtimer_restart;
 4507#line 290
 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 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"
 4522struct device_connect_event {
 4523   atomic_t count ;
 4524   wait_queue_head_t wait ;
 4525};
 4526#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"
 4527struct class_info {
 4528   int class ;
 4529   char *class_name ;
 4530};
 4531#line 25 "include/linux/ioport.h"
 4532struct pci_dev;
 4533#line 25
 4534struct pci_dev;
 4535#line 290 "include/linux/timer.h"
 4536enum hrtimer_restart;
 4537#line 290
 4538enum hrtimer_restart;
 4539#line 175 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/topology.h"
 4540struct pci_bus;
 4541#line 175
 4542struct pci_bus;
 4543#line 13 "include/linux/mod_devicetable.h"
 4544struct pci_device_id {
 4545   __u32 vendor ;
 4546   __u32 device ;
 4547   __u32 subvendor ;
 4548   __u32 subdevice ;
 4549   __u32 class ;
 4550   __u32 class_mask ;
 4551   kernel_ulong_t driver_data ;
 4552};
 4553#line 17 "include/linux/irqreturn.h"
 4554struct hotplug_slot;
 4555#line 17
 4556struct hotplug_slot;
 4557#line 17 "include/linux/irqreturn.h"
 4558struct pci_slot {
 4559   struct pci_bus *bus ;
 4560   struct list_head list ;
 4561   struct hotplug_slot *hotplug ;
 4562   unsigned char number ;
 4563   struct kobject kobj ;
 4564};
 4565#line 117 "include/linux/pci.h"
 4566typedef int pci_power_t;
 4567#line 143 "include/linux/pci.h"
 4568typedef unsigned int pci_channel_state_t;
 4569#line 144
 4570enum pci_channel_state {
 4571    pci_channel_io_normal = 1,
 4572    pci_channel_io_frozen = 2,
 4573    pci_channel_io_perm_failure = 3
 4574} ;
 4575#line 169 "include/linux/pci.h"
 4576typedef unsigned short pci_dev_flags_t;
 4577#line 184 "include/linux/pci.h"
 4578typedef unsigned short pci_bus_flags_t;
 4579#line 227
 4580struct pcie_link_state;
 4581#line 227
 4582struct pcie_link_state;
 4583#line 228
 4584struct pci_vpd;
 4585#line 228
 4586struct pci_vpd;
 4587#line 229
 4588struct pci_sriov;
 4589#line 229
 4590struct pci_sriov;
 4591#line 230
 4592struct pci_ats;
 4593#line 230
 4594struct pci_ats;
 4595#line 231
 4596struct pci_driver;
 4597#line 231
 4598struct pci_driver;
 4599#line 231 "include/linux/pci.h"
 4600union __anonunion_ldv_14722_131 {
 4601   struct pci_sriov *sriov ;
 4602   struct pci_dev *physfn ;
 4603};
 4604#line 231 "include/linux/pci.h"
 4605struct pci_dev {
 4606   struct list_head bus_list ;
 4607   struct pci_bus *bus ;
 4608   struct pci_bus *subordinate ;
 4609   void *sysdata ;
 4610   struct proc_dir_entry *procent ;
 4611   struct pci_slot *slot ;
 4612   unsigned int devfn ;
 4613   unsigned short vendor ;
 4614   unsigned short device ;
 4615   unsigned short subsystem_vendor ;
 4616   unsigned short subsystem_device ;
 4617   unsigned int class ;
 4618   u8 revision ;
 4619   u8 hdr_type ;
 4620   u8 pcie_cap ;
 4621   u8 pcie_type ;
 4622   u8 rom_base_reg ;
 4623   u8 pin ;
 4624   struct pci_driver *driver ;
 4625   u64 dma_mask ;
 4626   struct device_dma_parameters dma_parms ;
 4627   pci_power_t current_state ;
 4628   int pm_cap ;
 4629   unsigned char pme_support : 5 ;
 4630   unsigned char pme_interrupt : 1 ;
 4631   unsigned char d1_support : 1 ;
 4632   unsigned char d2_support : 1 ;
 4633   unsigned char no_d1d2 : 1 ;
 4634   unsigned char mmio_always_on : 1 ;
 4635   unsigned char wakeup_prepared : 1 ;
 4636   unsigned int d3_delay ;
 4637   struct pcie_link_state *link_state ;
 4638   pci_channel_state_t error_state ;
 4639   struct device dev ;
 4640   int cfg_size ;
 4641   unsigned int irq ;
 4642   struct resource resource[18U] ;
 4643   resource_size_t fw_addr[18U] ;
 4644   unsigned char transparent : 1 ;
 4645   unsigned char multifunction : 1 ;
 4646   unsigned char is_added : 1 ;
 4647   unsigned char is_busmaster : 1 ;
 4648   unsigned char no_msi : 1 ;
 4649   unsigned char block_ucfg_access : 1 ;
 4650   unsigned char broken_parity_status : 1 ;
 4651   unsigned char irq_reroute_variant : 2 ;
 4652   unsigned char msi_enabled : 1 ;
 4653   unsigned char msix_enabled : 1 ;
 4654   unsigned char ari_enabled : 1 ;
 4655   unsigned char is_managed : 1 ;
 4656   unsigned char is_pcie : 1 ;
 4657   unsigned char needs_freset : 1 ;
 4658   unsigned char state_saved : 1 ;
 4659   unsigned char is_physfn : 1 ;
 4660   unsigned char is_virtfn : 1 ;
 4661   unsigned char reset_fn : 1 ;
 4662   unsigned char is_hotplug_bridge : 1 ;
 4663   unsigned char __aer_firmware_first_valid : 1 ;
 4664   unsigned char __aer_firmware_first : 1 ;
 4665   pci_dev_flags_t dev_flags ;
 4666   atomic_t enable_cnt ;
 4667   u32 saved_config_space[16U] ;
 4668   struct hlist_head saved_cap_space ;
 4669   struct bin_attribute *rom_attr ;
 4670   int rom_attr_enabled ;
 4671   struct bin_attribute *res_attr[18U] ;
 4672   struct bin_attribute *res_attr_wc[18U] ;
 4673   struct list_head msi_list ;
 4674   struct pci_vpd *vpd ;
 4675   union __anonunion_ldv_14722_131 ldv_14722 ;
 4676   struct pci_ats *ats ;
 4677};
 4678#line 406
 4679struct pci_ops;
 4680#line 406
 4681struct pci_ops;
 4682#line 406 "include/linux/pci.h"
 4683struct pci_bus {
 4684   struct list_head node ;
 4685   struct pci_bus *parent ;
 4686   struct list_head children ;
 4687   struct list_head devices ;
 4688   struct pci_dev *self ;
 4689   struct list_head slots ;
 4690   struct resource *resource[4U] ;
 4691   struct list_head resources ;
 4692   struct pci_ops *ops ;
 4693   void *sysdata ;
 4694   struct proc_dir_entry *procdir ;
 4695   unsigned char number ;
 4696   unsigned char primary ;
 4697   unsigned char secondary ;
 4698   unsigned char subordinate ;
 4699   unsigned char max_bus_speed ;
 4700   unsigned char cur_bus_speed ;
 4701   char name[48U] ;
 4702   unsigned short bridge_ctl ;
 4703   pci_bus_flags_t bus_flags ;
 4704   struct device *bridge ;
 4705   struct device dev ;
 4706   struct bin_attribute *legacy_io ;
 4707   struct bin_attribute *legacy_mem ;
 4708   unsigned char is_added : 1 ;
 4709};
 4710#line 458 "include/linux/pci.h"
 4711struct pci_ops {
 4712   int (*read)(struct pci_bus * , unsigned int  , int  , int  , u32 * ) ;
 4713   int (*write)(struct pci_bus * , unsigned int  , int  , int  , u32  ) ;
 4714};
 4715#line 493 "include/linux/pci.h"
 4716struct pci_dynids {
 4717   spinlock_t lock ;
 4718   struct list_head list ;
 4719};
 4720#line 506 "include/linux/pci.h"
 4721typedef unsigned int pci_ers_result_t;
 4722#line 515 "include/linux/pci.h"
 4723struct pci_error_handlers {
 4724   pci_ers_result_t (*error_detected)(struct pci_dev * , enum pci_channel_state  ) ;
 4725   pci_ers_result_t (*mmio_enabled)(struct pci_dev * ) ;
 4726   pci_ers_result_t (*link_reset)(struct pci_dev * ) ;
 4727   pci_ers_result_t (*slot_reset)(struct pci_dev * ) ;
 4728   void (*resume)(struct pci_dev * ) ;
 4729};
 4730#line 543 "include/linux/pci.h"
 4731struct pci_driver {
 4732   struct list_head node ;
 4733   char const   *name ;
 4734   struct pci_device_id  const  *id_table ;
 4735   int (*probe)(struct pci_dev * , struct pci_device_id  const  * ) ;
 4736   void (*remove)(struct pci_dev * ) ;
 4737   int (*suspend)(struct pci_dev * , pm_message_t  ) ;
 4738   int (*suspend_late)(struct pci_dev * , pm_message_t  ) ;
 4739   int (*resume_early)(struct pci_dev * ) ;
 4740   int (*resume)(struct pci_dev * ) ;
 4741   void (*shutdown)(struct pci_dev * ) ;
 4742   struct pci_error_handlers *err_handler ;
 4743   struct device_driver driver ;
 4744   struct pci_dynids dynids ;
 4745};
 4746#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"
 4747enum companion_action {
 4748    SET_HS_COMPANION = 0,
 4749    CLEAR_HS_COMPANION = 1,
 4750    WAIT_FOR_COMPANIONS = 2
 4751} ;
 4752#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"
 4753typedef unsigned long __kernel_nlink_t;
 4754#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"
 4755typedef long __kernel_off_t;
 4756#line 27 "include/linux/types.h"
 4757typedef __kernel_nlink_t nlink_t;
 4758#line 28 "include/linux/types.h"
 4759typedef __kernel_off_t off_t;
 4760#line 145 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
 4761struct seq_operations;
 4762#line 145
 4763struct seq_operations;
 4764#line 290 "include/linux/timer.h"
 4765enum hrtimer_restart;
 4766#line 290
 4767enum hrtimer_restart;
 4768#line 2601 "include/linux/fs.h"
 4769struct mnt_pcp {
 4770   int mnt_count ;
 4771   int mnt_writers ;
 4772};
 4773#line 54 "include/linux/mount.h"
 4774struct vfsmount {
 4775   struct list_head mnt_hash ;
 4776   struct vfsmount *mnt_parent ;
 4777   struct dentry *mnt_mountpoint ;
 4778   struct dentry *mnt_root ;
 4779   struct super_block *mnt_sb ;
 4780   struct mnt_pcp *mnt_pcp ;
 4781   atomic_t mnt_longterm ;
 4782   struct list_head mnt_mounts ;
 4783   struct list_head mnt_child ;
 4784   int mnt_flags ;
 4785   __u32 mnt_fsnotify_mask ;
 4786   struct hlist_head mnt_fsnotify_marks ;
 4787   char const   *mnt_devname ;
 4788   struct list_head mnt_list ;
 4789   struct list_head mnt_expire ;
 4790   struct list_head mnt_share ;
 4791   struct list_head mnt_slave_list ;
 4792   struct list_head mnt_slave ;
 4793   struct vfsmount *mnt_master ;
 4794   struct mnt_namespace *mnt_ns ;
 4795   int mnt_id ;
 4796   int mnt_group_id ;
 4797   int mnt_expiry_mark ;
 4798   int mnt_pinned ;
 4799   int mnt_ghosts ;
 4800};
 4801#line 46 "include/linux/proc_fs.h"
 4802typedef int read_proc_t(char * , char ** , off_t  , int  , int * , void * );
 4803#line 48 "include/linux/proc_fs.h"
 4804typedef int write_proc_t(struct file * , char const   * , unsigned long  , void * );
 4805#line 49 "include/linux/proc_fs.h"
 4806struct proc_dir_entry {
 4807   unsigned int low_ino ;
 4808   unsigned int namelen ;
 4809   char const   *name ;
 4810   mode_t mode ;
 4811   nlink_t nlink ;
 4812   uid_t uid ;
 4813   gid_t gid ;
 4814   loff_t size ;
 4815   struct inode_operations  const  *proc_iops ;
 4816   struct file_operations  const  *proc_fops ;
 4817   struct proc_dir_entry *next ;
 4818   struct proc_dir_entry *parent ;
 4819   struct proc_dir_entry *subdir ;
 4820   void *data ;
 4821   read_proc_t *read_proc ;
 4822   write_proc_t *write_proc ;
 4823   atomic_t count ;
 4824   int pde_users ;
 4825   spinlock_t pde_unload_lock ;
 4826   struct completion *pde_unload_completion ;
 4827   struct list_head pde_openers ;
 4828};
 4829#line 1606 "include/linux/usb.h"
 4830struct open_intent {
 4831   int flags ;
 4832   int create_mode ;
 4833   struct file *file ;
 4834};
 4835#line 19 "include/linux/namei.h"
 4836union __anonunion_intent_164 {
 4837   struct open_intent open ;
 4838};
 4839#line 19 "include/linux/namei.h"
 4840struct nameidata {
 4841   struct path path ;
 4842   struct qstr last ;
 4843   struct path root ;
 4844   struct inode *inode ;
 4845   unsigned int flags ;
 4846   unsigned int seq ;
 4847   int last_type ;
 4848   unsigned int depth ;
 4849   char *saved_names[9U] ;
 4850   union __anonunion_intent_164 intent ;
 4851};
 4852#line 175 "include/linux/usbdevice_fs.h"
 4853struct match_token {
 4854   int token ;
 4855   char const   *pattern ;
 4856};
 4857#line 26 "include/linux/parser.h"
 4858struct __anonstruct_substring_t_181 {
 4859   char *from ;
 4860   char *to ;
 4861};
 4862#line 26 "include/linux/parser.h"
 4863typedef struct __anonstruct_substring_t_181 substring_t;
 4864#line 34 "include/linux/parser.h"
 4865struct seq_file {
 4866   char *buf ;
 4867   size_t size ;
 4868   size_t from ;
 4869   size_t count ;
 4870   loff_t index ;
 4871   loff_t read_pos ;
 4872   u64 version ;
 4873   struct mutex lock ;
 4874   struct seq_operations  const  *op ;
 4875   void *private ;
 4876};
 4877#line 28 "include/linux/seq_file.h"
 4878struct seq_operations {
 4879   void *(*start)(struct seq_file * , loff_t * ) ;
 4880   void (*stop)(struct seq_file * , void * ) ;
 4881   void *(*next)(struct seq_file * , void * , loff_t * ) ;
 4882   int (*show)(struct seq_file * , void * ) ;
 4883};
 4884#line 1 "<compiler builtins>"
 4885void *__builtin_memcpy(void * , void const   * , unsigned long  ) ;
 4886#line 1
 4887unsigned long __builtin_object_size(void * , int  ) ;
 4888#line 1
 4889long __builtin_expect(long  , long  ) ;
 4890#line 24 "include/linux/list.h"
 4891__inline static void INIT_LIST_HEAD(struct list_head *list ) 
 4892{ 
 4893
 4894  {
 4895#line 26
 4896  list->next = list;
 4897#line 27
 4898  list->prev = list;
 4899#line 28
 4900  return;
 4901}
 4902}
 4903#line 101 "include/linux/printk.h"
 4904extern int printk(char const   *  , ...) ;
 4905#line 295 "include/linux/kernel.h"
 4906extern int snprintf(char * , size_t  , char const   *  , ...) ;
 4907#line 303
 4908extern char *kasprintf(gfp_t  , char const   *  , ...) ;
 4909#line 35 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
 4910__inline static void atomic_set(atomic_t *v , int i ) 
 4911{ 
 4912
 4913  {
 4914#line 37
 4915  v->counter = i;
 4916#line 38
 4917  return;
 4918}
 4919}
 4920#line 168 "include/linux/mutex.h"
 4921extern int mutex_trylock(struct mutex * ) ;
 4922#line 82 "include/linux/jiffies.h"
 4923extern unsigned long volatile   jiffies ;
 4924#line 830 "include/linux/rcupdate.h"
 4925extern void kfree(void const   * ) ;
 4926#line 215 "include/linux/kobject.h"
 4927extern int add_uevent_var(struct kobj_uevent_env * , char const   *  , ...) ;
 4928#line 99 "include/linux/module.h"
 4929extern struct module __this_module ;
 4930#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"
 4931int ldv_try_module_get(struct module *module ) ;
 4932#line 4
 4933void ldv_module_get(struct module *module ) ;
 4934#line 5
 4935void ldv_module_put(struct module *module ) ;
 4936#line 6
 4937unsigned int ldv_module_refcount(void) ;
 4938#line 7
 4939void ldv_module_put_and_exit(void) ;
 4940#line 221 "include/linux/slub_def.h"
 4941extern void *__kmalloc(size_t  , gfp_t  ) ;
 4942#line 255 "include/linux/slub_def.h"
 4943__inline static void *kmalloc(size_t size , gfp_t flags ) 
 4944{ void *tmp___2 ;
 4945
 4946  {
 4947  {
 4948#line 270
 4949  tmp___2 = __kmalloc(size, flags);
 4950  }
 4951#line 270
 4952  return (tmp___2);
 4953}
 4954}
 4955#line 318 "include/linux/slab.h"
 4956__inline static void *kzalloc(size_t size , gfp_t flags ) 
 4957{ void *tmp ;
 4958  unsigned int __cil_tmp4 ;
 4959
 4960  {
 4961  {
 4962#line 320
 4963  __cil_tmp4 = flags | 32768U;
 4964#line 320
 4965  tmp = kmalloc(size, __cil_tmp4);
 4966  }
 4967#line 320
 4968  return (tmp);
 4969}
 4970}
 4971#line 46 "include/linux/delay.h"
 4972extern void msleep(unsigned int  ) ;
 4973#line 111 "include/linux/device.h"
 4974extern struct device *bus_find_device(struct bus_type * , struct device * , void * ,
 4975                                      int (*)(struct device * , void * ) ) ;
 4976#line 617
 4977extern int dev_set_name(struct device * , char const   *  , ...) ;
 4978#line 621 "include/linux/device.h"
 4979__inline static int dev_to_node(struct device *dev ) 
 4980{ 
 4981
 4982  {
 4983#line 623
 4984  return (dev->numa_node);
 4985}
 4986}
 4987#line 625 "include/linux/device.h"
 4988__inline static void set_dev_node(struct device *dev , int node ) 
 4989{ 
 4990
 4991  {
 4992#line 627
 4993  dev->numa_node = node;
 4994#line 628
 4995  return;
 4996}
 4997}
 4998#line 676 "include/linux/device.h"
 4999__inline static int device_trylock(struct device *dev ) 
 5000{ int tmp ;
 5001  struct mutex *__cil_tmp3 ;
 5002
 5003  {
 5004  {
 5005#line 678
 5006  __cil_tmp3 = & dev->mutex;
 5007#line 678
 5008  tmp = mutex_trylock(__cil_tmp3);
 5009  }
 5010#line 678
 5011  return (tmp);
 5012}
 5013}
 5014#line 693
 5015extern void device_initialize(struct device * ) ;
 5016#line 764
 5017extern struct device *get_device(struct device * ) ;
 5018#line 765
 5019extern void put_device(struct device * ) ;
 5020#line 45 "include/linux/pm_runtime.h"
 5021extern void pm_runtime_set_autosuspend_delay(struct device * , int  ) ;
 5022#line 201 "include/linux/usb.h"
 5023struct usb_interface *usb_get_intf(struct usb_interface *intf ) ;
 5024#line 202
 5025void usb_put_intf(struct usb_interface *intf ) ;
 5026#line 295
 5027int __usb_get_extra_descriptor(char *buffer , unsigned int size , unsigned char type ,
 5028                               void **ptr ) ;
 5029#line 502
 5030struct usb_device *usb_get_dev(struct usb_device *dev ) ;
 5031#line 503
 5032void usb_put_dev(struct usb_device *dev ) ;
 5033#line 509
 5034int usb_lock_device_for_reset(struct usb_device *udev , struct usb_interface  const  *iface ) ;
 5035#line 563
 5036int usb_get_current_frame_number(struct usb_device *dev ) ;
 5037#line 601
 5038struct usb_interface *usb_find_interface(struct usb_driver *drv , int minor ) ;
 5039#line 603
 5040struct usb_interface *usb_ifnum_to_if(struct usb_device  const  *dev , unsigned int ifnum ) ;
 5041#line 605
 5042struct usb_host_interface *usb_altnum_to_altsetting(struct usb_interface  const  *intf ,
 5043                                                    unsigned int altnum ) ;
 5044#line 607
 5045struct usb_host_interface *usb_find_alt_setting(struct usb_host_config *config , unsigned int iface_num ,
 5046                                                unsigned int alt_num ) ;
 5047#line 904
 5048struct bus_type usb_bus_type ;
 5049#line 929
 5050int usb_register_driver(struct usb_driver *new_driver , struct module *owner , char const   *mod_name ) ;
 5051#line 931 "include/linux/usb.h"
 5052__inline static int usb_register(struct usb_driver *driver ) 
 5053{ int tmp ;
 5054
 5055  {
 5056  {
 5057#line 933
 5058  tmp = usb_register_driver(driver, & __this_module, "usbcore");
 5059  }
 5060#line 933
 5061  return (tmp);
 5062}
 5063}
 5064#line 935
 5065void usb_deregister(struct usb_driver *driver ) ;
 5066#line 937
 5067int usb_register_device_driver(struct usb_device_driver *new_udriver , struct module *owner ) ;
 5068#line 939
 5069void usb_deregister_device_driver(struct usb_device_driver *udriver ) ;
 5070#line 946
 5071int usb_disabled(void) ;
 5072#line 1377
 5073void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
 5074                         dma_addr_t *dma ) ;
 5075#line 1379
 5076void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) ;
 5077#line 1605 "include/linux/usb.h"
 5078struct dentry *usb_debug_root  ;
 5079#line 190 "include/linux/usb/hcd.h"
 5080__inline static struct usb_hcd *bus_to_hcd(struct usb_bus *bus ) 
 5081{ struct usb_bus  const  *__mptr ;
 5082
 5083  {
 5084#line 192
 5085  __mptr = (struct usb_bus  const  *)bus;
 5086#line 192
 5087  return ((struct usb_hcd *)__mptr);
 5088}
 5089}
 5090#line 372
 5091int usb_hcd_get_frame_number(struct usb_device *udev ) ;
 5092#line 379
 5093struct usb_hcd *usb_get_hcd(struct usb_hcd *hcd ) ;
 5094#line 380
 5095void usb_put_hcd(struct usb_hcd *hcd ) ;
 5096#line 406
 5097void *hcd_buffer_alloc(struct usb_bus *bus , size_t size , gfp_t mem_flags , dma_addr_t *dma ) ;
 5098#line 408
 5099void hcd_buffer_free(struct usb_bus *bus , size_t size , void *addr , dma_addr_t dma ) ;
 5100#line 427
 5101struct usb_device *usb_alloc_dev(struct usb_device *parent , struct usb_bus *bus ,
 5102                                 unsigned int port1 ) ;
 5103#line 433
 5104void usb_destroy_configuration(struct usb_device *dev ) ;
 5105#line 596
 5106int usbfs_init(void) ;
 5107#line 597
 5108void usbfs_cleanup(void) ;
 5109#line 5 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 5110int usb_create_sysfs_dev_files(struct usb_device *udev ) ;
 5111#line 6
 5112void usb_remove_sysfs_dev_files(struct usb_device *udev ) ;
 5113#line 7
 5114void usb_create_sysfs_intf_files(struct usb_interface *intf ) ;
 5115#line 8
 5116void usb_remove_sysfs_intf_files(struct usb_interface *intf ) ;
 5117#line 14
 5118void usb_enable_endpoint(struct usb_device *dev , struct usb_host_endpoint *ep , bool reset_ep ) ;
 5119#line 48
 5120int usb_hub_init(void) ;
 5121#line 49
 5122void usb_hub_cleanup(void) ;
 5123#line 50
 5124int usb_major_init(void) ;
 5125#line 51
 5126void usb_major_cleanup(void) ;
 5127#line 55
 5128int usb_suspend(struct device *dev , pm_message_t msg ) ;
 5129#line 56
 5130int usb_resume(struct device *dev , pm_message_t msg ) ;
 5131#line 80
 5132int usb_runtime_suspend(struct device *dev ) ;
 5133#line 81
 5134int usb_runtime_resume(struct device *dev ) ;
 5135#line 82
 5136int usb_runtime_idle(struct device *dev ) ;
 5137#line 100
 5138struct device_type usb_device_type ;
 5139#line 101
 5140struct device_type usb_if_device_type ;
 5141#line 103
 5142struct usb_device_driver usb_generic_driver ;
 5143#line 110 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 5144__inline static int is_usb_interface(struct device  const  *dev ) 
 5145{ struct device_type  const  *__cil_tmp2 ;
 5146  unsigned long __cil_tmp3 ;
 5147  struct device_type  const  *__cil_tmp4 ;
 5148  struct device_type  const  *__cil_tmp5 ;
 5149  unsigned long __cil_tmp6 ;
 5150
 5151  {
 5152  {
 5153#line 112
 5154  __cil_tmp2 = (struct device_type  const  *)(& usb_if_device_type);
 5155#line 112
 5156  __cil_tmp3 = (unsigned long )__cil_tmp2;
 5157#line 112
 5158  __cil_tmp4 = dev->type;
 5159#line 112
 5160  __cil_tmp5 = (struct device_type  const  *)__cil_tmp4;
 5161#line 112
 5162  __cil_tmp6 = (unsigned long )__cil_tmp5;
 5163#line 112
 5164  return (__cil_tmp6 == __cil_tmp3);
 5165  }
 5166}
 5167}
 5168#line 143
 5169char const   *usbcore_name ;
 5170#line 146
 5171struct attribute_group  const  *usb_device_groups[3U] ;
 5172#line 151
 5173struct usb_driver usbfs_driver ;
 5174#line 152
 5175struct file_operations  const  usbfs_devices_fops ;
 5176#line 156
 5177int usb_devio_init(void) ;
 5178#line 157
 5179void usb_devio_cleanup(void) ;
 5180#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"
 5181char const   *usbcore_name  =    "usbcore";
 5182#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"
 5183static int nousb  ;
 5184#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"
 5185static int usb_autosuspend_delay  =    2;
 5186#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"
 5187struct usb_host_interface *usb_find_alt_setting(struct usb_host_config *config , unsigned int iface_num ,
 5188                                                unsigned int alt_num ) 
 5189{ struct usb_interface_cache *intf_cache ;
 5190  int i ;
 5191  struct usb_interface_cache *__cil_tmp6 ;
 5192  __u8 __cil_tmp7 ;
 5193  unsigned int __cil_tmp8 ;
 5194  __u8 __cil_tmp9 ;
 5195  int __cil_tmp10 ;
 5196  struct usb_interface_cache *__cil_tmp11 ;
 5197  unsigned long __cil_tmp12 ;
 5198  unsigned long __cil_tmp13 ;
 5199  __u8 __cil_tmp14 ;
 5200  unsigned int __cil_tmp15 ;
 5201  unsigned long __cil_tmp16 ;
 5202  struct usb_host_interface (*__cil_tmp17)[0U] ;
 5203  struct usb_host_interface *__cil_tmp18 ;
 5204  unsigned int __cil_tmp19 ;
 5205  unsigned int __cil_tmp20 ;
 5206  __u8 __cil_tmp21 ;
 5207  int __cil_tmp22 ;
 5208
 5209  {
 5210#line 85
 5211  intf_cache = (struct usb_interface_cache *)0;
 5212#line 88
 5213  i = 0;
 5214#line 88
 5215  goto ldv_27443;
 5216  ldv_27442: ;
 5217  {
 5218#line 89
 5219  __cil_tmp6 = config->intf_cache[i];
 5220#line 89
 5221  __cil_tmp7 = __cil_tmp6->altsetting[0].desc.bInterfaceNumber;
 5222#line 89
 5223  __cil_tmp8 = (unsigned int )__cil_tmp7;
 5224#line 89
 5225  if (__cil_tmp8 == iface_num) {
 5226#line 91
 5227    intf_cache = config->intf_cache[i];
 5228#line 92
 5229    goto ldv_27441;
 5230  } else {
 5231
 5232  }
 5233  }
 5234#line 88
 5235  i = i + 1;
 5236  ldv_27443: ;
 5237  {
 5238#line 88
 5239  __cil_tmp9 = config->desc.bNumInterfaces;
 5240#line 88
 5241  __cil_tmp10 = (int )__cil_tmp9;
 5242#line 88
 5243  if (__cil_tmp10 > i) {
 5244#line 89
 5245    goto ldv_27442;
 5246  } else {
 5247#line 91
 5248    goto ldv_27441;
 5249  }
 5250  }
 5251  ldv_27441: ;
 5252  {
 5253#line 95
 5254  __cil_tmp11 = (struct usb_interface_cache *)0;
 5255#line 95
 5256  __cil_tmp12 = (unsigned long )__cil_tmp11;
 5257#line 95
 5258  __cil_tmp13 = (unsigned long )intf_cache;
 5259#line 95
 5260  if (__cil_tmp13 == __cil_tmp12) {
 5261#line 96
 5262    return ((struct usb_host_interface *)0);
 5263  } else {
 5264
 5265  }
 5266  }
 5267#line 97
 5268  i = 0;
 5269#line 97
 5270  goto ldv_27445;
 5271  ldv_27444: ;
 5272  {
 5273#line 98
 5274  __cil_tmp14 = intf_cache->altsetting[i].desc.bAlternateSetting;
 5275#line 98
 5276  __cil_tmp15 = (unsigned int )__cil_tmp14;
 5277#line 98
 5278  if (__cil_tmp15 == alt_num) {
 5279    {
 5280#line 99
 5281    __cil_tmp16 = (unsigned long )i;
 5282#line 99
 5283    __cil_tmp17 = & intf_cache->altsetting;
 5284#line 99
 5285    __cil_tmp18 = (struct usb_host_interface *)__cil_tmp17;
 5286#line 99
 5287    return (__cil_tmp18 + __cil_tmp16);
 5288    }
 5289  } else {
 5290
 5291  }
 5292  }
 5293#line 97
 5294  i = i + 1;
 5295  ldv_27445: ;
 5296  {
 5297#line 97
 5298  __cil_tmp19 = intf_cache->num_altsetting;
 5299#line 97
 5300  __cil_tmp20 = (unsigned int )i;
 5301#line 97
 5302  if (__cil_tmp20 < __cil_tmp19) {
 5303#line 98
 5304    goto ldv_27444;
 5305  } else {
 5306#line 100
 5307    goto ldv_27446;
 5308  }
 5309  }
 5310  ldv_27446: 
 5311  {
 5312#line 101
 5313  __cil_tmp21 = config->desc.bConfigurationValue;
 5314#line 101
 5315  __cil_tmp22 = (int )__cil_tmp21;
 5316#line 101
 5317  printk("<7>Did not find alt setting %u for intf %u, config %u\n", alt_num, iface_num,
 5318         __cil_tmp22);
 5319  }
 5320#line 104
 5321  return ((struct usb_host_interface *)0);
 5322}
 5323}
 5324#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"
 5325struct usb_interface *usb_ifnum_to_if(struct usb_device  const  *dev , unsigned int ifnum ) 
 5326{ struct usb_host_config *config ;
 5327  int i ;
 5328  struct usb_host_config *__cil_tmp5 ;
 5329  struct usb_host_config *__cil_tmp6 ;
 5330  unsigned long __cil_tmp7 ;
 5331  unsigned long __cil_tmp8 ;
 5332  struct usb_interface *__cil_tmp9 ;
 5333  struct usb_host_interface *__cil_tmp10 ;
 5334  __u8 __cil_tmp11 ;
 5335  unsigned int __cil_tmp12 ;
 5336  __u8 __cil_tmp13 ;
 5337  int __cil_tmp14 ;
 5338
 5339  {
 5340#line 130
 5341  __cil_tmp5 = dev->actconfig;
 5342#line 130
 5343  config = (struct usb_host_config *)__cil_tmp5;
 5344  {
 5345#line 133
 5346  __cil_tmp6 = (struct usb_host_config *)0;
 5347#line 133
 5348  __cil_tmp7 = (unsigned long )__cil_tmp6;
 5349#line 133
 5350  __cil_tmp8 = (unsigned long )config;
 5351#line 133
 5352  if (__cil_tmp8 == __cil_tmp7) {
 5353#line 134
 5354    return ((struct usb_interface *)0);
 5355  } else {
 5356
 5357  }
 5358  }
 5359#line 135
 5360  i = 0;
 5361#line 135
 5362  goto ldv_27462;
 5363  ldv_27461: ;
 5364  {
 5365#line 136
 5366  __cil_tmp9 = config->interface[i];
 5367#line 136
 5368  __cil_tmp10 = __cil_tmp9->altsetting;
 5369#line 136
 5370  __cil_tmp11 = __cil_tmp10->desc.bInterfaceNumber;
 5371#line 136
 5372  __cil_tmp12 = (unsigned int )__cil_tmp11;
 5373#line 136
 5374  if (__cil_tmp12 == ifnum) {
 5375#line 138
 5376    return (config->interface[i]);
 5377  } else {
 5378
 5379  }
 5380  }
 5381#line 135
 5382  i = i + 1;
 5383  ldv_27462: ;
 5384  {
 5385#line 135
 5386  __cil_tmp13 = config->desc.bNumInterfaces;
 5387#line 135
 5388  __cil_tmp14 = (int )__cil_tmp13;
 5389#line 135
 5390  if (__cil_tmp14 > i) {
 5391#line 136
 5392    goto ldv_27461;
 5393  } else {
 5394#line 138
 5395    goto ldv_27463;
 5396  }
 5397  }
 5398  ldv_27463: ;
 5399#line 140
 5400  return ((struct usb_interface *)0);
 5401}
 5402}
 5403#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"
 5404struct usb_host_interface *usb_altnum_to_altsetting(struct usb_interface  const  *intf ,
 5405                                                    unsigned int altnum ) 
 5406{ int i ;
 5407  unsigned long __cil_tmp4 ;
 5408  struct usb_host_interface *__cil_tmp5 ;
 5409  struct usb_host_interface *__cil_tmp6 ;
 5410  __u8 __cil_tmp7 ;
 5411  unsigned int __cil_tmp8 ;
 5412  unsigned long __cil_tmp9 ;
 5413  struct usb_host_interface *__cil_tmp10 ;
 5414  struct usb_host_interface *__cil_tmp11 ;
 5415  unsigned int __cil_tmp12 ;
 5416  unsigned int __cil_tmp13 ;
 5417  unsigned int __cil_tmp14 ;
 5418
 5419  {
 5420#line 167
 5421  i = 0;
 5422#line 167
 5423  goto ldv_27477;
 5424  ldv_27476: ;
 5425  {
 5426#line 168
 5427  __cil_tmp4 = (unsigned long )i;
 5428#line 168
 5429  __cil_tmp5 = intf->altsetting;
 5430#line 168
 5431  __cil_tmp6 = __cil_tmp5 + __cil_tmp4;
 5432#line 168
 5433  __cil_tmp7 = __cil_tmp6->desc.bAlternateSetting;
 5434#line 168
 5435  __cil_tmp8 = (unsigned int )__cil_tmp7;
 5436#line 168
 5437  if (__cil_tmp8 == altnum) {
 5438    {
 5439#line 169
 5440    __cil_tmp9 = (unsigned long )i;
 5441#line 169
 5442    __cil_tmp10 = intf->altsetting;
 5443#line 169
 5444    __cil_tmp11 = (struct usb_host_interface *)__cil_tmp10;
 5445#line 169
 5446    return (__cil_tmp11 + __cil_tmp9);
 5447    }
 5448  } else {
 5449
 5450  }
 5451  }
 5452#line 167
 5453  i = i + 1;
 5454  ldv_27477: ;
 5455  {
 5456#line 167
 5457  __cil_tmp12 = intf->num_altsetting;
 5458#line 167
 5459  __cil_tmp13 = (unsigned int )__cil_tmp12;
 5460#line 167
 5461  __cil_tmp14 = (unsigned int )i;
 5462#line 167
 5463  if (__cil_tmp14 < __cil_tmp13) {
 5464#line 168
 5465    goto ldv_27476;
 5466  } else {
 5467#line 170
 5468    goto ldv_27478;
 5469  }
 5470  }
 5471  ldv_27478: ;
 5472#line 171
 5473  return ((struct usb_host_interface *)0);
 5474}
 5475}
 5476#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"
 5477static int __find_interface(struct device *dev , void *data ) 
 5478{ struct find_interface_arg *arg ;
 5479  struct usb_interface *intf ;
 5480  int tmp ;
 5481  struct device  const  *__mptr ;
 5482  struct device  const  *__cil_tmp7 ;
 5483  struct device_driver *__cil_tmp8 ;
 5484  unsigned long __cil_tmp9 ;
 5485  struct device_driver *__cil_tmp10 ;
 5486  unsigned long __cil_tmp11 ;
 5487  struct usb_interface *__cil_tmp12 ;
 5488  int __cil_tmp13 ;
 5489  int __cil_tmp14 ;
 5490
 5491  {
 5492  {
 5493#line 182
 5494  arg = (struct find_interface_arg *)data;
 5495#line 185
 5496  __cil_tmp7 = (struct device  const  *)dev;
 5497#line 185
 5498  tmp = is_usb_interface(__cil_tmp7);
 5499  }
 5500#line 185
 5501  if (tmp == 0) {
 5502#line 186
 5503    return (0);
 5504  } else {
 5505
 5506  }
 5507  {
 5508#line 188
 5509  __cil_tmp8 = arg->drv;
 5510#line 188
 5511  __cil_tmp9 = (unsigned long )__cil_tmp8;
 5512#line 188
 5513  __cil_tmp10 = dev->driver;
 5514#line 188
 5515  __cil_tmp11 = (unsigned long )__cil_tmp10;
 5516#line 188
 5517  if (__cil_tmp11 != __cil_tmp9) {
 5518#line 189
 5519    return (0);
 5520  } else {
 5521
 5522  }
 5523  }
 5524#line 190
 5525  __mptr = (struct device  const  *)dev;
 5526#line 190
 5527  __cil_tmp12 = (struct usb_interface *)__mptr;
 5528#line 190
 5529  intf = __cil_tmp12 + 1152921504606846928UL;
 5530  {
 5531#line 191
 5532  __cil_tmp13 = arg->minor;
 5533#line 191
 5534  __cil_tmp14 = intf->minor;
 5535#line 191
 5536  return (__cil_tmp14 == __cil_tmp13);
 5537  }
 5538}
 5539}
 5540#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"
 5541struct usb_interface *usb_find_interface(struct usb_driver *drv , int minor ) 
 5542{ struct find_interface_arg argb ;
 5543  struct device *dev ;
 5544  struct device  const  *__mptr ;
 5545  struct usb_interface *tmp ;
 5546  struct device *__cil_tmp7 ;
 5547  void *__cil_tmp8 ;
 5548  struct device *__cil_tmp9 ;
 5549  unsigned long __cil_tmp10 ;
 5550  unsigned long __cil_tmp11 ;
 5551  struct usb_interface *__cil_tmp12 ;
 5552
 5553  {
 5554  {
 5555#line 208
 5556  argb.minor = minor;
 5557#line 209
 5558  argb.drv = & drv->drvwrap.driver;
 5559#line 211
 5560  __cil_tmp7 = (struct device *)0;
 5561#line 211
 5562  __cil_tmp8 = (void *)(& argb);
 5563#line 211
 5564  dev = bus_find_device(& usb_bus_type, __cil_tmp7, __cil_tmp8, & __find_interface);
 5565#line 214
 5566  put_device(dev);
 5567  }
 5568  {
 5569#line 216
 5570  __cil_tmp9 = (struct device *)0;
 5571#line 216
 5572  __cil_tmp10 = (unsigned long )__cil_tmp9;
 5573#line 216
 5574  __cil_tmp11 = (unsigned long )dev;
 5575#line 216
 5576  if (__cil_tmp11 != __cil_tmp10) {
 5577#line 216
 5578    __mptr = (struct device  const  *)dev;
 5579#line 216
 5580    __cil_tmp12 = (struct usb_interface *)__mptr;
 5581#line 216
 5582    tmp = __cil_tmp12 + 1152921504606846928UL;
 5583  } else {
 5584#line 216
 5585    tmp = (struct usb_interface *)0;
 5586  }
 5587  }
 5588#line 216
 5589  return (tmp);
 5590}
 5591}
 5592#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"
 5593static void usb_release_dev(struct device *dev ) 
 5594{ struct usb_device *udev ;
 5595  struct usb_hcd *hcd ;
 5596  struct device  const  *__mptr ;
 5597  struct usb_device *__cil_tmp5 ;
 5598  struct usb_bus *__cil_tmp6 ;
 5599  char *__cil_tmp7 ;
 5600  void const   *__cil_tmp8 ;
 5601  char *__cil_tmp9 ;
 5602  void const   *__cil_tmp10 ;
 5603  char *__cil_tmp11 ;
 5604  void const   *__cil_tmp12 ;
 5605  void const   *__cil_tmp13 ;
 5606
 5607  {
 5608  {
 5609#line 232
 5610  __mptr = (struct device  const  *)dev;
 5611#line 232
 5612  __cil_tmp5 = (struct usb_device *)__mptr;
 5613#line 232
 5614  udev = __cil_tmp5 + 1152921504606846840UL;
 5615#line 233
 5616  __cil_tmp6 = udev->bus;
 5617#line 233
 5618  hcd = bus_to_hcd(__cil_tmp6);
 5619#line 235
 5620  usb_destroy_configuration(udev);
 5621#line 236
 5622  usb_put_hcd(hcd);
 5623#line 237
 5624  __cil_tmp7 = udev->product;
 5625#line 237
 5626  __cil_tmp8 = (void const   *)__cil_tmp7;
 5627#line 237
 5628  kfree(__cil_tmp8);
 5629#line 238
 5630  __cil_tmp9 = udev->manufacturer;
 5631#line 238
 5632  __cil_tmp10 = (void const   *)__cil_tmp9;
 5633#line 238
 5634  kfree(__cil_tmp10);
 5635#line 239
 5636  __cil_tmp11 = udev->serial;
 5637#line 239
 5638  __cil_tmp12 = (void const   *)__cil_tmp11;
 5639#line 239
 5640  kfree(__cil_tmp12);
 5641#line 240
 5642  __cil_tmp13 = (void const   *)udev;
 5643#line 240
 5644  kfree(__cil_tmp13);
 5645  }
 5646#line 241
 5647  return;
 5648}
 5649}
 5650#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"
 5651static int usb_dev_uevent(struct device *dev , struct kobj_uevent_env *env ) 
 5652{ struct usb_device *usb_dev ;
 5653  struct device  const  *__mptr ;
 5654  int tmp ;
 5655  int tmp___0 ;
 5656  struct usb_device *__cil_tmp7 ;
 5657  struct usb_bus *__cil_tmp8 ;
 5658  int __cil_tmp9 ;
 5659  int __cil_tmp10 ;
 5660
 5661  {
 5662  {
 5663#line 248
 5664  __mptr = (struct device  const  *)dev;
 5665#line 248
 5666  __cil_tmp7 = (struct usb_device *)__mptr;
 5667#line 248
 5668  usb_dev = __cil_tmp7 + 1152921504606846840UL;
 5669#line 250
 5670  __cil_tmp8 = usb_dev->bus;
 5671#line 250
 5672  __cil_tmp9 = __cil_tmp8->busnum;
 5673#line 250
 5674  tmp = add_uevent_var(env, "BUSNUM=%03d", __cil_tmp9);
 5675  }
 5676#line 250
 5677  if (tmp != 0) {
 5678#line 251
 5679    return (-12);
 5680  } else {
 5681
 5682  }
 5683  {
 5684#line 253
 5685  __cil_tmp10 = usb_dev->devnum;
 5686#line 253
 5687  tmp___0 = add_uevent_var(env, "DEVNUM=%03d", __cil_tmp10);
 5688  }
 5689#line 253
 5690  if (tmp___0 != 0) {
 5691#line 254
 5692    return (-12);
 5693  } else {
 5694
 5695  }
 5696#line 256
 5697  return (0);
 5698}
 5699}
 5700#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"
 5701static int usb_dev_prepare(struct device *dev ) 
 5702{ 
 5703
 5704  {
 5705#line 278
 5706  return (0);
 5707}
 5708}
 5709#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"
 5710static void usb_dev_complete(struct device *dev ) 
 5711{ struct pm_message __constr_expr_0 ;
 5712
 5713  {
 5714  {
 5715#line 284
 5716  __constr_expr_0.event = 0;
 5717#line 284
 5718  usb_resume(dev, __constr_expr_0);
 5719  }
 5720#line 285
 5721  return;
 5722}
 5723}
 5724#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"
 5725static int usb_dev_suspend(struct device *dev ) 
 5726{ struct pm_message __constr_expr_0 ;
 5727  int tmp ;
 5728
 5729  {
 5730  {
 5731#line 289
 5732  __constr_expr_0.event = 2;
 5733#line 289
 5734  tmp = usb_suspend(dev, __constr_expr_0);
 5735  }
 5736#line 289
 5737  return (tmp);
 5738}
 5739}
 5740#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"
 5741static int usb_dev_resume(struct device *dev ) 
 5742{ struct pm_message __constr_expr_0 ;
 5743  int tmp ;
 5744
 5745  {
 5746  {
 5747#line 294
 5748  __constr_expr_0.event = 16;
 5749#line 294
 5750  tmp = usb_resume(dev, __constr_expr_0);
 5751  }
 5752#line 294
 5753  return (tmp);
 5754}
 5755}
 5756#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"
 5757static int usb_dev_freeze(struct device *dev ) 
 5758{ struct pm_message __constr_expr_0 ;
 5759  int tmp ;
 5760
 5761  {
 5762  {
 5763#line 299
 5764  __constr_expr_0.event = 1;
 5765#line 299
 5766  tmp = usb_suspend(dev, __constr_expr_0);
 5767  }
 5768#line 299
 5769  return (tmp);
 5770}
 5771}
 5772#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"
 5773static int usb_dev_thaw(struct device *dev ) 
 5774{ struct pm_message __constr_expr_0 ;
 5775  int tmp ;
 5776
 5777  {
 5778  {
 5779#line 304
 5780  __constr_expr_0.event = 32;
 5781#line 304
 5782  tmp = usb_resume(dev, __constr_expr_0);
 5783  }
 5784#line 304
 5785  return (tmp);
 5786}
 5787}
 5788#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"
 5789static int usb_dev_poweroff(struct device *dev ) 
 5790{ struct pm_message __constr_expr_0 ;
 5791  int tmp ;
 5792
 5793  {
 5794  {
 5795#line 309
 5796  __constr_expr_0.event = 4;
 5797#line 309
 5798  tmp = usb_suspend(dev, __constr_expr_0);
 5799  }
 5800#line 309
 5801  return (tmp);
 5802}
 5803}
 5804#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"
 5805static int usb_dev_restore(struct device *dev ) 
 5806{ struct pm_message __constr_expr_0 ;
 5807  int tmp ;
 5808
 5809  {
 5810  {
 5811#line 314
 5812  __constr_expr_0.event = 64;
 5813#line 314
 5814  tmp = usb_resume(dev, __constr_expr_0);
 5815  }
 5816#line 314
 5817  return (tmp);
 5818}
 5819}
 5820#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"
 5821static struct dev_pm_ops  const  usb_device_pm_ops  = 
 5822#line 317
 5823     {& usb_dev_prepare, & usb_dev_complete, & usb_dev_suspend, & usb_dev_resume, & usb_dev_freeze,
 5824    & usb_dev_thaw, & usb_dev_poweroff, & usb_dev_restore, (int (*)(struct device * ))0,
 5825    (int (*)(struct device * ))0, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
 5826    (int (*)(struct device * ))0, (int (*)(struct device * ))0, & usb_runtime_suspend,
 5827    & usb_runtime_resume, & usb_runtime_idle};
 5828#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"
 5829static char *usb_devnode(struct device *dev , mode_t *mode ) 
 5830{ struct usb_device *usb_dev ;
 5831  struct device  const  *__mptr ;
 5832  char *tmp ;
 5833  struct usb_device *__cil_tmp6 ;
 5834  struct usb_bus *__cil_tmp7 ;
 5835  int __cil_tmp8 ;
 5836  int __cil_tmp9 ;
 5837
 5838  {
 5839  {
 5840#line 340
 5841  __mptr = (struct device  const  *)dev;
 5842#line 340
 5843  __cil_tmp6 = (struct usb_device *)__mptr;
 5844#line 340
 5845  usb_dev = __cil_tmp6 + 1152921504606846840UL;
 5846#line 341
 5847  __cil_tmp7 = usb_dev->bus;
 5848#line 341
 5849  __cil_tmp8 = __cil_tmp7->busnum;
 5850#line 341
 5851  __cil_tmp9 = usb_dev->devnum;
 5852#line 341
 5853  tmp = kasprintf(208U, "bus/usb/%03d/%03d", __cil_tmp8, __cil_tmp9);
 5854  }
 5855#line 341
 5856  return (tmp);
 5857}
 5858}
 5859#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"
 5860struct device_type usb_device_type  =    {"usb_device", (struct attribute_group  const  **)0, & usb_dev_uevent, & usb_devnode,
 5861    & usb_release_dev, & usb_device_pm_ops};
 5862#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"
 5863static unsigned int usb_bus_is_wusb(struct usb_bus *bus ) 
 5864{ struct usb_hcd *hcd ;
 5865  struct usb_bus  const  *__mptr ;
 5866  unsigned char __cil_tmp4 ;
 5867
 5868  {
 5869#line 359
 5870  __mptr = (struct usb_bus  const  *)bus;
 5871#line 359
 5872  hcd = (struct usb_hcd *)__mptr;
 5873  {
 5874#line 360
 5875  __cil_tmp4 = hcd->wireless;
 5876#line 360
 5877  return ((unsigned int )__cil_tmp4);
 5878  }
 5879}
 5880}
 5881#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"
 5882struct usb_device *usb_alloc_dev(struct usb_device *parent , struct usb_bus *bus ,
 5883                                 unsigned int port1 ) 
 5884{ struct usb_device *dev ;
 5885  struct usb_hcd *usb_hcd ;
 5886  struct usb_bus  const  *__mptr ;
 5887  unsigned int root_hub ;
 5888  void *tmp ;
 5889  struct usb_hcd *tmp___0 ;
 5890  struct usb_hcd *tmp___1 ;
 5891  struct usb_hcd *tmp___2 ;
 5892  int tmp___3 ;
 5893  int tmp___4 ;
 5894  long tmp___5 ;
 5895  unsigned int tmp___6 ;
 5896  struct usb_device *__cil_tmp16 ;
 5897  unsigned long __cil_tmp17 ;
 5898  unsigned long __cil_tmp18 ;
 5899  struct usb_hcd *__cil_tmp19 ;
 5900  unsigned long __cil_tmp20 ;
 5901  unsigned long __cil_tmp21 ;
 5902  void const   *__cil_tmp22 ;
 5903  int (*__cil_tmp23)(struct usb_hcd * , struct usb_device * ) ;
 5904  unsigned long __cil_tmp24 ;
 5905  struct hc_driver  const  *__cil_tmp25 ;
 5906  int (*__cil_tmp26)(struct usb_hcd * , struct usb_device * ) ;
 5907  unsigned long __cil_tmp27 ;
 5908  struct usb_device *__cil_tmp28 ;
 5909  unsigned long __cil_tmp29 ;
 5910  unsigned long __cil_tmp30 ;
 5911  struct hc_driver  const  *__cil_tmp31 ;
 5912  int (*__cil_tmp32)(struct usb_hcd * , struct usb_device * ) ;
 5913  void const   *__cil_tmp33 ;
 5914  struct device *__cil_tmp34 ;
 5915  struct device *__cil_tmp35 ;
 5916  struct device *__cil_tmp36 ;
 5917  struct device *__cil_tmp37 ;
 5918  atomic_t *__cil_tmp38 ;
 5919  struct list_head *__cil_tmp39 ;
 5920  struct usb_host_endpoint *__cil_tmp40 ;
 5921  bool __cil_tmp41 ;
 5922  struct usb_device *__cil_tmp42 ;
 5923  unsigned long __cil_tmp43 ;
 5924  unsigned long __cil_tmp44 ;
 5925  int __cil_tmp45 ;
 5926  long __cil_tmp46 ;
 5927  struct device *__cil_tmp47 ;
 5928  int __cil_tmp48 ;
 5929  char __cil_tmp49 ;
 5930  signed char __cil_tmp50 ;
 5931  int __cil_tmp51 ;
 5932  char (*__cil_tmp52)[16U] ;
 5933  char *__cil_tmp53 ;
 5934  char (*__cil_tmp54)[16U] ;
 5935  char *__cil_tmp55 ;
 5936  char (*__cil_tmp56)[16U] ;
 5937  char *__cil_tmp57 ;
 5938  u8 __cil_tmp58 ;
 5939  int __cil_tmp59 ;
 5940  int __cil_tmp60 ;
 5941  int __cil_tmp61 ;
 5942  unsigned int __cil_tmp62 ;
 5943  u32 __cil_tmp63 ;
 5944  u8 __cil_tmp64 ;
 5945  int __cil_tmp65 ;
 5946  int __cil_tmp66 ;
 5947  int __cil_tmp67 ;
 5948  int __cil_tmp68 ;
 5949  u32 __cil_tmp69 ;
 5950  u32 __cil_tmp70 ;
 5951  struct device *__cil_tmp71 ;
 5952  int __cil_tmp72 ;
 5953  char (*__cil_tmp73)[16U] ;
 5954  char *__cil_tmp74 ;
 5955  struct list_head *__cil_tmp75 ;
 5956  struct device *__cil_tmp76 ;
 5957  int __cil_tmp77 ;
 5958  unsigned long volatile   __cil_tmp78 ;
 5959  int __cil_tmp79 ;
 5960
 5961  {
 5962  {
 5963#line 380
 5964  __mptr = (struct usb_bus  const  *)bus;
 5965#line 380
 5966  usb_hcd = (struct usb_hcd *)__mptr;
 5967#line 381
 5968  root_hub = 0U;
 5969#line 383
 5970  tmp = kzalloc(1928UL, 208U);
 5971#line 383
 5972  dev = (struct usb_device *)tmp;
 5973  }
 5974  {
 5975#line 384
 5976  __cil_tmp16 = (struct usb_device *)0;
 5977#line 384
 5978  __cil_tmp17 = (unsigned long )__cil_tmp16;
 5979#line 384
 5980  __cil_tmp18 = (unsigned long )dev;
 5981#line 384
 5982  if (__cil_tmp18 == __cil_tmp17) {
 5983#line 385
 5984    return ((struct usb_device *)0);
 5985  } else {
 5986
 5987  }
 5988  }
 5989  {
 5990#line 387
 5991  tmp___0 = bus_to_hcd(bus);
 5992#line 387
 5993  tmp___1 = usb_get_hcd(tmp___0);
 5994  }
 5995  {
 5996#line 387
 5997  __cil_tmp19 = (struct usb_hcd *)0;
 5998#line 387
 5999  __cil_tmp20 = (unsigned long )__cil_tmp19;
 6000#line 387
 6001  __cil_tmp21 = (unsigned long )tmp___1;
 6002#line 387
 6003  if (__cil_tmp21 == __cil_tmp20) {
 6004    {
 6005#line 388
 6006    __cil_tmp22 = (void const   *)dev;
 6007#line 388
 6008    kfree(__cil_tmp22);
 6009    }
 6010#line 389
 6011    return ((struct usb_device *)0);
 6012  } else {
 6013
 6014  }
 6015  }
 6016  {
 6017#line 392
 6018  __cil_tmp23 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
 6019#line 392
 6020  __cil_tmp24 = (unsigned long )__cil_tmp23;
 6021#line 392
 6022  __cil_tmp25 = usb_hcd->driver;
 6023#line 392
 6024  __cil_tmp26 = __cil_tmp25->alloc_dev;
 6025#line 392
 6026  __cil_tmp27 = (unsigned long )__cil_tmp26;
 6027#line 392
 6028  if (__cil_tmp27 != __cil_tmp24) {
 6029    {
 6030#line 392
 6031    __cil_tmp28 = (struct usb_device *)0;
 6032#line 392
 6033    __cil_tmp29 = (unsigned long )__cil_tmp28;
 6034#line 392
 6035    __cil_tmp30 = (unsigned long )parent;
 6036#line 392
 6037    if (__cil_tmp30 != __cil_tmp29) {
 6038      {
 6039#line 392
 6040      __cil_tmp31 = usb_hcd->driver;
 6041#line 392
 6042      __cil_tmp32 = __cil_tmp31->alloc_dev;
 6043#line 392
 6044      tmp___3 = (*__cil_tmp32)(usb_hcd, dev);
 6045      }
 6046#line 392
 6047      if (tmp___3 == 0) {
 6048        {
 6049#line 394
 6050        tmp___2 = bus_to_hcd(bus);
 6051#line 394
 6052        usb_put_hcd(tmp___2);
 6053#line 395
 6054        __cil_tmp33 = (void const   *)dev;
 6055#line 395
 6056        kfree(__cil_tmp33);
 6057        }
 6058#line 396
 6059        return ((struct usb_device *)0);
 6060      } else {
 6061
 6062      }
 6063    } else {
 6064
 6065    }
 6066    }
 6067  } else {
 6068
 6069  }
 6070  }
 6071  {
 6072#line 399
 6073  __cil_tmp34 = & dev->dev;
 6074#line 399
 6075  device_initialize(__cil_tmp34);
 6076#line 400
 6077  dev->dev.bus = & usb_bus_type;
 6078#line 401
 6079  dev->dev.type = (struct device_type  const  *)(& usb_device_type);
 6080#line 402
 6081  dev->dev.groups = (struct attribute_group  const  **)(& usb_device_groups);
 6082#line 403
 6083  __cil_tmp35 = bus->controller;
 6084#line 403
 6085  dev->dev.dma_mask = __cil_tmp35->dma_mask;
 6086#line 404
 6087  __cil_tmp36 = bus->controller;
 6088#line 404
 6089  tmp___4 = dev_to_node(__cil_tmp36);
 6090#line 404
 6091  __cil_tmp37 = & dev->dev;
 6092#line 404
 6093  set_dev_node(__cil_tmp37, tmp___4);
 6094#line 405
 6095  dev->state = (enum usb_device_state )1;
 6096#line 406
 6097  __cil_tmp38 = & dev->urbnum;
 6098#line 406
 6099  atomic_set(__cil_tmp38, 0);
 6100#line 408
 6101  __cil_tmp39 = & dev->ep0.urb_list;
 6102#line 408
 6103  INIT_LIST_HEAD(__cil_tmp39);
 6104#line 409
 6105  dev->ep0.desc.bLength = (__u8 )7U;
 6106#line 410
 6107  dev->ep0.desc.bDescriptorType = (__u8 )5U;
 6108#line 412
 6109  __cil_tmp40 = & dev->ep0;
 6110#line 412
 6111  __cil_tmp41 = (bool )0;
 6112#line 412
 6113  usb_enable_endpoint(dev, __cil_tmp40, __cil_tmp41);
 6114#line 413
 6115  dev->can_submit = (unsigned char)1;
 6116#line 423
 6117  __cil_tmp42 = (struct usb_device *)0;
 6118#line 423
 6119  __cil_tmp43 = (unsigned long )__cil_tmp42;
 6120#line 423
 6121  __cil_tmp44 = (unsigned long )parent;
 6122#line 423
 6123  __cil_tmp45 = __cil_tmp44 == __cil_tmp43;
 6124#line 423
 6125  __cil_tmp46 = (long )__cil_tmp45;
 6126#line 423
 6127  tmp___5 = __builtin_expect(__cil_tmp46, 0L);
 6128  }
 6129#line 423
 6130  if (tmp___5 != 0L) {
 6131    {
 6132#line 424
 6133    dev->devpath[0] = (char)48;
 6134#line 425
 6135    dev->route = 0U;
 6136#line 427
 6137    dev->dev.parent = bus->controller;
 6138#line 428
 6139    __cil_tmp47 = & dev->dev;
 6140#line 428
 6141    __cil_tmp48 = bus->busnum;
 6142#line 428
 6143    dev_set_name(__cil_tmp47, "usb%d", __cil_tmp48);
 6144#line 429
 6145    root_hub = 1U;
 6146    }
 6147  } else {
 6148    {
 6149#line 432
 6150    __cil_tmp49 = parent->devpath[0];
 6151#line 432
 6152    __cil_tmp50 = (signed char )__cil_tmp49;
 6153#line 432
 6154    __cil_tmp51 = (int )__cil_tmp50;
 6155#line 432
 6156    if (__cil_tmp51 == 48) {
 6157      {
 6158#line 433
 6159      __cil_tmp52 = & dev->devpath;
 6160#line 433
 6161      __cil_tmp53 = (char *)__cil_tmp52;
 6162#line 433
 6163      snprintf(__cil_tmp53, 16UL, "%d", port1);
 6164#line 436
 6165      dev->route = 0U;
 6166      }
 6167    } else {
 6168      {
 6169#line 438
 6170      __cil_tmp54 = & dev->devpath;
 6171#line 438
 6172      __cil_tmp55 = (char *)__cil_tmp54;
 6173#line 438
 6174      __cil_tmp56 = & parent->devpath;
 6175#line 438
 6176      __cil_tmp57 = (char *)__cil_tmp56;
 6177#line 438
 6178      snprintf(__cil_tmp55, 16UL, "%s.%d", __cil_tmp57, port1);
 6179      }
 6180#line 441
 6181      if (port1 <= 14U) {
 6182#line 442
 6183        __cil_tmp58 = parent->level;
 6184#line 442
 6185        __cil_tmp59 = (int )__cil_tmp58;
 6186#line 442
 6187        __cil_tmp60 = __cil_tmp59 + -1;
 6188#line 442
 6189        __cil_tmp61 = __cil_tmp60 * 4;
 6190#line 442
 6191        __cil_tmp62 = port1 << __cil_tmp61;
 6192#line 442
 6193        __cil_tmp63 = parent->route;
 6194#line 442
 6195        dev->route = __cil_tmp63 + __cil_tmp62;
 6196      } else {
 6197#line 445
 6198        __cil_tmp64 = parent->level;
 6199#line 445
 6200        __cil_tmp65 = (int )__cil_tmp64;
 6201#line 445
 6202        __cil_tmp66 = __cil_tmp65 + -1;
 6203#line 445
 6204        __cil_tmp67 = __cil_tmp66 * 4;
 6205#line 445
 6206        __cil_tmp68 = 15 << __cil_tmp67;
 6207#line 445
 6208        __cil_tmp69 = (u32 )__cil_tmp68;
 6209#line 445
 6210        __cil_tmp70 = parent->route;
 6211#line 445
 6212        dev->route = __cil_tmp70 + __cil_tmp69;
 6213      }
 6214    }
 6215    }
 6216    {
 6217#line 449
 6218    dev->dev.parent = & parent->dev;
 6219#line 450
 6220    __cil_tmp71 = & dev->dev;
 6221#line 450
 6222    __cil_tmp72 = bus->busnum;
 6223#line 450
 6224    __cil_tmp73 = & dev->devpath;
 6225#line 450
 6226    __cil_tmp74 = (char *)__cil_tmp73;
 6227#line 450
 6228    dev_set_name(__cil_tmp71, "%d-%s", __cil_tmp72, __cil_tmp74);
 6229    }
 6230  }
 6231  {
 6232#line 455
 6233  dev->portnum = (u8 )port1;
 6234#line 456
 6235  dev->bus = bus;
 6236#line 457
 6237  dev->parent = parent;
 6238#line 458
 6239  __cil_tmp75 = & dev->filelist;
 6240#line 458
 6241  INIT_LIST_HEAD(__cil_tmp75);
 6242#line 461
 6243  __cil_tmp76 = & dev->dev;
 6244#line 461
 6245  __cil_tmp77 = usb_autosuspend_delay * 1000;
 6246#line 461
 6247  pm_runtime_set_autosuspend_delay(__cil_tmp76, __cil_tmp77);
 6248#line 463
 6249  dev->connect_time = (unsigned long )jiffies;
 6250#line 464
 6251  __cil_tmp78 = - jiffies;
 6252#line 464
 6253  dev->active_duration = (unsigned long )__cil_tmp78;
 6254  }
 6255#line 466
 6256  if (root_hub != 0U) {
 6257#line 467
 6258    dev->authorized = (unsigned char)1;
 6259  } else {
 6260    {
 6261#line 469
 6262    dev->authorized = usb_hcd->authorized_default;
 6263#line 470
 6264    tmp___6 = usb_bus_is_wusb(bus);
 6265#line 470
 6266    __cil_tmp79 = tmp___6 != 0U;
 6267#line 470
 6268    dev->wusb = (unsigned char )__cil_tmp79;
 6269    }
 6270  }
 6271#line 472
 6272  return (dev);
 6273}
 6274}
 6275#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"
 6276struct usb_device *usb_get_dev(struct usb_device *dev ) 
 6277{ struct usb_device *__cil_tmp2 ;
 6278  unsigned long __cil_tmp3 ;
 6279  unsigned long __cil_tmp4 ;
 6280  struct device *__cil_tmp5 ;
 6281
 6282  {
 6283  {
 6284#line 489
 6285  __cil_tmp2 = (struct usb_device *)0;
 6286#line 489
 6287  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6288#line 489
 6289  __cil_tmp4 = (unsigned long )dev;
 6290#line 489
 6291  if (__cil_tmp4 != __cil_tmp3) {
 6292    {
 6293#line 490
 6294    __cil_tmp5 = & dev->dev;
 6295#line 490
 6296    get_device(__cil_tmp5);
 6297    }
 6298  } else {
 6299
 6300  }
 6301  }
 6302#line 491
 6303  return (dev);
 6304}
 6305}
 6306#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"
 6307void usb_put_dev(struct usb_device *dev ) 
 6308{ struct usb_device *__cil_tmp2 ;
 6309  unsigned long __cil_tmp3 ;
 6310  unsigned long __cil_tmp4 ;
 6311  struct device *__cil_tmp5 ;
 6312
 6313  {
 6314  {
 6315#line 504
 6316  __cil_tmp2 = (struct usb_device *)0;
 6317#line 504
 6318  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6319#line 504
 6320  __cil_tmp4 = (unsigned long )dev;
 6321#line 504
 6322  if (__cil_tmp4 != __cil_tmp3) {
 6323    {
 6324#line 505
 6325    __cil_tmp5 = & dev->dev;
 6326#line 505
 6327    put_device(__cil_tmp5);
 6328    }
 6329  } else {
 6330
 6331  }
 6332  }
 6333#line 506
 6334  return;
 6335}
 6336}
 6337#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"
 6338struct usb_interface *usb_get_intf(struct usb_interface *intf ) 
 6339{ struct usb_interface *__cil_tmp2 ;
 6340  unsigned long __cil_tmp3 ;
 6341  unsigned long __cil_tmp4 ;
 6342  struct device *__cil_tmp5 ;
 6343
 6344  {
 6345  {
 6346#line 524
 6347  __cil_tmp2 = (struct usb_interface *)0;
 6348#line 524
 6349  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6350#line 524
 6351  __cil_tmp4 = (unsigned long )intf;
 6352#line 524
 6353  if (__cil_tmp4 != __cil_tmp3) {
 6354    {
 6355#line 525
 6356    __cil_tmp5 = & intf->dev;
 6357#line 525
 6358    get_device(__cil_tmp5);
 6359    }
 6360  } else {
 6361
 6362  }
 6363  }
 6364#line 526
 6365  return (intf);
 6366}
 6367}
 6368#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"
 6369void usb_put_intf(struct usb_interface *intf ) 
 6370{ struct usb_interface *__cil_tmp2 ;
 6371  unsigned long __cil_tmp3 ;
 6372  unsigned long __cil_tmp4 ;
 6373  struct device *__cil_tmp5 ;
 6374
 6375  {
 6376  {
 6377#line 540
 6378  __cil_tmp2 = (struct usb_interface *)0;
 6379#line 540
 6380  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6381#line 540
 6382  __cil_tmp4 = (unsigned long )intf;
 6383#line 540
 6384  if (__cil_tmp4 != __cil_tmp3) {
 6385    {
 6386#line 541
 6387    __cil_tmp5 = & intf->dev;
 6388#line 541
 6389    put_device(__cil_tmp5);
 6390    }
 6391  } else {
 6392
 6393  }
 6394  }
 6395#line 542
 6396  return;
 6397}
 6398}
 6399#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"
 6400int usb_lock_device_for_reset(struct usb_device *udev , struct usb_interface  const  *iface ) 
 6401{ unsigned long jiffies_expire ;
 6402  int tmp ;
 6403  unsigned long __cil_tmp5 ;
 6404  enum usb_device_state __cil_tmp6 ;
 6405  unsigned int __cil_tmp7 ;
 6406  enum usb_device_state __cil_tmp8 ;
 6407  unsigned int __cil_tmp9 ;
 6408  struct usb_interface  const  *__cil_tmp10 ;
 6409  unsigned long __cil_tmp11 ;
 6410  unsigned long __cil_tmp12 ;
 6411  enum usb_interface_condition __cil_tmp13 ;
 6412  unsigned int __cil_tmp14 ;
 6413  enum usb_interface_condition __cil_tmp15 ;
 6414  unsigned int __cil_tmp16 ;
 6415  long __cil_tmp17 ;
 6416  long __cil_tmp18 ;
 6417  long __cil_tmp19 ;
 6418  enum usb_device_state __cil_tmp20 ;
 6419  unsigned int __cil_tmp21 ;
 6420  enum usb_device_state __cil_tmp22 ;
 6421  unsigned int __cil_tmp23 ;
 6422  struct usb_interface  const  *__cil_tmp24 ;
 6423  unsigned long __cil_tmp25 ;
 6424  unsigned long __cil_tmp26 ;
 6425  enum usb_interface_condition __cil_tmp27 ;
 6426  unsigned int __cil_tmp28 ;
 6427  enum usb_interface_condition __cil_tmp29 ;
 6428  unsigned int __cil_tmp30 ;
 6429  struct device *__cil_tmp31 ;
 6430
 6431  {
 6432#line 578
 6433  __cil_tmp5 = (unsigned long )jiffies;
 6434#line 578
 6435  jiffies_expire = __cil_tmp5 + 250UL;
 6436  {
 6437#line 580
 6438  __cil_tmp6 = udev->state;
 6439#line 580
 6440  __cil_tmp7 = (unsigned int )__cil_tmp6;
 6441#line 580
 6442  if (__cil_tmp7 == 0U) {
 6443#line 581
 6444    return (-19);
 6445  } else {
 6446
 6447  }
 6448  }
 6449  {
 6450#line 582
 6451  __cil_tmp8 = udev->state;
 6452#line 582
 6453  __cil_tmp9 = (unsigned int )__cil_tmp8;
 6454#line 582
 6455  if (__cil_tmp9 == 8U) {
 6456#line 583
 6457    return (-113);
 6458  } else {
 6459
 6460  }
 6461  }
 6462  {
 6463#line 584
 6464  __cil_tmp10 = (struct usb_interface  const  *)0;
 6465#line 584
 6466  __cil_tmp11 = (unsigned long )__cil_tmp10;
 6467#line 584
 6468  __cil_tmp12 = (unsigned long )iface;
 6469#line 584
 6470  if (__cil_tmp12 != __cil_tmp11) {
 6471    {
 6472#line 584
 6473    __cil_tmp13 = iface->condition;
 6474#line 584
 6475    __cil_tmp14 = (unsigned int )__cil_tmp13;
 6476#line 584
 6477    if (__cil_tmp14 == 3U) {
 6478#line 586
 6479      return (-4);
 6480    } else {
 6481      {
 6482#line 584
 6483      __cil_tmp15 = iface->condition;
 6484#line 584
 6485      __cil_tmp16 = (unsigned int )__cil_tmp15;
 6486#line 584
 6487      if (__cil_tmp16 == 0U) {
 6488#line 586
 6489        return (-4);
 6490      } else {
 6491
 6492      }
 6493      }
 6494    }
 6495    }
 6496  } else {
 6497
 6498  }
 6499  }
 6500#line 588
 6501  goto ldv_27630;
 6502  ldv_27629: ;
 6503  {
 6504#line 592
 6505  __cil_tmp17 = (long )jiffies;
 6506#line 592
 6507  __cil_tmp18 = (long )jiffies_expire;
 6508#line 592
 6509  __cil_tmp19 = __cil_tmp18 - __cil_tmp17;
 6510#line 592
 6511  if (__cil_tmp19 < 0L) {
 6512#line 593
 6513    return (-16);
 6514  } else {
 6515
 6516  }
 6517  }
 6518  {
 6519#line 595
 6520  msleep(15U);
 6521  }
 6522  {
 6523#line 596
 6524  __cil_tmp20 = udev->state;
 6525#line 596
 6526  __cil_tmp21 = (unsigned int )__cil_tmp20;
 6527#line 596
 6528  if (__cil_tmp21 == 0U) {
 6529#line 597
 6530    return (-19);
 6531  } else {
 6532
 6533  }
 6534  }
 6535  {
 6536#line 598
 6537  __cil_tmp22 = udev->state;
 6538#line 598
 6539  __cil_tmp23 = (unsigned int )__cil_tmp22;
 6540#line 598
 6541  if (__cil_tmp23 == 8U) {
 6542#line 599
 6543    return (-113);
 6544  } else {
 6545
 6546  }
 6547  }
 6548  {
 6549#line 600
 6550  __cil_tmp24 = (struct usb_interface  const  *)0;
 6551#line 600
 6552  __cil_tmp25 = (unsigned long )__cil_tmp24;
 6553#line 600
 6554  __cil_tmp26 = (unsigned long )iface;
 6555#line 600
 6556  if (__cil_tmp26 != __cil_tmp25) {
 6557    {
 6558#line 600
 6559    __cil_tmp27 = iface->condition;
 6560#line 600
 6561    __cil_tmp28 = (unsigned int )__cil_tmp27;
 6562#line 600
 6563    if (__cil_tmp28 == 3U) {
 6564#line 602
 6565      return (-4);
 6566    } else {
 6567      {
 6568#line 600
 6569      __cil_tmp29 = iface->condition;
 6570#line 600
 6571      __cil_tmp30 = (unsigned int )__cil_tmp29;
 6572#line 600
 6573      if (__cil_tmp30 == 0U) {
 6574#line 602
 6575        return (-4);
 6576      } else {
 6577
 6578      }
 6579      }
 6580    }
 6581    }
 6582  } else {
 6583
 6584  }
 6585  }
 6586  ldv_27630: 
 6587  {
 6588#line 588
 6589  __cil_tmp31 = & udev->dev;
 6590#line 588
 6591  tmp = device_trylock(__cil_tmp31);
 6592  }
 6593#line 588
 6594  if (tmp == 0) {
 6595#line 589
 6596    goto ldv_27629;
 6597  } else {
 6598#line 591
 6599    goto ldv_27631;
 6600  }
 6601  ldv_27631: ;
 6602#line 604
 6603  return (0);
 6604}
 6605}
 6606#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"
 6607int usb_get_current_frame_number(struct usb_device *dev ) 
 6608{ int tmp ;
 6609
 6610  {
 6611  {
 6612#line 623
 6613  tmp = usb_hcd_get_frame_number(dev);
 6614  }
 6615#line 623
 6616  return (tmp);
 6617}
 6618}
 6619#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"
 6620int __usb_get_extra_descriptor(char *buffer , unsigned int size , unsigned char type ,
 6621                               void **ptr ) 
 6622{ struct usb_descriptor_header *header ;
 6623  __u8 __cil_tmp6 ;
 6624  unsigned int __cil_tmp7 ;
 6625  __u8 __cil_tmp8 ;
 6626  int __cil_tmp9 ;
 6627  __u8 __cil_tmp10 ;
 6628  int __cil_tmp11 ;
 6629  int __cil_tmp12 ;
 6630  __u8 __cil_tmp13 ;
 6631  int __cil_tmp14 ;
 6632  __u8 __cil_tmp15 ;
 6633  unsigned long __cil_tmp16 ;
 6634  __u8 __cil_tmp17 ;
 6635  unsigned int __cil_tmp18 ;
 6636
 6637  {
 6638#line 638
 6639  goto ldv_27656;
 6640  ldv_27655: 
 6641#line 639
 6642  header = (struct usb_descriptor_header *)buffer;
 6643  {
 6644#line 641
 6645  __cil_tmp6 = header->bLength;
 6646#line 641
 6647  __cil_tmp7 = (unsigned int )__cil_tmp6;
 6648#line 641
 6649  if (__cil_tmp7 <= 1U) {
 6650    {
 6651#line 642
 6652    __cil_tmp8 = header->bDescriptorType;
 6653#line 642
 6654    __cil_tmp9 = (int )__cil_tmp8;
 6655#line 642
 6656    __cil_tmp10 = header->bLength;
 6657#line 642
 6658    __cil_tmp11 = (int )__cil_tmp10;
 6659#line 642
 6660    printk("<3>%s: bogus descriptor, type %d length %d\n", usbcore_name, __cil_tmp9,
 6661           __cil_tmp11);
 6662    }
 6663#line 647
 6664    return (-1);
 6665  } else {
 6666
 6667  }
 6668  }
 6669  {
 6670#line 650
 6671  __cil_tmp12 = (int )type;
 6672#line 650
 6673  __cil_tmp13 = header->bDescriptorType;
 6674#line 650
 6675  __cil_tmp14 = (int )__cil_tmp13;
 6676#line 650
 6677  if (__cil_tmp14 == __cil_tmp12) {
 6678#line 651
 6679    *ptr = (void *)header;
 6680#line 652
 6681    return (0);
 6682  } else {
 6683
 6684  }
 6685  }
 6686#line 655
 6687  __cil_tmp15 = header->bLength;
 6688#line 655
 6689  __cil_tmp16 = (unsigned long )__cil_tmp15;
 6690#line 655
 6691  buffer = buffer + __cil_tmp16;
 6692#line 656
 6693  __cil_tmp17 = header->bLength;
 6694#line 656
 6695  __cil_tmp18 = (unsigned int )__cil_tmp17;
 6696#line 656
 6697  size = size - __cil_tmp18;
 6698  ldv_27656: ;
 6699#line 638
 6700  if (size > 1U) {
 6701#line 639
 6702    goto ldv_27655;
 6703  } else {
 6704#line 641
 6705    goto ldv_27657;
 6706  }
 6707  ldv_27657: ;
 6708#line 658
 6709  return (-1);
 6710}
 6711}
 6712#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"
 6713void *usb_alloc_coherent(struct usb_device *dev , size_t size , gfp_t mem_flags ,
 6714                         dma_addr_t *dma ) 
 6715{ void *tmp ;
 6716  struct usb_device *__cil_tmp6 ;
 6717  unsigned long __cil_tmp7 ;
 6718  unsigned long __cil_tmp8 ;
 6719  struct usb_bus *__cil_tmp9 ;
 6720  unsigned long __cil_tmp10 ;
 6721  struct usb_bus *__cil_tmp11 ;
 6722  unsigned long __cil_tmp12 ;
 6723  struct usb_bus *__cil_tmp13 ;
 6724
 6725  {
 6726  {
 6727#line 687
 6728  __cil_tmp6 = (struct usb_device *)0;
 6729#line 687
 6730  __cil_tmp7 = (unsigned long )__cil_tmp6;
 6731#line 687
 6732  __cil_tmp8 = (unsigned long )dev;
 6733#line 687
 6734  if (__cil_tmp8 == __cil_tmp7) {
 6735#line 688
 6736    return ((void *)0);
 6737  } else {
 6738    {
 6739#line 687
 6740    __cil_tmp9 = (struct usb_bus *)0;
 6741#line 687
 6742    __cil_tmp10 = (unsigned long )__cil_tmp9;
 6743#line 687
 6744    __cil_tmp11 = dev->bus;
 6745#line 687
 6746    __cil_tmp12 = (unsigned long )__cil_tmp11;
 6747#line 687
 6748    if (__cil_tmp12 == __cil_tmp10) {
 6749#line 688
 6750      return ((void *)0);
 6751    } else {
 6752
 6753    }
 6754    }
 6755  }
 6756  }
 6757  {
 6758#line 689
 6759  __cil_tmp13 = dev->bus;
 6760#line 689
 6761  tmp = hcd_buffer_alloc(__cil_tmp13, size, mem_flags, dma);
 6762  }
 6763#line 689
 6764  return (tmp);
 6765}
 6766}
 6767#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"
 6768void usb_free_coherent(struct usb_device *dev , size_t size , void *addr , dma_addr_t dma ) 
 6769{ struct usb_device *__cil_tmp5 ;
 6770  unsigned long __cil_tmp6 ;
 6771  unsigned long __cil_tmp7 ;
 6772  struct usb_bus *__cil_tmp8 ;
 6773  unsigned long __cil_tmp9 ;
 6774  struct usb_bus *__cil_tmp10 ;
 6775  unsigned long __cil_tmp11 ;
 6776  void *__cil_tmp12 ;
 6777  unsigned long __cil_tmp13 ;
 6778  unsigned long __cil_tmp14 ;
 6779  struct usb_bus *__cil_tmp15 ;
 6780
 6781  {
 6782  {
 6783#line 707
 6784  __cil_tmp5 = (struct usb_device *)0;
 6785#line 707
 6786  __cil_tmp6 = (unsigned long )__cil_tmp5;
 6787#line 707
 6788  __cil_tmp7 = (unsigned long )dev;
 6789#line 707
 6790  if (__cil_tmp7 == __cil_tmp6) {
 6791#line 708
 6792    return;
 6793  } else {
 6794    {
 6795#line 707
 6796    __cil_tmp8 = (struct usb_bus *)0;
 6797#line 707
 6798    __cil_tmp9 = (unsigned long )__cil_tmp8;
 6799#line 707
 6800    __cil_tmp10 = dev->bus;
 6801#line 707
 6802    __cil_tmp11 = (unsigned long )__cil_tmp10;
 6803#line 707
 6804    if (__cil_tmp11 == __cil_tmp9) {
 6805#line 708
 6806      return;
 6807    } else {
 6808
 6809    }
 6810    }
 6811  }
 6812  }
 6813  {
 6814#line 709
 6815  __cil_tmp12 = (void *)0;
 6816#line 709
 6817  __cil_tmp13 = (unsigned long )__cil_tmp12;
 6818#line 709
 6819  __cil_tmp14 = (unsigned long )addr;
 6820#line 709
 6821  if (__cil_tmp14 == __cil_tmp13) {
 6822#line 710
 6823    return;
 6824  } else {
 6825
 6826  }
 6827  }
 6828  {
 6829#line 711
 6830  __cil_tmp15 = dev->bus;
 6831#line 711
 6832  hcd_buffer_free(__cil_tmp15, size, addr, dma);
 6833  }
 6834#line 712
 6835  return;
 6836}
 6837}
 6838#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"
 6839int usb_disabled(void) 
 6840{ 
 6841
 6842  {
 6843#line 947
 6844  return (nousb);
 6845}
 6846}
 6847#line 1109
 6848void ldv_check_final_state(void) ;
 6849#line 1115
 6850extern void ldv_initialize(void) ;
 6851#line 1118
 6852extern int nondet_int(void) ;
 6853#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"
 6854int LDV_IN_INTERRUPT  ;
 6855#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"
 6856void ldv_blast_assert(void) 
 6857{ 
 6858
 6859  {
 6860  ERROR: ;
 6861#line 6
 6862  goto ERROR;
 6863}
 6864}
 6865#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"
 6866extern int ldv_undefined_int(void) ;
 6867#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"
 6868int ldv_module_refcounter  =    1;
 6869#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"
 6870void ldv_module_get(struct module *module ) 
 6871{ struct module *__cil_tmp2 ;
 6872  unsigned long __cil_tmp3 ;
 6873  unsigned long __cil_tmp4 ;
 6874
 6875  {
 6876  {
 6877#line 2292
 6878  __cil_tmp2 = (struct module *)0;
 6879#line 2292
 6880  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6881#line 2292
 6882  __cil_tmp4 = (unsigned long )module;
 6883#line 2292
 6884  if (__cil_tmp4 != __cil_tmp3) {
 6885#line 2294
 6886    ldv_module_refcounter = ldv_module_refcounter + 1;
 6887  } else {
 6888
 6889  }
 6890  }
 6891#line 2295
 6892  return;
 6893}
 6894}
 6895#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"
 6896int ldv_try_module_get(struct module *module ) 
 6897{ int module_get_succeeded ;
 6898  struct module *__cil_tmp3 ;
 6899  unsigned long __cil_tmp4 ;
 6900  unsigned long __cil_tmp5 ;
 6901
 6902  {
 6903  {
 6904#line 2304
 6905  __cil_tmp3 = (struct module *)0;
 6906#line 2304
 6907  __cil_tmp4 = (unsigned long )__cil_tmp3;
 6908#line 2304
 6909  __cil_tmp5 = (unsigned long )module;
 6910#line 2304
 6911  if (__cil_tmp5 != __cil_tmp4) {
 6912    {
 6913#line 2307
 6914    module_get_succeeded = ldv_undefined_int();
 6915    }
 6916#line 2309
 6917    if (module_get_succeeded == 1) {
 6918#line 2311
 6919      ldv_module_refcounter = ldv_module_refcounter + 1;
 6920#line 2313
 6921      return (1);
 6922    } else {
 6923#line 2318
 6924      return (0);
 6925    }
 6926  } else {
 6927
 6928  }
 6929  }
 6930#line 2320
 6931  return (0);
 6932}
 6933}
 6934#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"
 6935void ldv_module_put(struct module *module ) 
 6936{ struct module *__cil_tmp2 ;
 6937  unsigned long __cil_tmp3 ;
 6938  unsigned long __cil_tmp4 ;
 6939
 6940  {
 6941  {
 6942#line 2327
 6943  __cil_tmp2 = (struct module *)0;
 6944#line 2327
 6945  __cil_tmp3 = (unsigned long )__cil_tmp2;
 6946#line 2327
 6947  __cil_tmp4 = (unsigned long )module;
 6948#line 2327
 6949  if (__cil_tmp4 != __cil_tmp3) {
 6950#line 2329
 6951    if (ldv_module_refcounter <= 1) {
 6952      {
 6953#line 2329
 6954      ldv_blast_assert();
 6955      }
 6956    } else {
 6957
 6958    }
 6959#line 2331
 6960    ldv_module_refcounter = ldv_module_refcounter - 1;
 6961  } else {
 6962
 6963  }
 6964  }
 6965#line 2333
 6966  return;
 6967}
 6968}
 6969#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"
 6970void ldv_module_put_and_exit(void) 
 6971{ struct module *__cil_tmp1 ;
 6972
 6973  {
 6974  {
 6975#line 2338
 6976  __cil_tmp1 = (struct module *)1;
 6977#line 2338
 6978  ldv_module_put(__cil_tmp1);
 6979  }
 6980  LDV_STOP: ;
 6981#line 2340
 6982  goto LDV_STOP;
 6983}
 6984}
 6985#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"
 6986unsigned int ldv_module_refcount(void) 
 6987{ int __cil_tmp1 ;
 6988
 6989  {
 6990  {
 6991#line 2347
 6992  __cil_tmp1 = ldv_module_refcounter + -1;
 6993#line 2347
 6994  return ((unsigned int )__cil_tmp1);
 6995  }
 6996}
 6997}
 6998#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"
 6999void ldv_check_final_state(void) 
 7000{ 
 7001
 7002  {
 7003#line 2354
 7004  if (ldv_module_refcounter != 1) {
 7005    {
 7006#line 2354
 7007    ldv_blast_assert();
 7008    }
 7009  } else {
 7010
 7011  }
 7012#line 2357
 7013  return;
 7014}
 7015}
 7016#line 47 "include/linux/list.h"
 7017extern void __list_add(struct list_head * , struct list_head * , struct list_head * ) ;
 7018#line 74 "include/linux/list.h"
 7019__inline static void list_add_tail(struct list_head *new , struct list_head *head ) 
 7020{ struct list_head *__cil_tmp3 ;
 7021
 7022  {
 7023  {
 7024#line 76
 7025  __cil_tmp3 = head->prev;
 7026#line 76
 7027  __list_add(new, __cil_tmp3, head);
 7028  }
 7029#line 77
 7030  return;
 7031}
 7032}
 7033#line 111
 7034extern void __list_del_entry(struct list_head * ) ;
 7035#line 112
 7036extern void list_del(struct list_head * ) ;
 7037#line 142 "include/linux/list.h"
 7038__inline static void list_del_init(struct list_head *entry ) 
 7039{ 
 7040
 7041  {
 7042  {
 7043#line 144
 7044  __list_del_entry(entry);
 7045#line 145
 7046  INIT_LIST_HEAD(entry);
 7047  }
 7048#line 146
 7049  return;
 7050}
 7051}
 7052#line 186 "include/linux/list.h"
 7053__inline static int list_empty(struct list_head  const  *head ) 
 7054{ unsigned long __cil_tmp2 ;
 7055  struct list_head *__cil_tmp3 ;
 7056  struct list_head  const  *__cil_tmp4 ;
 7057  unsigned long __cil_tmp5 ;
 7058
 7059  {
 7060  {
 7061#line 188
 7062  __cil_tmp2 = (unsigned long )head;
 7063#line 188
 7064  __cil_tmp3 = head->next;
 7065#line 188
 7066  __cil_tmp4 = (struct list_head  const  *)__cil_tmp3;
 7067#line 188
 7068  __cil_tmp5 = (unsigned long )__cil_tmp4;
 7069#line 188
 7070  return (__cil_tmp5 == __cil_tmp2);
 7071  }
 7072}
 7073}
 7074#line 60 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
 7075__inline static void set_bit(unsigned int nr , unsigned long volatile   *addr ) 
 7076{ long volatile   *__cil_tmp3 ;
 7077
 7078  {
 7079#line 68
 7080  __cil_tmp3 = (long volatile   *)addr;
 7081#line 68
 7082  __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");
 7083#line 70
 7084  return;
 7085}
 7086}
 7087#line 98 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
 7088__inline static void clear_bit(int nr , unsigned long volatile   *addr ) 
 7089{ long volatile   *__cil_tmp3 ;
 7090
 7091  {
 7092#line 105
 7093  __cil_tmp3 = (long volatile   *)addr;
 7094#line 105
 7095  __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));
 7096#line 107
 7097  return;
 7098}
 7099}
 7100#line 246 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
 7101__inline static int test_and_clear_bit(int nr , unsigned long volatile   *addr ) 
 7102{ int oldbit ;
 7103  long volatile   *__cil_tmp4 ;
 7104
 7105  {
 7106#line 250
 7107  __cil_tmp4 = (long volatile   *)addr;
 7108#line 250
 7109  __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),
 7110                       "+m" (*__cil_tmp4): "Ir" (nr): "memory");
 7111#line 254
 7112  return (oldbit);
 7113}
 7114}
 7115#line 315 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
 7116__inline static int variable_test_bit(int nr , unsigned long const volatile   *addr ) 
 7117{ int oldbit ;
 7118  unsigned long *__cil_tmp4 ;
 7119
 7120  {
 7121#line 319
 7122  __cil_tmp4 = (unsigned long *)addr;
 7123#line 319
 7124  __asm__  volatile   ("bt %2,%1\n\tsbb %0,%0": "=r" (oldbit): "m" (*__cil_tmp4),
 7125                       "Ir" (nr));
 7126#line 324
 7127  return (oldbit);
 7128}
 7129}
 7130#line 22 "include/asm-generic/bitops/find.h"
 7131extern unsigned long find_next_zero_bit(unsigned long const   * , unsigned long  ,
 7132                                        unsigned long  ) ;
 7133#line 108 "include/linux/printk.h"
 7134extern int __printk_ratelimit(char const   * ) ;
 7135#line 69 "include/asm-generic/bug.h"
 7136extern void warn_slowpath_null(char const   * , int  ) ;
 7137#line 88 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/percpu.h"
 7138extern void __bad_percpu_size(void) ;
 7139#line 10 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
 7140extern struct task_struct *current_task ;
 7141#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/current.h"
 7142__inline static struct task_struct *get_current(void) 
 7143{ struct task_struct *pfo_ret__ ;
 7144
 7145  {
 7146#line 14
 7147  if (1) {
 7148#line 14
 7149    goto case_8;
 7150  } else {
 7151#line 14
 7152    goto switch_default;
 7153#line 14
 7154    if (0) {
 7155#line 14
 7156      __asm__  ("movb %%gs:%P1,%0": "=q" (pfo_ret__): "p" (& current_task));
 7157#line 14
 7158      goto ldv_2386;
 7159#line 14
 7160      __asm__  ("movw %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task));
 7161#line 14
 7162      goto ldv_2386;
 7163#line 14
 7164      __asm__  ("movl %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task));
 7165#line 14
 7166      goto ldv_2386;
 7167      case_8: 
 7168#line 14
 7169      __asm__  ("movq %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& current_task));
 7170#line 14
 7171      goto ldv_2386;
 7172      switch_default: 
 7173      {
 7174#line 14
 7175      __bad_percpu_size();
 7176      }
 7177    } else {
 7178
 7179    }
 7180  }
 7181  ldv_2386: ;
 7182#line 14
 7183  return (pfo_ret__);
 7184}
 7185}
 7186#line 60 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/string_64.h"
 7187extern int memcmp(void const   * , void const   * , size_t  ) ;
 7188#line 61
 7189extern size_t strlen(char const   * ) ;
 7190#line 118 "include/linux/string.h"
 7191extern char *kstrdup(char const   * , gfp_t  ) ;
 7192#line 32 "include/linux/err.h"
 7193__inline static long IS_ERR(void const   *ptr ) 
 7194{ long tmp ;
 7195  unsigned long __cil_tmp3 ;
 7196  int __cil_tmp4 ;
 7197  long __cil_tmp5 ;
 7198
 7199  {
 7200  {
 7201#line 34
 7202  __cil_tmp3 = (unsigned long )ptr;
 7203#line 34
 7204  __cil_tmp4 = __cil_tmp3 > 1152921504606842880UL;
 7205#line 34
 7206  __cil_tmp5 = (long )__cil_tmp4;
 7207#line 34
 7208  tmp = __builtin_expect(__cil_tmp5, 0L);
 7209  }
 7210#line 34
 7211  return (tmp);
 7212}
 7213}
 7214#line 93 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
 7215__inline static void atomic_inc(atomic_t *v ) 
 7216{ 
 7217
 7218  {
 7219#line 95
 7220  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; incl %0": "+m" (v->counter));
 7221#line 97
 7222  return;
 7223}
 7224}
 7225#line 82 "include/linux/thread_info.h"
 7226__inline static int test_ti_thread_flag(struct thread_info *ti , int flag ) 
 7227{ int tmp ;
 7228  __u32 *__cil_tmp4 ;
 7229  unsigned long const volatile   *__cil_tmp5 ;
 7230
 7231  {
 7232  {
 7233#line 84
 7234  __cil_tmp4 = & ti->flags;
 7235#line 84
 7236  __cil_tmp5 = (unsigned long const volatile   *)__cil_tmp4;
 7237#line 84
 7238  tmp = variable_test_bit(flag, __cil_tmp5);
 7239  }
 7240#line 84
 7241  return (tmp);
 7242}
 7243}
 7244#line 261 "include/linux/lockdep.h"
 7245extern void lockdep_init_map(struct lockdep_map * , char const   * , struct lock_class_key * ,
 7246                             int  ) ;
 7247#line 93 "include/linux/spinlock.h"
 7248extern void __raw_spin_lock_init(raw_spinlock_t * , char const   * , struct lock_class_key * ) ;
 7249#line 29 "include/linux/spinlock_api_smp.h"
 7250extern void _raw_spin_lock_irq(raw_spinlock_t * ) ;
 7251#line 32
 7252extern unsigned long _raw_spin_lock_irqsave(raw_spinlock_t * ) ;
 7253#line 41
 7254extern void _raw_spin_unlock_irq(raw_spinlock_t * ) ;
 7255#line 43
 7256extern void _raw_spin_unlock_irqrestore(raw_spinlock_t * , unsigned long  ) ;
 7257#line 272 "include/linux/spinlock.h"
 7258__inline static raw_spinlock_t *spinlock_check(spinlock_t *lock ) 
 7259{ 
 7260
 7261  {
 7262#line 274
 7263  return (& lock->ldv_6060.rlock);
 7264}
 7265}
 7266#line 308 "include/linux/spinlock.h"
 7267__inline static void spin_lock_irq(spinlock_t *lock ) 
 7268{ struct raw_spinlock *__cil_tmp2 ;
 7269
 7270  {
 7271  {
 7272#line 310
 7273  __cil_tmp2 = & lock->ldv_6060.rlock;
 7274#line 310
 7275  _raw_spin_lock_irq(__cil_tmp2);
 7276  }
 7277#line 311
 7278  return;
 7279}
 7280}
 7281#line 333 "include/linux/spinlock.h"
 7282__inline static void spin_unlock_irq(spinlock_t *lock ) 
 7283{ struct raw_spinlock *__cil_tmp2 ;
 7284
 7285  {
 7286  {
 7287#line 335
 7288  __cil_tmp2 = & lock->ldv_6060.rlock;
 7289#line 335
 7290  _raw_spin_unlock_irq(__cil_tmp2);
 7291  }
 7292#line 336
 7293  return;
 7294}
 7295}
 7296#line 338 "include/linux/spinlock.h"
 7297__inline static void spin_unlock_irqrestore(spinlock_t *lock , unsigned long flags ) 
 7298{ struct raw_spinlock *__cil_tmp3 ;
 7299
 7300  {
 7301  {
 7302#line 340
 7303  __cil_tmp3 = & lock->ldv_6060.rlock;
 7304#line 340
 7305  _raw_spin_unlock_irqrestore(__cil_tmp3, flags);
 7306  }
 7307#line 341
 7308  return;
 7309}
 7310}
 7311#line 156 "include/linux/wait.h"
 7312extern void __wake_up(wait_queue_head_t * , unsigned int  , int  , void * ) ;
 7313#line 584
 7314extern void prepare_to_wait(wait_queue_head_t * , wait_queue_t * , int  ) ;
 7315#line 586
 7316extern void finish_wait(wait_queue_head_t * , wait_queue_t * ) ;
 7317#line 589
 7318extern int autoremove_wake_function(wait_queue_t * , unsigned int  , int  , void * ) ;
 7319#line 115 "include/linux/mutex.h"
 7320extern void __mutex_init(struct mutex * , char const   * , struct lock_class_key * ) ;
 7321#line 134
 7322extern void mutex_lock_nested(struct mutex * , unsigned int  ) ;
 7323#line 169
 7324extern void mutex_unlock(struct mutex * ) ;
 7325#line 79 "include/linux/rwsem.h"
 7326extern void down_read(struct rw_semaphore * ) ;
 7327#line 99
 7328extern void up_read(struct rw_semaphore * ) ;
 7329#line 298 "include/linux/jiffies.h"
 7330extern unsigned long msecs_to_jiffies(unsigned int  ) ;
 7331#line 91 "include/linux/timer.h"
 7332extern void init_timer_key(struct timer_list * , char const   * , struct lock_class_key * ) ;
 7333#line 156 "include/linux/workqueue.h"
 7334extern void __init_work(struct work_struct * , int  ) ;
 7335#line 360
 7336extern int schedule_work(struct work_struct * ) ;
 7337#line 362
 7338extern int schedule_delayed_work(struct delayed_work * , unsigned long  ) ;
 7339#line 372
 7340extern bool cancel_work_sync(struct work_struct * ) ;
 7341#line 376
 7342extern bool cancel_delayed_work_sync(struct delayed_work * ) ;
 7343#line 24 "include/linux/kref.h"
 7344extern void kref_init(struct kref * ) ;
 7345#line 25
 7346extern void kref_get(struct kref * ) ;
 7347#line 26
 7348extern int kref_put(struct kref * , void (*)(struct kref * ) ) ;
 7349#line 361 "include/linux/sched.h"
 7350extern void schedule(void) ;
 7351#line 2112
 7352extern int wake_up_process(struct task_struct * ) ;
 7353#line 2441 "include/linux/sched.h"
 7354__inline static int test_tsk_thread_flag(struct task_struct *tsk , int flag ) 
 7355{ int tmp ;
 7356  void *__cil_tmp4 ;
 7357  struct thread_info *__cil_tmp5 ;
 7358
 7359  {
 7360  {
 7361#line 2443
 7362  __cil_tmp4 = tsk->stack;
 7363#line 2443
 7364  __cil_tmp5 = (struct thread_info *)__cil_tmp4;
 7365#line 2443
 7366  tmp = test_ti_thread_flag(__cil_tmp5, flag);
 7367  }
 7368#line 2443
 7369  return (tmp);
 7370}
 7371}
 7372#line 2467 "include/linux/sched.h"
 7373__inline static int signal_pending(struct task_struct *p ) 
 7374{ int tmp ;
 7375  long tmp___0 ;
 7376  int __cil_tmp4 ;
 7377  long __cil_tmp5 ;
 7378
 7379  {
 7380  {
 7381#line 2469
 7382  tmp = test_tsk_thread_flag(p, 2);
 7383#line 2469
 7384  __cil_tmp4 = tmp != 0;
 7385#line 2469
 7386  __cil_tmp5 = (long )__cil_tmp4;
 7387#line 2469
 7388  tmp___0 = __builtin_expect(__cil_tmp5, 0L);
 7389  }
 7390#line 2469
 7391  return ((int )tmp___0);
 7392}
 7393}
 7394#line 424 "include/linux/usb/ch9.h"
 7395__inline static int usb_endpoint_dir_in(struct usb_endpoint_descriptor  const  *epd ) 
 7396{ __u8 __cil_tmp2 ;
 7397  signed char __cil_tmp3 ;
 7398  int __cil_tmp4 ;
 7399
 7400  {
 7401  {
 7402#line 426
 7403  __cil_tmp2 = epd->bEndpointAddress;
 7404#line 426
 7405  __cil_tmp3 = (signed char )__cil_tmp2;
 7406#line 426
 7407  __cil_tmp4 = (int )__cil_tmp3;
 7408#line 426
 7409  return (__cil_tmp4 < 0);
 7410  }
 7411}
 7412}
 7413#line 474 "include/linux/usb/ch9.h"
 7414__inline static int usb_endpoint_xfer_int(struct usb_endpoint_descriptor  const  *epd ) 
 7415{ __u8 __cil_tmp2 ;
 7416  int __cil_tmp3 ;
 7417  int __cil_tmp4 ;
 7418
 7419  {
 7420  {
 7421#line 477
 7422  __cil_tmp2 = epd->bmAttributes;
 7423#line 477
 7424  __cil_tmp3 = (int )__cil_tmp2;
 7425#line 477
 7426  __cil_tmp4 = __cil_tmp3 & 3;
 7427#line 477
 7428  return (__cil_tmp4 == 3);
 7429  }
 7430}
 7431}
 7432#line 528 "include/linux/usb/ch9.h"
 7433__inline static int usb_endpoint_is_int_in(struct usb_endpoint_descriptor  const  *epd ) 
 7434{ int tmp ;
 7435  int tmp___0 ;
 7436  int tmp___1 ;
 7437
 7438  {
 7439  {
 7440#line 531
 7441  tmp = usb_endpoint_xfer_int(epd);
 7442  }
 7443#line 531
 7444  if (tmp != 0) {
 7445    {
 7446#line 531
 7447    tmp___0 = usb_endpoint_dir_in(epd);
 7448    }
 7449#line 531
 7450    if (tmp___0 != 0) {
 7451#line 531
 7452      tmp___1 = 1;
 7453    } else {
 7454#line 531
 7455      tmp___1 = 0;
 7456    }
 7457  } else {
 7458#line 531
 7459    tmp___1 = 0;
 7460  }
 7461#line 531
 7462  return (tmp___1);
 7463}
 7464}
 7465#line 84 "include/linux/pm_wakeup.h"
 7466extern void device_set_wakeup_capable(struct device * , bool  ) ;
 7467#line 85
 7468extern int device_init_wakeup(struct device * , bool  ) ;
 7469#line 654 "include/linux/device.h"
 7470__inline static void device_enable_async_suspend(struct device *dev ) 
 7471{ bool __cil_tmp2 ;
 7472
 7473  {
 7474  {
 7475#line 656
 7476  __cil_tmp2 = dev->power.is_prepared;
 7477#line 656
 7478  if (! __cil_tmp2) {
 7479#line 657
 7480    dev->power.async_suspend = (unsigned char)1;
 7481  } else {
 7482
 7483  }
 7484  }
 7485#line 658
 7486  return;
 7487}
 7488}
 7489#line 671 "include/linux/device.h"
 7490__inline static void device_lock(struct device *dev ) 
 7491{ struct mutex *__cil_tmp2 ;
 7492
 7493  {
 7494  {
 7495#line 673
 7496  __cil_tmp2 = & dev->mutex;
 7497#line 673
 7498  mutex_lock_nested(__cil_tmp2, 0U);
 7499  }
 7500#line 674
 7501  return;
 7502}
 7503}
 7504#line 681 "include/linux/device.h"
 7505__inline static void device_unlock(struct device *dev ) 
 7506{ struct mutex *__cil_tmp2 ;
 7507
 7508  {
 7509  {
 7510#line 683
 7511  __cil_tmp2 = & dev->mutex;
 7512#line 683
 7513  mutex_unlock(__cil_tmp2);
 7514  }
 7515#line 684
 7516  return;
 7517}
 7518}
 7519#line 694
 7520extern int device_add(struct device * ) ;
 7521#line 695
 7522extern void device_del(struct device * ) ;
 7523#line 705
 7524extern void *dev_get_drvdata(struct device  const  * ) ;
 7525#line 706
 7526extern int dev_set_drvdata(struct device * , void * ) ;
 7527#line 788
 7528extern int dev_printk(char const   * , struct device  const  * , char const   *  , ...) ;
 7529#line 797
 7530extern int dev_err(struct device  const  * , char const   *  , ...) ;
 7531#line 799
 7532extern int dev_warn(struct device  const  * , char const   *  , ...) ;
 7533#line 803
 7534extern int _dev_info(struct device  const  * , char const   *  , ...) ;
 7535#line 30 "include/linux/pm_runtime.h"
 7536extern int __pm_runtime_suspend(struct device * , int  ) ;
 7537#line 33
 7538extern int __pm_runtime_set_status(struct device * , unsigned int  ) ;
 7539#line 35
 7540extern void pm_runtime_enable(struct device * ) ;
 7541#line 36
 7542extern void __pm_runtime_disable(struct device * , bool  ) ;
 7543#line 44
 7544extern void __pm_runtime_use_autosuspend(struct device * , bool  ) ;
 7545#line 59 "include/linux/pm_runtime.h"
 7546__inline static void pm_runtime_get_noresume(struct device *dev ) 
 7547{ atomic_t *__cil_tmp2 ;
 7548
 7549  {
 7550  {
 7551#line 61
 7552  __cil_tmp2 = & dev->power.usage_count;
 7553#line 61
 7554  atomic_inc(__cil_tmp2);
 7555  }
 7556#line 62
 7557  return;
 7558}
 7559}
 7560#line 95 "include/linux/pm_runtime.h"
 7561__inline static void pm_runtime_mark_last_busy(struct device *dev ) 
 7562{ unsigned long *__cil_tmp2 ;
 7563  unsigned long volatile   *__cil_tmp3 ;
 7564
 7565  {
 7566#line 97
 7567  __cil_tmp2 = & dev->power.last_busy;
 7568#line 97
 7569  __cil_tmp3 = (unsigned long volatile   *)__cil_tmp2;
 7570#line 97
 7571  *__cil_tmp3 = jiffies;
 7572#line 98
 7573  return;
 7574}
 7575}
 7576#line 218 "include/linux/pm_runtime.h"
 7577__inline static int pm_runtime_put_sync_autosuspend(struct device *dev ) 
 7578{ int tmp ;
 7579
 7580  {
 7581  {
 7582#line 220
 7583  tmp = __pm_runtime_suspend(dev, 12);
 7584  }
 7585#line 220
 7586  return (tmp);
 7587}
 7588}
 7589#line 223 "include/linux/pm_runtime.h"
 7590__inline static int pm_runtime_set_active(struct device *dev ) 
 7591{ int tmp ;
 7592
 7593  {
 7594  {
 7595#line 225
 7596  tmp = __pm_runtime_set_status(dev, 0U);
 7597  }
 7598#line 225
 7599  return (tmp);
 7600}
 7601}
 7602#line 228 "include/linux/pm_runtime.h"
 7603__inline static void pm_runtime_set_suspended(struct device *dev ) 
 7604{ 
 7605
 7606  {
 7607  {
 7608#line 230
 7609  __pm_runtime_set_status(dev, 2U);
 7610  }
 7611#line 231
 7612  return;
 7613}
 7614}
 7615#line 233 "include/linux/pm_runtime.h"
 7616__inline static void pm_runtime_disable(struct device *dev ) 
 7617{ bool __cil_tmp2 ;
 7618
 7619  {
 7620  {
 7621#line 235
 7622  __cil_tmp2 = (bool )1;
 7623#line 235
 7624  __pm_runtime_disable(dev, __cil_tmp2);
 7625  }
 7626#line 236
 7627  return;
 7628}
 7629}
 7630#line 238 "include/linux/pm_runtime.h"
 7631__inline static void pm_runtime_use_autosuspend(struct device *dev ) 
 7632{ bool __cil_tmp2 ;
 7633
 7634  {
 7635  {
 7636#line 240
 7637  __cil_tmp2 = (bool )1;
 7638#line 240
 7639  __pm_runtime_use_autosuspend(dev, __cil_tmp2);
 7640  }
 7641#line 241
 7642  return;
 7643}
 7644}
 7645#line 191 "include/linux/usb.h"
 7646__inline static void *usb_get_intfdata(struct usb_interface *intf ) 
 7647{ void *tmp ;
 7648  struct device *__cil_tmp3 ;
 7649  struct device  const  *__cil_tmp4 ;
 7650
 7651  {
 7652  {
 7653#line 193
 7654  __cil_tmp3 = & intf->dev;
 7655#line 193
 7656  __cil_tmp4 = (struct device  const  *)__cil_tmp3;
 7657#line 193
 7658  tmp = dev_get_drvdata(__cil_tmp4);
 7659  }
 7660#line 193
 7661  return (tmp);
 7662}
 7663}
 7664#line 196 "include/linux/usb.h"
 7665__inline static void usb_set_intfdata(struct usb_interface *intf , void *data ) 
 7666{ struct device *__cil_tmp3 ;
 7667
 7668  {
 7669  {
 7670#line 198
 7671  __cil_tmp3 = & intf->dev;
 7672#line 198
 7673  dev_set_drvdata(__cil_tmp3, data);
 7674  }
 7675#line 199
 7676  return;
 7677}
 7678}
 7679#line 497 "include/linux/usb.h"
 7680__inline static struct usb_device *interface_to_usbdev(struct usb_interface *intf ) 
 7681{ struct device  const  *__mptr ;
 7682  struct device *__cil_tmp3 ;
 7683  struct usb_device *__cil_tmp4 ;
 7684
 7685  {
 7686#line 499
 7687  __cil_tmp3 = intf->dev.parent;
 7688#line 499
 7689  __mptr = (struct device  const  *)__cil_tmp3;
 7690  {
 7691#line 499
 7692  __cil_tmp4 = (struct usb_device *)__mptr;
 7693#line 499
 7694  return (__cil_tmp4 + 1152921504606846840UL);
 7695  }
 7696}
 7697}
 7698#line 513
 7699int usb_reset_device(struct usb_device *udev ) ;
 7700#line 514
 7701void usb_queue_reset_device(struct usb_interface *iface ) ;
 7702#line 519
 7703void usb_enable_autosuspend(struct usb_device *udev ) ;
 7704#line 520
 7705void usb_disable_autosuspend(struct usb_device *udev ) ;
 7706#line 522
 7707int usb_autopm_get_interface(struct usb_interface *intf ) ;
 7708#line 523
 7709void usb_autopm_put_interface(struct usb_interface *intf ) ;
 7710#line 525
 7711void usb_autopm_put_interface_async(struct usb_interface *intf ) ;
 7712#line 526
 7713void usb_autopm_get_interface_no_resume(struct usb_interface *intf ) ;
 7714#line 527
 7715void usb_autopm_put_interface_no_suspend(struct usb_interface *intf ) ;
 7716#line 529 "include/linux/usb.h"
 7717__inline static void usb_mark_last_busy(struct usb_device *udev ) 
 7718{ struct device *__cil_tmp2 ;
 7719
 7720  {
 7721  {
 7722#line 531
 7723  __cil_tmp2 = & udev->dev;
 7724#line 531
 7725  pm_runtime_mark_last_busy(__cil_tmp2);
 7726  }
 7727#line 532
 7728  return;
 7729}
 7730}
 7731#line 1309 "include/linux/usb.h"
 7732__inline static void usb_fill_int_urb(struct urb *urb , struct usb_device *dev , unsigned int pipe ,
 7733                                      void *transfer_buffer , int buffer_length ,
 7734                                      void (*complete_fn)(struct urb * ) , void *context ,
 7735                                      int interval ) 
 7736{ enum usb_device_speed __cil_tmp9 ;
 7737  unsigned int __cil_tmp10 ;
 7738  int __cil_tmp11 ;
 7739  enum usb_device_speed __cil_tmp12 ;
 7740  unsigned int __cil_tmp13 ;
 7741  int __cil_tmp14 ;
 7742
 7743  {
 7744#line 1318
 7745  urb->dev = dev;
 7746#line 1319
 7747  urb->pipe = pipe;
 7748#line 1320
 7749  urb->transfer_buffer = transfer_buffer;
 7750#line 1321
 7751  urb->transfer_buffer_length = (u32 )buffer_length;
 7752#line 1322
 7753  urb->complete = complete_fn;
 7754#line 1323
 7755  urb->context = context;
 7756  {
 7757#line 1324
 7758  __cil_tmp9 = dev->speed;
 7759#line 1324
 7760  __cil_tmp10 = (unsigned int )__cil_tmp9;
 7761#line 1324
 7762  if (__cil_tmp10 == 3U) {
 7763#line 1325
 7764    __cil_tmp11 = interval + -1;
 7765#line 1325
 7766    urb->interval = 1 << __cil_tmp11;
 7767  } else {
 7768    {
 7769#line 1324
 7770    __cil_tmp12 = dev->speed;
 7771#line 1324
 7772    __cil_tmp13 = (unsigned int )__cil_tmp12;
 7773#line 1324
 7774    if (__cil_tmp13 == 5U) {
 7775#line 1325
 7776      __cil_tmp14 = interval + -1;
 7777#line 1325
 7778      urb->interval = 1 << __cil_tmp14;
 7779    } else {
 7780#line 1327
 7781      urb->interval = interval;
 7782    }
 7783    }
 7784  }
 7785  }
 7786#line 1328
 7787  urb->start_frame = -1;
 7788#line 1329
 7789  return;
 7790}
 7791}
 7792#line 1332
 7793struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) ;
 7794#line 1333
 7795void usb_free_urb(struct urb *urb ) ;
 7796#line 1336
 7797int usb_submit_urb(struct urb *urb , gfp_t mem_flags ) ;
 7798#line 1338
 7799void usb_kill_urb(struct urb *urb ) ;
 7800#line 1402
 7801int usb_control_msg(struct usb_device *dev , unsigned int pipe , __u8 request , __u8 requesttype ,
 7802                    __u16 value , __u16 index , void *data , __u16 size , int timeout ) ;
 7803#line 1412
 7804int usb_get_descriptor(struct usb_device *dev , unsigned char type , unsigned char index ,
 7805                       void *buf , int size ) ;
 7806#line 1414
 7807int usb_get_status(struct usb_device *dev , int type , int target , void *data ) ;
 7808#line 1416
 7809int usb_string(struct usb_device *dev , int index , char *buf , size_t size ) ;
 7810#line 1422
 7811int usb_set_interface(struct usb_device *dev , int interface , int alternate ) ;
 7812#line 1526 "include/linux/usb.h"
 7813__inline static unsigned int __create_pipe(struct usb_device *dev , unsigned int endpoint ) 
 7814{ unsigned int __cil_tmp3 ;
 7815  int __cil_tmp4 ;
 7816  int __cil_tmp5 ;
 7817  unsigned int __cil_tmp6 ;
 7818
 7819  {
 7820  {
 7821#line 1529
 7822  __cil_tmp3 = endpoint << 15;
 7823#line 1529
 7824  __cil_tmp4 = dev->devnum;
 7825#line 1529
 7826  __cil_tmp5 = __cil_tmp4 << 8;
 7827#line 1529
 7828  __cil_tmp6 = (unsigned int )__cil_tmp5;
 7829#line 1529
 7830  return (__cil_tmp6 | __cil_tmp3);
 7831  }
 7832}
 7833}
 7834#line 1561 "include/linux/usb.h"
 7835__inline static __u16 usb_maxpacket(struct usb_device *udev , int pipe , int is_out ) 
 7836{ struct usb_host_endpoint *ep ;
 7837  unsigned int epnum ;
 7838  int __ret_warn_on ;
 7839  long tmp ;
 7840  int __ret_warn_on___0 ;
 7841  long tmp___0 ;
 7842  int __cil_tmp10 ;
 7843  unsigned int __cil_tmp11 ;
 7844  int __cil_tmp12 ;
 7845  int __cil_tmp13 ;
 7846  long __cil_tmp14 ;
 7847  int __cil_tmp15 ;
 7848  int __cil_tmp16 ;
 7849  int __cil_tmp17 ;
 7850  long __cil_tmp18 ;
 7851  int __cil_tmp19 ;
 7852  int __cil_tmp20 ;
 7853  long __cil_tmp21 ;
 7854  int __cil_tmp22 ;
 7855  int __cil_tmp23 ;
 7856  int __cil_tmp24 ;
 7857  long __cil_tmp25 ;
 7858  struct usb_host_endpoint *__cil_tmp26 ;
 7859  unsigned long __cil_tmp27 ;
 7860  unsigned long __cil_tmp28 ;
 7861
 7862  {
 7863#line 1564
 7864  __cil_tmp10 = pipe >> 15;
 7865#line 1564
 7866  __cil_tmp11 = (unsigned int )__cil_tmp10;
 7867#line 1564
 7868  epnum = __cil_tmp11 & 15U;
 7869#line 1566
 7870  if (is_out != 0) {
 7871    {
 7872#line 1567
 7873    __cil_tmp12 = pipe & 128;
 7874#line 1567
 7875    __ret_warn_on = __cil_tmp12 != 0;
 7876#line 1567
 7877    __cil_tmp13 = __ret_warn_on != 0;
 7878#line 1567
 7879    __cil_tmp14 = (long )__cil_tmp13;
 7880#line 1567
 7881    tmp = __builtin_expect(__cil_tmp14, 0L);
 7882    }
 7883#line 1567
 7884    if (tmp != 0L) {
 7885      {
 7886#line 1567
 7887      __cil_tmp15 = (int const   )1567;
 7888#line 1567
 7889      __cil_tmp16 = (int )__cil_tmp15;
 7890#line 1567
 7891      warn_slowpath_null("include/linux/usb.h", __cil_tmp16);
 7892      }
 7893    } else {
 7894
 7895    }
 7896    {
 7897#line 1567
 7898    __cil_tmp17 = __ret_warn_on != 0;
 7899#line 1567
 7900    __cil_tmp18 = (long )__cil_tmp17;
 7901#line 1567
 7902    __builtin_expect(__cil_tmp18, 0L);
 7903#line 1568
 7904    ep = udev->ep_out[epnum];
 7905    }
 7906  } else {
 7907    {
 7908#line 1570
 7909    __cil_tmp19 = pipe & 128;
 7910#line 1570
 7911    __ret_warn_on___0 = __cil_tmp19 == 0;
 7912#line 1570
 7913    __cil_tmp20 = __ret_warn_on___0 != 0;
 7914#line 1570
 7915    __cil_tmp21 = (long )__cil_tmp20;
 7916#line 1570
 7917    tmp___0 = __builtin_expect(__cil_tmp21, 0L);
 7918    }
 7919#line 1570
 7920    if (tmp___0 != 0L) {
 7921      {
 7922#line 1570
 7923      __cil_tmp22 = (int const   )1570;
 7924#line 1570
 7925      __cil_tmp23 = (int )__cil_tmp22;
 7926#line 1570
 7927      warn_slowpath_null("include/linux/usb.h", __cil_tmp23);
 7928      }
 7929    } else {
 7930
 7931    }
 7932    {
 7933#line 1570
 7934    __cil_tmp24 = __ret_warn_on___0 != 0;
 7935#line 1570
 7936    __cil_tmp25 = (long )__cil_tmp24;
 7937#line 1570
 7938    __builtin_expect(__cil_tmp25, 0L);
 7939#line 1571
 7940    ep = udev->ep_in[epnum];
 7941    }
 7942  }
 7943  {
 7944#line 1573
 7945  __cil_tmp26 = (struct usb_host_endpoint *)0;
 7946#line 1573
 7947  __cil_tmp27 = (unsigned long )__cil_tmp26;
 7948#line 1573
 7949  __cil_tmp28 = (unsigned long )ep;
 7950#line 1573
 7951  if (__cil_tmp28 == __cil_tmp27) {
 7952#line 1574
 7953    return ((__u16 )0U);
 7954  } else {
 7955
 7956  }
 7957  }
 7958#line 1577
 7959  return (ep->desc.wMaxPacketSize);
 7960}
 7961}
 7962#line 367 "include/linux/usb/hcd.h"
 7963void usb_hcd_synchronize_unlinks(struct usb_device *udev ) ;
 7964#line 368
 7965int usb_hcd_alloc_bandwidth(struct usb_device *udev , struct usb_host_config *new_config ,
 7966                            struct usb_host_interface *cur_alt , struct usb_host_interface *new_alt ) ;
 7967#line 429
 7968int usb_new_device(struct usb_device *udev ) ;
 7969#line 430
 7970void usb_disconnect(struct usb_device **pdev ) ;
 7971#line 432
 7972int usb_get_configuration(struct usb_device *dev ) ;
 7973#line 475
 7974int usb_hub_clear_tt_buffer(struct urb *urb ) ;
 7975#line 476
 7976void usb_ep0_reinit(struct usb_device *udev ) ;
 7977#line 553
 7978void usb_set_device_state(struct usb_device *udev , enum usb_device_state new_state ) ;
 7979#line 570
 7980void usb_root_hub_lost_power(struct usb_device *rhdev ) ;
 7981#line 664
 7982struct rw_semaphore ehci_cf_port_reset_rwsem ;
 7983#line 7 "include/linux/kthread.h"
 7984extern struct task_struct *kthread_create_on_node(int (*)(void * ) , void * , int  ,
 7985                                                  char const   *  , ...) ;
 7986#line 36
 7987extern int kthread_stop(struct task_struct * ) ;
 7988#line 37
 7989extern int kthread_should_stop(void) ;
 7990#line 21 "include/linux/freezer.h"
 7991__inline static int freezing(struct task_struct *p ) 
 7992{ int tmp ;
 7993
 7994  {
 7995  {
 7996#line 23
 7997  tmp = test_tsk_thread_flag(p, 23);
 7998  }
 7999#line 23
 8000  return (tmp);
 8001}
 8002}
 8003#line 50
 8004extern void refrigerator(void) ;
 8005#line 54 "include/linux/freezer.h"
 8006__inline static int try_to_freeze(void) 
 8007{ struct task_struct *tmp ;
 8008  int tmp___0 ;
 8009
 8010  {
 8011  {
 8012#line 56
 8013  tmp = get_current();
 8014#line 56
 8015  tmp___0 = freezing(tmp);
 8016  }
 8017#line 56
 8018  if (tmp___0 != 0) {
 8019    {
 8020#line 57
 8021    refrigerator();
 8022    }
 8023#line 58
 8024    return (1);
 8025  } else {
 8026#line 60
 8027    return (0);
 8028  }
 8029}
 8030}
 8031#line 122 "include/linux/freezer.h"
 8032__inline static void set_freezable(void) 
 8033{ struct task_struct *tmp ;
 8034  unsigned int __cil_tmp2 ;
 8035
 8036  {
 8037  {
 8038#line 124
 8039  tmp = get_current();
 8040#line 124
 8041  __cil_tmp2 = tmp->flags;
 8042#line 124
 8043  tmp->flags = __cil_tmp2 & 4294934527U;
 8044  }
 8045#line 125
 8046  return;
 8047}
 8048}
 8049#line 9 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
 8050int usb_create_ep_devs(struct device *parent , struct usb_host_endpoint *endpoint ,
 8051                       struct usb_device *udev ) ;
 8052#line 12
 8053void usb_remove_ep_devs(struct usb_host_endpoint *endpoint ) ;
 8054#line 16
 8055void usb_enable_interface(struct usb_device *dev , struct usb_interface *intf , bool reset_eps ) ;
 8056#line 18
 8057void usb_disable_endpoint(struct usb_device *dev , unsigned int epaddr , bool reset_hardware ) ;
 8058#line 20
 8059void usb_disable_interface(struct usb_device *dev , struct usb_interface *intf , bool reset_hardware ) ;
 8060#line 23
 8061void usb_disable_device(struct usb_device *dev , int skip_ep0 ) ;
 8062#line 24
 8063int usb_deauthorize_device(struct usb_device *usb_dev ) ;
 8064#line 25
 8065int usb_authorize_device(struct usb_device *usb_dev ) ;
 8066#line 26
 8067void usb_detect_quirks(struct usb_device *udev ) ;
 8068#line 27
 8069int usb_remove_device(struct usb_device *udev ) ;
 8070#line 29
 8071int usb_get_device_descriptor(struct usb_device *dev , unsigned int size ) ;
 8072#line 31
 8073char *usb_cache_string(struct usb_device *udev , int index ) ;
 8074#line 32
 8075int usb_set_configuration(struct usb_device *dev , int configuration ) ;
 8076#line 33
 8077int usb_choose_configuration(struct usb_device *udev ) ;
 8078#line 35
 8079void usb_kick_khubd(struct usb_device *hdev ) ;
 8080#line 38
 8081void usb_forced_unbind_intf(struct usb_interface *intf ) ;
 8082#line 39
 8083void usb_rebind_intf(struct usb_interface *intf ) ;
 8084#line 41
 8085int usb_hub_claim_port(struct usb_device *hdev , unsigned int port1 , void *owner ) ;
 8086#line 43
 8087int usb_hub_release_port(struct usb_device *hdev , unsigned int port1 , void *owner ) ;
 8088#line 45
 8089void usb_hub_release_all_ports(struct usb_device *hdev , void *owner ) ;
 8090#line 46
 8091bool usb_device_is_owned(struct usb_device *udev ) ;
 8092#line 58
 8093int usb_port_suspend(struct usb_device *udev , pm_message_t msg ) ;
 8094#line 59
 8095int usb_port_resume(struct usb_device *udev , pm_message_t msg ) ;
 8096#line 77
 8097void usb_autosuspend_device(struct usb_device *udev ) ;
 8098#line 78
 8099int usb_autoresume_device(struct usb_device *udev ) ;
 8100#line 79
 8101int usb_remote_wakeup(struct usb_device *udev ) ;
 8102#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"
 8103__inline static int hub_is_superspeed(struct usb_device *hdev ) 
 8104{ __u8 __cil_tmp2 ;
 8105  unsigned int __cil_tmp3 ;
 8106
 8107  {
 8108  {
 8109#line 95
 8110  __cil_tmp2 = hdev->descriptor.bDeviceProtocol;
 8111#line 95
 8112  __cil_tmp3 = (unsigned int )__cil_tmp2;
 8113#line 95
 8114  return (__cil_tmp3 == 3U);
 8115  }
 8116}
 8117}
 8118#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"
 8119static spinlock_t device_state_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
 8120                                                                      {(struct lock_class *)0,
 8121                                                                       (struct lock_class *)0},
 8122                                                                      "device_state_lock",
 8123                                                                      0, 0UL}}}};
 8124#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"
 8125static spinlock_t hub_event_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
 8126                                                                      {(struct lock_class *)0,
 8127                                                                       (struct lock_class *)0},
 8128                                                                      "hub_event_lock",
 8129                                                                      0, 0UL}}}};
 8130#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"
 8131static struct list_head hub_event_list  =    {& hub_event_list, & hub_event_list};
 8132#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"
 8133static wait_queue_head_t khubd_wait  =    {{{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
 8134                                                                       {(struct lock_class *)0,
 8135                                                                        (struct lock_class *)0},
 8136                                                                       "khubd_wait.lock",
 8137                                                                       0, 0UL}}}},
 8138    {& khubd_wait.task_list, & khubd_wait.task_list}};
 8139#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"
 8140static struct task_struct *khubd_task  ;
 8141#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"
 8142static int blinkenlights  =    0;
 8143#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"
 8144static int initial_descriptor_timeout  =    5000;
 8145#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"
 8146static int old_scheme_first  =    0;
 8147#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"
 8148static int use_both_schemes  =    1;
 8149#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"
 8150struct rw_semaphore ehci_cf_port_reset_rwsem  =    {0L, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
 8151                                                                           {(struct lock_class *)0,
 8152                                                                            (struct lock_class *)0},
 8153                                                                           "ehci_cf_port_reset_rwsem.wait_lock",
 8154                                                                           0, 0UL}}}},
 8155    {& ehci_cf_port_reset_rwsem.wait_list, & ehci_cf_port_reset_rwsem.wait_list},
 8156    {(struct lock_class_key *)0, {(struct lock_class *)0, (struct lock_class *)0},
 8157     "ehci_cf_port_reset_rwsem", 0, 0UL}};
 8158#line 164
 8159static int usb_reset_and_verify_device(struct usb_device *udev ) ;
 8160#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"
 8161__inline static char *portspeed(struct usb_hub *hub , int portstatus ) 
 8162{ int tmp ;
 8163  struct usb_device *__cil_tmp4 ;
 8164  int __cil_tmp5 ;
 8165  int __cil_tmp6 ;
 8166
 8167  {
 8168  {
 8169#line 168
 8170  __cil_tmp4 = hub->hdev;
 8171#line 168
 8172  tmp = hub_is_superspeed(__cil_tmp4);
 8173  }
 8174#line 168
 8175  if (tmp != 0) {
 8176#line 169
 8177    return ((char *)"5.0 Gb/s");
 8178  } else {
 8179
 8180  }
 8181  {
 8182#line 170
 8183  __cil_tmp5 = portstatus & 1024;
 8184#line 170
 8185  if (__cil_tmp5 != 0) {
 8186#line 171
 8187    return ((char *)"480 Mb/s");
 8188  } else {
 8189    {
 8190#line 172
 8191    __cil_tmp6 = portstatus & 512;
 8192#line 172
 8193    if (__cil_tmp6 != 0) {
 8194#line 173
 8195      return ((char *)"1.5 Mb/s");
 8196    } else {
 8197#line 175
 8198      return ((char *)"12 Mb/s");
 8199    }
 8200    }
 8201  }
 8202  }
 8203}
 8204}
 8205#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"
 8206static struct usb_hub *hdev_to_hub(struct usb_device *hdev ) 
 8207{ void *tmp ;
 8208  struct usb_device *__cil_tmp3 ;
 8209  unsigned long __cil_tmp4 ;
 8210  unsigned long __cil_tmp5 ;
 8211  struct usb_host_config *__cil_tmp6 ;
 8212  unsigned long __cil_tmp7 ;
 8213  struct usb_host_config *__cil_tmp8 ;
 8214  unsigned long __cil_tmp9 ;
 8215  struct usb_host_config *__cil_tmp10 ;
 8216  struct usb_interface *__cil_tmp11 ;
 8217
 8218  {
 8219  {
 8220#line 181
 8221  __cil_tmp3 = (struct usb_device *)0;
 8222#line 181
 8223  __cil_tmp4 = (unsigned long )__cil_tmp3;
 8224#line 181
 8225  __cil_tmp5 = (unsigned long )hdev;
 8226#line 181
 8227  if (__cil_tmp5 == __cil_tmp4) {
 8228#line 182
 8229    return ((struct usb_hub *)0);
 8230  } else {
 8231    {
 8232#line 181
 8233    __cil_tmp6 = (struct usb_host_config *)0;
 8234#line 181
 8235    __cil_tmp7 = (unsigned long )__cil_tmp6;
 8236#line 181
 8237    __cil_tmp8 = hdev->actconfig;
 8238#line 181
 8239    __cil_tmp9 = (unsigned long )__cil_tmp8;
 8240#line 181
 8241    if (__cil_tmp9 == __cil_tmp7) {
 8242#line 182
 8243      return ((struct usb_hub *)0);
 8244    } else {
 8245
 8246    }
 8247    }
 8248  }
 8249  }
 8250  {
 8251#line 183
 8252  __cil_tmp10 = hdev->actconfig;
 8253#line 183
 8254  __cil_tmp11 = __cil_tmp10->interface[0];
 8255#line 183
 8256  tmp = usb_get_intfdata(__cil_tmp11);
 8257  }
 8258#line 183
 8259  return ((struct usb_hub *)tmp);
 8260}
 8261}
 8262#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"
 8263static int get_hub_descriptor(struct usb_device *hdev , void *data ) 
 8264{ int i ;
 8265  int ret ;
 8266  int size ;
 8267  unsigned int dtype ;
 8268  int tmp ;
 8269  unsigned int tmp___0 ;
 8270  unsigned int __cil_tmp9 ;
 8271  __u8 __cil_tmp10 ;
 8272  __u8 __cil_tmp11 ;
 8273  __u16 __cil_tmp12 ;
 8274  int __cil_tmp13 ;
 8275  int __cil_tmp14 ;
 8276  __u16 __cil_tmp15 ;
 8277  __u16 __cil_tmp16 ;
 8278  __u16 __cil_tmp17 ;
 8279  int __cil_tmp18 ;
 8280  __u16 __cil_tmp19 ;
 8281
 8282  {
 8283  {
 8284#line 192
 8285  tmp = hub_is_superspeed(hdev);
 8286  }
 8287#line 192
 8288  if (tmp != 0) {
 8289#line 193
 8290    dtype = 42U;
 8291#line 194
 8292    size = 12;
 8293  } else {
 8294#line 196
 8295    dtype = 41U;
 8296#line 197
 8297    size = 15;
 8298  }
 8299#line 200
 8300  i = 0;
 8301#line 200
 8302  goto ldv_25575;
 8303  ldv_25574: 
 8304  {
 8305#line 201
 8306  tmp___0 = __create_pipe(hdev, 0U);
 8307#line 201
 8308  __cil_tmp9 = tmp___0 | 2147483776U;
 8309#line 201
 8310  __cil_tmp10 = (__u8 )6;
 8311#line 201
 8312  __cil_tmp11 = (__u8 )160;
 8313#line 201
 8314  __cil_tmp12 = (__u16 )dtype;
 8315#line 201
 8316  __cil_tmp13 = (int )__cil_tmp12;
 8317#line 201
 8318  __cil_tmp14 = __cil_tmp13 << 8U;
 8319#line 201
 8320  __cil_tmp15 = (__u16 )__cil_tmp14;
 8321#line 201
 8322  __cil_tmp16 = (__u16 )0;
 8323#line 201
 8324  __cil_tmp17 = (__u16 )size;
 8325#line 201
 8326  __cil_tmp18 = (int )__cil_tmp17;
 8327#line 201
 8328  __cil_tmp19 = (__u16 )__cil_tmp18;
 8329#line 201
 8330  ret = usb_control_msg(hdev, __cil_tmp9, __cil_tmp10, __cil_tmp11, __cil_tmp15, __cil_tmp16,
 8331                        data, __cil_tmp19, 5000);
 8332  }
 8333#line 205
 8334  if (ret > 8) {
 8335#line 206
 8336    return (ret);
 8337  } else {
 8338
 8339  }
 8340#line 200
 8341  i = i + 1;
 8342  ldv_25575: ;
 8343#line 200
 8344  if (i <= 2) {
 8345#line 201
 8346    goto ldv_25574;
 8347  } else {
 8348#line 203
 8349    goto ldv_25576;
 8350  }
 8351  ldv_25576: ;
 8352#line 208
 8353  return (-22);
 8354}
 8355}
 8356#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"
 8357static int clear_hub_feature(struct usb_device *hdev , int feature ) 
 8358{ unsigned int tmp ;
 8359  int tmp___0 ;
 8360  unsigned int __cil_tmp5 ;
 8361  __u8 __cil_tmp6 ;
 8362  __u8 __cil_tmp7 ;
 8363  __u16 __cil_tmp8 ;
 8364  int __cil_tmp9 ;
 8365  __u16 __cil_tmp10 ;
 8366  __u16 __cil_tmp11 ;
 8367  void *__cil_tmp12 ;
 8368  __u16 __cil_tmp13 ;
 8369
 8370  {
 8371  {
 8372#line 216
 8373  tmp = __create_pipe(hdev, 0U);
 8374#line 216
 8375  __cil_tmp5 = tmp | 2147483648U;
 8376#line 216
 8377  __cil_tmp6 = (__u8 )1;
 8378#line 216
 8379  __cil_tmp7 = (__u8 )32;
 8380#line 216
 8381  __cil_tmp8 = (__u16 )feature;
 8382#line 216
 8383  __cil_tmp9 = (int )__cil_tmp8;
 8384#line 216
 8385  __cil_tmp10 = (__u16 )__cil_tmp9;
 8386#line 216
 8387  __cil_tmp11 = (__u16 )0;
 8388#line 216
 8389  __cil_tmp12 = (void *)0;
 8390#line 216
 8391  __cil_tmp13 = (__u16 )0;
 8392#line 216
 8393  tmp___0 = usb_control_msg(hdev, __cil_tmp5, __cil_tmp6, __cil_tmp7, __cil_tmp10,
 8394                            __cil_tmp11, __cil_tmp12, __cil_tmp13, 1000);
 8395  }
 8396#line 216
 8397  return (tmp___0);
 8398}
 8399}
 8400#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"
 8401static int clear_port_feature(struct usb_device *hdev , int port1 , int feature ) 
 8402{ unsigned int tmp ;
 8403  int tmp___0 ;
 8404  unsigned int __cil_tmp6 ;
 8405  __u8 __cil_tmp7 ;
 8406  __u8 __cil_tmp8 ;
 8407  __u16 __cil_tmp9 ;
 8408  int __cil_tmp10 ;
 8409  __u16 __cil_tmp11 ;
 8410  __u16 __cil_tmp12 ;
 8411  int __cil_tmp13 ;
 8412  __u16 __cil_tmp14 ;
 8413  void *__cil_tmp15 ;
 8414  __u16 __cil_tmp16 ;
 8415
 8416  {
 8417  {
 8418#line 225
 8419  tmp = __create_pipe(hdev, 0U);
 8420#line 225
 8421  __cil_tmp6 = tmp | 2147483648U;
 8422#line 225
 8423  __cil_tmp7 = (__u8 )1;
 8424#line 225
 8425  __cil_tmp8 = (__u8 )35;
 8426#line 225
 8427  __cil_tmp9 = (__u16 )feature;
 8428#line 225
 8429  __cil_tmp10 = (int )__cil_tmp9;
 8430#line 225
 8431  __cil_tmp11 = (__u16 )__cil_tmp10;
 8432#line 225
 8433  __cil_tmp12 = (__u16 )port1;
 8434#line 225
 8435  __cil_tmp13 = (int )__cil_tmp12;
 8436#line 225
 8437  __cil_tmp14 = (__u16 )__cil_tmp13;
 8438#line 225
 8439  __cil_tmp15 = (void *)0;
 8440#line 225
 8441  __cil_tmp16 = (__u16 )0;
 8442#line 225
 8443  tmp___0 = usb_control_msg(hdev, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp11,
 8444                            __cil_tmp14, __cil_tmp15, __cil_tmp16, 1000);
 8445  }
 8446#line 225
 8447  return (tmp___0);
 8448}
 8449}
 8450#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"
 8451static int set_port_feature(struct usb_device *hdev , int port1 , int feature ) 
 8452{ unsigned int tmp ;
 8453  int tmp___0 ;
 8454  unsigned int __cil_tmp6 ;
 8455  __u8 __cil_tmp7 ;
 8456  __u8 __cil_tmp8 ;
 8457  __u16 __cil_tmp9 ;
 8458  int __cil_tmp10 ;
 8459  __u16 __cil_tmp11 ;
 8460  __u16 __cil_tmp12 ;
 8461  int __cil_tmp13 ;
 8462  __u16 __cil_tmp14 ;
 8463  void *__cil_tmp15 ;
 8464  __u16 __cil_tmp16 ;
 8465
 8466  {
 8467  {
 8468#line 235
 8469  tmp = __create_pipe(hdev, 0U);
 8470#line 235
 8471  __cil_tmp6 = tmp | 2147483648U;
 8472#line 235
 8473  __cil_tmp7 = (__u8 )3;
 8474#line 235
 8475  __cil_tmp8 = (__u8 )35;
 8476#line 235
 8477  __cil_tmp9 = (__u16 )feature;
 8478#line 235
 8479  __cil_tmp10 = (int )__cil_tmp9;
 8480#line 235
 8481  __cil_tmp11 = (__u16 )__cil_tmp10;
 8482#line 235
 8483  __cil_tmp12 = (__u16 )port1;
 8484#line 235
 8485  __cil_tmp13 = (int )__cil_tmp12;
 8486#line 235
 8487  __cil_tmp14 = (__u16 )__cil_tmp13;
 8488#line 235
 8489  __cil_tmp15 = (void *)0;
 8490#line 235
 8491  __cil_tmp16 = (__u16 )0;
 8492#line 235
 8493  tmp___0 = usb_control_msg(hdev, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp11,
 8494                            __cil_tmp14, __cil_tmp15, __cil_tmp16, 1000);
 8495  }
 8496#line 235
 8497  return (tmp___0);
 8498}
 8499}
 8500#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"
 8501static void set_port_led(struct usb_hub *hub , int port1 , int selector ) 
 8502{ int status ;
 8503  int tmp ;
 8504  char *s ;
 8505  struct usb_device *__cil_tmp7 ;
 8506  int __cil_tmp8 ;
 8507  int __cil_tmp9 ;
 8508  struct device *__cil_tmp10 ;
 8509  struct device  const  *__cil_tmp11 ;
 8510
 8511  {
 8512  {
 8513#line 250
 8514  __cil_tmp7 = hub->hdev;
 8515#line 250
 8516  __cil_tmp8 = selector << 8;
 8517#line 250
 8518  __cil_tmp9 = __cil_tmp8 | port1;
 8519#line 250
 8520  tmp = set_port_feature(__cil_tmp7, __cil_tmp9, 22);
 8521#line 250
 8522  status = tmp;
 8523  }
 8524#line 252
 8525  if (status < 0) {
 8526#line 253
 8527    if (selector == 1) {
 8528#line 253
 8529      goto case_1;
 8530    } else
 8531#line 253
 8532    if (selector == 2) {
 8533#line 253
 8534      goto case_2;
 8535    } else
 8536#line 253
 8537    if (selector == 3) {
 8538#line 253
 8539      goto case_3;
 8540    } else
 8541#line 253
 8542    if (selector == 0) {
 8543#line 253
 8544      goto case_0;
 8545    } else {
 8546#line 253
 8547      goto switch_default;
 8548#line 253
 8549      if (0) {
 8550        case_1: 
 8551#line 253
 8552        s = (char *)"amber";
 8553#line 253
 8554        goto ldv_25599;
 8555        case_2: 
 8556#line 253
 8557        s = (char *)"green";
 8558#line 253
 8559        goto ldv_25599;
 8560        case_3: 
 8561#line 253
 8562        s = (char *)"off";
 8563#line 253
 8564        goto ldv_25599;
 8565        case_0: 
 8566#line 253
 8567        s = (char *)"auto";
 8568#line 253
 8569        goto ldv_25599;
 8570        switch_default: 
 8571#line 253
 8572        s = (char *)"??";
 8573#line 253
 8574        goto ldv_25599;
 8575      } else {
 8576
 8577      }
 8578    }
 8579    ldv_25599: 
 8580    {
 8581#line 253
 8582    __cil_tmp10 = hub->intfdev;
 8583#line 253
 8584    __cil_tmp11 = (struct device  const  *)__cil_tmp10;
 8585#line 253
 8586    dev_printk("<7>", __cil_tmp11, "port %d indicator %s status %d\n", port1, s, status);
 8587    }
 8588  } else {
 8589
 8590  }
 8591#line 255
 8592  return;
 8593}
 8594}
 8595#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"
 8596static void led_work(struct work_struct *work ) 
 8597{ struct usb_hub *hub ;
 8598  struct work_struct  const  *__mptr ;
 8599  struct usb_device *hdev ;
 8600  unsigned int i ;
 8601  unsigned int changed ;
 8602  int cursor ;
 8603  unsigned int selector ;
 8604  unsigned int mode ;
 8605  struct usb_hub *__cil_tmp10 ;
 8606  enum usb_device_state __cil_tmp11 ;
 8607  unsigned int __cil_tmp12 ;
 8608  unsigned char *__cil_tmp13 ;
 8609  unsigned char *__cil_tmp14 ;
 8610  unsigned char __cil_tmp15 ;
 8611  unsigned int __cil_tmp16 ;
 8612  u8 __cil_tmp17 ;
 8613  int __cil_tmp18 ;
 8614  u8 __cil_tmp19 ;
 8615  int __cil_tmp20 ;
 8616  u8 __cil_tmp21 ;
 8617  int __cil_tmp22 ;
 8618  u8 __cil_tmp23 ;
 8619  int __cil_tmp24 ;
 8620  u8 __cil_tmp25 ;
 8621  int __cil_tmp26 ;
 8622  u8 __cil_tmp27 ;
 8623  int __cil_tmp28 ;
 8624  u8 __cil_tmp29 ;
 8625  int __cil_tmp30 ;
 8626  unsigned int __cil_tmp31 ;
 8627  int __cil_tmp32 ;
 8628  int __cil_tmp33 ;
 8629  struct usb_hub_descriptor *__cil_tmp34 ;
 8630  __u8 __cil_tmp35 ;
 8631  unsigned int __cil_tmp36 ;
 8632  struct usb_hub_descriptor *__cil_tmp37 ;
 8633  __u8 __cil_tmp38 ;
 8634  int __cil_tmp39 ;
 8635  int __cil_tmp40 ;
 8636  struct delayed_work *__cil_tmp41 ;
 8637
 8638  {
 8639#line 271
 8640  __mptr = (struct work_struct  const  *)work;
 8641#line 271
 8642  __cil_tmp10 = (struct usb_hub *)__mptr;
 8643#line 271
 8644  hub = __cil_tmp10 + 1152921504606846472UL;
 8645#line 272
 8646  hdev = hub->hdev;
 8647#line 274
 8648  changed = 0U;
 8649#line 275
 8650  cursor = -1;
 8651  {
 8652#line 277
 8653  __cil_tmp11 = hdev->state;
 8654#line 277
 8655  __cil_tmp12 = (unsigned int )__cil_tmp11;
 8656#line 277
 8657  if (__cil_tmp12 != 7U) {
 8658#line 278
 8659    return;
 8660  } else {
 8661    {
 8662#line 277
 8663    __cil_tmp13 = (unsigned char *)hub;
 8664#line 277
 8665    __cil_tmp14 = __cil_tmp13 + 468UL;
 8666#line 277
 8667    __cil_tmp15 = *__cil_tmp14;
 8668#line 277
 8669    __cil_tmp16 = (unsigned int )__cil_tmp15;
 8670#line 277
 8671    if (__cil_tmp16 != 0U) {
 8672#line 278
 8673      return;
 8674    } else {
 8675
 8676    }
 8677    }
 8678  }
 8679  }
 8680#line 280
 8681  i = 0U;
 8682#line 280
 8683  goto ldv_25628;
 8684  ldv_25627: ;
 8685  {
 8686#line 287
 8687  __cil_tmp17 = hub->indicator[i];
 8688#line 287
 8689  __cil_tmp18 = (int )__cil_tmp17;
 8690#line 287
 8691  if (__cil_tmp18 == 1) {
 8692#line 287
 8693    goto case_1;
 8694  } else {
 8695    {
 8696#line 293
 8697    __cil_tmp19 = hub->indicator[i];
 8698#line 293
 8699    __cil_tmp20 = (int )__cil_tmp19;
 8700#line 293
 8701    if (__cil_tmp20 == 2) {
 8702#line 293
 8703      goto case_2;
 8704    } else {
 8705      {
 8706#line 297
 8707      __cil_tmp21 = hub->indicator[i];
 8708#line 297
 8709      __cil_tmp22 = (int )__cil_tmp21;
 8710#line 297
 8711      if (__cil_tmp22 == 3) {
 8712#line 297
 8713        goto case_3;
 8714      } else {
 8715        {
 8716#line 302
 8717        __cil_tmp23 = hub->indicator[i];
 8718#line 302
 8719        __cil_tmp24 = (int )__cil_tmp23;
 8720#line 302
 8721        if (__cil_tmp24 == 4) {
 8722#line 302
 8723          goto case_4;
 8724        } else {
 8725          {
 8726#line 306
 8727          __cil_tmp25 = hub->indicator[i];
 8728#line 306
 8729          __cil_tmp26 = (int )__cil_tmp25;
 8730#line 306
 8731          if (__cil_tmp26 == 5) {
 8732#line 306
 8733            goto case_5;
 8734          } else {
 8735            {
 8736#line 311
 8737            __cil_tmp27 = hub->indicator[i];
 8738#line 311
 8739            __cil_tmp28 = (int )__cil_tmp27;
 8740#line 311
 8741            if (__cil_tmp28 == 6) {
 8742#line 311
 8743              goto case_6;
 8744            } else {
 8745              {
 8746#line 315
 8747              __cil_tmp29 = hub->indicator[i];
 8748#line 315
 8749              __cil_tmp30 = (int )__cil_tmp29;
 8750#line 315
 8751              if (__cil_tmp30 == 7) {
 8752#line 315
 8753                goto case_7;
 8754              } else {
 8755#line 319
 8756                goto switch_default;
 8757#line 285
 8758                if (0) {
 8759                  case_1: 
 8760#line 288
 8761                  cursor = (int )i;
 8762#line 289
 8763                  selector = 0U;
 8764#line 290
 8765                  mode = 0U;
 8766#line 291
 8767                  goto ldv_25618;
 8768                  case_2: 
 8769#line 294
 8770                  selector = 2U;
 8771#line 295
 8772                  mode = 3U;
 8773#line 296
 8774                  goto ldv_25618;
 8775                  case_3: 
 8776#line 298
 8777                  selector = 3U;
 8778#line 299
 8779                  mode = 2U;
 8780#line 300
 8781                  goto ldv_25618;
 8782                  case_4: 
 8783#line 303
 8784                  selector = 1U;
 8785#line 304
 8786                  mode = 5U;
 8787#line 305
 8788                  goto ldv_25618;
 8789                  case_5: 
 8790#line 307
 8791                  selector = 3U;
 8792#line 308
 8793                  mode = 4U;
 8794#line 309
 8795                  goto ldv_25618;
 8796                  case_6: 
 8797#line 312
 8798                  selector = 2U;
 8799#line 313
 8800                  mode = 7U;
 8801#line 314
 8802                  goto ldv_25618;
 8803                  case_7: 
 8804#line 316
 8805                  selector = 1U;
 8806#line 317
 8807                  mode = 6U;
 8808#line 318
 8809                  goto ldv_25618;
 8810                  switch_default: ;
 8811#line 320
 8812                  goto ldv_25626;
 8813                } else {
 8814
 8815                }
 8816              }
 8817              }
 8818            }
 8819            }
 8820          }
 8821          }
 8822        }
 8823        }
 8824      }
 8825      }
 8826    }
 8827    }
 8828  }
 8829  }
 8830  ldv_25618: ;
 8831#line 322
 8832  if (selector != 0U) {
 8833#line 323
 8834    changed = 1U;
 8835  } else {
 8836
 8837  }
 8838  {
 8839#line 324
 8840  __cil_tmp31 = i + 1U;
 8841#line 324
 8842  __cil_tmp32 = (int )__cil_tmp31;
 8843#line 324
 8844  __cil_tmp33 = (int )selector;
 8845#line 324
 8846  set_port_led(hub, __cil_tmp32, __cil_tmp33);
 8847#line 325
 8848  hub->indicator[i] = (u8 )mode;
 8849  }
 8850  ldv_25626: 
 8851#line 280
 8852  i = i + 1U;
 8853  ldv_25628: ;
 8854  {
 8855#line 280
 8856  __cil_tmp34 = hub->descriptor;
 8857#line 280
 8858  __cil_tmp35 = __cil_tmp34->bNbrPorts;
 8859#line 280
 8860  __cil_tmp36 = (unsigned int )__cil_tmp35;
 8861#line 280
 8862  if (__cil_tmp36 > i) {
 8863#line 281
 8864    goto ldv_25627;
 8865  } else {
 8866#line 283
 8867    goto ldv_25629;
 8868  }
 8869  }
 8870  ldv_25629: ;
 8871#line 327
 8872  if (changed == 0U) {
 8873#line 327
 8874    if (blinkenlights != 0) {
 8875      {
 8876#line 328
 8877      cursor = cursor + 1;
 8878#line 329
 8879      __cil_tmp37 = hub->descriptor;
 8880#line 329
 8881      __cil_tmp38 = __cil_tmp37->bNbrPorts;
 8882#line 329
 8883      __cil_tmp39 = (int )__cil_tmp38;
 8884#line 329
 8885      cursor = cursor % __cil_tmp39;
 8886#line 330
 8887      __cil_tmp40 = cursor + 1;
 8888#line 330
 8889      set_port_led(hub, __cil_tmp40, 2);
 8890#line 331
 8891      hub->indicator[cursor] = (u8 )1U;
 8892#line 332
 8893      changed = changed + 1U;
 8894      }
 8895    } else {
 8896
 8897    }
 8898  } else {
 8899
 8900  }
 8901#line 334
 8902  if (changed != 0U) {
 8903    {
 8904#line 335
 8905    __cil_tmp41 = & hub->leds;
 8906#line 335
 8907    schedule_delayed_work(__cil_tmp41, 166UL);
 8908    }
 8909  } else {
 8910
 8911  }
 8912#line 336
 8913  return;
 8914}
 8915}
 8916#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"
 8917static int get_hub_status(struct usb_device *hdev , struct usb_hub_status *data ) 
 8918{ int i ;
 8919  int status ;
 8920  unsigned int tmp ;
 8921  unsigned int __cil_tmp6 ;
 8922  __u8 __cil_tmp7 ;
 8923  __u8 __cil_tmp8 ;
 8924  __u16 __cil_tmp9 ;
 8925  __u16 __cil_tmp10 ;
 8926  void *__cil_tmp11 ;
 8927  __u16 __cil_tmp12 ;
 8928
 8929  {
 8930#line 348
 8931  status = -110;
 8932#line 350
 8933  i = 0;
 8934#line 350
 8935  goto ldv_25637;
 8936  ldv_25636: 
 8937  {
 8938#line 352
 8939  tmp = __create_pipe(hdev, 0U);
 8940#line 352
 8941  __cil_tmp6 = tmp | 2147483776U;
 8942#line 352
 8943  __cil_tmp7 = (__u8 )0;
 8944#line 352
 8945  __cil_tmp8 = (__u8 )160;
 8946#line 352
 8947  __cil_tmp9 = (__u16 )0;
 8948#line 352
 8949  __cil_tmp10 = (__u16 )0;
 8950#line 352
 8951  __cil_tmp11 = (void *)data;
 8952#line 352
 8953  __cil_tmp12 = (__u16 )4;
 8954#line 352
 8955  status = usb_control_msg(hdev, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp9, __cil_tmp10,
 8956                           __cil_tmp11, __cil_tmp12, 1000);
 8957#line 351
 8958  i = i + 1;
 8959  }
 8960  ldv_25637: ;
 8961#line 350
 8962  if (i <= 4) {
 8963#line 350
 8964    if (status == -110) {
 8965#line 352
 8966      goto ldv_25636;
 8967    } else
 8968#line 350
 8969    if (status == -32) {
 8970#line 352
 8971      goto ldv_25636;
 8972    } else {
 8973#line 354
 8974      goto ldv_25638;
 8975    }
 8976  } else {
 8977#line 354
 8978    goto ldv_25638;
 8979  }
 8980  ldv_25638: ;
 8981#line 356
 8982  return (status);
 8983}
 8984}
 8985#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"
 8986static int get_port_status(struct usb_device *hdev , int port1 , struct usb_port_status *data ) 
 8987{ int i ;
 8988  int status ;
 8989  unsigned int tmp ;
 8990  unsigned int __cil_tmp7 ;
 8991  __u8 __cil_tmp8 ;
 8992  __u8 __cil_tmp9 ;
 8993  __u16 __cil_tmp10 ;
 8994  __u16 __cil_tmp11 ;
 8995  int __cil_tmp12 ;
 8996  __u16 __cil_tmp13 ;
 8997  void *__cil_tmp14 ;
 8998  __u16 __cil_tmp15 ;
 8999
 9000  {
 9001#line 365
 9002  status = -110;
 9003#line 367
 9004  i = 0;
 9005#line 367
 9006  goto ldv_25647;
 9007  ldv_25646: 
 9008  {
 9009#line 369
 9010  tmp = __create_pipe(hdev, 0U);
 9011#line 369
 9012  __cil_tmp7 = tmp | 2147483776U;
 9013#line 369
 9014  __cil_tmp8 = (__u8 )0;
 9015#line 369
 9016  __cil_tmp9 = (__u8 )163;
 9017#line 369
 9018  __cil_tmp10 = (__u16 )0;
 9019#line 369
 9020  __cil_tmp11 = (__u16 )port1;
 9021#line 369
 9022  __cil_tmp12 = (int )__cil_tmp11;
 9023#line 369
 9024  __cil_tmp13 = (__u16 )__cil_tmp12;
 9025#line 369
 9026  __cil_tmp14 = (void *)data;
 9027#line 369
 9028  __cil_tmp15 = (__u16 )4;
 9029#line 369
 9030  status = usb_control_msg(hdev, __cil_tmp7, __cil_tmp8, __cil_tmp9, __cil_tmp10,
 9031                           __cil_tmp13, __cil_tmp14, __cil_tmp15, 1000);
 9032#line 368
 9033  i = i + 1;
 9034  }
 9035  ldv_25647: ;
 9036#line 367
 9037  if (i <= 4) {
 9038#line 367
 9039    if (status == -110) {
 9040#line 369
 9041      goto ldv_25646;
 9042    } else
 9043#line 367
 9044    if (status == -32) {
 9045#line 369
 9046      goto ldv_25646;
 9047    } else {
 9048#line 371
 9049      goto ldv_25648;
 9050    }
 9051  } else {
 9052#line 371
 9053    goto ldv_25648;
 9054  }
 9055  ldv_25648: ;
 9056#line 373
 9057  return (status);
 9058}
 9059}
 9060#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"
 9061static int hub_port_status(struct usb_hub *hub , int port1 , u16 *status , u16 *change ) 
 9062{ int ret ;
 9063  struct mutex *__cil_tmp6 ;
 9064  struct usb_device *__cil_tmp7 ;
 9065  union __anonunion_status_183 *__cil_tmp8 ;
 9066  struct usb_port_status *__cil_tmp9 ;
 9067  struct device *__cil_tmp10 ;
 9068  struct device  const  *__cil_tmp11 ;
 9069  union __anonunion_status_183 *__cil_tmp12 ;
 9070  union __anonunion_status_183 *__cil_tmp13 ;
 9071  struct mutex *__cil_tmp14 ;
 9072
 9073  {
 9074  {
 9075#line 381
 9076  __cil_tmp6 = & hub->status_mutex;
 9077#line 381
 9078  mutex_lock_nested(__cil_tmp6, 0U);
 9079#line 382
 9080  __cil_tmp7 = hub->hdev;
 9081#line 382
 9082  __cil_tmp8 = hub->status;
 9083#line 382
 9084  __cil_tmp9 = & __cil_tmp8->port;
 9085#line 382
 9086  ret = get_port_status(__cil_tmp7, port1, __cil_tmp9);
 9087  }
 9088#line 383
 9089  if (ret <= 3) {
 9090    {
 9091#line 384
 9092    __cil_tmp10 = hub->intfdev;
 9093#line 384
 9094    __cil_tmp11 = (struct device  const  *)__cil_tmp10;
 9095#line 384
 9096    dev_err(__cil_tmp11, "%s failed (err = %d)\n", "hub_port_status", ret);
 9097    }
 9098#line 386
 9099    if (ret >= 0) {
 9100#line 387
 9101      ret = -5;
 9102    } else {
 9103
 9104    }
 9105  } else {
 9106#line 389
 9107    __cil_tmp12 = hub->status;
 9108#line 389
 9109    *status = __cil_tmp12->port.wPortStatus;
 9110#line 390
 9111    __cil_tmp13 = hub->status;
 9112#line 390
 9113    *change = __cil_tmp13->port.wPortChange;
 9114#line 392
 9115    ret = 0;
 9116  }
 9117  {
 9118#line 394
 9119  __cil_tmp14 = & hub->status_mutex;
 9120#line 394
 9121  mutex_unlock(__cil_tmp14);
 9122  }
 9123#line 395
 9124  return (ret);
 9125}
 9126}
 9127#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"
 9128static void kick_khubd(struct usb_hub *hub ) 
 9129{ unsigned long flags ;
 9130  raw_spinlock_t *tmp ;
 9131  struct device  const  *__mptr ;
 9132  int tmp___0 ;
 9133  unsigned char *__cil_tmp6 ;
 9134  unsigned char *__cil_tmp7 ;
 9135  unsigned char __cil_tmp8 ;
 9136  unsigned int __cil_tmp9 ;
 9137  struct list_head *__cil_tmp10 ;
 9138  struct list_head  const  *__cil_tmp11 ;
 9139  struct list_head *__cil_tmp12 ;
 9140  struct device *__cil_tmp13 ;
 9141  struct usb_interface *__cil_tmp14 ;
 9142  struct usb_interface *__cil_tmp15 ;
 9143  void *__cil_tmp16 ;
 9144
 9145  {
 9146  {
 9147#line 402
 9148  tmp = spinlock_check(& hub_event_lock);
 9149#line 402
 9150  flags = _raw_spin_lock_irqsave(tmp);
 9151  }
 9152  {
 9153#line 403
 9154  __cil_tmp6 = (unsigned char *)hub;
 9155#line 403
 9156  __cil_tmp7 = __cil_tmp6 + 468UL;
 9157#line 403
 9158  __cil_tmp8 = *__cil_tmp7;
 9159#line 403
 9160  __cil_tmp9 = (unsigned int )__cil_tmp8;
 9161#line 403
 9162  if (__cil_tmp9 == 0U) {
 9163    {
 9164#line 403
 9165    __cil_tmp10 = & hub->event_list;
 9166#line 403
 9167    __cil_tmp11 = (struct list_head  const  *)__cil_tmp10;
 9168#line 403
 9169    tmp___0 = list_empty(__cil_tmp11);
 9170    }
 9171#line 403
 9172    if (tmp___0 != 0) {
 9173      {
 9174#line 404
 9175      __cil_tmp12 = & hub->event_list;
 9176#line 404
 9177      list_add_tail(__cil_tmp12, & hub_event_list);
 9178#line 408
 9179      __cil_tmp13 = hub->intfdev;
 9180#line 408
 9181      __mptr = (struct device  const  *)__cil_tmp13;
 9182#line 408
 9183      __cil_tmp14 = (struct usb_interface *)__mptr;
 9184#line 408
 9185      __cil_tmp15 = __cil_tmp14 + 1152921504606846928UL;
 9186#line 408
 9187      usb_autopm_get_interface_no_resume(__cil_tmp15);
 9188#line 409
 9189      __cil_tmp16 = (void *)0;
 9190#line 409
 9191      __wake_up(& khubd_wait, 3U, 1, __cil_tmp16);
 9192      }
 9193    } else {
 9194
 9195    }
 9196  } else {
 9197
 9198  }
 9199  }
 9200  {
 9201#line 411
 9202  spin_unlock_irqrestore(& hub_event_lock, flags);
 9203  }
 9204#line 412
 9205  return;
 9206}
 9207}
 9208#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"
 9209void usb_kick_khubd(struct usb_device *hdev ) 
 9210{ struct usb_hub *hub ;
 9211  struct usb_hub *tmp ;
 9212  struct usb_hub *__cil_tmp4 ;
 9213  unsigned long __cil_tmp5 ;
 9214  unsigned long __cil_tmp6 ;
 9215
 9216  {
 9217  {
 9218#line 416
 9219  tmp = hdev_to_hub(hdev);
 9220#line 416
 9221  hub = tmp;
 9222  }
 9223  {
 9224#line 418
 9225  __cil_tmp4 = (struct usb_hub *)0;
 9226#line 418
 9227  __cil_tmp5 = (unsigned long )__cil_tmp4;
 9228#line 418
 9229  __cil_tmp6 = (unsigned long )hub;
 9230#line 418
 9231  if (__cil_tmp6 != __cil_tmp5) {
 9232    {
 9233#line 419
 9234    kick_khubd(hub);
 9235    }
 9236  } else {
 9237
 9238  }
 9239  }
 9240#line 420
 9241  return;
 9242}
 9243}
 9244#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"
 9245static void hub_irq(struct urb *urb ) 
 9246{ struct usb_hub *hub ;
 9247  int status ;
 9248  unsigned int i ;
 9249  unsigned long bits ;
 9250  void *__cil_tmp6 ;
 9251  struct device *__cil_tmp7 ;
 9252  struct device  const  *__cil_tmp8 ;
 9253  int __cil_tmp9 ;
 9254  int __cil_tmp10 ;
 9255  int __cil_tmp11 ;
 9256  unsigned int __cil_tmp12 ;
 9257  int __cil_tmp13 ;
 9258  char (*__cil_tmp14)[8U] ;
 9259  char __cil_tmp15 ;
 9260  unsigned long __cil_tmp16 ;
 9261  unsigned long __cil_tmp17 ;
 9262  u32 __cil_tmp18 ;
 9263  unsigned char *__cil_tmp19 ;
 9264  unsigned char *__cil_tmp20 ;
 9265  unsigned char __cil_tmp21 ;
 9266  unsigned int __cil_tmp22 ;
 9267  struct urb *__cil_tmp23 ;
 9268  struct device *__cil_tmp24 ;
 9269  struct device  const  *__cil_tmp25 ;
 9270
 9271  {
 9272#line 426
 9273  __cil_tmp6 = urb->context;
 9274#line 426
 9275  hub = (struct usb_hub *)__cil_tmp6;
 9276#line 427
 9277  status = urb->status;
 9278#line 432
 9279  if (status == -2) {
 9280#line 432
 9281    goto case_neg_2;
 9282  } else
 9283#line 433
 9284  if (status == -104) {
 9285#line 433
 9286    goto case_neg_104;
 9287  } else
 9288#line 434
 9289  if (status == -108) {
 9290#line 434
 9291    goto case_neg_108;
 9292  } else
 9293#line 446
 9294  if (status == 0) {
 9295#line 446
 9296    goto case_0;
 9297  } else {
 9298#line 437
 9299    goto switch_default;
 9300#line 431
 9301    if (0) {
 9302      case_neg_2: ;
 9303      case_neg_104: ;
 9304      case_neg_108: ;
 9305#line 435
 9306      return;
 9307      switch_default: 
 9308      {
 9309#line 439
 9310      __cil_tmp7 = hub->intfdev;
 9311#line 439
 9312      __cil_tmp8 = (struct device  const  *)__cil_tmp7;
 9313#line 439
 9314      dev_printk("<7>", __cil_tmp8, "transfer --> %d\n", status);
 9315#line 440
 9316      __cil_tmp9 = hub->nerrors;
 9317#line 440
 9318      hub->nerrors = __cil_tmp9 + 1;
 9319      }
 9320      {
 9321#line 440
 9322      __cil_tmp10 = hub->nerrors;
 9323#line 440
 9324      if (__cil_tmp10 <= 9) {
 9325#line 441
 9326        goto resubmit;
 9327      } else {
 9328        {
 9329#line 440
 9330        __cil_tmp11 = hub->error;
 9331#line 440
 9332        if (__cil_tmp11 != 0) {
 9333#line 441
 9334          goto resubmit;
 9335        } else {
 9336
 9337        }
 9338        }
 9339      }
 9340      }
 9341#line 442
 9342      hub->error = status;
 9343      case_0: 
 9344#line 447
 9345      bits = 0UL;
 9346#line 448
 9347      i = 0U;
 9348#line 448
 9349      goto ldv_25684;
 9350      ldv_25683: 
 9351#line 449
 9352      __cil_tmp12 = i * 8U;
 9353#line 449
 9354      __cil_tmp13 = (int )__cil_tmp12;
 9355#line 449
 9356      __cil_tmp14 = hub->buffer;
 9357#line 449
 9358      __cil_tmp15 = (*__cil_tmp14)[i];
 9359#line 449
 9360      __cil_tmp16 = (unsigned long )__cil_tmp15;
 9361#line 449
 9362      __cil_tmp17 = __cil_tmp16 << __cil_tmp13;
 9363#line 449
 9364      bits = __cil_tmp17 | bits;
 9365#line 448
 9366      i = i + 1U;
 9367      ldv_25684: ;
 9368      {
 9369#line 448
 9370      __cil_tmp18 = urb->actual_length;
 9371#line 448
 9372      if (__cil_tmp18 > i) {
 9373#line 449
 9374        goto ldv_25683;
 9375      } else {
 9376#line 451
 9377        goto ldv_25685;
 9378      }
 9379      }
 9380      ldv_25685: 
 9381#line 451
 9382      hub->event_bits[0] = bits;
 9383#line 452
 9384      goto ldv_25686;
 9385    } else {
 9386
 9387    }
 9388  }
 9389  ldv_25686: 
 9390  {
 9391#line 455
 9392  hub->nerrors = 0;
 9393#line 458
 9394  kick_khubd(hub);
 9395  }
 9396  resubmit: ;
 9397  {
 9398#line 461
 9399  __cil_tmp19 = (unsigned char *)hub;
 9400#line 461
 9401  __cil_tmp20 = __cil_tmp19 + 468UL;
 9402#line 461
 9403  __cil_tmp21 = *__cil_tmp20;
 9404#line 461
 9405  __cil_tmp22 = (unsigned int )__cil_tmp21;
 9406#line 461
 9407  if (__cil_tmp22 != 0U) {
 9408#line 462
 9409    return;
 9410  } else {
 9411
 9412  }
 9413  }
 9414  {
 9415#line 464
 9416  __cil_tmp23 = hub->urb;
 9417#line 464
 9418  status = usb_submit_urb(__cil_tmp23, 32U);
 9419  }
 9420#line 464
 9421  if (status != 0) {
 9422#line 464
 9423    if (status != -19) {
 9424#line 464
 9425      if (status != -1) {
 9426        {
 9427#line 466
 9428        __cil_tmp24 = hub->intfdev;
 9429#line 466
 9430        __cil_tmp25 = (struct device  const  *)__cil_tmp24;
 9431#line 466
 9432        dev_err(__cil_tmp25, "resubmit --> %d\n", status);
 9433        }
 9434      } else {
 9435
 9436      }
 9437    } else {
 9438
 9439    }
 9440  } else {
 9441
 9442  }
 9443#line 467
 9444  return;
 9445}
 9446}
 9447#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"
 9448__inline static int hub_clear_tt_buffer(struct usb_device *hdev , u16 devinfo , u16 tt ) 
 9449{ unsigned int tmp ;
 9450  int tmp___0 ;
 9451  unsigned int __cil_tmp6 ;
 9452  __u8 __cil_tmp7 ;
 9453  __u8 __cil_tmp8 ;
 9454  int __cil_tmp9 ;
 9455  __u16 __cil_tmp10 ;
 9456  int __cil_tmp11 ;
 9457  __u16 __cil_tmp12 ;
 9458  void *__cil_tmp13 ;
 9459  __u16 __cil_tmp14 ;
 9460
 9461  {
 9462  {
 9463#line 473
 9464  tmp = __create_pipe(hdev, 0U);
 9465#line 473
 9466  __cil_tmp6 = tmp | 2147483648U;
 9467#line 473
 9468  __cil_tmp7 = (__u8 )8;
 9469#line 473
 9470  __cil_tmp8 = (__u8 )35;
 9471#line 473
 9472  __cil_tmp9 = (int )devinfo;
 9473#line 473
 9474  __cil_tmp10 = (__u16 )__cil_tmp9;
 9475#line 473
 9476  __cil_tmp11 = (int )tt;
 9477#line 473
 9478  __cil_tmp12 = (__u16 )__cil_tmp11;
 9479#line 473
 9480  __cil_tmp13 = (void *)0;
 9481#line 473
 9482  __cil_tmp14 = (__u16 )0;
 9483#line 473
 9484  tmp___0 = usb_control_msg(hdev, __cil_tmp6, __cil_tmp7, __cil_tmp8, __cil_tmp10,
 9485                            __cil_tmp12, __cil_tmp13, __cil_tmp14, 1000);
 9486  }
 9487#line 473
 9488  return (tmp___0);
 9489}
 9490}
 9491#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"
 9492static void hub_tt_work(struct work_struct *work ) 
 9493{ struct usb_hub *hub ;
 9494  struct work_struct  const  *__mptr ;
 9495  unsigned long flags ;
 9496  int limit ;
 9497  raw_spinlock_t *tmp ;
 9498  struct list_head *next ;
 9499  struct usb_tt_clear *clear ;
 9500  struct usb_device *hdev ;
 9501  struct hc_driver  const  *drv ;
 9502  int status ;
 9503  struct list_head  const  *__mptr___0 ;
 9504  raw_spinlock_t *tmp___0 ;
 9505  int tmp___1 ;
 9506  struct usb_hub *__cil_tmp15 ;
 9507  spinlock_t *__cil_tmp16 ;
 9508  struct list_head *__cil_tmp17 ;
 9509  spinlock_t *__cil_tmp18 ;
 9510  u16 __cil_tmp19 ;
 9511  int __cil_tmp20 ;
 9512  u16 __cil_tmp21 ;
 9513  unsigned int __cil_tmp22 ;
 9514  u16 __cil_tmp23 ;
 9515  int __cil_tmp24 ;
 9516  u16 __cil_tmp25 ;
 9517  struct device *__cil_tmp26 ;
 9518  struct device  const  *__cil_tmp27 ;
 9519  unsigned int __cil_tmp28 ;
 9520  u16 __cil_tmp29 ;
 9521  int __cil_tmp30 ;
 9522  struct usb_hcd *__cil_tmp31 ;
 9523  void (*__cil_tmp32)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 9524  unsigned long __cil_tmp33 ;
 9525  void (*__cil_tmp34)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 9526  unsigned long __cil_tmp35 ;
 9527  void (*__cil_tmp36)(struct usb_hcd * , struct usb_host_endpoint * ) ;
 9528  struct usb_hcd *__cil_tmp37 ;
 9529  struct usb_host_endpoint *__cil_tmp38 ;
 9530  void const   *__cil_tmp39 ;
 9531  spinlock_t *__cil_tmp40 ;
 9532  struct list_head *__cil_tmp41 ;
 9533  struct list_head  const  *__cil_tmp42 ;
 9534  spinlock_t *__cil_tmp43 ;
 9535
 9536  {
 9537  {
 9538#line 487
 9539  __mptr = (struct work_struct  const  *)work;
 9540#line 487
 9541  __cil_tmp15 = (struct usb_hub *)__mptr;
 9542#line 487
 9543  hub = __cil_tmp15 + 1152921504606846592UL;
 9544#line 489
 9545  limit = 100;
 9546#line 491
 9547  __cil_tmp16 = & hub->tt.lock;
 9548#line 491
 9549  tmp = spinlock_check(__cil_tmp16);
 9550#line 491
 9551  flags = _raw_spin_lock_irqsave(tmp);
 9552  }
 9553#line 492
 9554  goto ldv_25714;
 9555  ldv_25713: 
 9556  {
 9557#line 495
 9558  hdev = hub->hdev;
 9559#line 499
 9560  next = hub->tt.clear_list.next;
 9561#line 500
 9562  __mptr___0 = (struct list_head  const  *)next;
 9563#line 500
 9564  clear = (struct usb_tt_clear *)__mptr___0;
 9565#line 501
 9566  __cil_tmp17 = & clear->clear_list;
 9567#line 501
 9568  list_del(__cil_tmp17);
 9569#line 504
 9570  __cil_tmp18 = & hub->tt.lock;
 9571#line 504
 9572  spin_unlock_irqrestore(__cil_tmp18, flags);
 9573#line 505
 9574  __cil_tmp19 = clear->devinfo;
 9575#line 505
 9576  __cil_tmp20 = (int )__cil_tmp19;
 9577#line 505
 9578  __cil_tmp21 = (u16 )__cil_tmp20;
 9579#line 505
 9580  __cil_tmp22 = clear->tt;
 9581#line 505
 9582  __cil_tmp23 = (u16 )__cil_tmp22;
 9583#line 505
 9584  __cil_tmp24 = (int )__cil_tmp23;
 9585#line 505
 9586  __cil_tmp25 = (u16 )__cil_tmp24;
 9587#line 505
 9588  status = hub_clear_tt_buffer(hdev, __cil_tmp21, __cil_tmp25);
 9589  }
 9590#line 506
 9591  if (status != 0) {
 9592    {
 9593#line 507
 9594    __cil_tmp26 = & hdev->dev;
 9595#line 507
 9596    __cil_tmp27 = (struct device  const  *)__cil_tmp26;
 9597#line 507
 9598    __cil_tmp28 = clear->tt;
 9599#line 507
 9600    __cil_tmp29 = clear->devinfo;
 9601#line 507
 9602    __cil_tmp30 = (int )__cil_tmp29;
 9603#line 507
 9604    dev_err(__cil_tmp27, "clear tt %d (%04x) error %d\n", __cil_tmp28, __cil_tmp30,
 9605            status);
 9606    }
 9607  } else {
 9608
 9609  }
 9610#line 512
 9611  __cil_tmp31 = clear->hcd;
 9612#line 512
 9613  drv = __cil_tmp31->driver;
 9614  {
 9615#line 513
 9616  __cil_tmp32 = (void (* const  )(struct usb_hcd * , struct usb_host_endpoint * ))0;
 9617#line 513
 9618  __cil_tmp33 = (unsigned long )__cil_tmp32;
 9619#line 513
 9620  __cil_tmp34 = drv->clear_tt_buffer_complete;
 9621#line 513
 9622  __cil_tmp35 = (unsigned long )__cil_tmp34;
 9623#line 513
 9624  if (__cil_tmp35 != __cil_tmp33) {
 9625    {
 9626#line 514
 9627    __cil_tmp36 = drv->clear_tt_buffer_complete;
 9628#line 514
 9629    __cil_tmp37 = clear->hcd;
 9630#line 514
 9631    __cil_tmp38 = clear->ep;
 9632#line 514
 9633    (*__cil_tmp36)(__cil_tmp37, __cil_tmp38);
 9634    }
 9635  } else {
 9636
 9637  }
 9638  }
 9639  {
 9640#line 516
 9641  __cil_tmp39 = (void const   *)clear;
 9642#line 516
 9643  kfree(__cil_tmp39);
 9644#line 517
 9645  __cil_tmp40 = & hub->tt.lock;
 9646#line 517
 9647  tmp___0 = spinlock_check(__cil_tmp40);
 9648#line 517
 9649  flags = _raw_spin_lock_irqsave(tmp___0);
 9650  }
 9651  ldv_25714: 
 9652#line 492
 9653  limit = limit - 1;
 9654#line 492
 9655  if (limit != 0) {
 9656    {
 9657#line 492
 9658    __cil_tmp41 = & hub->tt.clear_list;
 9659#line 492
 9660    __cil_tmp42 = (struct list_head  const  *)__cil_tmp41;
 9661#line 492
 9662    tmp___1 = list_empty(__cil_tmp42);
 9663    }
 9664#line 492
 9665    if (tmp___1 == 0) {
 9666#line 493
 9667      goto ldv_25713;
 9668    } else {
 9669#line 495
 9670      goto ldv_25715;
 9671    }
 9672  } else {
 9673#line 495
 9674    goto ldv_25715;
 9675  }
 9676  ldv_25715: 
 9677  {
 9678#line 519
 9679  __cil_tmp43 = & hub->tt.lock;
 9680#line 519
 9681  spin_unlock_irqrestore(__cil_tmp43, flags);
 9682  }
 9683#line 520
 9684  return;
 9685}
 9686}
 9687#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"
 9688int usb_hub_clear_tt_buffer(struct urb *urb ) 
 9689{ struct usb_device *udev ;
 9690  int pipe ;
 9691  struct usb_tt *tt ;
 9692  unsigned long flags ;
 9693  struct usb_tt_clear *clear ;
 9694  void *tmp ;
 9695  int tmp___0 ;
 9696  raw_spinlock_t *tmp___1 ;
 9697  unsigned int __cil_tmp10 ;
 9698  struct usb_tt_clear *__cil_tmp11 ;
 9699  unsigned long __cil_tmp12 ;
 9700  unsigned long __cil_tmp13 ;
 9701  struct device *__cil_tmp14 ;
 9702  struct device  const  *__cil_tmp15 ;
 9703  int __cil_tmp16 ;
 9704  int __cil_tmp17 ;
 9705  int __cil_tmp18 ;
 9706  u16 __cil_tmp19 ;
 9707  unsigned int __cil_tmp20 ;
 9708  unsigned int __cil_tmp21 ;
 9709  int __cil_tmp22 ;
 9710  int __cil_tmp23 ;
 9711  short __cil_tmp24 ;
 9712  int __cil_tmp25 ;
 9713  u16 __cil_tmp26 ;
 9714  short __cil_tmp27 ;
 9715  int __cil_tmp28 ;
 9716  int __cil_tmp29 ;
 9717  unsigned int __cil_tmp30 ;
 9718  unsigned int __cil_tmp31 ;
 9719  u16 __cil_tmp32 ;
 9720  short __cil_tmp33 ;
 9721  int __cil_tmp34 ;
 9722  int __cil_tmp35 ;
 9723  int __cil_tmp36 ;
 9724  u16 __cil_tmp37 ;
 9725  unsigned int __cil_tmp38 ;
 9726  unsigned int __cil_tmp39 ;
 9727  struct usb_bus *__cil_tmp40 ;
 9728  spinlock_t *__cil_tmp41 ;
 9729  struct list_head *__cil_tmp42 ;
 9730  struct list_head *__cil_tmp43 ;
 9731  struct work_struct *__cil_tmp44 ;
 9732  spinlock_t *__cil_tmp45 ;
 9733
 9734  {
 9735  {
 9736#line 536
 9737  udev = urb->dev;
 9738#line 537
 9739  __cil_tmp10 = urb->pipe;
 9740#line 537
 9741  pipe = (int )__cil_tmp10;
 9742#line 538
 9743  tt = udev->tt;
 9744#line 546
 9745  tmp = kmalloc(40UL, 32U);
 9746#line 546
 9747  clear = (struct usb_tt_clear *)tmp;
 9748  }
 9749  {
 9750#line 546
 9751  __cil_tmp11 = (struct usb_tt_clear *)0;
 9752#line 546
 9753  __cil_tmp12 = (unsigned long )__cil_tmp11;
 9754#line 546
 9755  __cil_tmp13 = (unsigned long )clear;
 9756#line 546
 9757  if (__cil_tmp13 == __cil_tmp12) {
 9758    {
 9759#line 547
 9760    __cil_tmp14 = & udev->dev;
 9761#line 547
 9762    __cil_tmp15 = (struct device  const  *)__cil_tmp14;
 9763#line 547
 9764    dev_err(__cil_tmp15, "can\'t save CLEAR_TT_BUFFER state\n");
 9765    }
 9766#line 549
 9767    return (-12);
 9768  } else {
 9769
 9770  }
 9771  }
 9772  {
 9773#line 553
 9774  __cil_tmp16 = tt->multi;
 9775#line 553
 9776  if (__cil_tmp16 != 0) {
 9777#line 553
 9778    __cil_tmp17 = udev->ttport;
 9779#line 553
 9780    clear->tt = (unsigned int )__cil_tmp17;
 9781  } else {
 9782#line 553
 9783    clear->tt = 1U;
 9784  }
 9785  }
 9786#line 554
 9787  __cil_tmp18 = pipe >> 15;
 9788#line 554
 9789  __cil_tmp19 = (u16 )__cil_tmp18;
 9790#line 554
 9791  __cil_tmp20 = (unsigned int )__cil_tmp19;
 9792#line 554
 9793  __cil_tmp21 = __cil_tmp20 & 15U;
 9794#line 554
 9795  clear->devinfo = (u16 )__cil_tmp21;
 9796#line 555
 9797  __cil_tmp22 = udev->devnum;
 9798#line 555
 9799  __cil_tmp23 = __cil_tmp22 << 4;
 9800#line 555
 9801  __cil_tmp24 = (short )__cil_tmp23;
 9802#line 555
 9803  __cil_tmp25 = (int )__cil_tmp24;
 9804#line 555
 9805  __cil_tmp26 = clear->devinfo;
 9806#line 555
 9807  __cil_tmp27 = (short )__cil_tmp26;
 9808#line 555
 9809  __cil_tmp28 = (int )__cil_tmp27;
 9810#line 555
 9811  __cil_tmp29 = __cil_tmp28 | __cil_tmp25;
 9812#line 555
 9813  clear->devinfo = (u16 )__cil_tmp29;
 9814  {
 9815#line 556
 9816  __cil_tmp30 = (unsigned int )pipe;
 9817#line 556
 9818  __cil_tmp31 = __cil_tmp30 >> 30;
 9819#line 556
 9820  if (__cil_tmp31 == 2U) {
 9821#line 556
 9822    tmp___0 = 0;
 9823  } else {
 9824#line 556
 9825    tmp___0 = 4096;
 9826  }
 9827  }
 9828#line 556
 9829  __cil_tmp32 = clear->devinfo;
 9830#line 556
 9831  __cil_tmp33 = (short )__cil_tmp32;
 9832#line 556
 9833  __cil_tmp34 = (int )__cil_tmp33;
 9834#line 556
 9835  __cil_tmp35 = __cil_tmp34 | tmp___0;
 9836#line 556
 9837  clear->devinfo = (u16 )__cil_tmp35;
 9838  {
 9839#line 559
 9840  __cil_tmp36 = pipe & 128;
 9841#line 559
 9842  if (__cil_tmp36 != 0) {
 9843#line 560
 9844    __cil_tmp37 = clear->devinfo;
 9845#line 560
 9846    __cil_tmp38 = (unsigned int )__cil_tmp37;
 9847#line 560
 9848    __cil_tmp39 = __cil_tmp38 | 32768U;
 9849#line 560
 9850    clear->devinfo = (u16 )__cil_tmp39;
 9851  } else {
 9852
 9853  }
 9854  }
 9855  {
 9856#line 563
 9857  __cil_tmp40 = udev->bus;
 9858#line 563
 9859  clear->hcd = bus_to_hcd(__cil_tmp40);
 9860#line 564
 9861  clear->ep = urb->ep;
 9862#line 567
 9863  __cil_tmp41 = & tt->lock;
 9864#line 567
 9865  tmp___1 = spinlock_check(__cil_tmp41);
 9866#line 567
 9867  flags = _raw_spin_lock_irqsave(tmp___1);
 9868#line 568
 9869  __cil_tmp42 = & clear->clear_list;
 9870#line 568
 9871  __cil_tmp43 = & tt->clear_list;
 9872#line 568
 9873  list_add_tail(__cil_tmp42, __cil_tmp43);
 9874#line 569
 9875  __cil_tmp44 = & tt->clear_work;
 9876#line 569
 9877  schedule_work(__cil_tmp44);
 9878#line 570
 9879  __cil_tmp45 = & tt->lock;
 9880#line 570
 9881  spin_unlock_irqrestore(__cil_tmp45, flags);
 9882  }
 9883#line 571
 9884  return (0);
 9885}
 9886}
 9887#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"
 9888static unsigned int hub_power_on(struct usb_hub *hub , bool do_delay ) 
 9889{ int port1 ;
 9890  unsigned int pgood_delay ;
 9891  unsigned int delay ;
 9892  u16 wHubCharacteristics ;
 9893  unsigned int _max1 ;
 9894  unsigned int _max2 ;
 9895  unsigned int tmp ;
 9896  struct usb_hub_descriptor *__cil_tmp10 ;
 9897  __u8 __cil_tmp11 ;
 9898  int __cil_tmp12 ;
 9899  int __cil_tmp13 ;
 9900  struct usb_hub_descriptor *__cil_tmp14 ;
 9901  int __cil_tmp15 ;
 9902  int __cil_tmp16 ;
 9903  struct device *__cil_tmp17 ;
 9904  struct device  const  *__cil_tmp18 ;
 9905  struct device *__cil_tmp19 ;
 9906  struct device  const  *__cil_tmp20 ;
 9907  struct usb_device *__cil_tmp21 ;
 9908  struct usb_hub_descriptor *__cil_tmp22 ;
 9909  __u8 __cil_tmp23 ;
 9910  int __cil_tmp24 ;
 9911
 9912  {
 9913#line 581
 9914  __cil_tmp10 = hub->descriptor;
 9915#line 581
 9916  __cil_tmp11 = __cil_tmp10->bPwrOn2PwrGood;
 9917#line 581
 9918  __cil_tmp12 = (int )__cil_tmp11;
 9919#line 581
 9920  __cil_tmp13 = __cil_tmp12 * 2;
 9921#line 581
 9922  pgood_delay = (unsigned int )__cil_tmp13;
 9923#line 583
 9924  __cil_tmp14 = hub->descriptor;
 9925#line 583
 9926  wHubCharacteristics = __cil_tmp14->wHubCharacteristics;
 9927  {
 9928#line 592
 9929  __cil_tmp15 = (int )wHubCharacteristics;
 9930#line 592
 9931  __cil_tmp16 = __cil_tmp15 & 3;
 9932#line 592
 9933  if (__cil_tmp16 <= 1) {
 9934    {
 9935#line 593
 9936    __cil_tmp17 = hub->intfdev;
 9937#line 593
 9938    __cil_tmp18 = (struct device  const  *)__cil_tmp17;
 9939#line 593
 9940    dev_printk("<7>", __cil_tmp18, "enabling power on all ports\n");
 9941    }
 9942  } else {
 9943    {
 9944#line 595
 9945    __cil_tmp19 = hub->intfdev;
 9946#line 595
 9947    __cil_tmp20 = (struct device  const  *)__cil_tmp19;
 9948#line 595
 9949    dev_printk("<7>", __cil_tmp20, "trying to enable port power on non-switchable hub\n");
 9950    }
 9951  }
 9952  }
 9953#line 597
 9954  port1 = 1;
 9955#line 597
 9956  goto ldv_25742;
 9957  ldv_25741: 
 9958  {
 9959#line 598
 9960  __cil_tmp21 = hub->hdev;
 9961#line 598
 9962  set_port_feature(__cil_tmp21, port1, 8);
 9963#line 597
 9964  port1 = port1 + 1;
 9965  }
 9966  ldv_25742: ;
 9967  {
 9968#line 597
 9969  __cil_tmp22 = hub->descriptor;
 9970#line 597
 9971  __cil_tmp23 = __cil_tmp22->bNbrPorts;
 9972#line 597
 9973  __cil_tmp24 = (int )__cil_tmp23;
 9974#line 597
 9975  if (__cil_tmp24 >= port1) {
 9976#line 598
 9977    goto ldv_25741;
 9978  } else {
 9979#line 600
 9980    goto ldv_25743;
 9981  }
 9982  }
 9983  ldv_25743: 
 9984#line 601
 9985  _max1 = pgood_delay;
 9986#line 601
 9987  _max2 = 100U;
 9988#line 601
 9989  if (_max1 > _max2) {
 9990#line 601
 9991    tmp = _max1;
 9992  } else {
 9993#line 601
 9994    tmp = _max2;
 9995  }
 9996#line 601
 9997  delay = tmp;
 9998#line 602
 9999  if ((int )do_delay) {
10000    {
10001#line 603
10002    msleep(delay);
10003    }
10004  } else {
10005
10006  }
10007#line 604
10008  return (delay);
10009}
10010}
10011#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"
10012static int hub_hub_status(struct usb_hub *hub , u16 *status , u16 *change ) 
10013{ int ret ;
10014  struct mutex *__cil_tmp5 ;
10015  struct usb_device *__cil_tmp6 ;
10016  union __anonunion_status_183 *__cil_tmp7 ;
10017  struct usb_hub_status *__cil_tmp8 ;
10018  struct device *__cil_tmp9 ;
10019  struct device  const  *__cil_tmp10 ;
10020  union __anonunion_status_183 *__cil_tmp11 ;
10021  union __anonunion_status_183 *__cil_tmp12 ;
10022  struct mutex *__cil_tmp13 ;
10023
10024  {
10025  {
10026#line 612
10027  __cil_tmp5 = & hub->status_mutex;
10028#line 612
10029  mutex_lock_nested(__cil_tmp5, 0U);
10030#line 613
10031  __cil_tmp6 = hub->hdev;
10032#line 613
10033  __cil_tmp7 = hub->status;
10034#line 613
10035  __cil_tmp8 = & __cil_tmp7->hub;
10036#line 613
10037  ret = get_hub_status(__cil_tmp6, __cil_tmp8);
10038  }
10039#line 614
10040  if (ret < 0) {
10041    {
10042#line 615
10043    __cil_tmp9 = hub->intfdev;
10044#line 615
10045    __cil_tmp10 = (struct device  const  *)__cil_tmp9;
10046#line 615
10047    dev_err(__cil_tmp10, "%s failed (err = %d)\n", "hub_hub_status", ret);
10048    }
10049  } else {
10050#line 618
10051    __cil_tmp11 = hub->status;
10052#line 618
10053    *status = __cil_tmp11->hub.wHubStatus;
10054#line 619
10055    __cil_tmp12 = hub->status;
10056#line 619
10057    *change = __cil_tmp12->hub.wHubChange;
10058#line 620
10059    ret = 0;
10060  }
10061  {
10062#line 622
10063  __cil_tmp13 = & hub->status_mutex;
10064#line 622
10065  mutex_unlock(__cil_tmp13);
10066  }
10067#line 623
10068  return (ret);
10069}
10070}
10071#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"
10072static int hub_port_disable(struct usb_hub *hub , int port1 , int set_state ) 
10073{ struct usb_device *hdev ;
10074  int ret ;
10075  int tmp ;
10076  struct usb_device *__cil_tmp7 ;
10077  unsigned long __cil_tmp8 ;
10078  struct usb_device *__cil_tmp9 ;
10079  unsigned long __cil_tmp10 ;
10080  struct usb_device *__cil_tmp11 ;
10081  enum usb_device_state __cil_tmp12 ;
10082  int __cil_tmp13 ;
10083  struct usb_device *__cil_tmp14 ;
10084  struct device *__cil_tmp15 ;
10085  struct device  const  *__cil_tmp16 ;
10086
10087  {
10088#line 628
10089  hdev = hub->hdev;
10090#line 629
10091  ret = 0;
10092  {
10093#line 631
10094  __cil_tmp7 = (struct usb_device *)0;
10095#line 631
10096  __cil_tmp8 = (unsigned long )__cil_tmp7;
10097#line 631
10098  __cil_tmp9 = hdev->children[port1 + -1];
10099#line 631
10100  __cil_tmp10 = (unsigned long )__cil_tmp9;
10101#line 631
10102  if (__cil_tmp10 != __cil_tmp8) {
10103#line 631
10104    if (set_state != 0) {
10105      {
10106#line 632
10107      __cil_tmp11 = hdev->children[port1 + -1];
10108#line 632
10109      __cil_tmp12 = (enum usb_device_state )0;
10110#line 632
10111      usb_set_device_state(__cil_tmp11, __cil_tmp12);
10112      }
10113    } else {
10114
10115    }
10116  } else {
10117
10118  }
10119  }
10120  {
10121#line 634
10122  __cil_tmp13 = hub->error;
10123#line 634
10124  if (__cil_tmp13 == 0) {
10125    {
10126#line 634
10127    __cil_tmp14 = hub->hdev;
10128#line 634
10129    tmp = hub_is_superspeed(__cil_tmp14);
10130    }
10131#line 634
10132    if (tmp == 0) {
10133      {
10134#line 635
10135      ret = clear_port_feature(hdev, port1, 1);
10136      }
10137    } else {
10138
10139    }
10140  } else {
10141
10142  }
10143  }
10144#line 636
10145  if (ret != 0) {
10146    {
10147#line 637
10148    __cil_tmp15 = hub->intfdev;
10149#line 637
10150    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
10151#line 637
10152    dev_err(__cil_tmp16, "cannot disable port %d (err = %d)\n", port1, ret);
10153    }
10154  } else {
10155
10156  }
10157#line 639
10158  return (ret);
10159}
10160}
10161#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"
10162static void hub_port_logical_disconnect(struct usb_hub *hub , int port1 ) 
10163{ struct device *__cil_tmp3 ;
10164  struct device  const  *__cil_tmp4 ;
10165  unsigned int __cil_tmp5 ;
10166  unsigned long (*__cil_tmp6)[1U] ;
10167  unsigned long volatile   *__cil_tmp7 ;
10168
10169  {
10170  {
10171#line 649
10172  __cil_tmp3 = hub->intfdev;
10173#line 649
10174  __cil_tmp4 = (struct device  const  *)__cil_tmp3;
10175#line 649
10176  dev_printk("<7>", __cil_tmp4, "logical disconnect on port %d\n", port1);
10177#line 650
10178  hub_port_disable(hub, port1, 1);
10179#line 661
10180  __cil_tmp5 = (unsigned int )port1;
10181#line 661
10182  __cil_tmp6 = & hub->change_bits;
10183#line 661
10184  __cil_tmp7 = (unsigned long volatile   *)__cil_tmp6;
10185#line 661
10186  set_bit(__cil_tmp5, __cil_tmp7);
10187#line 662
10188  kick_khubd(hub);
10189  }
10190#line 663
10191  return;
10192}
10193}
10194#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"
10195int usb_remove_device(struct usb_device *udev ) 
10196{ struct usb_hub *hub ;
10197  struct usb_interface *intf ;
10198  struct device  const  *__mptr ;
10199  struct usb_device *__cil_tmp5 ;
10200  unsigned long __cil_tmp6 ;
10201  struct usb_device *__cil_tmp7 ;
10202  unsigned long __cil_tmp8 ;
10203  struct usb_device *__cil_tmp9 ;
10204  struct device *__cil_tmp10 ;
10205  struct usb_interface *__cil_tmp11 ;
10206  u8 __cil_tmp12 ;
10207  unsigned int __cil_tmp13 ;
10208  unsigned long (*__cil_tmp14)[1U] ;
10209  unsigned long volatile   *__cil_tmp15 ;
10210  u8 __cil_tmp16 ;
10211  int __cil_tmp17 ;
10212
10213  {
10214  {
10215#line 680
10216  __cil_tmp5 = (struct usb_device *)0;
10217#line 680
10218  __cil_tmp6 = (unsigned long )__cil_tmp5;
10219#line 680
10220  __cil_tmp7 = udev->parent;
10221#line 680
10222  __cil_tmp8 = (unsigned long )__cil_tmp7;
10223#line 680
10224  if (__cil_tmp8 == __cil_tmp6) {
10225#line 681
10226    return (-22);
10227  } else {
10228
10229  }
10230  }
10231  {
10232#line 682
10233  __cil_tmp9 = udev->parent;
10234#line 682
10235  hub = hdev_to_hub(__cil_tmp9);
10236#line 683
10237  __cil_tmp10 = hub->intfdev;
10238#line 683
10239  __mptr = (struct device  const  *)__cil_tmp10;
10240#line 683
10241  __cil_tmp11 = (struct usb_interface *)__mptr;
10242#line 683
10243  intf = __cil_tmp11 + 1152921504606846928UL;
10244#line 685
10245  usb_autopm_get_interface(intf);
10246#line 686
10247  __cil_tmp12 = udev->portnum;
10248#line 686
10249  __cil_tmp13 = (unsigned int )__cil_tmp12;
10250#line 686
10251  __cil_tmp14 = & hub->removed_bits;
10252#line 686
10253  __cil_tmp15 = (unsigned long volatile   *)__cil_tmp14;
10254#line 686
10255  set_bit(__cil_tmp13, __cil_tmp15);
10256#line 687
10257  __cil_tmp16 = udev->portnum;
10258#line 687
10259  __cil_tmp17 = (int )__cil_tmp16;
10260#line 687
10261  hub_port_logical_disconnect(hub, __cil_tmp17);
10262#line 688
10263  usb_autopm_put_interface(intf);
10264  }
10265#line 689
10266  return (0);
10267}
10268}
10269#line 697
10270static void hub_init_func2(struct work_struct *ws ) ;
10271#line 698
10272static void hub_init_func3(struct work_struct *ws ) ;
10273#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"
10274static void hub_activate(struct usb_hub *hub , enum hub_activation_type type ) 
10275{ struct usb_device *hdev ;
10276  struct usb_hcd *hcd ;
10277  int ret ;
10278  int port1 ;
10279  int status ;
10280  bool need_debounce_delay ;
10281  unsigned int delay ;
10282  unsigned long tmp ;
10283  struct device  const  *__mptr ;
10284  struct usb_device *udev ;
10285  u16 portstatus ;
10286  u16 portchange ;
10287  int tmp___0 ;
10288  unsigned long tmp___1 ;
10289  struct device  const  *__mptr___0 ;
10290  unsigned int __cil_tmp18 ;
10291  unsigned int __cil_tmp19 ;
10292  unsigned int __cil_tmp20 ;
10293  unsigned int __cil_tmp21 ;
10294  bool __cil_tmp22 ;
10295  unsigned int __cil_tmp23 ;
10296  unsigned int __cil_tmp24 ;
10297  struct delayed_work *__cil_tmp25 ;
10298  struct device *__cil_tmp26 ;
10299  struct usb_interface *__cil_tmp27 ;
10300  struct usb_interface *__cil_tmp28 ;
10301  unsigned int __cil_tmp29 ;
10302  struct usb_bus *__cil_tmp30 ;
10303  int (*__cil_tmp31)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
10304  unsigned long __cil_tmp32 ;
10305  struct hc_driver  const  *__cil_tmp33 ;
10306  int (*__cil_tmp34)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
10307  unsigned long __cil_tmp35 ;
10308  struct hc_driver  const  *__cil_tmp36 ;
10309  int (*__cil_tmp37)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
10310  struct usb_tt *__cil_tmp38 ;
10311  struct device *__cil_tmp39 ;
10312  struct device  const  *__cil_tmp40 ;
10313  struct device *__cil_tmp41 ;
10314  struct device  const  *__cil_tmp42 ;
10315  bool __cil_tmp43 ;
10316  bool __cil_tmp44 ;
10317  struct usb_device *__cil_tmp45 ;
10318  unsigned long __cil_tmp46 ;
10319  unsigned long __cil_tmp47 ;
10320  struct device *__cil_tmp48 ;
10321  struct device  const  *__cil_tmp49 ;
10322  int __cil_tmp50 ;
10323  int __cil_tmp51 ;
10324  int __cil_tmp52 ;
10325  struct device *__cil_tmp53 ;
10326  struct device  const  *__cil_tmp54 ;
10327  int __cil_tmp55 ;
10328  int __cil_tmp56 ;
10329  int __cil_tmp57 ;
10330  int __cil_tmp58 ;
10331  unsigned int __cil_tmp59 ;
10332  int __cil_tmp60 ;
10333  int __cil_tmp61 ;
10334  struct usb_device *__cil_tmp62 ;
10335  unsigned long __cil_tmp63 ;
10336  unsigned long __cil_tmp64 ;
10337  enum usb_device_state __cil_tmp65 ;
10338  unsigned int __cil_tmp66 ;
10339  unsigned int __cil_tmp67 ;
10340  unsigned int __cil_tmp68 ;
10341  unsigned int __cil_tmp69 ;
10342  unsigned int __cil_tmp70 ;
10343  int __cil_tmp71 ;
10344  struct usb_device *__cil_tmp72 ;
10345  int __cil_tmp73 ;
10346  int __cil_tmp74 ;
10347  struct usb_device *__cil_tmp75 ;
10348  int __cil_tmp76 ;
10349  int __cil_tmp77 ;
10350  struct usb_device *__cil_tmp78 ;
10351  int __cil_tmp79 ;
10352  int __cil_tmp80 ;
10353  unsigned long (*__cil_tmp81)[1U] ;
10354  unsigned long volatile   *__cil_tmp82 ;
10355  int __cil_tmp83 ;
10356  unsigned long (*__cil_tmp84)[1U] ;
10357  unsigned long volatile   *__cil_tmp85 ;
10358  struct usb_device *__cil_tmp86 ;
10359  unsigned long __cil_tmp87 ;
10360  unsigned long __cil_tmp88 ;
10361  enum usb_device_state __cil_tmp89 ;
10362  unsigned int __cil_tmp90 ;
10363  struct usb_device *__cil_tmp91 ;
10364  unsigned long __cil_tmp92 ;
10365  unsigned long __cil_tmp93 ;
10366  unsigned int __cil_tmp94 ;
10367  unsigned long (*__cil_tmp95)[1U] ;
10368  unsigned long volatile   *__cil_tmp96 ;
10369  int __cil_tmp97 ;
10370  unsigned int __cil_tmp98 ;
10371  unsigned long (*__cil_tmp99)[1U] ;
10372  unsigned long volatile   *__cil_tmp100 ;
10373  int __cil_tmp101 ;
10374  int __cil_tmp102 ;
10375  unsigned int __cil_tmp103 ;
10376  unsigned int __cil_tmp104 ;
10377  unsigned long (*__cil_tmp105)[1U] ;
10378  unsigned long volatile   *__cil_tmp106 ;
10379  unsigned char *__cil_tmp107 ;
10380  unsigned char *__cil_tmp108 ;
10381  unsigned char __cil_tmp109 ;
10382  unsigned int __cil_tmp110 ;
10383  unsigned int __cil_tmp111 ;
10384  unsigned long (*__cil_tmp112)[1U] ;
10385  unsigned long volatile   *__cil_tmp113 ;
10386  enum usb_device_state __cil_tmp114 ;
10387  unsigned int __cil_tmp115 ;
10388  unsigned long (*__cil_tmp116)[1U] ;
10389  unsigned long volatile   *__cil_tmp117 ;
10390  int __cil_tmp118 ;
10391  unsigned int __cil_tmp119 ;
10392  unsigned int __cil_tmp120 ;
10393  unsigned int __cil_tmp121 ;
10394  struct delayed_work *__cil_tmp122 ;
10395  struct urb *__cil_tmp123 ;
10396  struct device *__cil_tmp124 ;
10397  struct device  const  *__cil_tmp125 ;
10398  unsigned char *__cil_tmp126 ;
10399  unsigned char *__cil_tmp127 ;
10400  unsigned char __cil_tmp128 ;
10401  unsigned int __cil_tmp129 ;
10402  struct delayed_work *__cil_tmp130 ;
10403  unsigned int __cil_tmp131 ;
10404  struct device *__cil_tmp132 ;
10405  struct usb_interface *__cil_tmp133 ;
10406  struct usb_interface *__cil_tmp134 ;
10407
10408  {
10409#line 702
10410  hdev = hub->hdev;
10411#line 707
10412  need_debounce_delay = (bool )0;
10413  {
10414#line 711
10415  __cil_tmp18 = (unsigned int )type;
10416#line 711
10417  if (__cil_tmp18 == 1U) {
10418#line 712
10419    goto init2;
10420  } else {
10421
10422  }
10423  }
10424  {
10425#line 713
10426  __cil_tmp19 = (unsigned int )type;
10427#line 713
10428  if (__cil_tmp19 == 2U) {
10429#line 714
10430    goto init3;
10431  } else {
10432
10433  }
10434  }
10435  {
10436#line 719
10437  __cil_tmp20 = (unsigned int )type;
10438#line 719
10439  if (__cil_tmp20 != 4U) {
10440    {
10441#line 733
10442    __cil_tmp21 = (unsigned int )type;
10443#line 733
10444    if (__cil_tmp21 == 0U) {
10445      {
10446#line 734
10447      __cil_tmp22 = (bool )0;
10448#line 734
10449      delay = hub_power_on(hub, __cil_tmp22);
10450#line 735
10451      hub->init_work.work.func = & hub_init_func2;
10452#line 736
10453      __cil_tmp23 = (unsigned int const   )delay;
10454#line 736
10455      __cil_tmp24 = (unsigned int )__cil_tmp23;
10456#line 736
10457      tmp = msecs_to_jiffies(__cil_tmp24);
10458#line 736
10459      __cil_tmp25 = & hub->init_work;
10460#line 736
10461      schedule_delayed_work(__cil_tmp25, tmp);
10462#line 741
10463      __cil_tmp26 = hub->intfdev;
10464#line 741
10465      __mptr = (struct device  const  *)__cil_tmp26;
10466#line 741
10467      __cil_tmp27 = (struct usb_interface *)__mptr;
10468#line 741
10469      __cil_tmp28 = __cil_tmp27 + 1152921504606846928UL;
10470#line 741
10471      usb_autopm_get_interface_no_resume(__cil_tmp28);
10472      }
10473#line 742
10474      return;
10475    } else {
10476      {
10477#line 743
10478      __cil_tmp29 = (unsigned int )type;
10479#line 743
10480      if (__cil_tmp29 == 5U) {
10481        {
10482#line 748
10483        __cil_tmp30 = hdev->bus;
10484#line 748
10485        hcd = bus_to_hcd(__cil_tmp30);
10486        }
10487        {
10488#line 749
10489        __cil_tmp31 = (int (* const  )(struct usb_hcd * , struct usb_device * , struct usb_tt * ,
10490                                       gfp_t  ))0;
10491#line 749
10492        __cil_tmp32 = (unsigned long )__cil_tmp31;
10493#line 749
10494        __cil_tmp33 = hcd->driver;
10495#line 749
10496        __cil_tmp34 = __cil_tmp33->update_hub_device;
10497#line 749
10498        __cil_tmp35 = (unsigned long )__cil_tmp34;
10499#line 749
10500        if (__cil_tmp35 != __cil_tmp32) {
10501          {
10502#line 750
10503          __cil_tmp36 = hcd->driver;
10504#line 750
10505          __cil_tmp37 = __cil_tmp36->update_hub_device;
10506#line 750
10507          __cil_tmp38 = & hub->tt;
10508#line 750
10509          ret = (*__cil_tmp37)(hcd, hdev, __cil_tmp38, 16U);
10510          }
10511#line 752
10512          if (ret < 0) {
10513            {
10514#line 753
10515            __cil_tmp39 = hub->intfdev;
10516#line 753
10517            __cil_tmp40 = (struct device  const  *)__cil_tmp39;
10518#line 753
10519            dev_err(__cil_tmp40, "Host not accepting hub info update.\n");
10520#line 756
10521            __cil_tmp41 = hub->intfdev;
10522#line 756
10523            __cil_tmp42 = (struct device  const  *)__cil_tmp41;
10524#line 756
10525            dev_err(__cil_tmp42, "LS/FS devices and hubs may not work under this hub\n.");
10526            }
10527          } else {
10528
10529          }
10530        } else {
10531
10532        }
10533        }
10534        {
10535#line 761
10536        __cil_tmp43 = (bool )1;
10537#line 761
10538        hub_power_on(hub, __cil_tmp43);
10539        }
10540      } else {
10541        {
10542#line 763
10543        __cil_tmp44 = (bool )1;
10544#line 763
10545        hub_power_on(hub, __cil_tmp44);
10546        }
10547      }
10548      }
10549    }
10550    }
10551  } else {
10552
10553  }
10554  }
10555  init2: 
10556#line 771
10557  port1 = 1;
10558#line 771
10559  goto ldv_25802;
10560  ldv_25801: 
10561  {
10562#line 772
10563  udev = hdev->children[port1 + -1];
10564#line 775
10565  portchange = (u16 )0U;
10566#line 775
10567  portstatus = portchange;
10568#line 776
10569  status = hub_port_status(hub, port1, & portstatus, & portchange);
10570  }
10571  {
10572#line 777
10573  __cil_tmp45 = (struct usb_device *)0;
10574#line 777
10575  __cil_tmp46 = (unsigned long )__cil_tmp45;
10576#line 777
10577  __cil_tmp47 = (unsigned long )udev;
10578#line 777
10579  if (__cil_tmp47 != __cil_tmp46) {
10580    {
10581#line 778
10582    __cil_tmp48 = hub->intfdev;
10583#line 778
10584    __cil_tmp49 = (struct device  const  *)__cil_tmp48;
10585#line 778
10586    __cil_tmp50 = (int )portstatus;
10587#line 778
10588    __cil_tmp51 = (int )portchange;
10589#line 778
10590    dev_printk("<7>", __cil_tmp49, "port %d: status %04x change %04x\n", port1, __cil_tmp50,
10591               __cil_tmp51);
10592    }
10593  } else {
10594    {
10595#line 777
10596    __cil_tmp52 = (int )portstatus;
10597#line 777
10598    if (__cil_tmp52 & 1) {
10599      {
10600#line 778
10601      __cil_tmp53 = hub->intfdev;
10602#line 778
10603      __cil_tmp54 = (struct device  const  *)__cil_tmp53;
10604#line 778
10605      __cil_tmp55 = (int )portstatus;
10606#line 778
10607      __cil_tmp56 = (int )portchange;
10608#line 778
10609      dev_printk("<7>", __cil_tmp54, "port %d: status %04x change %04x\n", port1,
10610                 __cil_tmp55, __cil_tmp56);
10611      }
10612    } else {
10613
10614    }
10615    }
10616  }
10617  }
10618  {
10619#line 787
10620  __cil_tmp57 = (int )portstatus;
10621#line 787
10622  __cil_tmp58 = __cil_tmp57 & 2;
10623#line 787
10624  if (__cil_tmp58 != 0) {
10625    {
10626#line 787
10627    __cil_tmp59 = (unsigned int )type;
10628#line 787
10629    if (__cil_tmp59 != 4U) {
10630#line 787
10631      goto _L;
10632    } else {
10633      {
10634#line 787
10635      __cil_tmp60 = (int )portstatus;
10636#line 787
10637      __cil_tmp61 = __cil_tmp60 & 1;
10638#line 787
10639      if (__cil_tmp61 == 0) {
10640#line 787
10641        goto _L;
10642      } else {
10643        {
10644#line 787
10645        __cil_tmp62 = (struct usb_device *)0;
10646#line 787
10647        __cil_tmp63 = (unsigned long )__cil_tmp62;
10648#line 787
10649        __cil_tmp64 = (unsigned long )udev;
10650#line 787
10651        if (__cil_tmp64 == __cil_tmp63) {
10652#line 787
10653          goto _L;
10654        } else {
10655          {
10656#line 787
10657          __cil_tmp65 = udev->state;
10658#line 787
10659          __cil_tmp66 = (unsigned int )__cil_tmp65;
10660#line 787
10661          if (__cil_tmp66 == 0U) {
10662            _L: 
10663            {
10664#line 797
10665            tmp___0 = hub_is_superspeed(hdev);
10666            }
10667#line 797
10668            if (tmp___0 == 0) {
10669              {
10670#line 798
10671              clear_port_feature(hdev, port1, 1);
10672#line 800
10673              __cil_tmp67 = (unsigned int )portstatus;
10674#line 800
10675              __cil_tmp68 = __cil_tmp67 & 65533U;
10676#line 800
10677              portstatus = (u16 )__cil_tmp68;
10678              }
10679            } else {
10680#line 803
10681              __cil_tmp69 = (unsigned int )portstatus;
10682#line 803
10683              __cil_tmp70 = __cil_tmp69 & 65533U;
10684#line 803
10685              portstatus = (u16 )__cil_tmp70;
10686            }
10687          } else {
10688
10689          }
10690          }
10691        }
10692        }
10693      }
10694      }
10695    }
10696    }
10697  } else {
10698
10699  }
10700  }
10701  {
10702#line 808
10703  __cil_tmp71 = (int )portchange;
10704#line 808
10705  if (__cil_tmp71 & 1) {
10706    {
10707#line 809
10708    need_debounce_delay = (bool )1;
10709#line 810
10710    __cil_tmp72 = hub->hdev;
10711#line 810
10712    clear_port_feature(__cil_tmp72, port1, 16);
10713    }
10714  } else {
10715
10716  }
10717  }
10718  {
10719#line 813
10720  __cil_tmp73 = (int )portchange;
10721#line 813
10722  __cil_tmp74 = __cil_tmp73 & 2;
10723#line 813
10724  if (__cil_tmp74 != 0) {
10725    {
10726#line 814
10727    need_debounce_delay = (bool )1;
10728#line 815
10729    __cil_tmp75 = hub->hdev;
10730#line 815
10731    clear_port_feature(__cil_tmp75, port1, 17);
10732    }
10733  } else {
10734
10735  }
10736  }
10737  {
10738#line 818
10739  __cil_tmp76 = (int )portchange;
10740#line 818
10741  __cil_tmp77 = __cil_tmp76 & 64;
10742#line 818
10743  if (__cil_tmp77 != 0) {
10744    {
10745#line 819
10746    need_debounce_delay = (bool )1;
10747#line 820
10748    __cil_tmp78 = hub->hdev;
10749#line 820
10750    clear_port_feature(__cil_tmp78, port1, 25);
10751    }
10752  } else {
10753
10754  }
10755  }
10756  {
10757#line 827
10758  __cil_tmp79 = (int )portstatus;
10759#line 827
10760  __cil_tmp80 = __cil_tmp79 & 1;
10761#line 827
10762  if (__cil_tmp80 == 0) {
10763    {
10764#line 829
10765    __cil_tmp81 = & hub->removed_bits;
10766#line 829
10767    __cil_tmp82 = (unsigned long volatile   *)__cil_tmp81;
10768#line 829
10769    clear_bit(port1, __cil_tmp82);
10770    }
10771  } else {
10772    {
10773#line 827
10774    __cil_tmp83 = (int )portchange;
10775#line 827
10776    if (__cil_tmp83 & 1) {
10777      {
10778#line 829
10779      __cil_tmp84 = & hub->removed_bits;
10780#line 829
10781      __cil_tmp85 = (unsigned long volatile   *)__cil_tmp84;
10782#line 829
10783      clear_bit(port1, __cil_tmp85);
10784      }
10785    } else {
10786
10787    }
10788    }
10789  }
10790  }
10791  {
10792#line 831
10793  __cil_tmp86 = (struct usb_device *)0;
10794#line 831
10795  __cil_tmp87 = (unsigned long )__cil_tmp86;
10796#line 831
10797  __cil_tmp88 = (unsigned long )udev;
10798#line 831
10799  if (__cil_tmp88 == __cil_tmp87) {
10800#line 831
10801    goto _L___0;
10802  } else {
10803    {
10804#line 831
10805    __cil_tmp89 = udev->state;
10806#line 831
10807    __cil_tmp90 = (unsigned int )__cil_tmp89;
10808#line 831
10809    if (__cil_tmp90 == 0U) {
10810      _L___0: 
10811      {
10812#line 835
10813      __cil_tmp91 = (struct usb_device *)0;
10814#line 835
10815      __cil_tmp92 = (unsigned long )__cil_tmp91;
10816#line 835
10817      __cil_tmp93 = (unsigned long )udev;
10818#line 835
10819      if (__cil_tmp93 != __cil_tmp92) {
10820        {
10821#line 836
10822        __cil_tmp94 = (unsigned int )port1;
10823#line 836
10824        __cil_tmp95 = & hub->change_bits;
10825#line 836
10826        __cil_tmp96 = (unsigned long volatile   *)__cil_tmp95;
10827#line 836
10828        set_bit(__cil_tmp94, __cil_tmp96);
10829        }
10830      } else {
10831        {
10832#line 835
10833        __cil_tmp97 = (int )portstatus;
10834#line 835
10835        if (__cil_tmp97 & 1) {
10836          {
10837#line 836
10838          __cil_tmp98 = (unsigned int )port1;
10839#line 836
10840          __cil_tmp99 = & hub->change_bits;
10841#line 836
10842          __cil_tmp100 = (unsigned long volatile   *)__cil_tmp99;
10843#line 836
10844          set_bit(__cil_tmp98, __cil_tmp100);
10845          }
10846        } else {
10847          {
10848#line 838
10849          __cil_tmp101 = (int )portstatus;
10850#line 838
10851          __cil_tmp102 = __cil_tmp101 & 2;
10852#line 838
10853          if (__cil_tmp102 != 0) {
10854            {
10855#line 844
10856            __cil_tmp103 = (unsigned int )portchange;
10857#line 844
10858            if (__cil_tmp103 != 0U) {
10859              {
10860#line 845
10861              __cil_tmp104 = (unsigned int )port1;
10862#line 845
10863              __cil_tmp105 = & hub->change_bits;
10864#line 845
10865              __cil_tmp106 = (unsigned long volatile   *)__cil_tmp105;
10866#line 845
10867              set_bit(__cil_tmp104, __cil_tmp106);
10868              }
10869            } else {
10870              {
10871#line 847
10872              __cil_tmp107 = (unsigned char *)udev;
10873#line 847
10874              __cil_tmp108 = __cil_tmp107 + 1556UL;
10875#line 847
10876              __cil_tmp109 = *__cil_tmp108;
10877#line 847
10878              __cil_tmp110 = (unsigned int )__cil_tmp109;
10879#line 847
10880              if (__cil_tmp110 != 0U) {
10881                {
10882#line 849
10883                udev->reset_resume = (unsigned char)1;
10884#line 851
10885                __cil_tmp111 = (unsigned int )port1;
10886#line 851
10887                __cil_tmp112 = & hub->change_bits;
10888#line 851
10889                __cil_tmp113 = (unsigned long volatile   *)__cil_tmp112;
10890#line 851
10891                set_bit(__cil_tmp111, __cil_tmp113);
10892                }
10893              } else {
10894                {
10895#line 855
10896                __cil_tmp114 = (enum usb_device_state )0;
10897#line 855
10898                usb_set_device_state(udev, __cil_tmp114);
10899#line 856
10900                __cil_tmp115 = (unsigned int )port1;
10901#line 856
10902                __cil_tmp116 = & hub->change_bits;
10903#line 856
10904                __cil_tmp117 = (unsigned long volatile   *)__cil_tmp116;
10905#line 856
10906                set_bit(__cil_tmp115, __cil_tmp117);
10907                }
10908              }
10909              }
10910            }
10911            }
10912          } else {
10913
10914          }
10915          }
10916        }
10917        }
10918      }
10919      }
10920    } else {
10921
10922    }
10923    }
10924  }
10925  }
10926#line 771
10927  port1 = port1 + 1;
10928  ldv_25802: ;
10929  {
10930#line 771
10931  __cil_tmp118 = hdev->maxchild;
10932#line 771
10933  if (__cil_tmp118 >= port1) {
10934#line 772
10935    goto ldv_25801;
10936  } else {
10937#line 774
10938    goto ldv_25803;
10939  }
10940  }
10941  ldv_25803: ;
10942#line 868
10943  if ((int )need_debounce_delay) {
10944#line 869
10945    delay = 100U;
10946    {
10947#line 872
10948    __cil_tmp119 = (unsigned int )type;
10949#line 872
10950    if (__cil_tmp119 == 1U) {
10951      {
10952#line 873
10953      hub->init_work.work.func = & hub_init_func3;
10954#line 874
10955      __cil_tmp120 = (unsigned int const   )delay;
10956#line 874
10957      __cil_tmp121 = (unsigned int )__cil_tmp120;
10958#line 874
10959      tmp___1 = msecs_to_jiffies(__cil_tmp121);
10960#line 874
10961      __cil_tmp122 = & hub->init_work;
10962#line 874
10963      schedule_delayed_work(__cil_tmp122, tmp___1);
10964      }
10965#line 876
10966      return;
10967    } else {
10968      {
10969#line 878
10970      msleep(delay);
10971      }
10972    }
10973    }
10974  } else {
10975
10976  }
10977  init3: 
10978  {
10979#line 882
10980  hub->quiescing = (unsigned char)0;
10981#line 884
10982  __cil_tmp123 = hub->urb;
10983#line 884
10984  status = usb_submit_urb(__cil_tmp123, 16U);
10985  }
10986#line 885
10987  if (status < 0) {
10988    {
10989#line 886
10990    __cil_tmp124 = hub->intfdev;
10991#line 886
10992    __cil_tmp125 = (struct device  const  *)__cil_tmp124;
10993#line 886
10994    dev_err(__cil_tmp125, "activate --> %d\n", status);
10995    }
10996  } else {
10997
10998  }
10999  {
11000#line 887
11001  __cil_tmp126 = (unsigned char *)hub;
11002#line 887
11003  __cil_tmp127 = __cil_tmp126 + 468UL;
11004#line 887
11005  __cil_tmp128 = *__cil_tmp127;
11006#line 887
11007  __cil_tmp129 = (unsigned int )__cil_tmp128;
11008#line 887
11009  if (__cil_tmp129 != 0U) {
11010#line 887
11011    if (blinkenlights != 0) {
11012      {
11013#line 888
11014      __cil_tmp130 = & hub->leds;
11015#line 888
11016      schedule_delayed_work(__cil_tmp130, 166UL);
11017      }
11018    } else {
11019
11020    }
11021  } else {
11022
11023  }
11024  }
11025  {
11026#line 891
11027  kick_khubd(hub);
11028  }
11029  {
11030#line 894
11031  __cil_tmp131 = (unsigned int )type;
11032#line 894
11033  if (__cil_tmp131 <= 2U) {
11034    {
11035#line 895
11036    __cil_tmp132 = hub->intfdev;
11037#line 895
11038    __mptr___0 = (struct device  const  *)__cil_tmp132;
11039#line 895
11040    __cil_tmp133 = (struct usb_interface *)__mptr___0;
11041#line 895
11042    __cil_tmp134 = __cil_tmp133 + 1152921504606846928UL;
11043#line 895
11044    usb_autopm_put_interface_async(__cil_tmp134);
11045    }
11046  } else {
11047
11048  }
11049  }
11050#line 897
11051  return;
11052}
11053}
11054#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"
11055static void hub_init_func2(struct work_struct *ws ) 
11056{ struct usb_hub *hub ;
11057  struct work_struct  const  *__mptr ;
11058  struct usb_hub *__cil_tmp4 ;
11059  enum hub_activation_type __cil_tmp5 ;
11060
11061  {
11062  {
11063#line 901
11064  __mptr = (struct work_struct  const  *)ws;
11065#line 901
11066  __cil_tmp4 = (struct usb_hub *)__mptr;
11067#line 901
11068  hub = __cil_tmp4 + 1152921504606846264UL;
11069#line 903
11070  __cil_tmp5 = (enum hub_activation_type )1;
11071#line 903
11072  hub_activate(hub, __cil_tmp5);
11073  }
11074#line 904
11075  return;
11076}
11077}
11078#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"
11079static void hub_init_func3(struct work_struct *ws ) 
11080{ struct usb_hub *hub ;
11081  struct work_struct  const  *__mptr ;
11082  struct usb_hub *__cil_tmp4 ;
11083  enum hub_activation_type __cil_tmp5 ;
11084
11085  {
11086  {
11087#line 908
11088  __mptr = (struct work_struct  const  *)ws;
11089#line 908
11090  __cil_tmp4 = (struct usb_hub *)__mptr;
11091#line 908
11092  hub = __cil_tmp4 + 1152921504606846264UL;
11093#line 910
11094  __cil_tmp5 = (enum hub_activation_type )2;
11095#line 910
11096  hub_activate(hub, __cil_tmp5);
11097  }
11098#line 911
11099  return;
11100}
11101}
11102#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"
11103static void hub_quiesce(struct usb_hub *hub , enum hub_quiescing_type type ) 
11104{ struct usb_device *hdev ;
11105  int i ;
11106  struct delayed_work *__cil_tmp5 ;
11107  unsigned int __cil_tmp6 ;
11108  struct usb_device *__cil_tmp7 ;
11109  unsigned long __cil_tmp8 ;
11110  struct usb_device *__cil_tmp9 ;
11111  unsigned long __cil_tmp10 ;
11112  unsigned long __cil_tmp11 ;
11113  struct usb_device *(*__cil_tmp12)[31U] ;
11114  struct usb_device **__cil_tmp13 ;
11115  struct usb_device **__cil_tmp14 ;
11116  int __cil_tmp15 ;
11117  struct urb *__cil_tmp16 ;
11118  unsigned char *__cil_tmp17 ;
11119  unsigned char *__cil_tmp18 ;
11120  unsigned char __cil_tmp19 ;
11121  unsigned int __cil_tmp20 ;
11122  struct delayed_work *__cil_tmp21 ;
11123  struct usb_device *__cil_tmp22 ;
11124  unsigned long __cil_tmp23 ;
11125  struct usb_device *__cil_tmp24 ;
11126  unsigned long __cil_tmp25 ;
11127  struct work_struct *__cil_tmp26 ;
11128
11129  {
11130  {
11131#line 919
11132  hdev = hub->hdev;
11133#line 922
11134  __cil_tmp5 = & hub->init_work;
11135#line 922
11136  cancel_delayed_work_sync(__cil_tmp5);
11137#line 925
11138  hub->quiescing = (unsigned char)1;
11139  }
11140  {
11141#line 927
11142  __cil_tmp6 = (unsigned int )type;
11143#line 927
11144  if (__cil_tmp6 != 2U) {
11145#line 929
11146    i = 0;
11147#line 929
11148    goto ldv_25829;
11149    ldv_25828: ;
11150    {
11151#line 930
11152    __cil_tmp7 = (struct usb_device *)0;
11153#line 930
11154    __cil_tmp8 = (unsigned long )__cil_tmp7;
11155#line 930
11156    __cil_tmp9 = hdev->children[i];
11157#line 930
11158    __cil_tmp10 = (unsigned long )__cil_tmp9;
11159#line 930
11160    if (__cil_tmp10 != __cil_tmp8) {
11161      {
11162#line 931
11163      __cil_tmp11 = (unsigned long )i;
11164#line 931
11165      __cil_tmp12 = & hdev->children;
11166#line 931
11167      __cil_tmp13 = (struct usb_device **)__cil_tmp12;
11168#line 931
11169      __cil_tmp14 = __cil_tmp13 + __cil_tmp11;
11170#line 931
11171      usb_disconnect(__cil_tmp14);
11172      }
11173    } else {
11174
11175    }
11176    }
11177#line 929
11178    i = i + 1;
11179    ldv_25829: ;
11180    {
11181#line 929
11182    __cil_tmp15 = hdev->maxchild;
11183#line 929
11184    if (__cil_tmp15 > i) {
11185#line 930
11186      goto ldv_25828;
11187    } else {
11188#line 932
11189      goto ldv_25830;
11190    }
11191    }
11192    ldv_25830: ;
11193  } else {
11194
11195  }
11196  }
11197  {
11198#line 936
11199  __cil_tmp16 = hub->urb;
11200#line 936
11201  usb_kill_urb(__cil_tmp16);
11202  }
11203  {
11204#line 937
11205  __cil_tmp17 = (unsigned char *)hub;
11206#line 937
11207  __cil_tmp18 = __cil_tmp17 + 468UL;
11208#line 937
11209  __cil_tmp19 = *__cil_tmp18;
11210#line 937
11211  __cil_tmp20 = (unsigned int )__cil_tmp19;
11212#line 937
11213  if (__cil_tmp20 != 0U) {
11214    {
11215#line 938
11216    __cil_tmp21 = & hub->leds;
11217#line 938
11218    cancel_delayed_work_sync(__cil_tmp21);
11219    }
11220  } else {
11221
11222  }
11223  }
11224  {
11225#line 939
11226  __cil_tmp22 = (struct usb_device *)0;
11227#line 939
11228  __cil_tmp23 = (unsigned long )__cil_tmp22;
11229#line 939
11230  __cil_tmp24 = hub->tt.hub;
11231#line 939
11232  __cil_tmp25 = (unsigned long )__cil_tmp24;
11233#line 939
11234  if (__cil_tmp25 != __cil_tmp23) {
11235    {
11236#line 940
11237    __cil_tmp26 = & hub->tt.clear_work;
11238#line 940
11239    cancel_work_sync(__cil_tmp26);
11240    }
11241  } else {
11242
11243  }
11244  }
11245#line 941
11246  return;
11247}
11248}
11249#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"
11250static int hub_pre_reset(struct usb_interface *intf ) 
11251{ struct usb_hub *hub ;
11252  void *tmp ;
11253  enum hub_quiescing_type __cil_tmp4 ;
11254
11255  {
11256  {
11257#line 946
11258  tmp = usb_get_intfdata(intf);
11259#line 946
11260  hub = (struct usb_hub *)tmp;
11261#line 948
11262  __cil_tmp4 = (enum hub_quiescing_type )1;
11263#line 948
11264  hub_quiesce(hub, __cil_tmp4);
11265  }
11266#line 949
11267  return (0);
11268}
11269}
11270#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"
11271static int hub_post_reset(struct usb_interface *intf ) 
11272{ struct usb_hub *hub ;
11273  void *tmp ;
11274  enum hub_activation_type __cil_tmp4 ;
11275
11276  {
11277  {
11278#line 955
11279  tmp = usb_get_intfdata(intf);
11280#line 955
11281  hub = (struct usb_hub *)tmp;
11282#line 957
11283  __cil_tmp4 = (enum hub_activation_type )3;
11284#line 957
11285  hub_activate(hub, __cil_tmp4);
11286  }
11287#line 958
11288  return (0);
11289}
11290}
11291#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"
11292static int hub_configure(struct usb_hub *hub , struct usb_endpoint_descriptor *endpoint ) 
11293{ struct usb_hcd *hcd ;
11294  struct usb_device *hdev ;
11295  struct device *hub_dev ;
11296  u16 hubstatus ;
11297  u16 hubchange ;
11298  u16 wHubCharacteristics ;
11299  unsigned int pipe ;
11300  int maxp ;
11301  int ret ;
11302  char *message ;
11303  void *tmp ;
11304  void *tmp___0 ;
11305  struct lock_class_key __key ;
11306  void *tmp___1 ;
11307  unsigned int tmp___2 ;
11308  int tmp___3 ;
11309  char *tmp___4 ;
11310  void *tmp___5 ;
11311  int i ;
11312  char portstr[32U] ;
11313  int tmp___6 ;
11314  struct lock_class_key __key___0 ;
11315  struct lock_class_key __key___1 ;
11316  atomic_long_t __constr_expr_0 ;
11317  int remaining ;
11318  char *tmp___7 ;
11319  char *tmp___8 ;
11320  unsigned int tmp___9 ;
11321  __u16 tmp___10 ;
11322  char (*__cil_tmp32)[8U] ;
11323  unsigned long __cil_tmp33 ;
11324  char (*__cil_tmp34)[8U] ;
11325  unsigned long __cil_tmp35 ;
11326  union __anonunion_185 *__cil_tmp36 ;
11327  union __anonunion_status_183 *__cil_tmp37 ;
11328  unsigned long __cil_tmp38 ;
11329  union __anonunion_status_183 *__cil_tmp39 ;
11330  unsigned long __cil_tmp40 ;
11331  struct mutex *__cil_tmp41 ;
11332  struct usb_hub_descriptor *__cil_tmp42 ;
11333  unsigned long __cil_tmp43 ;
11334  struct usb_hub_descriptor *__cil_tmp44 ;
11335  unsigned long __cil_tmp45 ;
11336  struct usb_device *__cil_tmp46 ;
11337  unsigned long __cil_tmp47 ;
11338  struct usb_device *__cil_tmp48 ;
11339  unsigned long __cil_tmp49 ;
11340  unsigned int __cil_tmp50 ;
11341  __u8 __cil_tmp51 ;
11342  __u8 __cil_tmp52 ;
11343  u8 __cil_tmp53 ;
11344  __u16 __cil_tmp54 ;
11345  unsigned int __cil_tmp55 ;
11346  unsigned int __cil_tmp56 ;
11347  int __cil_tmp57 ;
11348  __u16 __cil_tmp58 ;
11349  __u16 __cil_tmp59 ;
11350  void *__cil_tmp60 ;
11351  __u16 __cil_tmp61 ;
11352  struct usb_hub_descriptor *__cil_tmp62 ;
11353  void *__cil_tmp63 ;
11354  struct usb_hub_descriptor *__cil_tmp64 ;
11355  __u8 __cil_tmp65 ;
11356  unsigned int __cil_tmp66 ;
11357  struct usb_hub_descriptor *__cil_tmp67 ;
11358  __u8 __cil_tmp68 ;
11359  int __cil_tmp69 ;
11360  struct device  const  *__cil_tmp70 ;
11361  int __cil_tmp71 ;
11362  int __cil_tmp72 ;
11363  unsigned long __cil_tmp73 ;
11364  unsigned long __cil_tmp74 ;
11365  void **__cil_tmp75 ;
11366  unsigned long __cil_tmp76 ;
11367  void **__cil_tmp77 ;
11368  unsigned long __cil_tmp78 ;
11369  struct usb_hub_descriptor *__cil_tmp79 ;
11370  int __cil_tmp80 ;
11371  int __cil_tmp81 ;
11372  int __cil_tmp82 ;
11373  int __cil_tmp83 ;
11374  struct usb_hub_descriptor *__cil_tmp84 ;
11375  __u8 __cil_tmp85 ;
11376  int __cil_tmp86 ;
11377  int __cil_tmp87 ;
11378  int __cil_tmp88 ;
11379  struct device  const  *__cil_tmp89 ;
11380  char *__cil_tmp90 ;
11381  struct device  const  *__cil_tmp91 ;
11382  struct device  const  *__cil_tmp92 ;
11383  int __cil_tmp93 ;
11384  int __cil_tmp94 ;
11385  int __cil_tmp95 ;
11386  int __cil_tmp96 ;
11387  int __cil_tmp97 ;
11388  int __cil_tmp98 ;
11389  int __cil_tmp99 ;
11390  int __cil_tmp100 ;
11391  struct device  const  *__cil_tmp101 ;
11392  struct device  const  *__cil_tmp102 ;
11393  struct device  const  *__cil_tmp103 ;
11394  int __cil_tmp104 ;
11395  int __cil_tmp105 ;
11396  int __cil_tmp106 ;
11397  int __cil_tmp107 ;
11398  int __cil_tmp108 ;
11399  int __cil_tmp109 ;
11400  int __cil_tmp110 ;
11401  int __cil_tmp111 ;
11402  struct device  const  *__cil_tmp112 ;
11403  struct device  const  *__cil_tmp113 ;
11404  struct device  const  *__cil_tmp114 ;
11405  spinlock_t *__cil_tmp115 ;
11406  struct raw_spinlock *__cil_tmp116 ;
11407  struct list_head *__cil_tmp117 ;
11408  struct work_struct *__cil_tmp118 ;
11409  struct lockdep_map *__cil_tmp119 ;
11410  struct list_head *__cil_tmp120 ;
11411  __u8 __cil_tmp121 ;
11412  int __cil_tmp122 ;
11413  __u8 __cil_tmp123 ;
11414  int __cil_tmp124 ;
11415  __u8 __cil_tmp125 ;
11416  int __cil_tmp126 ;
11417  __u8 __cil_tmp127 ;
11418  int __cil_tmp128 ;
11419  struct device  const  *__cil_tmp129 ;
11420  struct device  const  *__cil_tmp130 ;
11421  struct device  const  *__cil_tmp131 ;
11422  struct device  const  *__cil_tmp132 ;
11423  __u8 __cil_tmp133 ;
11424  int __cil_tmp134 ;
11425  int __cil_tmp135 ;
11426  int __cil_tmp136 ;
11427  int __cil_tmp137 ;
11428  int __cil_tmp138 ;
11429  int __cil_tmp139 ;
11430  int __cil_tmp140 ;
11431  int __cil_tmp141 ;
11432  int __cil_tmp142 ;
11433  __u8 __cil_tmp143 ;
11434  unsigned int __cil_tmp144 ;
11435  struct device  const  *__cil_tmp145 ;
11436  unsigned int __cil_tmp146 ;
11437  struct device  const  *__cil_tmp147 ;
11438  unsigned int __cil_tmp148 ;
11439  struct device  const  *__cil_tmp149 ;
11440  unsigned int __cil_tmp150 ;
11441  struct device  const  *__cil_tmp151 ;
11442  unsigned int __cil_tmp152 ;
11443  int __cil_tmp153 ;
11444  int __cil_tmp154 ;
11445  struct device  const  *__cil_tmp155 ;
11446  struct device  const  *__cil_tmp156 ;
11447  struct usb_hub_descriptor *__cil_tmp157 ;
11448  __u8 __cil_tmp158 ;
11449  int __cil_tmp159 ;
11450  int __cil_tmp160 ;
11451  void *__cil_tmp161 ;
11452  unsigned long __cil_tmp162 ;
11453  struct usb_bus *__cil_tmp163 ;
11454  struct usb_device *__cil_tmp164 ;
11455  unsigned long __cil_tmp165 ;
11456  unsigned short __cil_tmp166 ;
11457  unsigned int __cil_tmp167 ;
11458  unsigned short __cil_tmp168 ;
11459  unsigned int __cil_tmp169 ;
11460  unsigned short __cil_tmp170 ;
11461  int __cil_tmp171 ;
11462  int __cil_tmp172 ;
11463  struct device  const  *__cil_tmp173 ;
11464  struct usb_hub_descriptor *__cil_tmp174 ;
11465  __u8 __cil_tmp175 ;
11466  int __cil_tmp176 ;
11467  int __cil_tmp177 ;
11468  struct usb_hub_descriptor *__cil_tmp178 ;
11469  __u8 __cil_tmp179 ;
11470  int __cil_tmp180 ;
11471  unsigned short __cil_tmp181 ;
11472  int __cil_tmp182 ;
11473  int __cil_tmp183 ;
11474  int __cil_tmp184 ;
11475  struct device  const  *__cil_tmp185 ;
11476  unsigned int __cil_tmp186 ;
11477  struct device  const  *__cil_tmp187 ;
11478  unsigned int __cil_tmp188 ;
11479  struct usb_bus *__cil_tmp189 ;
11480  int (*__cil_tmp190)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
11481  unsigned long __cil_tmp191 ;
11482  struct hc_driver  const  *__cil_tmp192 ;
11483  int (*__cil_tmp193)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
11484  unsigned long __cil_tmp194 ;
11485  struct hc_driver  const  *__cil_tmp195 ;
11486  int (*__cil_tmp196)(struct usb_hcd * , struct usb_device * , struct usb_tt * , gfp_t  ) ;
11487  struct usb_tt *__cil_tmp197 ;
11488  struct usb_host_config *__cil_tmp198 ;
11489  __u8 __cil_tmp199 ;
11490  int __cil_tmp200 ;
11491  int __cil_tmp201 ;
11492  int __cil_tmp202 ;
11493  struct device  const  *__cil_tmp203 ;
11494  int __cil_tmp204 ;
11495  int __cil_tmp205 ;
11496  int __cil_tmp206 ;
11497  int __cil_tmp207 ;
11498  struct device  const  *__cil_tmp208 ;
11499  __u8 __cil_tmp209 ;
11500  unsigned int __cil_tmp210 ;
11501  int __cil_tmp211 ;
11502  unsigned int __cil_tmp212 ;
11503  int __cil_tmp213 ;
11504  unsigned int __cil_tmp214 ;
11505  struct urb *__cil_tmp215 ;
11506  unsigned long __cil_tmp216 ;
11507  struct urb *__cil_tmp217 ;
11508  unsigned long __cil_tmp218 ;
11509  struct urb *__cil_tmp219 ;
11510  char (*__cil_tmp220)[8U] ;
11511  void *__cil_tmp221 ;
11512  void *__cil_tmp222 ;
11513  __u8 __cil_tmp223 ;
11514  int __cil_tmp224 ;
11515  unsigned char *__cil_tmp225 ;
11516  unsigned char *__cil_tmp226 ;
11517  unsigned char __cil_tmp227 ;
11518  unsigned int __cil_tmp228 ;
11519  enum hub_activation_type __cil_tmp229 ;
11520  struct device  const  *__cil_tmp230 ;
11521
11522  {
11523  {
11524#line 965
11525  hdev = hub->hdev;
11526#line 966
11527  hub_dev = hub->intfdev;
11528#line 971
11529  message = (char *)"out of memory";
11530#line 973
11531  tmp = kmalloc(8UL, 208U);
11532#line 973
11533  hub->buffer = (char (*)[8])tmp;
11534  }
11535  {
11536#line 974
11537  __cil_tmp32 = (char (*)[8U])0;
11538#line 974
11539  __cil_tmp33 = (unsigned long )__cil_tmp32;
11540#line 974
11541  __cil_tmp34 = hub->buffer;
11542#line 974
11543  __cil_tmp35 = (unsigned long )__cil_tmp34;
11544#line 974
11545  if (__cil_tmp35 == __cil_tmp33) {
11546#line 975
11547    ret = -12;
11548#line 976
11549    goto fail;
11550  } else {
11551
11552  }
11553  }
11554  {
11555#line 979
11556  tmp___0 = kmalloc(4UL, 208U);
11557#line 979
11558  __cil_tmp36 = (union __anonunion_185 *)tmp___0;
11559#line 979
11560  hub->status = (union __anonunion_status_183 *)__cil_tmp36;
11561  }
11562  {
11563#line 980
11564  __cil_tmp37 = (union __anonunion_status_183 *)0;
11565#line 980
11566  __cil_tmp38 = (unsigned long )__cil_tmp37;
11567#line 980
11568  __cil_tmp39 = hub->status;
11569#line 980
11570  __cil_tmp40 = (unsigned long )__cil_tmp39;
11571#line 980
11572  if (__cil_tmp40 == __cil_tmp38) {
11573#line 981
11574    ret = -12;
11575#line 982
11576    goto fail;
11577  } else {
11578
11579  }
11580  }
11581  {
11582#line 984
11583  __cil_tmp41 = & hub->status_mutex;
11584#line 984
11585  __mutex_init(__cil_tmp41, "&hub->status_mutex", & __key);
11586#line 986
11587  tmp___1 = kmalloc(15UL, 208U);
11588#line 986
11589  hub->descriptor = (struct usb_hub_descriptor *)tmp___1;
11590  }
11591  {
11592#line 987
11593  __cil_tmp42 = (struct usb_hub_descriptor *)0;
11594#line 987
11595  __cil_tmp43 = (unsigned long )__cil_tmp42;
11596#line 987
11597  __cil_tmp44 = hub->descriptor;
11598#line 987
11599  __cil_tmp45 = (unsigned long )__cil_tmp44;
11600#line 987
11601  if (__cil_tmp45 == __cil_tmp43) {
11602#line 988
11603    ret = -12;
11604#line 989
11605    goto fail;
11606  } else {
11607
11608  }
11609  }
11610  {
11611#line 992
11612  tmp___3 = hub_is_superspeed(hdev);
11613  }
11614#line 992
11615  if (tmp___3 != 0) {
11616    {
11617#line 992
11618    __cil_tmp46 = (struct usb_device *)0;
11619#line 992
11620    __cil_tmp47 = (unsigned long )__cil_tmp46;
11621#line 992
11622    __cil_tmp48 = hdev->parent;
11623#line 992
11624    __cil_tmp49 = (unsigned long )__cil_tmp48;
11625#line 992
11626    if (__cil_tmp49 != __cil_tmp47) {
11627      {
11628#line 993
11629      tmp___2 = __create_pipe(hdev, 0U);
11630#line 993
11631      __cil_tmp50 = tmp___2 | 2147483648U;
11632#line 993
11633      __cil_tmp51 = (__u8 )12;
11634#line 993
11635      __cil_tmp52 = (__u8 )32;
11636#line 993
11637      __cil_tmp53 = hdev->level;
11638#line 993
11639      __cil_tmp54 = (__u16 )__cil_tmp53;
11640#line 993
11641      __cil_tmp55 = (unsigned int )__cil_tmp54;
11642#line 993
11643      __cil_tmp56 = __cil_tmp55 + 65535U;
11644#line 993
11645      __cil_tmp57 = (int )__cil_tmp56;
11646#line 993
11647      __cil_tmp58 = (__u16 )__cil_tmp57;
11648#line 993
11649      __cil_tmp59 = (__u16 )0;
11650#line 993
11651      __cil_tmp60 = (void *)0;
11652#line 993
11653      __cil_tmp61 = (__u16 )0;
11654#line 993
11655      ret = usb_control_msg(hdev, __cil_tmp50, __cil_tmp51, __cil_tmp52, __cil_tmp58,
11656                            __cil_tmp59, __cil_tmp60, __cil_tmp61, 5000);
11657      }
11658#line 998
11659      if (ret < 0) {
11660#line 999
11661        message = (char *)"can\'t set hub depth";
11662#line 1000
11663        goto fail;
11664      } else {
11665
11666      }
11667    } else {
11668
11669    }
11670    }
11671  } else {
11672
11673  }
11674  {
11675#line 1008
11676  __cil_tmp62 = hub->descriptor;
11677#line 1008
11678  __cil_tmp63 = (void *)__cil_tmp62;
11679#line 1008
11680  ret = get_hub_descriptor(hdev, __cil_tmp63);
11681  }
11682#line 1009
11683  if (ret < 0) {
11684#line 1010
11685    message = (char *)"can\'t read hub descriptor";
11686#line 1011
11687    goto fail;
11688  } else {
11689    {
11690#line 1012
11691    __cil_tmp64 = hub->descriptor;
11692#line 1012
11693    __cil_tmp65 = __cil_tmp64->bNbrPorts;
11694#line 1012
11695    __cil_tmp66 = (unsigned int )__cil_tmp65;
11696#line 1012
11697    if (__cil_tmp66 > 31U) {
11698#line 1013
11699      message = (char *)"hub has too many ports!";
11700#line 1014
11701      ret = -19;
11702#line 1015
11703      goto fail;
11704    } else {
11705
11706    }
11707    }
11708  }
11709#line 1018
11710  __cil_tmp67 = hub->descriptor;
11711#line 1018
11712  __cil_tmp68 = __cil_tmp67->bNbrPorts;
11713#line 1018
11714  hdev->maxchild = (int )__cil_tmp68;
11715  {
11716#line 1019
11717  __cil_tmp69 = hdev->maxchild;
11718#line 1019
11719  if (__cil_tmp69 == 1) {
11720#line 1019
11721    tmp___4 = (char *)"";
11722  } else {
11723#line 1019
11724    tmp___4 = (char *)"s";
11725  }
11726  }
11727  {
11728#line 1019
11729  __cil_tmp70 = (struct device  const  *)hub_dev;
11730#line 1019
11731  __cil_tmp71 = hdev->maxchild;
11732#line 1019
11733  _dev_info(__cil_tmp70, "%d port%s detected\n", __cil_tmp71, tmp___4);
11734#line 1022
11735  __cil_tmp72 = hdev->maxchild;
11736#line 1022
11737  __cil_tmp73 = (unsigned long )__cil_tmp72;
11738#line 1022
11739  __cil_tmp74 = __cil_tmp73 * 8UL;
11740#line 1022
11741  tmp___5 = kzalloc(__cil_tmp74, 208U);
11742#line 1022
11743  hub->port_owners = (void **)tmp___5;
11744  }
11745  {
11746#line 1023
11747  __cil_tmp75 = (void **)0;
11748#line 1023
11749  __cil_tmp76 = (unsigned long )__cil_tmp75;
11750#line 1023
11751  __cil_tmp77 = hub->port_owners;
11752#line 1023
11753  __cil_tmp78 = (unsigned long )__cil_tmp77;
11754#line 1023
11755  if (__cil_tmp78 == __cil_tmp76) {
11756#line 1024
11757    ret = -12;
11758#line 1025
11759    goto fail;
11760  } else {
11761
11762  }
11763  }
11764#line 1028
11765  __cil_tmp79 = hub->descriptor;
11766#line 1028
11767  wHubCharacteristics = __cil_tmp79->wHubCharacteristics;
11768  {
11769#line 1031
11770  __cil_tmp80 = (int )wHubCharacteristics;
11771#line 1031
11772  __cil_tmp81 = __cil_tmp80 & 4;
11773#line 1031
11774  if (__cil_tmp81 != 0) {
11775    {
11776#line 1031
11777    tmp___6 = hub_is_superspeed(hdev);
11778    }
11779#line 1031
11780    if (tmp___6 == 0) {
11781#line 1036
11782      i = 0;
11783#line 1036
11784      goto ldv_25858;
11785      ldv_25857: ;
11786      {
11787#line 1037
11788      __cil_tmp82 = i + 1;
11789#line 1037
11790      __cil_tmp83 = __cil_tmp82 % 8;
11791#line 1037
11792      __cil_tmp84 = hub->descriptor;
11793#line 1037
11794      __cil_tmp85 = __cil_tmp84->u.hs.DeviceRemovable[(i + 1) / 8];
11795#line 1037
11796      __cil_tmp86 = (int )__cil_tmp85;
11797#line 1037
11798      __cil_tmp87 = __cil_tmp86 >> __cil_tmp83;
11799#line 1037
11800      if (__cil_tmp87 & 1) {
11801#line 1037
11802        portstr[i] = (char)70;
11803      } else {
11804#line 1037
11805        portstr[i] = (char)82;
11806      }
11807      }
11808#line 1036
11809      i = i + 1;
11810      ldv_25858: ;
11811      {
11812#line 1036
11813      __cil_tmp88 = hdev->maxchild;
11814#line 1036
11815      if (__cil_tmp88 > i) {
11816#line 1037
11817        goto ldv_25857;
11818      } else {
11819#line 1039
11820        goto ldv_25859;
11821      }
11822      }
11823      ldv_25859: 
11824      {
11825#line 1040
11826      portstr[hdev->maxchild] = (char)0;
11827#line 1041
11828      __cil_tmp89 = (struct device  const  *)hub_dev;
11829#line 1041
11830      __cil_tmp90 = (char *)(& portstr);
11831#line 1041
11832      dev_printk("<7>", __cil_tmp89, "compound device; port removable status: %s\n",
11833                 __cil_tmp90);
11834      }
11835    } else {
11836      {
11837#line 1043
11838      __cil_tmp91 = (struct device  const  *)hub_dev;
11839#line 1043
11840      dev_printk("<7>", __cil_tmp91, "standalone hub\n");
11841      }
11842    }
11843  } else {
11844    {
11845#line 1043
11846    __cil_tmp92 = (struct device  const  *)hub_dev;
11847#line 1043
11848    dev_printk("<7>", __cil_tmp92, "standalone hub\n");
11849    }
11850  }
11851  }
11852  {
11853#line 1046
11854  __cil_tmp93 = (int )wHubCharacteristics;
11855#line 1046
11856  __cil_tmp94 = __cil_tmp93 & 3;
11857#line 1046
11858  if (__cil_tmp94 == 0) {
11859#line 1046
11860    goto case_0;
11861  } else {
11862    {
11863#line 1049
11864    __cil_tmp95 = (int )wHubCharacteristics;
11865#line 1049
11866    __cil_tmp96 = __cil_tmp95 & 3;
11867#line 1049
11868    if (__cil_tmp96 == 1) {
11869#line 1049
11870      goto case_1;
11871    } else {
11872      {
11873#line 1052
11874      __cil_tmp97 = (int )wHubCharacteristics;
11875#line 1052
11876      __cil_tmp98 = __cil_tmp97 & 3;
11877#line 1052
11878      if (__cil_tmp98 == 2) {
11879#line 1052
11880        goto case_2;
11881      } else {
11882        {
11883#line 1053
11884        __cil_tmp99 = (int )wHubCharacteristics;
11885#line 1053
11886        __cil_tmp100 = __cil_tmp99 & 3;
11887#line 1053
11888        if (__cil_tmp100 == 3) {
11889#line 1053
11890          goto case_3;
11891        } else
11892#line 1045
11893        if (0) {
11894          case_0: 
11895          {
11896#line 1047
11897          __cil_tmp101 = (struct device  const  *)hub_dev;
11898#line 1047
11899          dev_printk("<7>", __cil_tmp101, "ganged power switching\n");
11900          }
11901#line 1048
11902          goto ldv_25861;
11903          case_1: 
11904          {
11905#line 1050
11906          __cil_tmp102 = (struct device  const  *)hub_dev;
11907#line 1050
11908          dev_printk("<7>", __cil_tmp102, "individual port power switching\n");
11909          }
11910#line 1051
11911          goto ldv_25861;
11912          case_2: ;
11913          case_3: 
11914          {
11915#line 1054
11916          __cil_tmp103 = (struct device  const  *)hub_dev;
11917#line 1054
11918          dev_printk("<7>", __cil_tmp103, "no power switching (usb 1.0)\n");
11919          }
11920#line 1055
11921          goto ldv_25861;
11922        } else {
11923
11924        }
11925        }
11926      }
11927      }
11928    }
11929    }
11930  }
11931  }
11932  ldv_25861: ;
11933  {
11934#line 1059
11935  __cil_tmp104 = (int )wHubCharacteristics;
11936#line 1059
11937  __cil_tmp105 = __cil_tmp104 & 24;
11938#line 1059
11939  if (__cil_tmp105 == 0) {
11940#line 1059
11941    goto case_0___0;
11942  } else {
11943    {
11944#line 1062
11945    __cil_tmp106 = (int )wHubCharacteristics;
11946#line 1062
11947    __cil_tmp107 = __cil_tmp106 & 24;
11948#line 1062
11949    if (__cil_tmp107 == 8) {
11950#line 1062
11951      goto case_8;
11952    } else {
11953      {
11954#line 1065
11955      __cil_tmp108 = (int )wHubCharacteristics;
11956#line 1065
11957      __cil_tmp109 = __cil_tmp108 & 24;
11958#line 1065
11959      if (__cil_tmp109 == 16) {
11960#line 1065
11961        goto case_16;
11962      } else {
11963        {
11964#line 1066
11965        __cil_tmp110 = (int )wHubCharacteristics;
11966#line 1066
11967        __cil_tmp111 = __cil_tmp110 & 24;
11968#line 1066
11969        if (__cil_tmp111 == 24) {
11970#line 1066
11971          goto case_24;
11972        } else
11973#line 1058
11974        if (0) {
11975          case_0___0: 
11976          {
11977#line 1060
11978          __cil_tmp112 = (struct device  const  *)hub_dev;
11979#line 1060
11980          dev_printk("<7>", __cil_tmp112, "global over-current protection\n");
11981          }
11982#line 1061
11983          goto ldv_25866;
11984          case_8: 
11985          {
11986#line 1063
11987          __cil_tmp113 = (struct device  const  *)hub_dev;
11988#line 1063
11989          dev_printk("<7>", __cil_tmp113, "individual port over-current protection\n");
11990          }
11991#line 1064
11992          goto ldv_25866;
11993          case_16: ;
11994          case_24: 
11995          {
11996#line 1067
11997          __cil_tmp114 = (struct device  const  *)hub_dev;
11998#line 1067
11999          dev_printk("<7>", __cil_tmp114, "no over-current protection\n");
12000          }
12001#line 1068
12002          goto ldv_25866;
12003        } else {
12004
12005        }
12006        }
12007      }
12008      }
12009    }
12010    }
12011  }
12012  }
12013  ldv_25866: 
12014  {
12015#line 1071
12016  __cil_tmp115 = & hub->tt.lock;
12017#line 1071
12018  spinlock_check(__cil_tmp115);
12019#line 1071
12020  __cil_tmp116 = & hub->tt.lock.ldv_6060.rlock;
12021#line 1071
12022  __raw_spin_lock_init(__cil_tmp116, "&(&hub->tt.lock)->rlock", & __key___0);
12023#line 1072
12024  __cil_tmp117 = & hub->tt.clear_list;
12025#line 1072
12026  INIT_LIST_HEAD(__cil_tmp117);
12027#line 1073
12028  __cil_tmp118 = & hub->tt.clear_work;
12029#line 1073
12030  __init_work(__cil_tmp118, 0);
12031#line 1073
12032  __constr_expr_0.counter = 2097664L;
12033#line 1073
12034  hub->tt.clear_work.data = __constr_expr_0;
12035#line 1073
12036  __cil_tmp119 = & hub->tt.clear_work.lockdep_map;
12037#line 1073
12038  lockdep_init_map(__cil_tmp119, "(&hub->tt.clear_work)", & __key___1, 0);
12039#line 1073
12040  __cil_tmp120 = & hub->tt.clear_work.entry;
12041#line 1073
12042  INIT_LIST_HEAD(__cil_tmp120);
12043#line 1073
12044  hub->tt.clear_work.func = & hub_tt_work;
12045  }
12046  {
12047#line 1075
12048  __cil_tmp121 = hdev->descriptor.bDeviceProtocol;
12049#line 1075
12050  __cil_tmp122 = (int )__cil_tmp121;
12051#line 1075
12052  if (__cil_tmp122 == 0) {
12053#line 1075
12054    goto case_0___1;
12055  } else {
12056    {
12057#line 1077
12058    __cil_tmp123 = hdev->descriptor.bDeviceProtocol;
12059#line 1077
12060    __cil_tmp124 = (int )__cil_tmp123;
12061#line 1077
12062    if (__cil_tmp124 == 1) {
12063#line 1077
12064      goto case_1___0;
12065    } else {
12066      {
12067#line 1081
12068      __cil_tmp125 = hdev->descriptor.bDeviceProtocol;
12069#line 1081
12070      __cil_tmp126 = (int )__cil_tmp125;
12071#line 1081
12072      if (__cil_tmp126 == 2) {
12073#line 1081
12074        goto case_2___0;
12075      } else {
12076        {
12077#line 1091
12078        __cil_tmp127 = hdev->descriptor.bDeviceProtocol;
12079#line 1091
12080        __cil_tmp128 = (int )__cil_tmp127;
12081#line 1091
12082        if (__cil_tmp128 == 3) {
12083#line 1091
12084          goto case_3___0;
12085        } else {
12086#line 1094
12087          goto switch_default;
12088#line 1074
12089          if (0) {
12090            case_0___1: ;
12091#line 1076
12092            goto ldv_25874;
12093            case_1___0: 
12094            {
12095#line 1078
12096            __cil_tmp129 = (struct device  const  *)hub_dev;
12097#line 1078
12098            dev_printk("<7>", __cil_tmp129, "Single TT\n");
12099#line 1079
12100            hub->tt.hub = hdev;
12101            }
12102#line 1080
12103            goto ldv_25874;
12104            case_2___0: 
12105            {
12106#line 1082
12107            ret = usb_set_interface(hdev, 0, 1);
12108            }
12109#line 1083
12110            if (ret == 0) {
12111              {
12112#line 1084
12113              __cil_tmp130 = (struct device  const  *)hub_dev;
12114#line 1084
12115              dev_printk("<7>", __cil_tmp130, "TT per port\n");
12116#line 1085
12117              hub->tt.multi = 1;
12118              }
12119            } else {
12120              {
12121#line 1087
12122              __cil_tmp131 = (struct device  const  *)hub_dev;
12123#line 1087
12124              dev_err(__cil_tmp131, "Using single TT (err %d)\n", ret);
12125              }
12126            }
12127#line 1089
12128            hub->tt.hub = hdev;
12129#line 1090
12130            goto ldv_25874;
12131            case_3___0: ;
12132#line 1093
12133            goto ldv_25874;
12134            switch_default: 
12135            {
12136#line 1095
12137            __cil_tmp132 = (struct device  const  *)hub_dev;
12138#line 1095
12139            __cil_tmp133 = hdev->descriptor.bDeviceProtocol;
12140#line 1095
12141            __cil_tmp134 = (int )__cil_tmp133;
12142#line 1095
12143            dev_printk("<7>", __cil_tmp132, "Unrecognized hub protocol %d\n", __cil_tmp134);
12144            }
12145#line 1097
12146            goto ldv_25874;
12147          } else {
12148
12149          }
12150        }
12151        }
12152      }
12153      }
12154    }
12155    }
12156  }
12157  }
12158  ldv_25874: ;
12159  {
12160#line 1102
12161  __cil_tmp135 = (int )wHubCharacteristics;
12162#line 1102
12163  __cil_tmp136 = __cil_tmp135 & 96;
12164#line 1102
12165  if (__cil_tmp136 == 0) {
12166#line 1102
12167    goto case_0___2;
12168  } else {
12169    {
12170#line 1110
12171    __cil_tmp137 = (int )wHubCharacteristics;
12172#line 1110
12173    __cil_tmp138 = __cil_tmp137 & 96;
12174#line 1110
12175    if (__cil_tmp138 == 32) {
12176#line 1110
12177      goto case_32;
12178    } else {
12179      {
12180#line 1116
12181      __cil_tmp139 = (int )wHubCharacteristics;
12182#line 1116
12183      __cil_tmp140 = __cil_tmp139 & 96;
12184#line 1116
12185      if (__cil_tmp140 == 64) {
12186#line 1116
12187        goto case_64;
12188      } else {
12189        {
12190#line 1122
12191        __cil_tmp141 = (int )wHubCharacteristics;
12192#line 1122
12193        __cil_tmp142 = __cil_tmp141 & 96;
12194#line 1122
12195        if (__cil_tmp142 == 96) {
12196#line 1122
12197          goto case_96;
12198        } else
12199#line 1101
12200        if (0) {
12201          case_0___2: ;
12202          {
12203#line 1103
12204          __cil_tmp143 = hdev->descriptor.bDeviceProtocol;
12205#line 1103
12206          __cil_tmp144 = (unsigned int )__cil_tmp143;
12207#line 1103
12208          if (__cil_tmp144 != 0U) {
12209            {
12210#line 1104
12211            hub->tt.think_time = 666U;
12212#line 1105
12213            __cil_tmp145 = (struct device  const  *)hub_dev;
12214#line 1105
12215            __cil_tmp146 = hub->tt.think_time;
12216#line 1105
12217            dev_printk("<7>", __cil_tmp145, "TT requires at most %d FS bit times (%d ns)\n",
12218                       8, __cil_tmp146);
12219            }
12220          } else {
12221
12222          }
12223          }
12224#line 1109
12225          goto ldv_25880;
12226          case_32: 
12227          {
12228#line 1111
12229          hub->tt.think_time = 1332U;
12230#line 1112
12231          __cil_tmp147 = (struct device  const  *)hub_dev;
12232#line 1112
12233          __cil_tmp148 = hub->tt.think_time;
12234#line 1112
12235          dev_printk("<7>", __cil_tmp147, "TT requires at most %d FS bit times (%d ns)\n",
12236                     16, __cil_tmp148);
12237          }
12238#line 1115
12239          goto ldv_25880;
12240          case_64: 
12241          {
12242#line 1117
12243          hub->tt.think_time = 1998U;
12244#line 1118
12245          __cil_tmp149 = (struct device  const  *)hub_dev;
12246#line 1118
12247          __cil_tmp150 = hub->tt.think_time;
12248#line 1118
12249          dev_printk("<7>", __cil_tmp149, "TT requires at most %d FS bit times (%d ns)\n",
12250                     24, __cil_tmp150);
12251          }
12252#line 1121
12253          goto ldv_25880;
12254          case_96: 
12255          {
12256#line 1123
12257          hub->tt.think_time = 2664U;
12258#line 1124
12259          __cil_tmp151 = (struct device  const  *)hub_dev;
12260#line 1124
12261          __cil_tmp152 = hub->tt.think_time;
12262#line 1124
12263          dev_printk("<7>", __cil_tmp151, "TT requires at most %d FS bit times (%d ns)\n",
12264                     32, __cil_tmp152);
12265          }
12266#line 1127
12267          goto ldv_25880;
12268        } else {
12269
12270        }
12271        }
12272      }
12273      }
12274    }
12275    }
12276  }
12277  }
12278  ldv_25880: ;
12279  {
12280#line 1131
12281  __cil_tmp153 = (int )wHubCharacteristics;
12282#line 1131
12283  __cil_tmp154 = __cil_tmp153 & 128;
12284#line 1131
12285  if (__cil_tmp154 != 0) {
12286    {
12287#line 1132
12288    hub->has_indicators = (unsigned char)1;
12289#line 1133
12290    __cil_tmp155 = (struct device  const  *)hub_dev;
12291#line 1133
12292    dev_printk("<7>", __cil_tmp155, "Port indicators are supported\n");
12293    }
12294  } else {
12295
12296  }
12297  }
12298  {
12299#line 1136
12300  __cil_tmp156 = (struct device  const  *)hub_dev;
12301#line 1136
12302  __cil_tmp157 = hub->descriptor;
12303#line 1136
12304  __cil_tmp158 = __cil_tmp157->bPwrOn2PwrGood;
12305#line 1136
12306  __cil_tmp159 = (int )__cil_tmp158;
12307#line 1136
12308  __cil_tmp160 = __cil_tmp159 * 2;
12309#line 1136
12310  dev_printk("<7>", __cil_tmp156, "power on to power good time: %dms\n", __cil_tmp160);
12311#line 1142
12312  __cil_tmp161 = (void *)(& hubstatus);
12313#line 1142
12314  ret = usb_get_status(hdev, 0, 0, __cil_tmp161);
12315  }
12316#line 1143
12317  if (ret <= 1) {
12318#line 1144
12319    message = (char *)"can\'t get hub status";
12320#line 1145
12321    goto fail;
12322  } else {
12323
12324  }
12325  {
12326#line 1148
12327  __cil_tmp162 = (unsigned long )hdev;
12328#line 1148
12329  __cil_tmp163 = hdev->bus;
12330#line 1148
12331  __cil_tmp164 = __cil_tmp163->root_hub;
12332#line 1148
12333  __cil_tmp165 = (unsigned long )__cil_tmp164;
12334#line 1148
12335  if (__cil_tmp165 == __cil_tmp162) {
12336    {
12337#line 1149
12338    __cil_tmp166 = hdev->bus_mA;
12339#line 1149
12340    __cil_tmp167 = (unsigned int )__cil_tmp166;
12341#line 1149
12342    if (__cil_tmp167 == 0U) {
12343#line 1150
12344      hub->mA_per_port = 500U;
12345    } else {
12346      {
12347#line 1149
12348      __cil_tmp168 = hdev->bus_mA;
12349#line 1149
12350      __cil_tmp169 = (unsigned int )__cil_tmp168;
12351#line 1149
12352      if (__cil_tmp169 > 499U) {
12353#line 1150
12354        hub->mA_per_port = 500U;
12355      } else {
12356#line 1152
12357        __cil_tmp170 = hdev->bus_mA;
12358#line 1152
12359        hub->mA_per_port = (unsigned int )__cil_tmp170;
12360#line 1153
12361        hub->limited_power = (unsigned char)1;
12362      }
12363      }
12364    }
12365    }
12366  } else {
12367    {
12368#line 1155
12369    __cil_tmp171 = (int )hubstatus;
12370#line 1155
12371    __cil_tmp172 = __cil_tmp171 & 1;
12372#line 1155
12373    if (__cil_tmp172 == 0) {
12374      {
12375#line 1156
12376      __cil_tmp173 = (struct device  const  *)hub_dev;
12377#line 1156
12378      __cil_tmp174 = hub->descriptor;
12379#line 1156
12380      __cil_tmp175 = __cil_tmp174->bHubContrCurrent;
12381#line 1156
12382      __cil_tmp176 = (int )__cil_tmp175;
12383#line 1156
12384      dev_printk("<7>", __cil_tmp173, "hub controller current requirement: %dmA\n",
12385                 __cil_tmp176);
12386#line 1158
12387      hub->limited_power = (unsigned char)1;
12388      }
12389      {
12390#line 1159
12391      __cil_tmp177 = hdev->maxchild;
12392#line 1159
12393      if (__cil_tmp177 > 0) {
12394#line 1160
12395        __cil_tmp178 = hub->descriptor;
12396#line 1160
12397        __cil_tmp179 = __cil_tmp178->bHubContrCurrent;
12398#line 1160
12399        __cil_tmp180 = (int )__cil_tmp179;
12400#line 1160
12401        __cil_tmp181 = hdev->bus_mA;
12402#line 1160
12403        __cil_tmp182 = (int )__cil_tmp181;
12404#line 1160
12405        remaining = __cil_tmp182 - __cil_tmp180;
12406        {
12407#line 1163
12408        __cil_tmp183 = hdev->maxchild;
12409#line 1163
12410        __cil_tmp184 = __cil_tmp183 * 100;
12411#line 1163
12412        if (__cil_tmp184 > remaining) {
12413          {
12414#line 1164
12415          __cil_tmp185 = (struct device  const  *)hub_dev;
12416#line 1164
12417          dev_warn(__cil_tmp185, "insufficient power available to use all downstream ports\n");
12418          }
12419        } else {
12420
12421        }
12422        }
12423#line 1167
12424        hub->mA_per_port = 100U;
12425      } else {
12426
12427      }
12428      }
12429    } else {
12430#line 1172
12431      hub->mA_per_port = 500U;
12432    }
12433    }
12434  }
12435  }
12436  {
12437#line 1174
12438  __cil_tmp186 = hub->mA_per_port;
12439#line 1174
12440  if (__cil_tmp186 <= 499U) {
12441    {
12442#line 1175
12443    __cil_tmp187 = (struct device  const  *)hub_dev;
12444#line 1175
12445    __cil_tmp188 = hub->mA_per_port;
12446#line 1175
12447    dev_printk("<7>", __cil_tmp187, "%umA bus power budget for each child\n", __cil_tmp188);
12448    }
12449  } else {
12450
12451  }
12452  }
12453  {
12454#line 1181
12455  __cil_tmp189 = hdev->bus;
12456#line 1181
12457  hcd = bus_to_hcd(__cil_tmp189);
12458  }
12459  {
12460#line 1182
12461  __cil_tmp190 = (int (* const  )(struct usb_hcd * , struct usb_device * , struct usb_tt * ,
12462                                  gfp_t  ))0;
12463#line 1182
12464  __cil_tmp191 = (unsigned long )__cil_tmp190;
12465#line 1182
12466  __cil_tmp192 = hcd->driver;
12467#line 1182
12468  __cil_tmp193 = __cil_tmp192->update_hub_device;
12469#line 1182
12470  __cil_tmp194 = (unsigned long )__cil_tmp193;
12471#line 1182
12472  if (__cil_tmp194 != __cil_tmp191) {
12473    {
12474#line 1183
12475    __cil_tmp195 = hcd->driver;
12476#line 1183
12477    __cil_tmp196 = __cil_tmp195->update_hub_device;
12478#line 1183
12479    __cil_tmp197 = & hub->tt;
12480#line 1183
12481    ret = (*__cil_tmp196)(hcd, hdev, __cil_tmp197, 208U);
12482    }
12483#line 1185
12484    if (ret < 0) {
12485#line 1186
12486      message = (char *)"can\'t update HCD hub info";
12487#line 1187
12488      goto fail;
12489    } else {
12490
12491    }
12492  } else {
12493
12494  }
12495  }
12496  {
12497#line 1191
12498  ret = hub_hub_status(hub, & hubstatus, & hubchange);
12499  }
12500#line 1192
12501  if (ret < 0) {
12502#line 1193
12503    message = (char *)"can\'t get hub status";
12504#line 1194
12505    goto fail;
12506  } else {
12507
12508  }
12509  {
12510#line 1198
12511  __cil_tmp198 = hdev->actconfig;
12512#line 1198
12513  __cil_tmp199 = __cil_tmp198->desc.bmAttributes;
12514#line 1198
12515  __cil_tmp200 = (int )__cil_tmp199;
12516#line 1198
12517  __cil_tmp201 = __cil_tmp200 & 64;
12518#line 1198
12519  if (__cil_tmp201 != 0) {
12520    {
12521#line 1199
12522    __cil_tmp202 = (int )hubstatus;
12523#line 1199
12524    if (__cil_tmp202 & 1) {
12525#line 1199
12526      tmp___7 = (char *)"lost (inactive)";
12527    } else {
12528#line 1199
12529      tmp___7 = (char *)"good";
12530    }
12531    }
12532    {
12533#line 1199
12534    __cil_tmp203 = (struct device  const  *)hub_dev;
12535#line 1199
12536    dev_printk("<7>", __cil_tmp203, "local power source is %s\n", tmp___7);
12537    }
12538  } else {
12539
12540  }
12541  }
12542  {
12543#line 1203
12544  __cil_tmp204 = (int )wHubCharacteristics;
12545#line 1203
12546  __cil_tmp205 = __cil_tmp204 & 24;
12547#line 1203
12548  if (__cil_tmp205 == 0) {
12549    {
12550#line 1204
12551    __cil_tmp206 = (int )hubstatus;
12552#line 1204
12553    __cil_tmp207 = __cil_tmp206 & 2;
12554#line 1204
12555    if (__cil_tmp207 != 0) {
12556#line 1204
12557      tmp___8 = (char *)"";
12558    } else {
12559#line 1204
12560      tmp___8 = (char *)"no ";
12561    }
12562    }
12563    {
12564#line 1204
12565    __cil_tmp208 = (struct device  const  *)hub_dev;
12566#line 1204
12567    dev_printk("<7>", __cil_tmp208, "%sover-current condition exists\n", tmp___8);
12568    }
12569  } else {
12570
12571  }
12572  }
12573  {
12574#line 1213
12575  __cil_tmp209 = endpoint->bEndpointAddress;
12576#line 1213
12577  __cil_tmp210 = (unsigned int )__cil_tmp209;
12578#line 1213
12579  tmp___9 = __create_pipe(hdev, __cil_tmp210);
12580#line 1213
12581  pipe = tmp___9 | 1073741952U;
12582#line 1214
12583  __cil_tmp211 = (int )pipe;
12584#line 1214
12585  __cil_tmp212 = pipe & 128U;
12586#line 1214
12587  __cil_tmp213 = __cil_tmp212 == 0U;
12588#line 1214
12589  tmp___10 = usb_maxpacket(hdev, __cil_tmp211, __cil_tmp213);
12590#line 1214
12591  maxp = (int )tmp___10;
12592  }
12593  {
12594#line 1216
12595  __cil_tmp214 = (unsigned int )maxp;
12596#line 1216
12597  if (__cil_tmp214 > 8U) {
12598#line 1217
12599    maxp = 8;
12600  } else {
12601
12602  }
12603  }
12604  {
12605#line 1219
12606  hub->urb = usb_alloc_urb(0, 208U);
12607  }
12608  {
12609#line 1220
12610  __cil_tmp215 = (struct urb *)0;
12611#line 1220
12612  __cil_tmp216 = (unsigned long )__cil_tmp215;
12613#line 1220
12614  __cil_tmp217 = hub->urb;
12615#line 1220
12616  __cil_tmp218 = (unsigned long )__cil_tmp217;
12617#line 1220
12618  if (__cil_tmp218 == __cil_tmp216) {
12619#line 1221
12620    ret = -12;
12621#line 1222
12622    goto fail;
12623  } else {
12624
12625  }
12626  }
12627  {
12628#line 1225
12629  __cil_tmp219 = hub->urb;
12630#line 1225
12631  __cil_tmp220 = hub->buffer;
12632#line 1225
12633  __cil_tmp221 = (void *)__cil_tmp220;
12634#line 1225
12635  __cil_tmp222 = (void *)hub;
12636#line 1225
12637  __cil_tmp223 = endpoint->bInterval;
12638#line 1225
12639  __cil_tmp224 = (int )__cil_tmp223;
12640#line 1225
12641  usb_fill_int_urb(__cil_tmp219, hdev, pipe, __cil_tmp221, maxp, & hub_irq, __cil_tmp222,
12642                   __cil_tmp224);
12643  }
12644  {
12645#line 1229
12646  __cil_tmp225 = (unsigned char *)hub;
12647#line 1229
12648  __cil_tmp226 = __cil_tmp225 + 468UL;
12649#line 1229
12650  __cil_tmp227 = *__cil_tmp226;
12651#line 1229
12652  __cil_tmp228 = (unsigned int )__cil_tmp227;
12653#line 1229
12654  if (__cil_tmp228 != 0U) {
12655#line 1229
12656    if (blinkenlights != 0) {
12657#line 1230
12658      hub->indicator[0] = (u8 )1U;
12659    } else {
12660
12661    }
12662  } else {
12663
12664  }
12665  }
12666  {
12667#line 1232
12668  __cil_tmp229 = (enum hub_activation_type )0;
12669#line 1232
12670  hub_activate(hub, __cil_tmp229);
12671  }
12672#line 1233
12673  return (0);
12674  fail: 
12675  {
12676#line 1236
12677  __cil_tmp230 = (struct device  const  *)hub_dev;
12678#line 1236
12679  dev_err(__cil_tmp230, "config failed, %s (err %d)\n", message, ret);
12680  }
12681#line 1239
12682  return (ret);
12683}
12684}
12685#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"
12686static void hub_release(struct kref *kref ) 
12687{ struct usb_hub *hub ;
12688  struct kref  const  *__mptr ;
12689  struct device  const  *__mptr___0 ;
12690  struct usb_hub *__cil_tmp5 ;
12691  struct device *__cil_tmp6 ;
12692  struct usb_interface *__cil_tmp7 ;
12693  struct usb_interface *__cil_tmp8 ;
12694  void const   *__cil_tmp9 ;
12695
12696  {
12697  {
12698#line 1244
12699  __mptr = (struct kref  const  *)kref;
12700#line 1244
12701  __cil_tmp5 = (struct usb_hub *)__mptr;
12702#line 1244
12703  hub = __cil_tmp5 + 1152921504606846960UL;
12704#line 1246
12705  __cil_tmp6 = hub->intfdev;
12706#line 1246
12707  __mptr___0 = (struct device  const  *)__cil_tmp6;
12708#line 1246
12709  __cil_tmp7 = (struct usb_interface *)__mptr___0;
12710#line 1246
12711  __cil_tmp8 = __cil_tmp7 + 1152921504606846928UL;
12712#line 1246
12713  usb_put_intf(__cil_tmp8);
12714#line 1247
12715  __cil_tmp9 = (void const   *)hub;
12716#line 1247
12717  kfree(__cil_tmp9);
12718  }
12719#line 1248
12720  return;
12721}
12722}
12723#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"
12724static unsigned int highspeed_hubs  ;
12725#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"
12726static void hub_disconnect(struct usb_interface *intf ) 
12727{ struct usb_hub *hub ;
12728  void *tmp ;
12729  int tmp___0 ;
12730  struct list_head *__cil_tmp5 ;
12731  struct list_head  const  *__cil_tmp6 ;
12732  struct list_head *__cil_tmp7 ;
12733  enum hub_quiescing_type __cil_tmp8 ;
12734  void *__cil_tmp9 ;
12735  struct usb_device *__cil_tmp10 ;
12736  struct usb_device *__cil_tmp11 ;
12737  enum usb_device_speed __cil_tmp12 ;
12738  unsigned int __cil_tmp13 ;
12739  struct urb *__cil_tmp14 ;
12740  void **__cil_tmp15 ;
12741  void const   *__cil_tmp16 ;
12742  struct usb_hub_descriptor *__cil_tmp17 ;
12743  void const   *__cil_tmp18 ;
12744  union __anonunion_status_183 *__cil_tmp19 ;
12745  void const   *__cil_tmp20 ;
12746  char (*__cil_tmp21)[8U] ;
12747  void const   *__cil_tmp22 ;
12748  struct kref *__cil_tmp23 ;
12749
12750  {
12751  {
12752#line 1254
12753  tmp = usb_get_intfdata(intf);
12754#line 1254
12755  hub = (struct usb_hub *)tmp;
12756#line 1257
12757  spin_lock_irq(& hub_event_lock);
12758#line 1258
12759  __cil_tmp5 = & hub->event_list;
12760#line 1258
12761  __cil_tmp6 = (struct list_head  const  *)__cil_tmp5;
12762#line 1258
12763  tmp___0 = list_empty(__cil_tmp6);
12764  }
12765#line 1258
12766  if (tmp___0 == 0) {
12767    {
12768#line 1259
12769    __cil_tmp7 = & hub->event_list;
12770#line 1259
12771    list_del_init(__cil_tmp7);
12772#line 1260
12773    usb_autopm_put_interface_no_suspend(intf);
12774    }
12775  } else {
12776
12777  }
12778  {
12779#line 1262
12780  hub->disconnected = (unsigned char)1;
12781#line 1263
12782  spin_unlock_irq(& hub_event_lock);
12783#line 1266
12784  hub->error = 0;
12785#line 1267
12786  __cil_tmp8 = (enum hub_quiescing_type )0;
12787#line 1267
12788  hub_quiesce(hub, __cil_tmp8);
12789#line 1269
12790  __cil_tmp9 = (void *)0;
12791#line 1269
12792  usb_set_intfdata(intf, __cil_tmp9);
12793#line 1270
12794  __cil_tmp10 = hub->hdev;
12795#line 1270
12796  __cil_tmp10->maxchild = 0;
12797  }
12798  {
12799#line 1272
12800  __cil_tmp11 = hub->hdev;
12801#line 1272
12802  __cil_tmp12 = __cil_tmp11->speed;
12803#line 1272
12804  __cil_tmp13 = (unsigned int )__cil_tmp12;
12805#line 1272
12806  if (__cil_tmp13 == 3U) {
12807#line 1273
12808    highspeed_hubs = highspeed_hubs - 1U;
12809  } else {
12810
12811  }
12812  }
12813  {
12814#line 1275
12815  __cil_tmp14 = hub->urb;
12816#line 1275
12817  usb_free_urb(__cil_tmp14);
12818#line 1276
12819  __cil_tmp15 = hub->port_owners;
12820#line 1276
12821  __cil_tmp16 = (void const   *)__cil_tmp15;
12822#line 1276
12823  kfree(__cil_tmp16);
12824#line 1277
12825  __cil_tmp17 = hub->descriptor;
12826#line 1277
12827  __cil_tmp18 = (void const   *)__cil_tmp17;
12828#line 1277
12829  kfree(__cil_tmp18);
12830#line 1278
12831  __cil_tmp19 = hub->status;
12832#line 1278
12833  __cil_tmp20 = (void const   *)__cil_tmp19;
12834#line 1278
12835  kfree(__cil_tmp20);
12836#line 1279
12837  __cil_tmp21 = hub->buffer;
12838#line 1279
12839  __cil_tmp22 = (void const   *)__cil_tmp21;
12840#line 1279
12841  kfree(__cil_tmp22);
12842#line 1281
12843  __cil_tmp23 = & hub->kref;
12844#line 1281
12845  kref_put(__cil_tmp23, & hub_release);
12846  }
12847#line 1282
12848  return;
12849}
12850}
12851#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"
12852static int hub_probe(struct usb_interface *intf , struct usb_device_id  const  *id ) 
12853{ struct usb_host_interface *desc ;
12854  struct usb_endpoint_descriptor *endpoint ;
12855  struct usb_device *hdev ;
12856  struct usb_hub *hub ;
12857  int tmp ;
12858  int tmp___0 ;
12859  void *tmp___1 ;
12860  struct lock_class_key __key ;
12861  atomic_long_t __constr_expr_0 ;
12862  struct lock_class_key __key___0 ;
12863  struct lock_class_key __key___1 ;
12864  atomic_long_t __constr_expr_1 ;
12865  struct lock_class_key __key___2 ;
12866  int tmp___2 ;
12867  struct usb_device *__cil_tmp17 ;
12868  unsigned long __cil_tmp18 ;
12869  struct usb_device *__cil_tmp19 ;
12870  unsigned long __cil_tmp20 ;
12871  u8 __cil_tmp21 ;
12872  unsigned int __cil_tmp22 ;
12873  struct device *__cil_tmp23 ;
12874  struct device  const  *__cil_tmp24 ;
12875  struct usb_device *__cil_tmp25 ;
12876  unsigned long __cil_tmp26 ;
12877  struct usb_device *__cil_tmp27 ;
12878  unsigned long __cil_tmp28 ;
12879  struct device *__cil_tmp29 ;
12880  struct device  const  *__cil_tmp30 ;
12881  __u8 __cil_tmp31 ;
12882  unsigned int __cil_tmp32 ;
12883  __u8 __cil_tmp33 ;
12884  unsigned int __cil_tmp34 ;
12885  struct device *__cil_tmp35 ;
12886  struct device  const  *__cil_tmp36 ;
12887  __u8 __cil_tmp37 ;
12888  unsigned int __cil_tmp38 ;
12889  struct usb_host_endpoint *__cil_tmp39 ;
12890  struct usb_endpoint_descriptor  const  *__cil_tmp40 ;
12891  struct device *__cil_tmp41 ;
12892  struct device  const  *__cil_tmp42 ;
12893  struct usb_hub *__cil_tmp43 ;
12894  unsigned long __cil_tmp44 ;
12895  unsigned long __cil_tmp45 ;
12896  struct device *__cil_tmp46 ;
12897  struct device  const  *__cil_tmp47 ;
12898  struct kref *__cil_tmp48 ;
12899  struct list_head *__cil_tmp49 ;
12900  struct work_struct *__cil_tmp50 ;
12901  struct lockdep_map *__cil_tmp51 ;
12902  struct list_head *__cil_tmp52 ;
12903  struct timer_list *__cil_tmp53 ;
12904  struct work_struct *__cil_tmp54 ;
12905  struct lockdep_map *__cil_tmp55 ;
12906  struct list_head *__cil_tmp56 ;
12907  struct timer_list *__cil_tmp57 ;
12908  void *__cil_tmp58 ;
12909  enum usb_device_speed __cil_tmp59 ;
12910  unsigned int __cil_tmp60 ;
12911
12912  {
12913  {
12914#line 1291
12915  desc = intf->cur_altsetting;
12916#line 1292
12917  hdev = interface_to_usbdev(intf);
12918#line 1300
12919  tmp = hub_is_superspeed(hdev);
12920  }
12921#line 1300
12922  if (tmp == 0) {
12923    {
12924#line 1301
12925    usb_enable_autosuspend(hdev);
12926    }
12927  } else {
12928    {
12929#line 1300
12930    __cil_tmp17 = (struct usb_device *)0;
12931#line 1300
12932    __cil_tmp18 = (unsigned long )__cil_tmp17;
12933#line 1300
12934    __cil_tmp19 = hdev->parent;
12935#line 1300
12936    __cil_tmp20 = (unsigned long )__cil_tmp19;
12937#line 1300
12938    if (__cil_tmp20 == __cil_tmp18) {
12939      {
12940#line 1301
12941      usb_enable_autosuspend(hdev);
12942      }
12943    } else {
12944
12945    }
12946    }
12947  }
12948  {
12949#line 1303
12950  __cil_tmp21 = hdev->level;
12951#line 1303
12952  __cil_tmp22 = (unsigned int )__cil_tmp21;
12953#line 1303
12954  if (__cil_tmp22 == 6U) {
12955    {
12956#line 1304
12957    __cil_tmp23 = & intf->dev;
12958#line 1304
12959    __cil_tmp24 = (struct device  const  *)__cil_tmp23;
12960#line 1304
12961    dev_err(__cil_tmp24, "Unsupported bus topology: hub nested too deep\n");
12962    }
12963#line 1306
12964    return (-7);
12965  } else {
12966
12967  }
12968  }
12969  {
12970#line 1310
12971  __cil_tmp25 = (struct usb_device *)0;
12972#line 1310
12973  __cil_tmp26 = (unsigned long )__cil_tmp25;
12974#line 1310
12975  __cil_tmp27 = hdev->parent;
12976#line 1310
12977  __cil_tmp28 = (unsigned long )__cil_tmp27;
12978#line 1310
12979  if (__cil_tmp28 != __cil_tmp26) {
12980    {
12981#line 1311
12982    __cil_tmp29 = & intf->dev;
12983#line 1311
12984    __cil_tmp30 = (struct device  const  *)__cil_tmp29;
12985#line 1311
12986    dev_warn(__cil_tmp30, "ignoring external hub\n");
12987    }
12988#line 1312
12989    return (-19);
12990  } else {
12991
12992  }
12993  }
12994  {
12995#line 1318
12996  __cil_tmp31 = desc->desc.bInterfaceSubClass;
12997#line 1318
12998  __cil_tmp32 = (unsigned int )__cil_tmp31;
12999#line 1318
13000  if (__cil_tmp32 != 0U) {
13001    {
13002#line 1318
13003    __cil_tmp33 = desc->desc.bInterfaceSubClass;
13004#line 1318
13005    __cil_tmp34 = (unsigned int )__cil_tmp33;
13006#line 1318
13007    if (__cil_tmp34 != 1U) {
13008      descriptor_error: 
13009      {
13010#line 1321
13011      __cil_tmp35 = & intf->dev;
13012#line 1321
13013      __cil_tmp36 = (struct device  const  *)__cil_tmp35;
13014#line 1321
13015      dev_err(__cil_tmp36, "bad descriptor, ignoring hub\n");
13016      }
13017#line 1322
13018      return (-5);
13019    } else {
13020
13021    }
13022    }
13023  } else {
13024
13025  }
13026  }
13027  {
13028#line 1326
13029  __cil_tmp37 = desc->desc.bNumEndpoints;
13030#line 1326
13031  __cil_tmp38 = (unsigned int )__cil_tmp37;
13032#line 1326
13033  if (__cil_tmp38 != 1U) {
13034#line 1327
13035    goto descriptor_error;
13036  } else {
13037
13038  }
13039  }
13040  {
13041#line 1329
13042  __cil_tmp39 = desc->endpoint;
13043#line 1329
13044  endpoint = & __cil_tmp39->desc;
13045#line 1332
13046  __cil_tmp40 = (struct usb_endpoint_descriptor  const  *)endpoint;
13047#line 1332
13048  tmp___0 = usb_endpoint_is_int_in(__cil_tmp40);
13049  }
13050#line 1332
13051  if (tmp___0 == 0) {
13052#line 1333
13053    goto descriptor_error;
13054  } else {
13055
13056  }
13057  {
13058#line 1336
13059  __cil_tmp41 = & intf->dev;
13060#line 1336
13061  __cil_tmp42 = (struct device  const  *)__cil_tmp41;
13062#line 1336
13063  _dev_info(__cil_tmp42, "USB hub found\n");
13064#line 1338
13065  tmp___1 = kzalloc(928UL, 208U);
13066#line 1338
13067  hub = (struct usb_hub *)tmp___1;
13068  }
13069  {
13070#line 1339
13071  __cil_tmp43 = (struct usb_hub *)0;
13072#line 1339
13073  __cil_tmp44 = (unsigned long )__cil_tmp43;
13074#line 1339
13075  __cil_tmp45 = (unsigned long )hub;
13076#line 1339
13077  if (__cil_tmp45 == __cil_tmp44) {
13078    {
13079#line 1340
13080    __cil_tmp46 = & intf->dev;
13081#line 1340
13082    __cil_tmp47 = (struct device  const  *)__cil_tmp46;
13083#line 1340
13084    dev_printk("<7>", __cil_tmp47, "couldn\'t kmalloc hub struct\n");
13085    }
13086#line 1341
13087    return (-12);
13088  } else {
13089
13090  }
13091  }
13092  {
13093#line 1344
13094  __cil_tmp48 = & hub->kref;
13095#line 1344
13096  kref_init(__cil_tmp48);
13097#line 1345
13098  __cil_tmp49 = & hub->event_list;
13099#line 1345
13100  INIT_LIST_HEAD(__cil_tmp49);
13101#line 1346
13102  hub->intfdev = & intf->dev;
13103#line 1347
13104  hub->hdev = hdev;
13105#line 1348
13106  __cil_tmp50 = & hub->leds.work;
13107#line 1348
13108  __init_work(__cil_tmp50, 0);
13109#line 1348
13110  __constr_expr_0.counter = 2097664L;
13111#line 1348
13112  hub->leds.work.data = __constr_expr_0;
13113#line 1348
13114  __cil_tmp51 = & hub->leds.work.lockdep_map;
13115#line 1348
13116  lockdep_init_map(__cil_tmp51, "(&(&hub->leds)->work)", & __key, 0);
13117#line 1348
13118  __cil_tmp52 = & hub->leds.work.entry;
13119#line 1348
13120  INIT_LIST_HEAD(__cil_tmp52);
13121#line 1348
13122  hub->leds.work.func = & led_work;
13123#line 1348
13124  __cil_tmp53 = & hub->leds.timer;
13125#line 1348
13126  init_timer_key(__cil_tmp53, "&(&hub->leds)->timer", & __key___0);
13127#line 1349
13128  __cil_tmp54 = & hub->init_work.work;
13129#line 1349
13130  __init_work(__cil_tmp54, 0);
13131#line 1349
13132  __constr_expr_1.counter = 2097664L;
13133#line 1349
13134  hub->init_work.work.data = __constr_expr_1;
13135#line 1349
13136  __cil_tmp55 = & hub->init_work.work.lockdep_map;
13137#line 1349
13138  lockdep_init_map(__cil_tmp55, "(&(&hub->init_work)->work)", & __key___1, 0);
13139#line 1349
13140  __cil_tmp56 = & hub->init_work.work.entry;
13141#line 1349
13142  INIT_LIST_HEAD(__cil_tmp56);
13143#line 1349
13144  hub->init_work.work.func = (void (*)(struct work_struct * ))0;
13145#line 1349
13146  __cil_tmp57 = & hub->init_work.timer;
13147#line 1349
13148  init_timer_key(__cil_tmp57, "&(&hub->init_work)->timer", & __key___2);
13149#line 1350
13150  usb_get_intf(intf);
13151#line 1352
13152  __cil_tmp58 = (void *)hub;
13153#line 1352
13154  usb_set_intfdata(intf, __cil_tmp58);
13155#line 1353
13156  intf->needs_remote_wakeup = (unsigned char)1;
13157  }
13158  {
13159#line 1355
13160  __cil_tmp59 = hdev->speed;
13161#line 1355
13162  __cil_tmp60 = (unsigned int )__cil_tmp59;
13163#line 1355
13164  if (__cil_tmp60 == 3U) {
13165#line 1356
13166    highspeed_hubs = highspeed_hubs + 1U;
13167  } else {
13168
13169  }
13170  }
13171  {
13172#line 1358
13173  tmp___2 = hub_configure(hub, endpoint);
13174  }
13175#line 1358
13176  if (tmp___2 >= 0) {
13177#line 1359
13178    return (0);
13179  } else {
13180
13181  }
13182  {
13183#line 1361
13184  hub_disconnect(intf);
13185  }
13186#line 1362
13187  return (-19);
13188}
13189}
13190#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"
13191static int hub_ioctl(struct usb_interface *intf , unsigned int code , void *user_data ) 
13192{ struct usb_device *hdev ;
13193  struct usb_device *tmp ;
13194  struct usbdevfs_hub_portinfo *info ;
13195  int i ;
13196  int __cil_tmp8 ;
13197  int __cil_tmp9 ;
13198  int __cil_tmp10 ;
13199  struct usb_device *__cil_tmp11 ;
13200  unsigned long __cil_tmp12 ;
13201  struct usb_device *__cil_tmp13 ;
13202  unsigned long __cil_tmp14 ;
13203  struct usb_device *__cil_tmp15 ;
13204  int __cil_tmp16 ;
13205  char __cil_tmp17 ;
13206  int __cil_tmp18 ;
13207  char __cil_tmp19 ;
13208  int __cil_tmp20 ;
13209
13210  {
13211  {
13212#line 1369
13213  tmp = interface_to_usbdev(intf);
13214#line 1369
13215  hdev = tmp;
13216  }
13217  {
13218#line 1373
13219  __cil_tmp8 = (int )code;
13220#line 1373
13221  if (__cil_tmp8 == -2139073261) {
13222#line 1373
13223    goto case_neg_2139073261;
13224  } else {
13225#line 1395
13226    goto switch_default;
13227#line 1372
13228    if (0) {
13229      case_neg_2139073261: 
13230      {
13231#line 1374
13232      info = (struct usbdevfs_hub_portinfo *)user_data;
13233#line 1377
13234      spin_lock_irq(& device_state_lock);
13235      }
13236      {
13237#line 1378
13238      __cil_tmp9 = hdev->devnum;
13239#line 1378
13240      if (__cil_tmp9 <= 0) {
13241#line 1379
13242        info->nports = (char)0;
13243      } else {
13244#line 1381
13245        __cil_tmp10 = hdev->maxchild;
13246#line 1381
13247        info->nports = (char )__cil_tmp10;
13248#line 1382
13249        i = 0;
13250#line 1382
13251        goto ldv_25923;
13252        ldv_25922: ;
13253        {
13254#line 1383
13255        __cil_tmp11 = (struct usb_device *)0;
13256#line 1383
13257        __cil_tmp12 = (unsigned long )__cil_tmp11;
13258#line 1383
13259        __cil_tmp13 = hdev->children[i];
13260#line 1383
13261        __cil_tmp14 = (unsigned long )__cil_tmp13;
13262#line 1383
13263        if (__cil_tmp14 == __cil_tmp12) {
13264#line 1384
13265          info->port[i] = (char)0;
13266        } else {
13267#line 1386
13268          __cil_tmp15 = hdev->children[i];
13269#line 1386
13270          __cil_tmp16 = __cil_tmp15->devnum;
13271#line 1386
13272          info->port[i] = (char )__cil_tmp16;
13273        }
13274        }
13275#line 1382
13276        i = i + 1;
13277        ldv_25923: ;
13278        {
13279#line 1382
13280        __cil_tmp17 = info->nports;
13281#line 1382
13282        __cil_tmp18 = (int )__cil_tmp17;
13283#line 1382
13284        if (__cil_tmp18 > i) {
13285#line 1383
13286          goto ldv_25922;
13287        } else {
13288#line 1385
13289          goto ldv_25924;
13290        }
13291        }
13292        ldv_25924: ;
13293      }
13294      }
13295      {
13296#line 1390
13297      spin_unlock_irq(& device_state_lock);
13298      }
13299      {
13300#line 1392
13301      __cil_tmp19 = info->nports;
13302#line 1392
13303      __cil_tmp20 = (int )__cil_tmp19;
13304#line 1392
13305      return (__cil_tmp20 + 1);
13306      }
13307      switch_default: ;
13308#line 1396
13309      return (-38);
13310    } else {
13311
13312    }
13313  }
13314  }
13315}
13316}
13317#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"
13318static int find_port_owner(struct usb_device *hdev , unsigned int port1 , void ***ppowner ) 
13319{ struct usb_hub *tmp ;
13320  enum usb_device_state __cil_tmp5 ;
13321  unsigned int __cil_tmp6 ;
13322  int __cil_tmp7 ;
13323  unsigned int __cil_tmp8 ;
13324  unsigned int __cil_tmp9 ;
13325  unsigned long __cil_tmp10 ;
13326  void **__cil_tmp11 ;
13327
13328  {
13329  {
13330#line 1407
13331  __cil_tmp5 = hdev->state;
13332#line 1407
13333  __cil_tmp6 = (unsigned int )__cil_tmp5;
13334#line 1407
13335  if (__cil_tmp6 == 0U) {
13336#line 1408
13337    return (-19);
13338  } else {
13339
13340  }
13341  }
13342#line 1409
13343  if (port1 == 0U) {
13344#line 1410
13345    return (-22);
13346  } else {
13347    {
13348#line 1409
13349    __cil_tmp7 = hdev->maxchild;
13350#line 1409
13351    __cil_tmp8 = (unsigned int )__cil_tmp7;
13352#line 1409
13353    if (__cil_tmp8 < port1) {
13354#line 1410
13355      return (-22);
13356    } else {
13357
13358    }
13359    }
13360  }
13361  {
13362#line 1415
13363  tmp = hdev_to_hub(hdev);
13364#line 1415
13365  __cil_tmp9 = port1 - 1U;
13366#line 1415
13367  __cil_tmp10 = (unsigned long )__cil_tmp9;
13368#line 1415
13369  __cil_tmp11 = tmp->port_owners;
13370#line 1415
13371  *ppowner = __cil_tmp11 + __cil_tmp10;
13372  }
13373#line 1416
13374  return (0);
13375}
13376}
13377#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"
13378int usb_hub_claim_port(struct usb_device *hdev , unsigned int port1 , void *owner ) 
13379{ int rc ;
13380  void **powner ;
13381  void *__cil_tmp6 ;
13382  unsigned long __cil_tmp7 ;
13383  void *__cil_tmp8 ;
13384  unsigned long __cil_tmp9 ;
13385
13386  {
13387  {
13388#line 1425
13389  rc = find_port_owner(hdev, port1, & powner);
13390  }
13391#line 1426
13392  if (rc != 0) {
13393#line 1427
13394    return (rc);
13395  } else {
13396
13397  }
13398  {
13399#line 1428
13400  __cil_tmp6 = (void *)0;
13401#line 1428
13402  __cil_tmp7 = (unsigned long )__cil_tmp6;
13403#line 1428
13404  __cil_tmp8 = *powner;
13405#line 1428
13406  __cil_tmp9 = (unsigned long )__cil_tmp8;
13407#line 1428
13408  if (__cil_tmp9 != __cil_tmp7) {
13409#line 1429
13410    return (-16);
13411  } else {
13412
13413  }
13414  }
13415#line 1430
13416  *powner = owner;
13417#line 1431
13418  return (rc);
13419}
13420}
13421#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"
13422int usb_hub_release_port(struct usb_device *hdev , unsigned int port1 , void *owner ) 
13423{ int rc ;
13424  void **powner ;
13425  unsigned long __cil_tmp6 ;
13426  void *__cil_tmp7 ;
13427  unsigned long __cil_tmp8 ;
13428
13429  {
13430  {
13431#line 1439
13432  rc = find_port_owner(hdev, port1, & powner);
13433  }
13434#line 1440
13435  if (rc != 0) {
13436#line 1441
13437    return (rc);
13438  } else {
13439
13440  }
13441  {
13442#line 1442
13443  __cil_tmp6 = (unsigned long )owner;
13444#line 1442
13445  __cil_tmp7 = *powner;
13446#line 1442
13447  __cil_tmp8 = (unsigned long )__cil_tmp7;
13448#line 1442
13449  if (__cil_tmp8 != __cil_tmp6) {
13450#line 1443
13451    return (-2);
13452  } else {
13453
13454  }
13455  }
13456#line 1444
13457  *powner = (void *)0;
13458#line 1445
13459  return (rc);
13460}
13461}
13462#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"
13463void usb_hub_release_all_ports(struct usb_device *hdev , void *owner ) 
13464{ int n ;
13465  void **powner ;
13466  unsigned long __cil_tmp5 ;
13467  void *__cil_tmp6 ;
13468  unsigned long __cil_tmp7 ;
13469  int __cil_tmp8 ;
13470
13471  {
13472  {
13473#line 1453
13474  n = find_port_owner(hdev, 1U, & powner);
13475  }
13476#line 1454
13477  if (n == 0) {
13478#line 1455
13479    goto ldv_25952;
13480    ldv_25951: ;
13481    {
13482#line 1456
13483    __cil_tmp5 = (unsigned long )owner;
13484#line 1456
13485    __cil_tmp6 = *powner;
13486#line 1456
13487    __cil_tmp7 = (unsigned long )__cil_tmp6;
13488#line 1456
13489    if (__cil_tmp7 == __cil_tmp5) {
13490#line 1457
13491      *powner = (void *)0;
13492    } else {
13493
13494    }
13495    }
13496#line 1455
13497    n = n + 1;
13498#line 1455
13499    powner = powner + 1;
13500    ldv_25952: ;
13501    {
13502#line 1455
13503    __cil_tmp8 = hdev->maxchild;
13504#line 1455
13505    if (__cil_tmp8 > n) {
13506#line 1456
13507      goto ldv_25951;
13508    } else {
13509#line 1458
13510      goto ldv_25953;
13511    }
13512    }
13513    ldv_25953: ;
13514  } else {
13515
13516  }
13517#line 1461
13518  return;
13519}
13520}
13521#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"
13522bool usb_device_is_owned(struct usb_device *udev ) 
13523{ struct usb_hub *hub ;
13524  enum usb_device_state __cil_tmp3 ;
13525  unsigned int __cil_tmp4 ;
13526  struct usb_device *__cil_tmp5 ;
13527  unsigned long __cil_tmp6 ;
13528  struct usb_device *__cil_tmp7 ;
13529  unsigned long __cil_tmp8 ;
13530  struct usb_device *__cil_tmp9 ;
13531  void *__cil_tmp10 ;
13532  unsigned long __cil_tmp11 ;
13533  u8 __cil_tmp12 ;
13534  unsigned long __cil_tmp13 ;
13535  unsigned long __cil_tmp14 ;
13536  void **__cil_tmp15 ;
13537  void **__cil_tmp16 ;
13538  void *__cil_tmp17 ;
13539  unsigned long __cil_tmp18 ;
13540  int __cil_tmp19 ;
13541
13542  {
13543  {
13544#line 1467
13545  __cil_tmp3 = udev->state;
13546#line 1467
13547  __cil_tmp4 = (unsigned int )__cil_tmp3;
13548#line 1467
13549  if (__cil_tmp4 == 0U) {
13550#line 1468
13551    return ((bool )0);
13552  } else {
13553    {
13554#line 1467
13555    __cil_tmp5 = (struct usb_device *)0;
13556#line 1467
13557    __cil_tmp6 = (unsigned long )__cil_tmp5;
13558#line 1467
13559    __cil_tmp7 = udev->parent;
13560#line 1467
13561    __cil_tmp8 = (unsigned long )__cil_tmp7;
13562#line 1467
13563    if (__cil_tmp8 == __cil_tmp6) {
13564#line 1468
13565      return ((bool )0);
13566    } else {
13567
13568    }
13569    }
13570  }
13571  }
13572  {
13573#line 1469
13574  __cil_tmp9 = udev->parent;
13575#line 1469
13576  hub = hdev_to_hub(__cil_tmp9);
13577  }
13578  {
13579#line 1470
13580  __cil_tmp10 = (void *)0;
13581#line 1470
13582  __cil_tmp11 = (unsigned long )__cil_tmp10;
13583#line 1470
13584  __cil_tmp12 = udev->portnum;
13585#line 1470
13586  __cil_tmp13 = (unsigned long )__cil_tmp12;
13587#line 1470
13588  __cil_tmp14 = __cil_tmp13 + 1152921504606846975UL;
13589#line 1470
13590  __cil_tmp15 = hub->port_owners;
13591#line 1470
13592  __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
13593#line 1470
13594  __cil_tmp17 = *__cil_tmp16;
13595#line 1470
13596  __cil_tmp18 = (unsigned long )__cil_tmp17;
13597#line 1470
13598  __cil_tmp19 = __cil_tmp18 != __cil_tmp11;
13599#line 1470
13600  return ((bool )__cil_tmp19);
13601  }
13602}
13603}
13604#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"
13605static void recursively_mark_NOTATTACHED(struct usb_device *udev ) 
13606{ int i ;
13607  struct usb_device *__cil_tmp3 ;
13608  unsigned long __cil_tmp4 ;
13609  struct usb_device *__cil_tmp5 ;
13610  unsigned long __cil_tmp6 ;
13611  struct usb_device *__cil_tmp7 ;
13612  int __cil_tmp8 ;
13613  enum usb_device_state __cil_tmp9 ;
13614  unsigned int __cil_tmp10 ;
13615  unsigned long __cil_tmp11 ;
13616  unsigned long __cil_tmp12 ;
13617
13618  {
13619#line 1478
13620  i = 0;
13621#line 1478
13622  goto ldv_25963;
13623  ldv_25962: ;
13624  {
13625#line 1479
13626  __cil_tmp3 = (struct usb_device *)0;
13627#line 1479
13628  __cil_tmp4 = (unsigned long )__cil_tmp3;
13629#line 1479
13630  __cil_tmp5 = udev->children[i];
13631#line 1479
13632  __cil_tmp6 = (unsigned long )__cil_tmp5;
13633#line 1479
13634  if (__cil_tmp6 != __cil_tmp4) {
13635    {
13636#line 1480
13637    __cil_tmp7 = udev->children[i];
13638#line 1480
13639    recursively_mark_NOTATTACHED(__cil_tmp7);
13640    }
13641  } else {
13642
13643  }
13644  }
13645#line 1478
13646  i = i + 1;
13647  ldv_25963: ;
13648  {
13649#line 1478
13650  __cil_tmp8 = udev->maxchild;
13651#line 1478
13652  if (__cil_tmp8 > i) {
13653#line 1479
13654    goto ldv_25962;
13655  } else {
13656#line 1481
13657    goto ldv_25964;
13658  }
13659  }
13660  ldv_25964: ;
13661  {
13662#line 1482
13663  __cil_tmp9 = udev->state;
13664#line 1482
13665  __cil_tmp10 = (unsigned int )__cil_tmp9;
13666#line 1482
13667  if (__cil_tmp10 == 8U) {
13668#line 1483
13669    __cil_tmp11 = (unsigned long )jiffies;
13670#line 1483
13671    __cil_tmp12 = udev->active_duration;
13672#line 1483
13673    udev->active_duration = __cil_tmp12 - __cil_tmp11;
13674  } else {
13675
13676  }
13677  }
13678#line 1484
13679  udev->state = (enum usb_device_state )0;
13680#line 1485
13681  return;
13682}
13683}
13684#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"
13685void usb_set_device_state(struct usb_device *udev , enum usb_device_state new_state ) 
13686{ unsigned long flags ;
13687  int wakeup ;
13688  raw_spinlock_t *tmp ;
13689  enum usb_device_state __cil_tmp6 ;
13690  unsigned int __cil_tmp7 ;
13691  unsigned int __cil_tmp8 ;
13692  struct usb_device *__cil_tmp9 ;
13693  unsigned long __cil_tmp10 ;
13694  struct usb_device *__cil_tmp11 ;
13695  unsigned long __cil_tmp12 ;
13696  enum usb_device_state __cil_tmp13 ;
13697  unsigned int __cil_tmp14 ;
13698  unsigned int __cil_tmp15 ;
13699  unsigned int __cil_tmp16 ;
13700  struct usb_host_config *__cil_tmp17 ;
13701  __u8 __cil_tmp18 ;
13702  int __cil_tmp19 ;
13703  enum usb_device_state __cil_tmp20 ;
13704  unsigned int __cil_tmp21 ;
13705  unsigned int __cil_tmp22 ;
13706  unsigned long __cil_tmp23 ;
13707  unsigned long __cil_tmp24 ;
13708  unsigned int __cil_tmp25 ;
13709  enum usb_device_state __cil_tmp26 ;
13710  unsigned int __cil_tmp27 ;
13711  unsigned long __cil_tmp28 ;
13712  unsigned long __cil_tmp29 ;
13713  struct device *__cil_tmp30 ;
13714  int __cil_tmp31 ;
13715  bool __cil_tmp32 ;
13716
13717  {
13718  {
13719#line 1512
13720  wakeup = -1;
13721#line 1514
13722  tmp = spinlock_check(& device_state_lock);
13723#line 1514
13724  flags = _raw_spin_lock_irqsave(tmp);
13725  }
13726  {
13727#line 1515
13728  __cil_tmp6 = udev->state;
13729#line 1515
13730  __cil_tmp7 = (unsigned int )__cil_tmp6;
13731#line 1515
13732  if (__cil_tmp7 == 0U) {
13733
13734  } else {
13735    {
13736#line 1517
13737    __cil_tmp8 = (unsigned int )new_state;
13738#line 1517
13739    if (__cil_tmp8 != 0U) {
13740      {
13741#line 1522
13742      __cil_tmp9 = (struct usb_device *)0;
13743#line 1522
13744      __cil_tmp10 = (unsigned long )__cil_tmp9;
13745#line 1522
13746      __cil_tmp11 = udev->parent;
13747#line 1522
13748      __cil_tmp12 = (unsigned long )__cil_tmp11;
13749#line 1522
13750      if (__cil_tmp12 != __cil_tmp10) {
13751        {
13752#line 1523
13753        __cil_tmp13 = udev->state;
13754#line 1523
13755        __cil_tmp14 = (unsigned int )__cil_tmp13;
13756#line 1523
13757        if (__cil_tmp14 == 8U) {
13758
13759        } else {
13760          {
13761#line 1523
13762          __cil_tmp15 = (unsigned int )new_state;
13763#line 1523
13764          if (__cil_tmp15 == 8U) {
13765
13766          } else {
13767            {
13768#line 1526
13769            __cil_tmp16 = (unsigned int )new_state;
13770#line 1526
13771            if (__cil_tmp16 == 7U) {
13772#line 1527
13773              __cil_tmp17 = udev->actconfig;
13774#line 1527
13775              __cil_tmp18 = __cil_tmp17->desc.bmAttributes;
13776#line 1527
13777              __cil_tmp19 = (int )__cil_tmp18;
13778#line 1527
13779              wakeup = __cil_tmp19 & 32;
13780            } else {
13781#line 1530
13782              wakeup = 0;
13783            }
13784            }
13785          }
13786          }
13787        }
13788        }
13789      } else {
13790
13791      }
13792      }
13793      {
13794#line 1532
13795      __cil_tmp20 = udev->state;
13796#line 1532
13797      __cil_tmp21 = (unsigned int )__cil_tmp20;
13798#line 1532
13799      if (__cil_tmp21 == 8U) {
13800        {
13801#line 1532
13802        __cil_tmp22 = (unsigned int )new_state;
13803#line 1532
13804        if (__cil_tmp22 != 8U) {
13805#line 1534
13806          __cil_tmp23 = (unsigned long )jiffies;
13807#line 1534
13808          __cil_tmp24 = udev->active_duration;
13809#line 1534
13810          udev->active_duration = __cil_tmp24 - __cil_tmp23;
13811        } else {
13812#line 1532
13813          goto _L;
13814        }
13815        }
13816      } else {
13817        _L: 
13818        {
13819#line 1535
13820        __cil_tmp25 = (unsigned int )new_state;
13821#line 1535
13822        if (__cil_tmp25 == 8U) {
13823          {
13824#line 1535
13825          __cil_tmp26 = udev->state;
13826#line 1535
13827          __cil_tmp27 = (unsigned int )__cil_tmp26;
13828#line 1535
13829          if (__cil_tmp27 != 8U) {
13830#line 1537
13831            __cil_tmp28 = (unsigned long )jiffies;
13832#line 1537
13833            __cil_tmp29 = udev->active_duration;
13834#line 1537
13835            udev->active_duration = __cil_tmp29 + __cil_tmp28;
13836          } else {
13837
13838          }
13839          }
13840        } else {
13841
13842        }
13843        }
13844      }
13845      }
13846#line 1538
13847      udev->state = new_state;
13848    } else {
13849      {
13850#line 1540
13851      recursively_mark_NOTATTACHED(udev);
13852      }
13853    }
13854    }
13855  }
13856  }
13857  {
13858#line 1541
13859  spin_unlock_irqrestore(& device_state_lock, flags);
13860  }
13861#line 1542
13862  if (wakeup >= 0) {
13863    {
13864#line 1543
13865    __cil_tmp30 = & udev->dev;
13866#line 1543
13867    __cil_tmp31 = wakeup != 0;
13868#line 1543
13869    __cil_tmp32 = (bool )__cil_tmp31;
13870#line 1543
13871    device_set_wakeup_capable(__cil_tmp30, __cil_tmp32);
13872    }
13873  } else {
13874
13875  }
13876#line 1544
13877  return;
13878}
13879}
13880#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"
13881static void choose_devnum(struct usb_device *udev ) 
13882{ int devnum ;
13883  struct usb_bus *bus ;
13884  int tmp ;
13885  long tmp___0 ;
13886  unsigned long tmp___1 ;
13887  unsigned long tmp___2 ;
13888  unsigned char *__cil_tmp8 ;
13889  unsigned char *__cil_tmp9 ;
13890  unsigned char __cil_tmp10 ;
13891  unsigned int __cil_tmp11 ;
13892  u8 __cil_tmp12 ;
13893  int __cil_tmp13 ;
13894  unsigned long (*__cil_tmp14)[2U] ;
13895  unsigned long const volatile   *__cil_tmp15 ;
13896  int __cil_tmp16 ;
13897  long __cil_tmp17 ;
13898  unsigned long (*__cil_tmp18)[2U] ;
13899  unsigned long const   *__cil_tmp19 ;
13900  int __cil_tmp20 ;
13901  unsigned long __cil_tmp21 ;
13902  unsigned long (*__cil_tmp22)[2U] ;
13903  unsigned long const   *__cil_tmp23 ;
13904  unsigned int __cil_tmp24 ;
13905  unsigned long (*__cil_tmp25)[2U] ;
13906  unsigned long volatile   *__cil_tmp26 ;
13907
13908  {
13909#line 1579
13910  bus = udev->bus;
13911  {
13912#line 1582
13913  __cil_tmp8 = (unsigned char *)udev;
13914#line 1582
13915  __cil_tmp9 = __cil_tmp8 + 1556UL;
13916#line 1582
13917  __cil_tmp10 = *__cil_tmp9;
13918#line 1582
13919  __cil_tmp11 = (unsigned int )__cil_tmp10;
13920#line 1582
13921  if (__cil_tmp11 != 0U) {
13922    {
13923#line 1583
13924    __cil_tmp12 = udev->portnum;
13925#line 1583
13926    __cil_tmp13 = (int )__cil_tmp12;
13927#line 1583
13928    devnum = __cil_tmp13 + 1;
13929#line 1584
13930    __cil_tmp14 = & bus->devmap.devicemap;
13931#line 1584
13932    __cil_tmp15 = (unsigned long const volatile   *)__cil_tmp14;
13933#line 1584
13934    tmp = variable_test_bit(devnum, __cil_tmp15);
13935#line 1584
13936    __cil_tmp16 = tmp != 0;
13937#line 1584
13938    __cil_tmp17 = (long )__cil_tmp16;
13939#line 1584
13940    tmp___0 = __builtin_expect(__cil_tmp17, 0L);
13941    }
13942#line 1584
13943    if (tmp___0 != 0L) {
13944#line 1584
13945      __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"),
13946                           "i" (1584), "i" (12UL));
13947      ldv_25986: ;
13948#line 1584
13949      goto ldv_25986;
13950    } else {
13951
13952    }
13953  } else {
13954    {
13955#line 1588
13956    __cil_tmp18 = & bus->devmap.devicemap;
13957#line 1588
13958    __cil_tmp19 = (unsigned long const   *)__cil_tmp18;
13959#line 1588
13960    __cil_tmp20 = bus->devnum_next;
13961#line 1588
13962    __cil_tmp21 = (unsigned long )__cil_tmp20;
13963#line 1588
13964    tmp___1 = find_next_zero_bit(__cil_tmp19, 128UL, __cil_tmp21);
13965#line 1588
13966    devnum = (int )tmp___1;
13967    }
13968#line 1590
13969    if (devnum > 127) {
13970      {
13971#line 1591
13972      __cil_tmp22 = & bus->devmap.devicemap;
13973#line 1591
13974      __cil_tmp23 = (unsigned long const   *)__cil_tmp22;
13975#line 1591
13976      tmp___2 = find_next_zero_bit(__cil_tmp23, 128UL, 1UL);
13977#line 1591
13978      devnum = (int )tmp___2;
13979      }
13980    } else {
13981
13982    }
13983#line 1593
13984    if (devnum <= 126) {
13985#line 1593
13986      bus->devnum_next = devnum + 1;
13987    } else {
13988#line 1593
13989      bus->devnum_next = 1;
13990    }
13991  }
13992  }
13993#line 1595
13994  if (devnum <= 127) {
13995    {
13996#line 1596
13997    __cil_tmp24 = (unsigned int )devnum;
13998#line 1596
13999    __cil_tmp25 = & bus->devmap.devicemap;
14000#line 1596
14001    __cil_tmp26 = (unsigned long volatile   *)__cil_tmp25;
14002#line 1596
14003    set_bit(__cil_tmp24, __cil_tmp26);
14004#line 1597
14005    udev->devnum = devnum;
14006    }
14007  } else {
14008
14009  }
14010#line 1599
14011  return;
14012}
14013}
14014#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"
14015static void release_devnum(struct usb_device *udev ) 
14016{ int __cil_tmp2 ;
14017  int __cil_tmp3 ;
14018  struct usb_bus *__cil_tmp4 ;
14019  unsigned long (*__cil_tmp5)[2U] ;
14020  unsigned long volatile   *__cil_tmp6 ;
14021
14022  {
14023  {
14024#line 1603
14025  __cil_tmp2 = udev->devnum;
14026#line 1603
14027  if (__cil_tmp2 > 0) {
14028    {
14029#line 1604
14030    __cil_tmp3 = udev->devnum;
14031#line 1604
14032    __cil_tmp4 = udev->bus;
14033#line 1604
14034    __cil_tmp5 = & __cil_tmp4->devmap.devicemap;
14035#line 1604
14036    __cil_tmp6 = (unsigned long volatile   *)__cil_tmp5;
14037#line 1604
14038    clear_bit(__cil_tmp3, __cil_tmp6);
14039#line 1605
14040    udev->devnum = -1;
14041    }
14042  } else {
14043
14044  }
14045  }
14046#line 1607
14047  return;
14048}
14049}
14050#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"
14051static void update_devnum(struct usb_device *udev , int devnum ) 
14052{ unsigned char *__cil_tmp3 ;
14053  unsigned char *__cil_tmp4 ;
14054  unsigned char __cil_tmp5 ;
14055  unsigned int __cil_tmp6 ;
14056
14057  {
14058  {
14059#line 1612
14060  __cil_tmp3 = (unsigned char *)udev;
14061#line 1612
14062  __cil_tmp4 = __cil_tmp3 + 1556UL;
14063#line 1612
14064  __cil_tmp5 = *__cil_tmp4;
14065#line 1612
14066  __cil_tmp6 = (unsigned int )__cil_tmp5;
14067#line 1612
14068  if (__cil_tmp6 == 0U) {
14069#line 1613
14070    udev->devnum = devnum;
14071  } else {
14072
14073  }
14074  }
14075#line 1614
14076  return;
14077}
14078}
14079#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"
14080static void hub_free_dev(struct usb_device *udev ) 
14081{ struct usb_hcd *hcd ;
14082  struct usb_hcd *tmp ;
14083  struct usb_bus *__cil_tmp4 ;
14084  void (*__cil_tmp5)(struct usb_hcd * , struct usb_device * ) ;
14085  unsigned long __cil_tmp6 ;
14086  struct hc_driver  const  *__cil_tmp7 ;
14087  void (*__cil_tmp8)(struct usb_hcd * , struct usb_device * ) ;
14088  unsigned long __cil_tmp9 ;
14089  struct usb_device *__cil_tmp10 ;
14090  unsigned long __cil_tmp11 ;
14091  struct usb_device *__cil_tmp12 ;
14092  unsigned long __cil_tmp13 ;
14093  struct hc_driver  const  *__cil_tmp14 ;
14094  void (*__cil_tmp15)(struct usb_hcd * , struct usb_device * ) ;
14095
14096  {
14097  {
14098#line 1618
14099  __cil_tmp4 = udev->bus;
14100#line 1618
14101  tmp = bus_to_hcd(__cil_tmp4);
14102#line 1618
14103  hcd = tmp;
14104  }
14105  {
14106#line 1621
14107  __cil_tmp5 = (void (* const  )(struct usb_hcd * , struct usb_device * ))0;
14108#line 1621
14109  __cil_tmp6 = (unsigned long )__cil_tmp5;
14110#line 1621
14111  __cil_tmp7 = hcd->driver;
14112#line 1621
14113  __cil_tmp8 = __cil_tmp7->free_dev;
14114#line 1621
14115  __cil_tmp9 = (unsigned long )__cil_tmp8;
14116#line 1621
14117  if (__cil_tmp9 != __cil_tmp6) {
14118    {
14119#line 1621
14120    __cil_tmp10 = (struct usb_device *)0;
14121#line 1621
14122    __cil_tmp11 = (unsigned long )__cil_tmp10;
14123#line 1621
14124    __cil_tmp12 = udev->parent;
14125#line 1621
14126    __cil_tmp13 = (unsigned long )__cil_tmp12;
14127#line 1621
14128    if (__cil_tmp13 != __cil_tmp11) {
14129      {
14130#line 1622
14131      __cil_tmp14 = hcd->driver;
14132#line 1622
14133      __cil_tmp15 = __cil_tmp14->free_dev;
14134#line 1622
14135      (*__cil_tmp15)(hcd, udev);
14136      }
14137    } else {
14138
14139    }
14140    }
14141  } else {
14142
14143  }
14144  }
14145#line 1623
14146  return;
14147}
14148}
14149#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"
14150void usb_disconnect(struct usb_device **pdev ) 
14151{ struct usb_device *udev ;
14152  int i ;
14153  struct usb_hcd *hcd ;
14154  struct usb_hcd *tmp ;
14155  struct usb_bus *__cil_tmp6 ;
14156  struct usb_device *__cil_tmp7 ;
14157  unsigned long __cil_tmp8 ;
14158  unsigned long __cil_tmp9 ;
14159  enum usb_device_state __cil_tmp10 ;
14160  struct device *__cil_tmp11 ;
14161  struct device  const  *__cil_tmp12 ;
14162  int __cil_tmp13 ;
14163  struct device *__cil_tmp14 ;
14164  struct usb_device *__cil_tmp15 ;
14165  unsigned long __cil_tmp16 ;
14166  struct usb_device *__cil_tmp17 ;
14167  unsigned long __cil_tmp18 ;
14168  unsigned long __cil_tmp19 ;
14169  struct usb_device *(*__cil_tmp20)[31U] ;
14170  struct usb_device **__cil_tmp21 ;
14171  struct usb_device **__cil_tmp22 ;
14172  struct device *__cil_tmp23 ;
14173  struct device  const  *__cil_tmp24 ;
14174  struct mutex *__cil_tmp25 ;
14175  struct mutex *__cil_tmp26 ;
14176  struct usb_host_endpoint *__cil_tmp27 ;
14177  struct device *__cil_tmp28 ;
14178  struct device *__cil_tmp29 ;
14179  struct device *__cil_tmp30 ;
14180
14181  {
14182  {
14183#line 1643
14184  udev = *pdev;
14185#line 1645
14186  __cil_tmp6 = udev->bus;
14187#line 1645
14188  tmp = bus_to_hcd(__cil_tmp6);
14189#line 1645
14190  hcd = tmp;
14191  }
14192  {
14193#line 1647
14194  __cil_tmp7 = (struct usb_device *)0;
14195#line 1647
14196  __cil_tmp8 = (unsigned long )__cil_tmp7;
14197#line 1647
14198  __cil_tmp9 = (unsigned long )udev;
14199#line 1647
14200  if (__cil_tmp9 == __cil_tmp8) {
14201    {
14202#line 1648
14203    printk("<7>%s nodev\n", "usb_disconnect");
14204    }
14205#line 1649
14206    return;
14207  } else {
14208
14209  }
14210  }
14211  {
14212#line 1656
14213  __cil_tmp10 = (enum usb_device_state )0;
14214#line 1656
14215  usb_set_device_state(udev, __cil_tmp10);
14216#line 1657
14217  __cil_tmp11 = & udev->dev;
14218#line 1657
14219  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
14220#line 1657
14221  __cil_tmp13 = udev->devnum;
14222#line 1657
14223  _dev_info(__cil_tmp12, "USB disconnect, device number %d\n", __cil_tmp13);
14224#line 1660
14225  __cil_tmp14 = & udev->dev;
14226#line 1660
14227  device_lock(__cil_tmp14);
14228#line 1663
14229  i = 0;
14230  }
14231#line 1663
14232  goto ldv_26006;
14233  ldv_26005: ;
14234  {
14235#line 1664
14236  __cil_tmp15 = (struct usb_device *)0;
14237#line 1664
14238  __cil_tmp16 = (unsigned long )__cil_tmp15;
14239#line 1664
14240  __cil_tmp17 = udev->children[i];
14241#line 1664
14242  __cil_tmp18 = (unsigned long )__cil_tmp17;
14243#line 1664
14244  if (__cil_tmp18 != __cil_tmp16) {
14245    {
14246#line 1665
14247    __cil_tmp19 = (unsigned long )i;
14248#line 1665
14249    __cil_tmp20 = & udev->children;
14250#line 1665
14251    __cil_tmp21 = (struct usb_device **)__cil_tmp20;
14252#line 1665
14253    __cil_tmp22 = __cil_tmp21 + __cil_tmp19;
14254#line 1665
14255    usb_disconnect(__cil_tmp22);
14256    }
14257  } else {
14258
14259  }
14260  }
14261#line 1663
14262  i = i + 1;
14263  ldv_26006: ;
14264#line 1663
14265  if (i <= 30) {
14266#line 1664
14267    goto ldv_26005;
14268  } else {
14269#line 1666
14270    goto ldv_26007;
14271  }
14272  ldv_26007: 
14273  {
14274#line 1672
14275  __cil_tmp23 = & udev->dev;
14276#line 1672
14277  __cil_tmp24 = (struct device  const  *)__cil_tmp23;
14278#line 1672
14279  dev_printk("<7>", __cil_tmp24, "unregistering device\n");
14280#line 1673
14281  __cil_tmp25 = hcd->bandwidth_mutex;
14282#line 1673
14283  mutex_lock_nested(__cil_tmp25, 0U);
14284#line 1674
14285  usb_disable_device(udev, 0);
14286#line 1675
14287  __cil_tmp26 = hcd->bandwidth_mutex;
14288#line 1675
14289  mutex_unlock(__cil_tmp26);
14290#line 1676
14291  usb_hcd_synchronize_unlinks(udev);
14292#line 1678
14293  __cil_tmp27 = & udev->ep0;
14294#line 1678
14295  usb_remove_ep_devs(__cil_tmp27);
14296#line 1679
14297  __cil_tmp28 = & udev->dev;
14298#line 1679
14299  device_unlock(__cil_tmp28);
14300#line 1685
14301  __cil_tmp29 = & udev->dev;
14302#line 1685
14303  device_del(__cil_tmp29);
14304#line 1690
14305  release_devnum(udev);
14306#line 1693
14307  spin_lock_irq(& device_state_lock);
14308#line 1694
14309  *pdev = (struct usb_device *)0;
14310#line 1695
14311  spin_unlock_irq(& device_state_lock);
14312#line 1697
14313  hub_free_dev(udev);
14314#line 1699
14315  __cil_tmp30 = & udev->dev;
14316#line 1699
14317  put_device(__cil_tmp30);
14318  }
14319#line 1700
14320  return;
14321}
14322}
14323#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"
14324static void show_string(struct usb_device *udev , char *id , char *string ) 
14325{ char *__cil_tmp4 ;
14326  unsigned long __cil_tmp5 ;
14327  unsigned long __cil_tmp6 ;
14328  struct device *__cil_tmp7 ;
14329  struct device  const  *__cil_tmp8 ;
14330
14331  {
14332  {
14333#line 1705
14334  __cil_tmp4 = (char *)0;
14335#line 1705
14336  __cil_tmp5 = (unsigned long )__cil_tmp4;
14337#line 1705
14338  __cil_tmp6 = (unsigned long )string;
14339#line 1705
14340  if (__cil_tmp6 == __cil_tmp5) {
14341#line 1706
14342    return;
14343  } else {
14344
14345  }
14346  }
14347  {
14348#line 1707
14349  __cil_tmp7 = & udev->dev;
14350#line 1707
14351  __cil_tmp8 = (struct device  const  *)__cil_tmp7;
14352#line 1707
14353  dev_printk("<6>", __cil_tmp8, "%s: %s\n", id, string);
14354  }
14355#line 1708
14356  return;
14357}
14358}
14359#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"
14360static void announce_device(struct usb_device *udev ) 
14361{ struct device *__cil_tmp2 ;
14362  struct device  const  *__cil_tmp3 ;
14363  __le16 __cil_tmp4 ;
14364  int __cil_tmp5 ;
14365  __le16 __cil_tmp6 ;
14366  int __cil_tmp7 ;
14367  struct device *__cil_tmp8 ;
14368  struct device  const  *__cil_tmp9 ;
14369  __u8 __cil_tmp10 ;
14370  int __cil_tmp11 ;
14371  __u8 __cil_tmp12 ;
14372  int __cil_tmp13 ;
14373  __u8 __cil_tmp14 ;
14374  int __cil_tmp15 ;
14375  char *__cil_tmp16 ;
14376  char *__cil_tmp17 ;
14377  char *__cil_tmp18 ;
14378  char *__cil_tmp19 ;
14379  char *__cil_tmp20 ;
14380  char *__cil_tmp21 ;
14381
14382  {
14383  {
14384#line 1712
14385  __cil_tmp2 = & udev->dev;
14386#line 1712
14387  __cil_tmp3 = (struct device  const  *)__cil_tmp2;
14388#line 1712
14389  __cil_tmp4 = udev->descriptor.idVendor;
14390#line 1712
14391  __cil_tmp5 = (int )__cil_tmp4;
14392#line 1712
14393  __cil_tmp6 = udev->descriptor.idProduct;
14394#line 1712
14395  __cil_tmp7 = (int )__cil_tmp6;
14396#line 1712
14397  _dev_info(__cil_tmp3, "New USB device found, idVendor=%04x, idProduct=%04x\n", __cil_tmp5,
14398            __cil_tmp7);
14399#line 1715
14400  __cil_tmp8 = & udev->dev;
14401#line 1715
14402  __cil_tmp9 = (struct device  const  *)__cil_tmp8;
14403#line 1715
14404  __cil_tmp10 = udev->descriptor.iManufacturer;
14405#line 1715
14406  __cil_tmp11 = (int )__cil_tmp10;
14407#line 1715
14408  __cil_tmp12 = udev->descriptor.iProduct;
14409#line 1715
14410  __cil_tmp13 = (int )__cil_tmp12;
14411#line 1715
14412  __cil_tmp14 = udev->descriptor.iSerialNumber;
14413#line 1715
14414  __cil_tmp15 = (int )__cil_tmp14;
14415#line 1715
14416  _dev_info(__cil_tmp9, "New USB device strings: Mfr=%d, Product=%d, SerialNumber=%d\n",
14417            __cil_tmp11, __cil_tmp13, __cil_tmp15);
14418#line 1720
14419  __cil_tmp16 = (char *)"Product";
14420#line 1720
14421  __cil_tmp17 = udev->product;
14422#line 1720
14423  show_string(udev, __cil_tmp16, __cil_tmp17);
14424#line 1721
14425  __cil_tmp18 = (char *)"Manufacturer";
14426#line 1721
14427  __cil_tmp19 = udev->manufacturer;
14428#line 1721
14429  show_string(udev, __cil_tmp18, __cil_tmp19);
14430#line 1722
14431  __cil_tmp20 = (char *)"SerialNumber";
14432#line 1722
14433  __cil_tmp21 = udev->serial;
14434#line 1722
14435  show_string(udev, __cil_tmp20, __cil_tmp21);
14436  }
14437#line 1723
14438  return;
14439}
14440}
14441#line 19 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/otg_whitelist.h"
14442static struct usb_device_id whitelist_table[4U]  = {      {(__u16 )112U, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
14443      (__u8 )9U, (__u8 )0U, (__u8 )0U, (unsigned char)0, (unsigned char)0, (unsigned char)0,
14444      0UL}, 
14445        {(__u16 )112U, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
14446      (__u8 )9U, (__u8 )0U, (__u8 )1U, (unsigned char)0, (unsigned char)0, (unsigned char)0,
14447      0UL}, 
14448        {(__u16 )3U, (__u16 )1317U, (__u16 )42144U, (unsigned short)0, (unsigned short)0,
14449      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
14450      (unsigned char)0, 0UL}, 
14451        {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
14452      (unsigned short)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
14453      (unsigned char)0, (unsigned char)0, 0UL}};
14454#line 49 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/otg_whitelist.h"
14455static int is_targeted(struct usb_device *dev ) 
14456{ struct usb_device_id *id ;
14457  struct usb_bus *__cil_tmp3 ;
14458  u8 __cil_tmp4 ;
14459  unsigned int __cil_tmp5 ;
14460  __le16 __cil_tmp6 ;
14461  unsigned int __cil_tmp7 ;
14462  __le16 __cil_tmp8 ;
14463  unsigned int __cil_tmp9 ;
14464  __u16 __cil_tmp10 ;
14465  int __cil_tmp11 ;
14466  __le16 __cil_tmp12 ;
14467  int __cil_tmp13 ;
14468  __u16 __cil_tmp14 ;
14469  int __cil_tmp15 ;
14470  __u16 __cil_tmp16 ;
14471  int __cil_tmp17 ;
14472  int __cil_tmp18 ;
14473  __le16 __cil_tmp19 ;
14474  int __cil_tmp20 ;
14475  __u16 __cil_tmp21 ;
14476  int __cil_tmp22 ;
14477  __u16 __cil_tmp23 ;
14478  int __cil_tmp24 ;
14479  int __cil_tmp25 ;
14480  __le16 __cil_tmp26 ;
14481  int __cil_tmp27 ;
14482  __u16 __cil_tmp28 ;
14483  int __cil_tmp29 ;
14484  __u16 __cil_tmp30 ;
14485  int __cil_tmp31 ;
14486  int __cil_tmp32 ;
14487  __le16 __cil_tmp33 ;
14488  int __cil_tmp34 ;
14489  __u16 __cil_tmp35 ;
14490  int __cil_tmp36 ;
14491  __u16 __cil_tmp37 ;
14492  int __cil_tmp38 ;
14493  int __cil_tmp39 ;
14494  __u8 __cil_tmp40 ;
14495  int __cil_tmp41 ;
14496  __u8 __cil_tmp42 ;
14497  int __cil_tmp43 ;
14498  __u16 __cil_tmp44 ;
14499  int __cil_tmp45 ;
14500  int __cil_tmp46 ;
14501  __u8 __cil_tmp47 ;
14502  int __cil_tmp48 ;
14503  __u8 __cil_tmp49 ;
14504  int __cil_tmp50 ;
14505  __u16 __cil_tmp51 ;
14506  int __cil_tmp52 ;
14507  int __cil_tmp53 ;
14508  __u8 __cil_tmp54 ;
14509  int __cil_tmp55 ;
14510  __u8 __cil_tmp56 ;
14511  int __cil_tmp57 ;
14512  __u16 __cil_tmp58 ;
14513  unsigned int __cil_tmp59 ;
14514  struct device *__cil_tmp60 ;
14515  struct device  const  *__cil_tmp61 ;
14516  __le16 __cil_tmp62 ;
14517  int __cil_tmp63 ;
14518  __le16 __cil_tmp64 ;
14519  int __cil_tmp65 ;
14520
14521  {
14522#line 51
14523  id = (struct usb_device_id *)(& whitelist_table);
14524  {
14525#line 54
14526  __cil_tmp3 = dev->bus;
14527#line 54
14528  __cil_tmp4 = __cil_tmp3->otg_port;
14529#line 54
14530  __cil_tmp5 = (unsigned int )__cil_tmp4;
14531#line 54
14532  if (__cil_tmp5 == 0U) {
14533#line 55
14534    return (1);
14535  } else {
14536
14537  }
14538  }
14539  {
14540#line 58
14541  __cil_tmp6 = dev->descriptor.idVendor;
14542#line 58
14543  __cil_tmp7 = (unsigned int )__cil_tmp6;
14544#line 58
14545  if (__cil_tmp7 == 6666U) {
14546    {
14547#line 58
14548    __cil_tmp8 = dev->descriptor.idProduct;
14549#line 58
14550    __cil_tmp9 = (unsigned int )__cil_tmp8;
14551#line 58
14552    if (__cil_tmp9 == 47837U) {
14553#line 60
14554      return (0);
14555    } else {
14556
14557    }
14558    }
14559  } else {
14560
14561  }
14562  }
14563#line 65
14564  id = (struct usb_device_id *)(& whitelist_table);
14565#line 65
14566  goto ldv_26023;
14567  ldv_26022: ;
14568  {
14569#line 66
14570  __cil_tmp10 = id->match_flags;
14571#line 66
14572  __cil_tmp11 = (int )__cil_tmp10;
14573#line 66
14574  if (__cil_tmp11 & 1) {
14575    {
14576#line 66
14577    __cil_tmp12 = dev->descriptor.idVendor;
14578#line 66
14579    __cil_tmp13 = (int )__cil_tmp12;
14580#line 66
14581    __cil_tmp14 = id->idVendor;
14582#line 66
14583    __cil_tmp15 = (int )__cil_tmp14;
14584#line 66
14585    if (__cil_tmp15 != __cil_tmp13) {
14586#line 68
14587      goto ldv_26021;
14588    } else {
14589
14590    }
14591    }
14592  } else {
14593
14594  }
14595  }
14596  {
14597#line 70
14598  __cil_tmp16 = id->match_flags;
14599#line 70
14600  __cil_tmp17 = (int )__cil_tmp16;
14601#line 70
14602  __cil_tmp18 = __cil_tmp17 & 2;
14603#line 70
14604  if (__cil_tmp18 != 0) {
14605    {
14606#line 70
14607    __cil_tmp19 = dev->descriptor.idProduct;
14608#line 70
14609    __cil_tmp20 = (int )__cil_tmp19;
14610#line 70
14611    __cil_tmp21 = id->idProduct;
14612#line 70
14613    __cil_tmp22 = (int )__cil_tmp21;
14614#line 70
14615    if (__cil_tmp22 != __cil_tmp20) {
14616#line 72
14617      goto ldv_26021;
14618    } else {
14619
14620    }
14621    }
14622  } else {
14623
14624  }
14625  }
14626  {
14627#line 76
14628  __cil_tmp23 = id->match_flags;
14629#line 76
14630  __cil_tmp24 = (int )__cil_tmp23;
14631#line 76
14632  __cil_tmp25 = __cil_tmp24 & 4;
14633#line 76
14634  if (__cil_tmp25 != 0) {
14635    {
14636#line 76
14637    __cil_tmp26 = dev->descriptor.bcdDevice;
14638#line 76
14639    __cil_tmp27 = (int )__cil_tmp26;
14640#line 76
14641    __cil_tmp28 = id->bcdDevice_lo;
14642#line 76
14643    __cil_tmp29 = (int )__cil_tmp28;
14644#line 76
14645    if (__cil_tmp29 > __cil_tmp27) {
14646#line 78
14647      goto ldv_26021;
14648    } else {
14649
14650    }
14651    }
14652  } else {
14653
14654  }
14655  }
14656  {
14657#line 80
14658  __cil_tmp30 = id->match_flags;
14659#line 80
14660  __cil_tmp31 = (int )__cil_tmp30;
14661#line 80
14662  __cil_tmp32 = __cil_tmp31 & 8;
14663#line 80
14664  if (__cil_tmp32 != 0) {
14665    {
14666#line 80
14667    __cil_tmp33 = dev->descriptor.bcdDevice;
14668#line 80
14669    __cil_tmp34 = (int )__cil_tmp33;
14670#line 80
14671    __cil_tmp35 = id->bcdDevice_hi;
14672#line 80
14673    __cil_tmp36 = (int )__cil_tmp35;
14674#line 80
14675    if (__cil_tmp36 < __cil_tmp34) {
14676#line 82
14677      goto ldv_26021;
14678    } else {
14679
14680    }
14681    }
14682  } else {
14683
14684  }
14685  }
14686  {
14687#line 84
14688  __cil_tmp37 = id->match_flags;
14689#line 84
14690  __cil_tmp38 = (int )__cil_tmp37;
14691#line 84
14692  __cil_tmp39 = __cil_tmp38 & 16;
14693#line 84
14694  if (__cil_tmp39 != 0) {
14695    {
14696#line 84
14697    __cil_tmp40 = dev->descriptor.bDeviceClass;
14698#line 84
14699    __cil_tmp41 = (int )__cil_tmp40;
14700#line 84
14701    __cil_tmp42 = id->bDeviceClass;
14702#line 84
14703    __cil_tmp43 = (int )__cil_tmp42;
14704#line 84
14705    if (__cil_tmp43 != __cil_tmp41) {
14706#line 86
14707      goto ldv_26021;
14708    } else {
14709
14710    }
14711    }
14712  } else {
14713
14714  }
14715  }
14716  {
14717#line 88
14718  __cil_tmp44 = id->match_flags;
14719#line 88
14720  __cil_tmp45 = (int )__cil_tmp44;
14721#line 88
14722  __cil_tmp46 = __cil_tmp45 & 32;
14723#line 88
14724  if (__cil_tmp46 != 0) {
14725    {
14726#line 88
14727    __cil_tmp47 = dev->descriptor.bDeviceSubClass;
14728#line 88
14729    __cil_tmp48 = (int )__cil_tmp47;
14730#line 88
14731    __cil_tmp49 = id->bDeviceSubClass;
14732#line 88
14733    __cil_tmp50 = (int )__cil_tmp49;
14734#line 88
14735    if (__cil_tmp50 != __cil_tmp48) {
14736#line 90
14737      goto ldv_26021;
14738    } else {
14739
14740    }
14741    }
14742  } else {
14743
14744  }
14745  }
14746  {
14747#line 92
14748  __cil_tmp51 = id->match_flags;
14749#line 92
14750  __cil_tmp52 = (int )__cil_tmp51;
14751#line 92
14752  __cil_tmp53 = __cil_tmp52 & 64;
14753#line 92
14754  if (__cil_tmp53 != 0) {
14755    {
14756#line 92
14757    __cil_tmp54 = dev->descriptor.bDeviceProtocol;
14758#line 92
14759    __cil_tmp55 = (int )__cil_tmp54;
14760#line 92
14761    __cil_tmp56 = id->bDeviceProtocol;
14762#line 92
14763    __cil_tmp57 = (int )__cil_tmp56;
14764#line 92
14765    if (__cil_tmp57 != __cil_tmp55) {
14766#line 94
14767      goto ldv_26021;
14768    } else {
14769
14770    }
14771    }
14772  } else {
14773
14774  }
14775  }
14776#line 96
14777  return (1);
14778  ldv_26021: 
14779#line 65
14780  id = id + 1;
14781  ldv_26023: ;
14782  {
14783#line 65
14784  __cil_tmp58 = id->match_flags;
14785#line 65
14786  __cil_tmp59 = (unsigned int )__cil_tmp58;
14787#line 65
14788  if (__cil_tmp59 != 0U) {
14789#line 66
14790    goto ldv_26022;
14791  } else {
14792#line 68
14793    goto ldv_26024;
14794  }
14795  }
14796  ldv_26024: 
14797  {
14798#line 103
14799  __cil_tmp60 = & dev->dev;
14800#line 103
14801  __cil_tmp61 = (struct device  const  *)__cil_tmp60;
14802#line 103
14803  __cil_tmp62 = dev->descriptor.idVendor;
14804#line 103
14805  __cil_tmp63 = (int )__cil_tmp62;
14806#line 103
14807  __cil_tmp64 = dev->descriptor.idProduct;
14808#line 103
14809  __cil_tmp65 = (int )__cil_tmp64;
14810#line 103
14811  dev_err(__cil_tmp61, "device v%04x p%04x is not supported\n", __cil_tmp63, __cil_tmp65);
14812  }
14813#line 107
14814  return (0);
14815}
14816}
14817#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"
14818static int usb_enumerate_device_otg(struct usb_device *udev ) 
14819{ int err ;
14820  struct usb_otg_descriptor *desc ;
14821  struct usb_bus *bus ;
14822  unsigned int port1 ;
14823  char *tmp ;
14824  int tmp___0 ;
14825  unsigned int tmp___1 ;
14826  int tmp___2 ;
14827  struct pm_message __constr_expr_0 ;
14828  int tmp___3 ;
14829  struct usb_bus *__cil_tmp12 ;
14830  unsigned char *__cil_tmp13 ;
14831  unsigned char *__cil_tmp14 ;
14832  unsigned char __cil_tmp15 ;
14833  unsigned int __cil_tmp16 ;
14834  struct usb_host_config *__cil_tmp17 ;
14835  unsigned long __cil_tmp18 ;
14836  struct usb_host_config *__cil_tmp19 ;
14837  unsigned long __cil_tmp20 ;
14838  struct usb_bus *__cil_tmp21 ;
14839  struct usb_device *__cil_tmp22 ;
14840  unsigned long __cil_tmp23 ;
14841  struct usb_device *__cil_tmp24 ;
14842  unsigned long __cil_tmp25 ;
14843  char **__cil_tmp26 ;
14844  char *__cil_tmp27 ;
14845  struct usb_host_config *__cil_tmp28 ;
14846  __le16 __cil_tmp29 ;
14847  unsigned int __cil_tmp30 ;
14848  void **__cil_tmp31 ;
14849  __u8 __cil_tmp32 ;
14850  int __cil_tmp33 ;
14851  int __cil_tmp34 ;
14852  u8 __cil_tmp35 ;
14853  u8 __cil_tmp36 ;
14854  unsigned int __cil_tmp37 ;
14855  struct device *__cil_tmp38 ;
14856  struct device  const  *__cil_tmp39 ;
14857  u8 __cil_tmp40 ;
14858  unsigned int __cil_tmp41 ;
14859  unsigned char *__cil_tmp42 ;
14860  unsigned char *__cil_tmp43 ;
14861  unsigned char __cil_tmp44 ;
14862  unsigned int __cil_tmp45 ;
14863  unsigned int __cil_tmp46 ;
14864  __u8 __cil_tmp47 ;
14865  __u8 __cil_tmp48 ;
14866  __u16 __cil_tmp49 ;
14867  __u16 __cil_tmp50 ;
14868  void *__cil_tmp51 ;
14869  __u16 __cil_tmp52 ;
14870  struct device *__cil_tmp53 ;
14871  struct device  const  *__cil_tmp54 ;
14872  struct usb_bus *__cil_tmp55 ;
14873  unsigned char *__cil_tmp56 ;
14874  unsigned char *__cil_tmp57 ;
14875  unsigned char __cil_tmp58 ;
14876  unsigned int __cil_tmp59 ;
14877  struct usb_bus *__cil_tmp60 ;
14878  unsigned char *__cil_tmp61 ;
14879  unsigned char *__cil_tmp62 ;
14880  unsigned char __cil_tmp63 ;
14881  unsigned int __cil_tmp64 ;
14882  struct device *__cil_tmp65 ;
14883  struct device  const  *__cil_tmp66 ;
14884
14885  {
14886#line 1740
14887  err = 0;
14888  {
14889#line 1748
14890  __cil_tmp12 = udev->bus;
14891#line 1748
14892  __cil_tmp13 = (unsigned char *)__cil_tmp12;
14893#line 1748
14894  __cil_tmp14 = __cil_tmp13 + 27UL;
14895#line 1748
14896  __cil_tmp15 = *__cil_tmp14;
14897#line 1748
14898  __cil_tmp16 = (unsigned int )__cil_tmp15;
14899#line 1748
14900  if (__cil_tmp16 == 0U) {
14901    {
14902#line 1748
14903    __cil_tmp17 = (struct usb_host_config *)0;
14904#line 1748
14905    __cil_tmp18 = (unsigned long )__cil_tmp17;
14906#line 1748
14907    __cil_tmp19 = udev->config;
14908#line 1748
14909    __cil_tmp20 = (unsigned long )__cil_tmp19;
14910#line 1748
14911    if (__cil_tmp20 != __cil_tmp18) {
14912      {
14913#line 1748
14914      __cil_tmp21 = udev->bus;
14915#line 1748
14916      __cil_tmp22 = __cil_tmp21->root_hub;
14917#line 1748
14918      __cil_tmp23 = (unsigned long )__cil_tmp22;
14919#line 1748
14920      __cil_tmp24 = udev->parent;
14921#line 1748
14922      __cil_tmp25 = (unsigned long )__cil_tmp24;
14923#line 1748
14924      if (__cil_tmp25 == __cil_tmp23) {
14925        {
14926#line 1751
14927        desc = (struct usb_otg_descriptor *)0;
14928#line 1752
14929        bus = udev->bus;
14930#line 1755
14931        __cil_tmp26 = udev->rawdescriptors;
14932#line 1755
14933        __cil_tmp27 = *__cil_tmp26;
14934#line 1755
14935        __cil_tmp28 = udev->config;
14936#line 1755
14937        __cil_tmp29 = __cil_tmp28->desc.wTotalLength;
14938#line 1755
14939        __cil_tmp30 = (unsigned int )__cil_tmp29;
14940#line 1755
14941        __cil_tmp31 = (void **)(& desc);
14942#line 1755
14943        tmp___2 = __usb_get_extra_descriptor(__cil_tmp27, __cil_tmp30, (unsigned char)9,
14944                                             __cil_tmp31);
14945        }
14946#line 1755
14947        if (tmp___2 == 0) {
14948          {
14949#line 1758
14950          __cil_tmp32 = desc->bmAttributes;
14951#line 1758
14952          __cil_tmp33 = (int )__cil_tmp32;
14953#line 1758
14954          __cil_tmp34 = __cil_tmp33 & 2;
14955#line 1758
14956          if (__cil_tmp34 != 0) {
14957#line 1759
14958            __cil_tmp35 = udev->portnum;
14959#line 1759
14960            port1 = (unsigned int )__cil_tmp35;
14961            {
14962#line 1761
14963            __cil_tmp36 = bus->otg_port;
14964#line 1761
14965            __cil_tmp37 = (unsigned int )__cil_tmp36;
14966#line 1761
14967            if (__cil_tmp37 == port1) {
14968#line 1761
14969              tmp = (char *)"";
14970            } else {
14971#line 1761
14972              tmp = (char *)"non-";
14973            }
14974            }
14975            {
14976#line 1761
14977            __cil_tmp38 = & udev->dev;
14978#line 1761
14979            __cil_tmp39 = (struct device  const  *)__cil_tmp38;
14980#line 1761
14981            _dev_info(__cil_tmp39, "Dual-Role OTG device on %sHNP port\n", tmp);
14982            }
14983            {
14984#line 1767
14985            __cil_tmp40 = bus->otg_port;
14986#line 1767
14987            __cil_tmp41 = (unsigned int )__cil_tmp40;
14988#line 1767
14989            if (__cil_tmp41 == port1) {
14990#line 1768
14991              bus->b_hnp_enable = (unsigned char)1;
14992            } else {
14993
14994            }
14995            }
14996            {
14997#line 1769
14998            __cil_tmp42 = (unsigned char *)bus;
14999#line 1769
15000            __cil_tmp43 = __cil_tmp42 + 27UL;
15001#line 1769
15002            __cil_tmp44 = *__cil_tmp43;
15003#line 1769
15004            __cil_tmp45 = (unsigned int )__cil_tmp44;
15005#line 1769
15006            if (__cil_tmp45 != 0U) {
15007#line 1769
15008              tmp___0 = 3;
15009            } else {
15010#line 1769
15011              tmp___0 = 5;
15012            }
15013            }
15014            {
15015#line 1769
15016            tmp___1 = __create_pipe(udev, 0U);
15017#line 1769
15018            __cil_tmp46 = tmp___1 | 2147483648U;
15019#line 1769
15020            __cil_tmp47 = (__u8 )3;
15021#line 1769
15022            __cil_tmp48 = (__u8 )0;
15023#line 1769
15024            __cil_tmp49 = (__u16 )tmp___0;
15025#line 1769
15026            __cil_tmp50 = (__u16 )0;
15027#line 1769
15028            __cil_tmp51 = (void *)0;
15029#line 1769
15030            __cil_tmp52 = (__u16 )0;
15031#line 1769
15032            err = usb_control_msg(udev, __cil_tmp46, __cil_tmp47, __cil_tmp48, __cil_tmp49,
15033                                  __cil_tmp50, __cil_tmp51, __cil_tmp52, 5000);
15034            }
15035#line 1776
15036            if (err < 0) {
15037              {
15038#line 1780
15039              __cil_tmp53 = & udev->dev;
15040#line 1780
15041              __cil_tmp54 = (struct device  const  *)__cil_tmp53;
15042#line 1780
15043              _dev_info(__cil_tmp54, "can\'t set HNP mode: %d\n", err);
15044#line 1783
15045              bus->b_hnp_enable = (unsigned char)0;
15046              }
15047            } else {
15048
15049            }
15050          } else {
15051
15052          }
15053          }
15054        } else {
15055
15056        }
15057      } else {
15058
15059      }
15060      }
15061    } else {
15062
15063    }
15064    }
15065  } else {
15066
15067  }
15068  }
15069  {
15070#line 1789
15071  tmp___3 = is_targeted(udev);
15072  }
15073#line 1789
15074  if (tmp___3 == 0) {
15075    {
15076#line 1794
15077    __cil_tmp55 = udev->bus;
15078#line 1794
15079    __cil_tmp56 = (unsigned char *)__cil_tmp55;
15080#line 1794
15081    __cil_tmp57 = __cil_tmp56 + 27UL;
15082#line 1794
15083    __cil_tmp58 = *__cil_tmp57;
15084#line 1794
15085    __cil_tmp59 = (unsigned int )__cil_tmp58;
15086#line 1794
15087    if (__cil_tmp59 != 0U) {
15088#line 1794
15089      goto _L;
15090    } else {
15091      {
15092#line 1794
15093      __cil_tmp60 = udev->bus;
15094#line 1794
15095      __cil_tmp61 = (unsigned char *)__cil_tmp60;
15096#line 1794
15097      __cil_tmp62 = __cil_tmp61 + 27UL;
15098#line 1794
15099      __cil_tmp63 = *__cil_tmp62;
15100#line 1794
15101      __cil_tmp64 = (unsigned int )__cil_tmp63;
15102#line 1794
15103      if (__cil_tmp64 != 0U) {
15104        _L: 
15105        {
15106#line 1795
15107        __constr_expr_0.event = 2;
15108#line 1795
15109        err = usb_port_suspend(udev, __constr_expr_0);
15110        }
15111#line 1796
15112        if (err < 0) {
15113          {
15114#line 1797
15115          __cil_tmp65 = & udev->dev;
15116#line 1797
15117          __cil_tmp66 = (struct device  const  *)__cil_tmp65;
15118#line 1797
15119          dev_printk("<7>", __cil_tmp66, "HNP fail, %d\n", err);
15120          }
15121        } else {
15122
15123        }
15124      } else {
15125
15126      }
15127      }
15128    }
15129    }
15130#line 1799
15131    err = -524;
15132#line 1800
15133    goto fail;
15134  } else {
15135
15136  }
15137  fail: ;
15138#line 1804
15139  return (err);
15140}
15141}
15142#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"
15143static int usb_enumerate_device(struct usb_device *udev ) 
15144{ int err ;
15145  struct usb_host_config *__cil_tmp3 ;
15146  unsigned long __cil_tmp4 ;
15147  struct usb_host_config *__cil_tmp5 ;
15148  unsigned long __cil_tmp6 ;
15149  struct device *__cil_tmp7 ;
15150  struct device  const  *__cil_tmp8 ;
15151  unsigned char *__cil_tmp9 ;
15152  unsigned char *__cil_tmp10 ;
15153  unsigned char __cil_tmp11 ;
15154  unsigned int __cil_tmp12 ;
15155  unsigned char *__cil_tmp13 ;
15156  unsigned char *__cil_tmp14 ;
15157  unsigned char __cil_tmp15 ;
15158  unsigned int __cil_tmp16 ;
15159  __u8 __cil_tmp17 ;
15160  int __cil_tmp18 ;
15161  __u8 __cil_tmp19 ;
15162  int __cil_tmp20 ;
15163  __u8 __cil_tmp21 ;
15164  int __cil_tmp22 ;
15165  __u8 __cil_tmp23 ;
15166  int __cil_tmp24 ;
15167  __u8 __cil_tmp25 ;
15168  int __cil_tmp26 ;
15169  __u8 __cil_tmp27 ;
15170  int __cil_tmp28 ;
15171
15172  {
15173  {
15174#line 1824
15175  __cil_tmp3 = (struct usb_host_config *)0;
15176#line 1824
15177  __cil_tmp4 = (unsigned long )__cil_tmp3;
15178#line 1824
15179  __cil_tmp5 = udev->config;
15180#line 1824
15181  __cil_tmp6 = (unsigned long )__cil_tmp5;
15182#line 1824
15183  if (__cil_tmp6 == __cil_tmp4) {
15184    {
15185#line 1825
15186    err = usb_get_configuration(udev);
15187    }
15188#line 1826
15189    if (err < 0) {
15190      {
15191#line 1827
15192      __cil_tmp7 = & udev->dev;
15193#line 1827
15194      __cil_tmp8 = (struct device  const  *)__cil_tmp7;
15195#line 1827
15196      dev_err(__cil_tmp8, "can\'t read configurations, error %d\n", err);
15197      }
15198#line 1829
15199      goto fail;
15200    } else {
15201
15202    }
15203  } else {
15204
15205  }
15206  }
15207  {
15208#line 1832
15209  __cil_tmp9 = (unsigned char *)udev;
15210#line 1832
15211  __cil_tmp10 = __cil_tmp9 + 1556UL;
15212#line 1832
15213  __cil_tmp11 = *__cil_tmp10;
15214#line 1832
15215  __cil_tmp12 = (unsigned int )__cil_tmp11;
15216#line 1832
15217  if (__cil_tmp12 != 0U) {
15218    {
15219#line 1832
15220    __cil_tmp13 = (unsigned char *)udev;
15221#line 1832
15222    __cil_tmp14 = __cil_tmp13 + 1556UL;
15223#line 1832
15224    __cil_tmp15 = *__cil_tmp14;
15225#line 1832
15226    __cil_tmp16 = (unsigned int )__cil_tmp15;
15227#line 1832
15228    if (__cil_tmp16 == 0U) {
15229      {
15230#line 1833
15231      udev->product = kstrdup("n/a (unauthorized)", 208U);
15232#line 1834
15233      udev->manufacturer = kstrdup("n/a (unauthorized)", 208U);
15234#line 1835
15235      udev->serial = kstrdup("n/a (unauthorized)", 208U);
15236      }
15237    } else {
15238      {
15239#line 1839
15240      __cil_tmp17 = udev->descriptor.iProduct;
15241#line 1839
15242      __cil_tmp18 = (int )__cil_tmp17;
15243#line 1839
15244      udev->product = usb_cache_string(udev, __cil_tmp18);
15245#line 1840
15246      __cil_tmp19 = udev->descriptor.iManufacturer;
15247#line 1840
15248      __cil_tmp20 = (int )__cil_tmp19;
15249#line 1840
15250      udev->manufacturer = usb_cache_string(udev, __cil_tmp20);
15251#line 1842
15252      __cil_tmp21 = udev->descriptor.iSerialNumber;
15253#line 1842
15254      __cil_tmp22 = (int )__cil_tmp21;
15255#line 1842
15256      udev->serial = usb_cache_string(udev, __cil_tmp22);
15257      }
15258    }
15259    }
15260  } else {
15261    {
15262#line 1839
15263    __cil_tmp23 = udev->descriptor.iProduct;
15264#line 1839
15265    __cil_tmp24 = (int )__cil_tmp23;
15266#line 1839
15267    udev->product = usb_cache_string(udev, __cil_tmp24);
15268#line 1840
15269    __cil_tmp25 = udev->descriptor.iManufacturer;
15270#line 1840
15271    __cil_tmp26 = (int )__cil_tmp25;
15272#line 1840
15273    udev->manufacturer = usb_cache_string(udev, __cil_tmp26);
15274#line 1842
15275    __cil_tmp27 = udev->descriptor.iSerialNumber;
15276#line 1842
15277    __cil_tmp28 = (int )__cil_tmp27;
15278#line 1842
15279    udev->serial = usb_cache_string(udev, __cil_tmp28);
15280    }
15281  }
15282  }
15283  {
15284#line 1844
15285  err = usb_enumerate_device_otg(udev);
15286  }
15287  fail: ;
15288#line 1846
15289  return (err);
15290}
15291}
15292#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"
15293int usb_new_device(struct usb_device *udev ) 
15294{ int err ;
15295  struct usb_device *__cil_tmp3 ;
15296  unsigned long __cil_tmp4 ;
15297  struct usb_device *__cil_tmp5 ;
15298  unsigned long __cil_tmp6 ;
15299  struct device *__cil_tmp7 ;
15300  bool __cil_tmp8 ;
15301  struct device *__cil_tmp9 ;
15302  struct device *__cil_tmp10 ;
15303  struct device *__cil_tmp11 ;
15304  struct device *__cil_tmp12 ;
15305  struct device *__cil_tmp13 ;
15306  struct device  const  *__cil_tmp14 ;
15307  int __cil_tmp15 ;
15308  struct usb_bus *__cil_tmp16 ;
15309  int __cil_tmp17 ;
15310  int __cil_tmp18 ;
15311  int __cil_tmp19 ;
15312  struct usb_bus *__cil_tmp20 ;
15313  int __cil_tmp21 ;
15314  int __cil_tmp22 ;
15315  int __cil_tmp23 ;
15316  int __cil_tmp24 ;
15317  int __cil_tmp25 ;
15318  int __cil_tmp26 ;
15319  struct usb_bus *__cil_tmp27 ;
15320  int __cil_tmp28 ;
15321  int __cil_tmp29 ;
15322  int __cil_tmp30 ;
15323  int __cil_tmp31 ;
15324  int __cil_tmp32 ;
15325  struct device *__cil_tmp33 ;
15326  struct device *__cil_tmp34 ;
15327  struct device *__cil_tmp35 ;
15328  struct device  const  *__cil_tmp36 ;
15329  struct device *__cil_tmp37 ;
15330  struct usb_host_endpoint *__cil_tmp38 ;
15331  struct device *__cil_tmp39 ;
15332  enum usb_device_state __cil_tmp40 ;
15333  struct device *__cil_tmp41 ;
15334  struct device *__cil_tmp42 ;
15335
15336  {
15337  {
15338#line 1874
15339  __cil_tmp3 = (struct usb_device *)0;
15340#line 1874
15341  __cil_tmp4 = (unsigned long )__cil_tmp3;
15342#line 1874
15343  __cil_tmp5 = udev->parent;
15344#line 1874
15345  __cil_tmp6 = (unsigned long )__cil_tmp5;
15346#line 1874
15347  if (__cil_tmp6 != __cil_tmp4) {
15348    {
15349#line 1879
15350    __cil_tmp7 = & udev->dev;
15351#line 1879
15352    __cil_tmp8 = (bool )0;
15353#line 1879
15354    device_init_wakeup(__cil_tmp7, __cil_tmp8);
15355    }
15356  } else {
15357
15358  }
15359  }
15360  {
15361#line 1883
15362  __cil_tmp9 = & udev->dev;
15363#line 1883
15364  pm_runtime_set_active(__cil_tmp9);
15365#line 1884
15366  __cil_tmp10 = & udev->dev;
15367#line 1884
15368  pm_runtime_get_noresume(__cil_tmp10);
15369#line 1885
15370  __cil_tmp11 = & udev->dev;
15371#line 1885
15372  pm_runtime_use_autosuspend(__cil_tmp11);
15373#line 1886
15374  __cil_tmp12 = & udev->dev;
15375#line 1886
15376  pm_runtime_enable(__cil_tmp12);
15377#line 1891
15378  usb_disable_autosuspend(udev);
15379#line 1893
15380  err = usb_enumerate_device(udev);
15381  }
15382#line 1894
15383  if (err < 0) {
15384#line 1895
15385    goto fail;
15386  } else {
15387
15388  }
15389  {
15390#line 1896
15391  __cil_tmp13 = & udev->dev;
15392#line 1896
15393  __cil_tmp14 = (struct device  const  *)__cil_tmp13;
15394#line 1896
15395  __cil_tmp15 = udev->devnum;
15396#line 1896
15397  __cil_tmp16 = udev->bus;
15398#line 1896
15399  __cil_tmp17 = __cil_tmp16->busnum;
15400#line 1896
15401  __cil_tmp18 = udev->devnum;
15402#line 1896
15403  __cil_tmp19 = __cil_tmp18 + -1;
15404#line 1896
15405  __cil_tmp20 = udev->bus;
15406#line 1896
15407  __cil_tmp21 = __cil_tmp20->busnum;
15408#line 1896
15409  __cil_tmp22 = __cil_tmp21 + -1;
15410#line 1896
15411  __cil_tmp23 = __cil_tmp22 * 128;
15412#line 1896
15413  __cil_tmp24 = __cil_tmp23 + __cil_tmp19;
15414#line 1896
15415  dev_printk("<7>", __cil_tmp14, "udev %d, busnum %d, minor = %d\n", __cil_tmp15,
15416             __cil_tmp17, __cil_tmp24);
15417#line 1900
15418  __cil_tmp25 = udev->devnum;
15419#line 1900
15420  __cil_tmp26 = __cil_tmp25 + -1;
15421#line 1900
15422  __cil_tmp27 = udev->bus;
15423#line 1900
15424  __cil_tmp28 = __cil_tmp27->busnum;
15425#line 1900
15426  __cil_tmp29 = __cil_tmp28 + -1;
15427#line 1900
15428  __cil_tmp30 = __cil_tmp29 * 128;
15429#line 1900
15430  __cil_tmp31 = __cil_tmp30 + __cil_tmp26;
15431#line 1900
15432  __cil_tmp32 = __cil_tmp31 | 198180864;
15433#line 1900
15434  udev->dev.devt = (dev_t )__cil_tmp32;
15435#line 1904
15436  announce_device(udev);
15437#line 1906
15438  __cil_tmp33 = & udev->dev;
15439#line 1906
15440  device_enable_async_suspend(__cil_tmp33);
15441#line 1911
15442  __cil_tmp34 = & udev->dev;
15443#line 1911
15444  err = device_add(__cil_tmp34);
15445  }
15446#line 1912
15447  if (err != 0) {
15448    {
15449#line 1913
15450    __cil_tmp35 = & udev->dev;
15451#line 1913
15452    __cil_tmp36 = (struct device  const  *)__cil_tmp35;
15453#line 1913
15454    dev_err(__cil_tmp36, "can\'t device_add, error %d\n", err);
15455    }
15456#line 1914
15457    goto fail;
15458  } else {
15459
15460  }
15461  {
15462#line 1917
15463  __cil_tmp37 = & udev->dev;
15464#line 1917
15465  __cil_tmp38 = & udev->ep0;
15466#line 1917
15467  usb_create_ep_devs(__cil_tmp37, __cil_tmp38, udev);
15468#line 1918
15469  usb_mark_last_busy(udev);
15470#line 1919
15471  __cil_tmp39 = & udev->dev;
15472#line 1919
15473  pm_runtime_put_sync_autosuspend(__cil_tmp39);
15474  }
15475#line 1920
15476  return (err);
15477  fail: 
15478  {
15479#line 1923
15480  __cil_tmp40 = (enum usb_device_state )0;
15481#line 1923
15482  usb_set_device_state(udev, __cil_tmp40);
15483#line 1924
15484  __cil_tmp41 = & udev->dev;
15485#line 1924
15486  pm_runtime_disable(__cil_tmp41);
15487#line 1925
15488  __cil_tmp42 = & udev->dev;
15489#line 1925
15490  pm_runtime_set_suspended(__cil_tmp42);
15491  }
15492#line 1926
15493  return (err);
15494}
15495}
15496#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"
15497int usb_deauthorize_device(struct usb_device *usb_dev ) 
15498{ struct device *__cil_tmp2 ;
15499  unsigned char *__cil_tmp3 ;
15500  unsigned char *__cil_tmp4 ;
15501  unsigned char __cil_tmp5 ;
15502  unsigned int __cil_tmp6 ;
15503  char *__cil_tmp7 ;
15504  void const   *__cil_tmp8 ;
15505  char *__cil_tmp9 ;
15506  void const   *__cil_tmp10 ;
15507  char *__cil_tmp11 ;
15508  void const   *__cil_tmp12 ;
15509  struct device *__cil_tmp13 ;
15510
15511  {
15512  {
15513#line 1942
15514  __cil_tmp2 = & usb_dev->dev;
15515#line 1942
15516  device_lock(__cil_tmp2);
15517  }
15518  {
15519#line 1943
15520  __cil_tmp3 = (unsigned char *)usb_dev;
15521#line 1943
15522  __cil_tmp4 = __cil_tmp3 + 1556UL;
15523#line 1943
15524  __cil_tmp5 = *__cil_tmp4;
15525#line 1943
15526  __cil_tmp6 = (unsigned int )__cil_tmp5;
15527#line 1943
15528  if (__cil_tmp6 == 0U) {
15529#line 1944
15530    goto out_unauthorized;
15531  } else {
15532
15533  }
15534  }
15535  {
15536#line 1946
15537  usb_dev->authorized = (unsigned char)0;
15538#line 1947
15539  usb_set_configuration(usb_dev, -1);
15540#line 1949
15541  __cil_tmp7 = usb_dev->product;
15542#line 1949
15543  __cil_tmp8 = (void const   *)__cil_tmp7;
15544#line 1949
15545  kfree(__cil_tmp8);
15546#line 1950
15547  usb_dev->product = kstrdup("n/a (unauthorized)", 208U);
15548#line 1951
15549  __cil_tmp9 = usb_dev->manufacturer;
15550#line 1951
15551  __cil_tmp10 = (void const   *)__cil_tmp9;
15552#line 1951
15553  kfree(__cil_tmp10);
15554#line 1952
15555  usb_dev->manufacturer = kstrdup("n/a (unauthorized)", 208U);
15556#line 1953
15557  __cil_tmp11 = usb_dev->serial;
15558#line 1953
15559  __cil_tmp12 = (void const   *)__cil_tmp11;
15560#line 1953
15561  kfree(__cil_tmp12);
15562#line 1954
15563  usb_dev->serial = kstrdup("n/a (unauthorized)", 208U);
15564#line 1956
15565  usb_destroy_configuration(usb_dev);
15566#line 1957
15567  usb_dev->descriptor.bNumConfigurations = (__u8 )0U;
15568  }
15569  out_unauthorized: 
15570  {
15571#line 1960
15572  __cil_tmp13 = & usb_dev->dev;
15573#line 1960
15574  device_unlock(__cil_tmp13);
15575  }
15576#line 1961
15577  return (0);
15578}
15579}
15580#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"
15581int usb_authorize_device(struct usb_device *usb_dev ) 
15582{ int result ;
15583  int c ;
15584  struct device *__cil_tmp4 ;
15585  unsigned char *__cil_tmp5 ;
15586  unsigned char *__cil_tmp6 ;
15587  unsigned char __cil_tmp7 ;
15588  unsigned int __cil_tmp8 ;
15589  struct device *__cil_tmp9 ;
15590  struct device  const  *__cil_tmp10 ;
15591  struct device *__cil_tmp11 ;
15592  struct device  const  *__cil_tmp12 ;
15593  char *__cil_tmp13 ;
15594  void const   *__cil_tmp14 ;
15595  char *__cil_tmp15 ;
15596  void const   *__cil_tmp16 ;
15597  char *__cil_tmp17 ;
15598  void const   *__cil_tmp18 ;
15599  struct device *__cil_tmp19 ;
15600  struct device  const  *__cil_tmp20 ;
15601  struct device *__cil_tmp21 ;
15602  struct device  const  *__cil_tmp22 ;
15603  struct device *__cil_tmp23 ;
15604
15605  {
15606  {
15607#line 1967
15608  result = 0;
15609#line 1969
15610  __cil_tmp4 = & usb_dev->dev;
15611#line 1969
15612  device_lock(__cil_tmp4);
15613  }
15614  {
15615#line 1970
15616  __cil_tmp5 = (unsigned char *)usb_dev;
15617#line 1970
15618  __cil_tmp6 = __cil_tmp5 + 1556UL;
15619#line 1970
15620  __cil_tmp7 = *__cil_tmp6;
15621#line 1970
15622  __cil_tmp8 = (unsigned int )__cil_tmp7;
15623#line 1970
15624  if (__cil_tmp8 != 0U) {
15625#line 1971
15626    goto out_authorized;
15627  } else {
15628
15629  }
15630  }
15631  {
15632#line 1973
15633  result = usb_autoresume_device(usb_dev);
15634  }
15635#line 1974
15636  if (result < 0) {
15637    {
15638#line 1975
15639    __cil_tmp9 = & usb_dev->dev;
15640#line 1975
15641    __cil_tmp10 = (struct device  const  *)__cil_tmp9;
15642#line 1975
15643    dev_err(__cil_tmp10, "can\'t autoresume for authorization: %d\n", result);
15644    }
15645#line 1977
15646    goto error_autoresume;
15647  } else {
15648
15649  }
15650  {
15651#line 1979
15652  result = usb_get_device_descriptor(usb_dev, 18U);
15653  }
15654#line 1980
15655  if (result < 0) {
15656    {
15657#line 1981
15658    __cil_tmp11 = & usb_dev->dev;
15659#line 1981
15660    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
15661#line 1981
15662    dev_err(__cil_tmp12, "can\'t re-read device descriptor for authorization: %d\n",
15663            result);
15664    }
15665#line 1983
15666    goto error_device_descriptor;
15667  } else {
15668
15669  }
15670  {
15671#line 1986
15672  __cil_tmp13 = usb_dev->product;
15673#line 1986
15674  __cil_tmp14 = (void const   *)__cil_tmp13;
15675#line 1986
15676  kfree(__cil_tmp14);
15677#line 1987
15678  usb_dev->product = (char *)0;
15679#line 1988
15680  __cil_tmp15 = usb_dev->manufacturer;
15681#line 1988
15682  __cil_tmp16 = (void const   *)__cil_tmp15;
15683#line 1988
15684  kfree(__cil_tmp16);
15685#line 1989
15686  usb_dev->manufacturer = (char *)0;
15687#line 1990
15688  __cil_tmp17 = usb_dev->serial;
15689#line 1990
15690  __cil_tmp18 = (void const   *)__cil_tmp17;
15691#line 1990
15692  kfree(__cil_tmp18);
15693#line 1991
15694  usb_dev->serial = (char *)0;
15695#line 1993
15696  usb_dev->authorized = (unsigned char)1;
15697#line 1994
15698  result = usb_enumerate_device(usb_dev);
15699  }
15700#line 1995
15701  if (result < 0) {
15702#line 1996
15703    goto error_enumerate;
15704  } else {
15705
15706  }
15707  {
15708#line 2000
15709  c = usb_choose_configuration(usb_dev);
15710  }
15711#line 2001
15712  if (c >= 0) {
15713    {
15714#line 2002
15715    result = usb_set_configuration(usb_dev, c);
15716    }
15717#line 2003
15718    if (result != 0) {
15719      {
15720#line 2004
15721      __cil_tmp19 = & usb_dev->dev;
15722#line 2004
15723      __cil_tmp20 = (struct device  const  *)__cil_tmp19;
15724#line 2004
15725      dev_err(__cil_tmp20, "can\'t set config #%d, error %d\n", c, result);
15726      }
15727    } else {
15728
15729    }
15730  } else {
15731
15732  }
15733  {
15734#line 2010
15735  __cil_tmp21 = & usb_dev->dev;
15736#line 2010
15737  __cil_tmp22 = (struct device  const  *)__cil_tmp21;
15738#line 2010
15739  _dev_info(__cil_tmp22, "authorized to connect\n");
15740  }
15741  error_enumerate: ;
15742  error_device_descriptor: 
15743  {
15744#line 2014
15745  usb_autosuspend_device(usb_dev);
15746  }
15747  error_autoresume: ;
15748  out_authorized: 
15749  {
15750#line 2017
15751  __cil_tmp23 = & usb_dev->dev;
15752#line 2017
15753  device_unlock(__cil_tmp23);
15754  }
15755#line 2018
15756  return (result);
15757}
15758}
15759#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"
15760static unsigned int hub_is_wusb(struct usb_hub *hub ) 
15761{ struct usb_hcd *hcd ;
15762  struct usb_bus  const  *__mptr ;
15763  struct usb_device *__cil_tmp4 ;
15764  unsigned long __cil_tmp5 ;
15765  struct usb_device *__cil_tmp6 ;
15766  struct usb_device *__cil_tmp7 ;
15767  unsigned long __cil_tmp8 ;
15768  struct usb_device *__cil_tmp9 ;
15769  struct usb_bus *__cil_tmp10 ;
15770  unsigned char __cil_tmp11 ;
15771
15772  {
15773  {
15774#line 2026
15775  __cil_tmp4 = (struct usb_device *)0;
15776#line 2026
15777  __cil_tmp5 = (unsigned long )__cil_tmp4;
15778#line 2026
15779  __cil_tmp6 = hub->hdev;
15780#line 2026
15781  __cil_tmp7 = __cil_tmp6->parent;
15782#line 2026
15783  __cil_tmp8 = (unsigned long )__cil_tmp7;
15784#line 2026
15785  if (__cil_tmp8 != __cil_tmp5) {
15786#line 2027
15787    return (0U);
15788  } else {
15789
15790  }
15791  }
15792#line 2028
15793  __cil_tmp9 = hub->hdev;
15794#line 2028
15795  __cil_tmp10 = __cil_tmp9->bus;
15796#line 2028
15797  __mptr = (struct usb_bus  const  *)__cil_tmp10;
15798#line 2028
15799  hcd = (struct usb_hcd *)__mptr;
15800  {
15801#line 2029
15802  __cil_tmp11 = hcd->wireless;
15803#line 2029
15804  return ((unsigned int )__cil_tmp11);
15805  }
15806}
15807}
15808#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"
15809static int hub_port_wait_reset(struct usb_hub *hub , int port1 , struct usb_device *udev ,
15810                               unsigned int delay ) 
15811{ int delay_time ;
15812  int ret ;
15813  u16 portstatus ;
15814  u16 portchange ;
15815  int tmp ;
15816  unsigned int tmp___0 ;
15817  int __cil_tmp11 ;
15818  int __cil_tmp12 ;
15819  int __cil_tmp13 ;
15820  int __cil_tmp14 ;
15821  int __cil_tmp15 ;
15822  int __cil_tmp16 ;
15823  int __cil_tmp17 ;
15824  struct usb_device *__cil_tmp18 ;
15825  int __cil_tmp19 ;
15826  int __cil_tmp20 ;
15827  int __cil_tmp21 ;
15828  int __cil_tmp22 ;
15829  struct device *__cil_tmp23 ;
15830  struct device  const  *__cil_tmp24 ;
15831  unsigned int __cil_tmp25 ;
15832  unsigned int __cil_tmp26 ;
15833
15834  {
15835#line 2051
15836  delay_time = 0;
15837#line 2051
15838  goto ldv_26074;
15839  ldv_26073: 
15840  {
15841#line 2055
15842  msleep(delay);
15843#line 2058
15844  ret = hub_port_status(hub, port1, & portstatus, & portchange);
15845  }
15846#line 2059
15847  if (ret < 0) {
15848#line 2060
15849    return (ret);
15850  } else {
15851
15852  }
15853  {
15854#line 2063
15855  __cil_tmp11 = (int )portstatus;
15856#line 2063
15857  __cil_tmp12 = __cil_tmp11 & 1;
15858#line 2063
15859  if (__cil_tmp12 == 0) {
15860#line 2064
15861    return (-107);
15862  } else {
15863
15864  }
15865  }
15866  {
15867#line 2067
15868  __cil_tmp13 = (int )portchange;
15869#line 2067
15870  if (__cil_tmp13 & 1) {
15871#line 2068
15872    return (-107);
15873  } else {
15874
15875  }
15876  }
15877  {
15878#line 2071
15879  __cil_tmp14 = (int )portstatus;
15880#line 2071
15881  __cil_tmp15 = __cil_tmp14 & 16;
15882#line 2071
15883  if (__cil_tmp15 == 0) {
15884    {
15885#line 2071
15886    __cil_tmp16 = (int )portstatus;
15887#line 2071
15888    __cil_tmp17 = __cil_tmp16 & 2;
15889#line 2071
15890    if (__cil_tmp17 != 0) {
15891      {
15892#line 2073
15893      tmp___0 = hub_is_wusb(hub);
15894      }
15895#line 2073
15896      if (tmp___0 != 0U) {
15897#line 2074
15898        udev->speed = (enum usb_device_speed )4;
15899      } else {
15900        {
15901#line 2075
15902        __cil_tmp18 = hub->hdev;
15903#line 2075
15904        tmp = hub_is_superspeed(__cil_tmp18);
15905        }
15906#line 2075
15907        if (tmp != 0) {
15908#line 2076
15909          udev->speed = (enum usb_device_speed )5;
15910        } else {
15911          {
15912#line 2077
15913          __cil_tmp19 = (int )portstatus;
15914#line 2077
15915          __cil_tmp20 = __cil_tmp19 & 1024;
15916#line 2077
15917          if (__cil_tmp20 != 0) {
15918#line 2078
15919            udev->speed = (enum usb_device_speed )3;
15920          } else {
15921            {
15922#line 2079
15923            __cil_tmp21 = (int )portstatus;
15924#line 2079
15925            __cil_tmp22 = __cil_tmp21 & 512;
15926#line 2079
15927            if (__cil_tmp22 != 0) {
15928#line 2080
15929              udev->speed = (enum usb_device_speed )1;
15930            } else {
15931#line 2082
15932              udev->speed = (enum usb_device_speed )2;
15933            }
15934            }
15935          }
15936          }
15937        }
15938      }
15939#line 2083
15940      return (0);
15941    } else {
15942
15943    }
15944    }
15945  } else {
15946
15947  }
15948  }
15949#line 2087
15950  if (delay_time > 19) {
15951#line 2088
15952    delay = 200U;
15953  } else {
15954
15955  }
15956  {
15957#line 2090
15958  __cil_tmp23 = hub->intfdev;
15959#line 2090
15960  __cil_tmp24 = (struct device  const  *)__cil_tmp23;
15961#line 2090
15962  dev_printk("<7>", __cil_tmp24, "port %d not reset yet, waiting %dms\n", port1, delay);
15963#line 2053
15964  __cil_tmp25 = (unsigned int )delay_time;
15965#line 2053
15966  __cil_tmp26 = __cil_tmp25 + delay;
15967#line 2053
15968  delay_time = (int )__cil_tmp26;
15969  }
15970  ldv_26074: ;
15971#line 2051
15972  if (delay_time <= 499) {
15973#line 2053
15974    goto ldv_26073;
15975  } else {
15976#line 2055
15977    goto ldv_26075;
15978  }
15979  ldv_26075: ;
15980#line 2095
15981  return (-16);
15982}
15983}
15984#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"
15985static int hub_port_reset(struct usb_hub *hub , int port1 , struct usb_device *udev ,
15986                          unsigned int delay ) 
15987{ int i ;
15988  int status ;
15989  struct usb_hcd *hcd ;
15990  int tmp ;
15991  struct usb_bus *__cil_tmp9 ;
15992  struct usb_device *__cil_tmp10 ;
15993  struct device *__cil_tmp11 ;
15994  struct device  const  *__cil_tmp12 ;
15995  struct device *__cil_tmp13 ;
15996  struct device  const  *__cil_tmp14 ;
15997  int (*__cil_tmp15)(struct usb_hcd * , struct usb_device * ) ;
15998  unsigned long __cil_tmp16 ;
15999  struct hc_driver  const  *__cil_tmp17 ;
16000  int (*__cil_tmp18)(struct usb_hcd * , struct usb_device * ) ;
16001  unsigned long __cil_tmp19 ;
16002  struct hc_driver  const  *__cil_tmp20 ;
16003  int (*__cil_tmp21)(struct usb_hcd * , struct usb_device * ) ;
16004  struct device *__cil_tmp22 ;
16005  struct device  const  *__cil_tmp23 ;
16006  struct usb_device *__cil_tmp24 ;
16007  enum usb_device_state __cil_tmp25 ;
16008  struct device *__cil_tmp26 ;
16009  struct device  const  *__cil_tmp27 ;
16010  struct device *__cil_tmp28 ;
16011  struct device  const  *__cil_tmp29 ;
16012
16013  {
16014  {
16015#line 2104
16016  __cil_tmp9 = udev->bus;
16017#line 2104
16018  hcd = bus_to_hcd(__cil_tmp9);
16019#line 2108
16020  down_read(& ehci_cf_port_reset_rwsem);
16021#line 2111
16022  i = 0;
16023  }
16024#line 2111
16025  goto ldv_26091;
16026  ldv_26090: 
16027  {
16028#line 2112
16029  __cil_tmp10 = hub->hdev;
16030#line 2112
16031  status = set_port_feature(__cil_tmp10, port1, 4);
16032  }
16033#line 2114
16034  if (status != 0) {
16035    {
16036#line 2115
16037    __cil_tmp11 = hub->intfdev;
16038#line 2115
16039    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
16040#line 2115
16041    dev_err(__cil_tmp12, "cannot reset port %d (err = %d)\n", port1, status);
16042    }
16043  } else {
16044    {
16045#line 2119
16046    status = hub_port_wait_reset(hub, port1, udev, delay);
16047    }
16048#line 2120
16049    if (status != 0) {
16050#line 2120
16051      if (status != -107) {
16052        {
16053#line 2121
16054        __cil_tmp13 = hub->intfdev;
16055#line 2121
16056        __cil_tmp14 = (struct device  const  *)__cil_tmp13;
16057#line 2121
16058        dev_printk("<7>", __cil_tmp14, "port_wait_reset: err = %d\n", status);
16059        }
16060      } else {
16061
16062      }
16063    } else {
16064
16065    }
16066  }
16067#line 2128
16068  if (status == 0) {
16069#line 2128
16070    goto case_0;
16071  } else
16072#line 2141
16073  if (status == -107) {
16074#line 2141
16075    goto case_neg_107;
16076  } else
16077#line 2142
16078  if (status == -19) {
16079#line 2142
16080    goto case_neg_19;
16081  } else
16082#line 2127
16083  if (0) {
16084    case_0: 
16085    {
16086#line 2130
16087    msleep(50U);
16088#line 2131
16089    update_devnum(udev, 0);
16090    }
16091    {
16092#line 2132
16093    __cil_tmp15 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
16094#line 2132
16095    __cil_tmp16 = (unsigned long )__cil_tmp15;
16096#line 2132
16097    __cil_tmp17 = hcd->driver;
16098#line 2132
16099    __cil_tmp18 = __cil_tmp17->reset_device;
16100#line 2132
16101    __cil_tmp19 = (unsigned long )__cil_tmp18;
16102#line 2132
16103    if (__cil_tmp19 != __cil_tmp16) {
16104      {
16105#line 2133
16106      __cil_tmp20 = hcd->driver;
16107#line 2133
16108      __cil_tmp21 = __cil_tmp20->reset_device;
16109#line 2133
16110      status = (*__cil_tmp21)(hcd, udev);
16111      }
16112#line 2134
16113      if (status < 0) {
16114        {
16115#line 2135
16116        __cil_tmp22 = & udev->dev;
16117#line 2135
16118        __cil_tmp23 = (struct device  const  *)__cil_tmp22;
16119#line 2135
16120        dev_err(__cil_tmp23, "Cannot reset HCD device state\n");
16121        }
16122#line 2137
16123        goto ldv_26086;
16124      } else {
16125
16126      }
16127    } else {
16128
16129    }
16130    }
16131    case_neg_107: ;
16132    case_neg_19: 
16133    {
16134#line 2143
16135    __cil_tmp24 = hub->hdev;
16136#line 2143
16137    clear_port_feature(__cil_tmp24, port1, 20);
16138    }
16139#line 2146
16140    if (status != 0) {
16141#line 2146
16142      tmp = 0;
16143    } else {
16144#line 2146
16145      tmp = 5;
16146    }
16147    {
16148#line 2146
16149    __cil_tmp25 = (enum usb_device_state )tmp;
16150#line 2146
16151    usb_set_device_state(udev, __cil_tmp25);
16152    }
16153#line 2149
16154    goto done;
16155  } else {
16156
16157  }
16158  ldv_26086: 
16159  {
16160#line 2152
16161  __cil_tmp26 = hub->intfdev;
16162#line 2152
16163  __cil_tmp27 = (struct device  const  *)__cil_tmp26;
16164#line 2152
16165  dev_printk("<7>", __cil_tmp27, "port %d not enabled, trying reset again...\n", port1);
16166#line 2155
16167  delay = 200U;
16168#line 2111
16169  i = i + 1;
16170  }
16171  ldv_26091: ;
16172#line 2111
16173  if (i <= 4) {
16174#line 2112
16175    goto ldv_26090;
16176  } else {
16177#line 2114
16178    goto ldv_26092;
16179  }
16180  ldv_26092: 
16181  {
16182#line 2158
16183  __cil_tmp28 = hub->intfdev;
16184#line 2158
16185  __cil_tmp29 = (struct device  const  *)__cil_tmp28;
16186#line 2158
16187  dev_err(__cil_tmp29, "Cannot enable port %i.  Maybe the USB cable is bad?\n", port1);
16188  }
16189  done: 
16190  {
16191#line 2163
16192  up_read(& ehci_cf_port_reset_rwsem);
16193  }
16194#line 2164
16195  return (status);
16196}
16197}
16198#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"
16199static int hub_port_warm_reset(struct usb_hub *hub , int port ) 
16200{ int ret ;
16201  u16 portstatus ;
16202  u16 portchange ;
16203  int tmp ;
16204  struct usb_device *__cil_tmp7 ;
16205  struct device *__cil_tmp8 ;
16206  struct device  const  *__cil_tmp9 ;
16207  struct usb_device *__cil_tmp10 ;
16208  struct device *__cil_tmp11 ;
16209  struct device  const  *__cil_tmp12 ;
16210  int __cil_tmp13 ;
16211  int __cil_tmp14 ;
16212  struct usb_device *__cil_tmp15 ;
16213  int __cil_tmp16 ;
16214  int __cil_tmp17 ;
16215  struct usb_device *__cil_tmp18 ;
16216  int __cil_tmp19 ;
16217  int __cil_tmp20 ;
16218  struct usb_device *__cil_tmp21 ;
16219
16220  {
16221  {
16222#line 2173
16223  __cil_tmp7 = hub->hdev;
16224#line 2173
16225  tmp = hub_is_superspeed(__cil_tmp7);
16226  }
16227#line 2173
16228  if (tmp == 0) {
16229    {
16230#line 2174
16231    __cil_tmp8 = hub->intfdev;
16232#line 2174
16233    __cil_tmp9 = (struct device  const  *)__cil_tmp8;
16234#line 2174
16235    dev_err(__cil_tmp9, "only USB3 hub support warm reset\n");
16236    }
16237#line 2175
16238    return (-22);
16239  } else {
16240
16241  }
16242  {
16243#line 2179
16244  __cil_tmp10 = hub->hdev;
16245#line 2179
16246  ret = set_port_feature(__cil_tmp10, port, 28);
16247  }
16248#line 2181
16249  if (ret != 0) {
16250    {
16251#line 2182
16252    __cil_tmp11 = hub->intfdev;
16253#line 2182
16254    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
16255#line 2182
16256    dev_err(__cil_tmp12, "cannot warm reset port %d\n", port);
16257    }
16258#line 2183
16259    return (ret);
16260  } else {
16261
16262  }
16263  {
16264#line 2186
16265  msleep(20U);
16266#line 2187
16267  ret = hub_port_status(hub, port, & portstatus, & portchange);
16268  }
16269  {
16270#line 2189
16271  __cil_tmp13 = (int )portchange;
16272#line 2189
16273  __cil_tmp14 = __cil_tmp13 & 16;
16274#line 2189
16275  if (__cil_tmp14 != 0) {
16276    {
16277#line 2190
16278    __cil_tmp15 = hub->hdev;
16279#line 2190
16280    clear_port_feature(__cil_tmp15, port, 20);
16281    }
16282  } else {
16283
16284  }
16285  }
16286  {
16287#line 2192
16288  __cil_tmp16 = (int )portchange;
16289#line 2192
16290  __cil_tmp17 = __cil_tmp16 & 32;
16291#line 2192
16292  if (__cil_tmp17 != 0) {
16293    {
16294#line 2193
16295    __cil_tmp18 = hub->hdev;
16296#line 2193
16297    clear_port_feature(__cil_tmp18, port, 29);
16298    }
16299  } else {
16300
16301  }
16302  }
16303  {
16304#line 2196
16305  __cil_tmp19 = (int )portchange;
16306#line 2196
16307  __cil_tmp20 = __cil_tmp19 & 64;
16308#line 2196
16309  if (__cil_tmp20 != 0) {
16310    {
16311#line 2197
16312    __cil_tmp21 = hub->hdev;
16313#line 2197
16314    clear_port_feature(__cil_tmp21, port, 25);
16315    }
16316  } else {
16317
16318  }
16319  }
16320#line 2200
16321  return (ret);
16322}
16323}
16324#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"
16325static int port_is_power_on(struct usb_hub *hub , unsigned int portstatus ) 
16326{ int ret ;
16327  int tmp ;
16328  struct usb_device *__cil_tmp5 ;
16329  unsigned int __cil_tmp6 ;
16330  unsigned int __cil_tmp7 ;
16331
16332  {
16333  {
16334#line 2206
16335  ret = 0;
16336#line 2208
16337  __cil_tmp5 = hub->hdev;
16338#line 2208
16339  tmp = hub_is_superspeed(__cil_tmp5);
16340  }
16341#line 2208
16342  if (tmp != 0) {
16343    {
16344#line 2209
16345    __cil_tmp6 = portstatus & 512U;
16346#line 2209
16347    if (__cil_tmp6 != 0U) {
16348#line 2210
16349      ret = 1;
16350    } else {
16351      {
16352#line 2212
16353      __cil_tmp7 = portstatus & 256U;
16354#line 2212
16355      if (__cil_tmp7 != 0U) {
16356#line 2213
16357        ret = 1;
16358      } else {
16359
16360      }
16361      }
16362    }
16363    }
16364  } else {
16365
16366  }
16367#line 2216
16368  return (ret);
16369}
16370}
16371#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"
16372static int port_is_suspended(struct usb_hub *hub , unsigned int portstatus ) 
16373{ int ret ;
16374  int tmp ;
16375  struct usb_device *__cil_tmp5 ;
16376  unsigned int __cil_tmp6 ;
16377  unsigned int __cil_tmp7 ;
16378
16379  {
16380  {
16381#line 2224
16382  ret = 0;
16383#line 2226
16384  __cil_tmp5 = hub->hdev;
16385#line 2226
16386  tmp = hub_is_superspeed(__cil_tmp5);
16387  }
16388#line 2226
16389  if (tmp != 0) {
16390    {
16391#line 2227
16392    __cil_tmp6 = portstatus & 480U;
16393#line 2227
16394    if (__cil_tmp6 == 96U) {
16395#line 2229
16396      ret = 1;
16397    } else {
16398      {
16399#line 2231
16400      __cil_tmp7 = portstatus & 4U;
16401#line 2231
16402      if (__cil_tmp7 != 0U) {
16403#line 2232
16404        ret = 1;
16405      } else {
16406
16407      }
16408      }
16409    }
16410    }
16411  } else {
16412
16413  }
16414#line 2235
16415  return (ret);
16416}
16417}
16418#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"
16419static int check_port_resume_type(struct usb_device *udev , struct usb_hub *hub ,
16420                                  int port1 , int status , unsigned int portchange ,
16421                                  unsigned int portstatus ) 
16422{ int tmp ;
16423  int tmp___0 ;
16424  unsigned int __cil_tmp9 ;
16425  unsigned int __cil_tmp10 ;
16426  unsigned char *__cil_tmp11 ;
16427  unsigned char *__cil_tmp12 ;
16428  unsigned char __cil_tmp13 ;
16429  unsigned int __cil_tmp14 ;
16430  unsigned char *__cil_tmp15 ;
16431  unsigned char *__cil_tmp16 ;
16432  unsigned char __cil_tmp17 ;
16433  unsigned int __cil_tmp18 ;
16434  struct device *__cil_tmp19 ;
16435  struct device  const  *__cil_tmp20 ;
16436  unsigned char *__cil_tmp21 ;
16437  unsigned char *__cil_tmp22 ;
16438  unsigned char __cil_tmp23 ;
16439  unsigned int __cil_tmp24 ;
16440  int __cil_tmp25 ;
16441  struct usb_device *__cil_tmp26 ;
16442  unsigned int __cil_tmp27 ;
16443  struct usb_device *__cil_tmp28 ;
16444
16445  {
16446#line 2246
16447  if (status != 0) {
16448#line 2246
16449    goto _L;
16450  } else {
16451    {
16452#line 2246
16453    tmp = port_is_suspended(hub, portstatus);
16454    }
16455#line 2246
16456    if (tmp != 0) {
16457#line 2246
16458      goto _L;
16459    } else {
16460      {
16461#line 2246
16462      tmp___0 = port_is_power_on(hub, portstatus);
16463      }
16464#line 2246
16465      if (tmp___0 == 0) {
16466#line 2246
16467        goto _L;
16468      } else {
16469        {
16470#line 2246
16471        __cil_tmp9 = portstatus & 1U;
16472#line 2246
16473        if (__cil_tmp9 == 0U) {
16474          _L: 
16475#line 2249
16476          if (status >= 0) {
16477#line 2250
16478            status = -19;
16479          } else {
16480            {
16481#line 2256
16482            __cil_tmp10 = portstatus & 2U;
16483#line 2256
16484            if (__cil_tmp10 == 0U) {
16485              {
16486#line 2256
16487              __cil_tmp11 = (unsigned char *)udev;
16488#line 2256
16489              __cil_tmp12 = __cil_tmp11 + 1904UL;
16490#line 2256
16491              __cil_tmp13 = *__cil_tmp12;
16492#line 2256
16493              __cil_tmp14 = (unsigned int )__cil_tmp13;
16494#line 2256
16495              if (__cil_tmp14 == 0U) {
16496                {
16497#line 2257
16498                __cil_tmp15 = (unsigned char *)udev;
16499#line 2257
16500                __cil_tmp16 = __cil_tmp15 + 1556UL;
16501#line 2257
16502                __cil_tmp17 = *__cil_tmp16;
16503#line 2257
16504                __cil_tmp18 = (unsigned int )__cil_tmp17;
16505#line 2257
16506                if (__cil_tmp18 != 0U) {
16507#line 2258
16508                  udev->reset_resume = (unsigned char)1;
16509                } else {
16510#line 2260
16511                  status = -19;
16512                }
16513                }
16514              } else {
16515
16516              }
16517              }
16518            } else {
16519
16520            }
16521            }
16522          }
16523        } else {
16524
16525        }
16526        }
16527      }
16528    }
16529  }
16530#line 2263
16531  if (status != 0) {
16532    {
16533#line 2264
16534    __cil_tmp19 = hub->intfdev;
16535#line 2264
16536    __cil_tmp20 = (struct device  const  *)__cil_tmp19;
16537#line 2264
16538    dev_printk("<7>", __cil_tmp20, "port %d status %04x.%04x after resume, %d\n",
16539               port1, portchange, portstatus, status);
16540    }
16541  } else {
16542    {
16543#line 2267
16544    __cil_tmp21 = (unsigned char *)udev;
16545#line 2267
16546    __cil_tmp22 = __cil_tmp21 + 1904UL;
16547#line 2267
16548    __cil_tmp23 = *__cil_tmp22;
16549#line 2267
16550    __cil_tmp24 = (unsigned int )__cil_tmp23;
16551#line 2267
16552    if (__cil_tmp24 != 0U) {
16553      {
16554#line 2270
16555      __cil_tmp25 = (int )portchange;
16556#line 2270
16557      if (__cil_tmp25 & 1) {
16558        {
16559#line 2271
16560        __cil_tmp26 = hub->hdev;
16561#line 2271
16562        clear_port_feature(__cil_tmp26, port1, 16);
16563        }
16564      } else {
16565
16566      }
16567      }
16568      {
16569#line 2273
16570      __cil_tmp27 = portchange & 2U;
16571#line 2273
16572      if (__cil_tmp27 != 0U) {
16573        {
16574#line 2274
16575        __cil_tmp28 = hub->hdev;
16576#line 2274
16577        clear_port_feature(__cil_tmp28, port1, 17);
16578        }
16579      } else {
16580
16581      }
16582      }
16583    } else {
16584
16585    }
16586    }
16587  }
16588#line 2278
16589  return (status);
16590}
16591}
16592#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"
16593int usb_port_suspend(struct usb_device *udev , pm_message_t msg ) 
16594{ struct usb_hub *hub ;
16595  struct usb_hub *tmp ;
16596  int port1 ;
16597  int status ;
16598  unsigned int tmp___0 ;
16599  int tmp___1 ;
16600  unsigned int tmp___2 ;
16601  char *tmp___3 ;
16602  struct usb_device *__cil_tmp11 ;
16603  u8 __cil_tmp12 ;
16604  unsigned char *__cil_tmp13 ;
16605  unsigned char *__cil_tmp14 ;
16606  unsigned char __cil_tmp15 ;
16607  unsigned int __cil_tmp16 ;
16608  unsigned int __cil_tmp17 ;
16609  __u8 __cil_tmp18 ;
16610  __u8 __cil_tmp19 ;
16611  __u16 __cil_tmp20 ;
16612  __u16 __cil_tmp21 ;
16613  void *__cil_tmp22 ;
16614  __u16 __cil_tmp23 ;
16615  struct device *__cil_tmp24 ;
16616  struct device  const  *__cil_tmp25 ;
16617  int __cil_tmp26 ;
16618  struct usb_device *__cil_tmp27 ;
16619  struct usb_device *__cil_tmp28 ;
16620  int __cil_tmp29 ;
16621  struct usb_device *__cil_tmp30 ;
16622  struct device *__cil_tmp31 ;
16623  struct device  const  *__cil_tmp32 ;
16624  unsigned char *__cil_tmp33 ;
16625  unsigned char *__cil_tmp34 ;
16626  unsigned char __cil_tmp35 ;
16627  unsigned int __cil_tmp36 ;
16628  unsigned int __cil_tmp37 ;
16629  __u8 __cil_tmp38 ;
16630  __u8 __cil_tmp39 ;
16631  __u16 __cil_tmp40 ;
16632  __u16 __cil_tmp41 ;
16633  void *__cil_tmp42 ;
16634  __u16 __cil_tmp43 ;
16635  int __cil_tmp44 ;
16636  int __cil_tmp45 ;
16637  struct device *__cil_tmp46 ;
16638  struct device  const  *__cil_tmp47 ;
16639  enum usb_device_state __cil_tmp48 ;
16640  struct usb_device *__cil_tmp49 ;
16641
16642  {
16643  {
16644#line 2331
16645  __cil_tmp11 = udev->parent;
16646#line 2331
16647  tmp = hdev_to_hub(__cil_tmp11);
16648#line 2331
16649  hub = tmp;
16650#line 2332
16651  __cil_tmp12 = udev->portnum;
16652#line 2332
16653  port1 = (int )__cil_tmp12;
16654  }
16655  {
16656#line 2343
16657  __cil_tmp13 = (unsigned char *)udev;
16658#line 2343
16659  __cil_tmp14 = __cil_tmp13 + 1904UL;
16660#line 2343
16661  __cil_tmp15 = *__cil_tmp14;
16662#line 2343
16663  __cil_tmp16 = (unsigned int )__cil_tmp15;
16664#line 2343
16665  if (__cil_tmp16 != 0U) {
16666    {
16667#line 2344
16668    tmp___0 = __create_pipe(udev, 0U);
16669#line 2344
16670    __cil_tmp17 = tmp___0 | 2147483648U;
16671#line 2344
16672    __cil_tmp18 = (__u8 )3;
16673#line 2344
16674    __cil_tmp19 = (__u8 )0;
16675#line 2344
16676    __cil_tmp20 = (__u16 )1;
16677#line 2344
16678    __cil_tmp21 = (__u16 )0;
16679#line 2344
16680    __cil_tmp22 = (void *)0;
16681#line 2344
16682    __cil_tmp23 = (__u16 )0;
16683#line 2344
16684    status = usb_control_msg(udev, __cil_tmp17, __cil_tmp18, __cil_tmp19, __cil_tmp20,
16685                             __cil_tmp21, __cil_tmp22, __cil_tmp23, 5000);
16686    }
16687#line 2349
16688    if (status != 0) {
16689      {
16690#line 2350
16691      __cil_tmp24 = & udev->dev;
16692#line 2350
16693      __cil_tmp25 = (struct device  const  *)__cil_tmp24;
16694#line 2350
16695      dev_printk("<7>", __cil_tmp25, "won\'t remote wakeup, status %d\n", status);
16696      }
16697      {
16698#line 2353
16699      __cil_tmp26 = msg.event & 1024;
16700#line 2353
16701      if (__cil_tmp26 != 0) {
16702#line 2354
16703        return (status);
16704      } else {
16705
16706      }
16707      }
16708    } else {
16709
16710    }
16711  } else {
16712
16713  }
16714  }
16715  {
16716#line 2359
16717  __cil_tmp27 = hub->hdev;
16718#line 2359
16719  tmp___1 = hub_is_superspeed(__cil_tmp27);
16720  }
16721#line 2359
16722  if (tmp___1 != 0) {
16723    {
16724#line 2360
16725    __cil_tmp28 = hub->hdev;
16726#line 2360
16727    __cil_tmp29 = port1 | 768;
16728#line 2360
16729    status = set_port_feature(__cil_tmp28, __cil_tmp29, 5);
16730    }
16731  } else {
16732    {
16733#line 2364
16734    __cil_tmp30 = hub->hdev;
16735#line 2364
16736    status = set_port_feature(__cil_tmp30, port1, 2);
16737    }
16738  }
16739#line 2366
16740  if (status != 0) {
16741    {
16742#line 2367
16743    __cil_tmp31 = hub->intfdev;
16744#line 2367
16745    __cil_tmp32 = (struct device  const  *)__cil_tmp31;
16746#line 2367
16747    dev_printk("<7>", __cil_tmp32, "can\'t suspend port %d, status %d\n", port1, status);
16748    }
16749    {
16750#line 2370
16751    __cil_tmp33 = (unsigned char *)udev;
16752#line 2370
16753    __cil_tmp34 = __cil_tmp33 + 1904UL;
16754#line 2370
16755    __cil_tmp35 = *__cil_tmp34;
16756#line 2370
16757    __cil_tmp36 = (unsigned int )__cil_tmp35;
16758#line 2370
16759    if (__cil_tmp36 != 0U) {
16760      {
16761#line 2371
16762      tmp___2 = __create_pipe(udev, 0U);
16763#line 2371
16764      __cil_tmp37 = tmp___2 | 2147483648U;
16765#line 2371
16766      __cil_tmp38 = (__u8 )1;
16767#line 2371
16768      __cil_tmp39 = (__u8 )0;
16769#line 2371
16770      __cil_tmp40 = (__u16 )1;
16771#line 2371
16772      __cil_tmp41 = (__u16 )0;
16773#line 2371
16774      __cil_tmp42 = (void *)0;
16775#line 2371
16776      __cil_tmp43 = (__u16 )0;
16777#line 2371
16778      usb_control_msg(udev, __cil_tmp37, __cil_tmp38, __cil_tmp39, __cil_tmp40, __cil_tmp41,
16779                      __cil_tmp42, __cil_tmp43, 5000);
16780      }
16781    } else {
16782
16783    }
16784    }
16785    {
16786#line 2378
16787    __cil_tmp44 = msg.event & 1024;
16788#line 2378
16789    if (__cil_tmp44 == 0) {
16790#line 2379
16791      status = 0;
16792    } else {
16793
16794    }
16795    }
16796  } else {
16797    {
16798#line 2382
16799    __cil_tmp45 = msg.event & 1024;
16800#line 2382
16801    if (__cil_tmp45 != 0) {
16802#line 2382
16803      tmp___3 = (char *)"auto-";
16804    } else {
16805#line 2382
16806      tmp___3 = (char *)"";
16807    }
16808    }
16809    {
16810#line 2382
16811    __cil_tmp46 = & udev->dev;
16812#line 2382
16813    __cil_tmp47 = (struct device  const  *)__cil_tmp46;
16814#line 2382
16815    dev_printk("<7>", __cil_tmp47, "usb %ssuspend\n", tmp___3);
16816#line 2384
16817    __cil_tmp48 = (enum usb_device_state )8;
16818#line 2384
16819    usb_set_device_state(udev, __cil_tmp48);
16820#line 2385
16821    msleep(10U);
16822    }
16823  }
16824  {
16825#line 2387
16826  __cil_tmp49 = hub->hdev;
16827#line 2387
16828  usb_mark_last_busy(__cil_tmp49);
16829  }
16830#line 2388
16831  return (status);
16832}
16833}
16834#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"
16835static int finish_port_resume(struct usb_device *udev ) 
16836{ int status ;
16837  u16 devstatus ;
16838  char *tmp ;
16839  int tmp___0 ;
16840  unsigned int tmp___1 ;
16841  unsigned char *__cil_tmp7 ;
16842  unsigned char *__cil_tmp8 ;
16843  unsigned char __cil_tmp9 ;
16844  unsigned int __cil_tmp10 ;
16845  struct device *__cil_tmp11 ;
16846  struct device  const  *__cil_tmp12 ;
16847  struct usb_host_config *__cil_tmp13 ;
16848  unsigned long __cil_tmp14 ;
16849  struct usb_host_config *__cil_tmp15 ;
16850  unsigned long __cil_tmp16 ;
16851  enum usb_device_state __cil_tmp17 ;
16852  unsigned char *__cil_tmp18 ;
16853  unsigned char *__cil_tmp19 ;
16854  unsigned char __cil_tmp20 ;
16855  unsigned int __cil_tmp21 ;
16856  void *__cil_tmp22 ;
16857  unsigned char *__cil_tmp23 ;
16858  unsigned char *__cil_tmp24 ;
16859  unsigned char __cil_tmp25 ;
16860  unsigned int __cil_tmp26 ;
16861  unsigned char *__cil_tmp27 ;
16862  unsigned char *__cil_tmp28 ;
16863  unsigned char __cil_tmp29 ;
16864  unsigned int __cil_tmp30 ;
16865  struct device *__cil_tmp31 ;
16866  struct device  const  *__cil_tmp32 ;
16867  struct device *__cil_tmp33 ;
16868  struct device  const  *__cil_tmp34 ;
16869  struct usb_host_config *__cil_tmp35 ;
16870  unsigned long __cil_tmp36 ;
16871  struct usb_host_config *__cil_tmp37 ;
16872  unsigned long __cil_tmp38 ;
16873  int __cil_tmp39 ;
16874  int __cil_tmp40 ;
16875  unsigned int __cil_tmp41 ;
16876  __u8 __cil_tmp42 ;
16877  __u8 __cil_tmp43 ;
16878  __u16 __cil_tmp44 ;
16879  __u16 __cil_tmp45 ;
16880  void *__cil_tmp46 ;
16881  __u16 __cil_tmp47 ;
16882  struct device *__cil_tmp48 ;
16883  struct device  const  *__cil_tmp49 ;
16884
16885  {
16886#line 2404
16887  status = 0;
16888  {
16889#line 2408
16890  __cil_tmp7 = (unsigned char *)udev;
16891#line 2408
16892  __cil_tmp8 = __cil_tmp7 + 1904UL;
16893#line 2408
16894  __cil_tmp9 = *__cil_tmp8;
16895#line 2408
16896  __cil_tmp10 = (unsigned int )__cil_tmp9;
16897#line 2408
16898  if (__cil_tmp10 != 0U) {
16899#line 2408
16900    tmp = (char *)"finish reset-resume";
16901  } else {
16902#line 2408
16903    tmp = (char *)"finish resume";
16904  }
16905  }
16906  {
16907#line 2408
16908  __cil_tmp11 = & udev->dev;
16909#line 2408
16910  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
16911#line 2408
16912  dev_printk("<7>", __cil_tmp12, "%s\n", tmp);
16913  }
16914  {
16915#line 2416
16916  __cil_tmp13 = (struct usb_host_config *)0;
16917#line 2416
16918  __cil_tmp14 = (unsigned long )__cil_tmp13;
16919#line 2416
16920  __cil_tmp15 = udev->actconfig;
16921#line 2416
16922  __cil_tmp16 = (unsigned long )__cil_tmp15;
16923#line 2416
16924  if (__cil_tmp16 != __cil_tmp14) {
16925#line 2416
16926    tmp___0 = 7;
16927  } else {
16928#line 2416
16929    tmp___0 = 6;
16930  }
16931  }
16932  {
16933#line 2416
16934  __cil_tmp17 = (enum usb_device_state )tmp___0;
16935#line 2416
16936  usb_set_device_state(udev, __cil_tmp17);
16937  }
16938  {
16939#line 2425
16940  __cil_tmp18 = (unsigned char *)udev;
16941#line 2425
16942  __cil_tmp19 = __cil_tmp18 + 1904UL;
16943#line 2425
16944  __cil_tmp20 = *__cil_tmp19;
16945#line 2425
16946  __cil_tmp21 = (unsigned int )__cil_tmp20;
16947#line 2425
16948  if (__cil_tmp21 != 0U) {
16949    retry_reset_resume: 
16950    {
16951#line 2427
16952    status = usb_reset_and_verify_device(udev);
16953    }
16954  } else {
16955
16956  }
16957  }
16958#line 2433
16959  if (status == 0) {
16960    {
16961#line 2434
16962    devstatus = (u16 )0U;
16963#line 2435
16964    __cil_tmp22 = (void *)(& devstatus);
16965#line 2435
16966    status = usb_get_status(udev, 0, 0, __cil_tmp22);
16967    }
16968#line 2436
16969    if (status >= 0) {
16970#line 2437
16971      if (status > 0) {
16972#line 2437
16973        status = 0;
16974      } else {
16975#line 2437
16976        status = -19;
16977      }
16978    } else {
16979
16980    }
16981#line 2440
16982    if (status != 0) {
16983      {
16984#line 2440
16985      __cil_tmp23 = (unsigned char *)udev;
16986#line 2440
16987      __cil_tmp24 = __cil_tmp23 + 1904UL;
16988#line 2440
16989      __cil_tmp25 = *__cil_tmp24;
16990#line 2440
16991      __cil_tmp26 = (unsigned int )__cil_tmp25;
16992#line 2440
16993      if (__cil_tmp26 == 0U) {
16994        {
16995#line 2440
16996        __cil_tmp27 = (unsigned char *)udev;
16997#line 2440
16998        __cil_tmp28 = __cil_tmp27 + 1556UL;
16999#line 2440
17000        __cil_tmp29 = *__cil_tmp28;
17001#line 2440
17002        __cil_tmp30 = (unsigned int )__cil_tmp29;
17003#line 2440
17004        if (__cil_tmp30 != 0U) {
17005          {
17006#line 2441
17007          __cil_tmp31 = & udev->dev;
17008#line 2441
17009          __cil_tmp32 = (struct device  const  *)__cil_tmp31;
17010#line 2441
17011          dev_printk("<7>", __cil_tmp32, "retry with reset-resume\n");
17012#line 2442
17013          udev->reset_resume = (unsigned char)1;
17014          }
17015#line 2443
17016          goto retry_reset_resume;
17017        } else {
17018
17019        }
17020        }
17021      } else {
17022
17023      }
17024      }
17025    } else {
17026
17027    }
17028  } else {
17029
17030  }
17031#line 2447
17032  if (status != 0) {
17033    {
17034#line 2448
17035    __cil_tmp33 = & udev->dev;
17036#line 2448
17037    __cil_tmp34 = (struct device  const  *)__cil_tmp33;
17038#line 2448
17039    dev_printk("<7>", __cil_tmp34, "gone after usb resume? status %d\n", status);
17040    }
17041  } else {
17042    {
17043#line 2450
17044    __cil_tmp35 = (struct usb_host_config *)0;
17045#line 2450
17046    __cil_tmp36 = (unsigned long )__cil_tmp35;
17047#line 2450
17048    __cil_tmp37 = udev->actconfig;
17049#line 2450
17050    __cil_tmp38 = (unsigned long )__cil_tmp37;
17051#line 2450
17052    if (__cil_tmp38 != __cil_tmp36) {
17053      {
17054#line 2452
17055      __cil_tmp39 = (int )devstatus;
17056#line 2452
17057      __cil_tmp40 = __cil_tmp39 & 2;
17058#line 2452
17059      if (__cil_tmp40 != 0) {
17060        {
17061#line 2453
17062        tmp___1 = __create_pipe(udev, 0U);
17063#line 2453
17064        __cil_tmp41 = tmp___1 | 2147483648U;
17065#line 2453
17066        __cil_tmp42 = (__u8 )1;
17067#line 2453
17068        __cil_tmp43 = (__u8 )0;
17069#line 2453
17070        __cil_tmp44 = (__u16 )1;
17071#line 2453
17072        __cil_tmp45 = (__u16 )0;
17073#line 2453
17074        __cil_tmp46 = (void *)0;
17075#line 2453
17076        __cil_tmp47 = (__u16 )0;
17077#line 2453
17078        status = usb_control_msg(udev, __cil_tmp41, __cil_tmp42, __cil_tmp43, __cil_tmp44,
17079                                 __cil_tmp45, __cil_tmp46, __cil_tmp47, 5000);
17080        }
17081#line 2460
17082        if (status != 0) {
17083          {
17084#line 2461
17085          __cil_tmp48 = & udev->dev;
17086#line 2461
17087          __cil_tmp49 = (struct device  const  *)__cil_tmp48;
17088#line 2461
17089          dev_printk("<7>", __cil_tmp49, "disable remote wakeup, status %d\n", status);
17090          }
17091        } else {
17092
17093        }
17094      } else {
17095
17096      }
17097      }
17098#line 2465
17099      status = 0;
17100    } else {
17101
17102    }
17103    }
17104  }
17105#line 2467
17106  return (status);
17107}
17108}
17109#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"
17110int usb_port_resume(struct usb_device *udev , pm_message_t msg ) 
17111{ struct usb_hub *hub ;
17112  struct usb_hub *tmp ;
17113  int port1 ;
17114  int status ;
17115  u16 portchange ;
17116  u16 portstatus ;
17117  int tmp___0 ;
17118  int tmp___1 ;
17119  char *tmp___2 ;
17120  int tmp___3 ;
17121  struct usb_device *__cil_tmp13 ;
17122  u8 __cil_tmp14 ;
17123  unsigned int __cil_tmp15 ;
17124  unsigned int __cil_tmp16 ;
17125  unsigned long (*__cil_tmp17)[1U] ;
17126  unsigned long volatile   *__cil_tmp18 ;
17127  struct usb_device *__cil_tmp19 ;
17128  struct usb_device *__cil_tmp20 ;
17129  struct usb_device *__cil_tmp21 ;
17130  struct device *__cil_tmp22 ;
17131  struct device  const  *__cil_tmp23 ;
17132  int __cil_tmp24 ;
17133  struct device *__cil_tmp25 ;
17134  struct device  const  *__cil_tmp26 ;
17135  struct usb_device *__cil_tmp27 ;
17136  int __cil_tmp28 ;
17137  int __cil_tmp29 ;
17138  struct usb_device *__cil_tmp30 ;
17139  int __cil_tmp31 ;
17140  int __cil_tmp32 ;
17141  struct usb_device *__cil_tmp33 ;
17142  unsigned long (*__cil_tmp34)[1U] ;
17143  unsigned long volatile   *__cil_tmp35 ;
17144  unsigned int __cil_tmp36 ;
17145  unsigned int __cil_tmp37 ;
17146  struct device *__cil_tmp38 ;
17147  struct device  const  *__cil_tmp39 ;
17148
17149  {
17150  {
17151#line 2506
17152  __cil_tmp13 = udev->parent;
17153#line 2506
17154  tmp = hdev_to_hub(__cil_tmp13);
17155#line 2506
17156  hub = tmp;
17157#line 2507
17158  __cil_tmp14 = udev->portnum;
17159#line 2507
17160  port1 = (int )__cil_tmp14;
17161#line 2512
17162  status = hub_port_status(hub, port1, & portstatus, & portchange);
17163  }
17164#line 2513
17165  if (status == 0) {
17166    {
17167#line 2513
17168    __cil_tmp15 = (unsigned int )portstatus;
17169#line 2513
17170    tmp___0 = port_is_suspended(hub, __cil_tmp15);
17171    }
17172#line 2513
17173    if (tmp___0 == 0) {
17174#line 2514
17175      goto SuspendCleared;
17176    } else {
17177
17178    }
17179  } else {
17180
17181  }
17182  {
17183#line 2518
17184  __cil_tmp16 = (unsigned int )port1;
17185#line 2518
17186  __cil_tmp17 = & hub->busy_bits;
17187#line 2518
17188  __cil_tmp18 = (unsigned long volatile   *)__cil_tmp17;
17189#line 2518
17190  set_bit(__cil_tmp16, __cil_tmp18);
17191#line 2521
17192  __cil_tmp19 = hub->hdev;
17193#line 2521
17194  tmp___1 = hub_is_superspeed(__cil_tmp19);
17195  }
17196#line 2521
17197  if (tmp___1 != 0) {
17198    {
17199#line 2522
17200    __cil_tmp20 = hub->hdev;
17201#line 2522
17202    status = set_port_feature(__cil_tmp20, port1, 5);
17203    }
17204  } else {
17205    {
17206#line 2526
17207    __cil_tmp21 = hub->hdev;
17208#line 2526
17209    status = clear_port_feature(__cil_tmp21, port1, 2);
17210    }
17211  }
17212#line 2528
17213  if (status != 0) {
17214    {
17215#line 2529
17216    __cil_tmp22 = hub->intfdev;
17217#line 2529
17218    __cil_tmp23 = (struct device  const  *)__cil_tmp22;
17219#line 2529
17220    dev_printk("<7>", __cil_tmp23, "can\'t resume port %d, status %d\n", port1, status);
17221    }
17222  } else {
17223    {
17224#line 2533
17225    __cil_tmp24 = msg.event & 1024;
17226#line 2533
17227    if (__cil_tmp24 != 0) {
17228#line 2533
17229      tmp___2 = (char *)"auto-";
17230    } else {
17231#line 2533
17232      tmp___2 = (char *)"";
17233    }
17234    }
17235    {
17236#line 2533
17237    __cil_tmp25 = & udev->dev;
17238#line 2533
17239    __cil_tmp26 = (struct device  const  *)__cil_tmp25;
17240#line 2533
17241    dev_printk("<7>", __cil_tmp26, "usb %sresume\n", tmp___2);
17242#line 2535
17243    msleep(25U);
17244#line 2541
17245    status = hub_port_status(hub, port1, & portstatus, & portchange);
17246#line 2544
17247    msleep(10U);
17248    }
17249  }
17250  SuspendCleared: ;
17251#line 2548
17252  if (status == 0) {
17253    {
17254#line 2549
17255    __cil_tmp27 = hub->hdev;
17256#line 2549
17257    tmp___3 = hub_is_superspeed(__cil_tmp27);
17258    }
17259#line 2549
17260    if (tmp___3 != 0) {
17261      {
17262#line 2550
17263      __cil_tmp28 = (int )portchange;
17264#line 2550
17265      __cil_tmp29 = __cil_tmp28 & 64;
17266#line 2550
17267      if (__cil_tmp29 != 0) {
17268        {
17269#line 2551
17270        __cil_tmp30 = hub->hdev;
17271#line 2551
17272        clear_port_feature(__cil_tmp30, port1, 25);
17273        }
17274      } else {
17275        {
17276#line 2554
17277        __cil_tmp31 = (int )portchange;
17278#line 2554
17279        __cil_tmp32 = __cil_tmp31 & 4;
17280#line 2554
17281        if (__cil_tmp32 != 0) {
17282          {
17283#line 2555
17284          __cil_tmp33 = hub->hdev;
17285#line 2555
17286          clear_port_feature(__cil_tmp33, port1, 18);
17287          }
17288        } else {
17289
17290        }
17291        }
17292      }
17293      }
17294    } else {
17295
17296    }
17297  } else {
17298
17299  }
17300  {
17301#line 2560
17302  __cil_tmp34 = & hub->busy_bits;
17303#line 2560
17304  __cil_tmp35 = (unsigned long volatile   *)__cil_tmp34;
17305#line 2560
17306  clear_bit(port1, __cil_tmp35);
17307#line 2562
17308  __cil_tmp36 = (unsigned int )portchange;
17309#line 2562
17310  __cil_tmp37 = (unsigned int )portstatus;
17311#line 2562
17312  status = check_port_resume_type(udev, hub, port1, status, __cil_tmp36, __cil_tmp37);
17313  }
17314#line 2564
17315  if (status == 0) {
17316    {
17317#line 2565
17318    status = finish_port_resume(udev);
17319    }
17320  } else {
17321
17322  }
17323#line 2566
17324  if (status < 0) {
17325    {
17326#line 2567
17327    __cil_tmp38 = & udev->dev;
17328#line 2567
17329    __cil_tmp39 = (struct device  const  *)__cil_tmp38;
17330#line 2567
17331    dev_printk("<7>", __cil_tmp39, "can\'t resume, status %d\n", status);
17332#line 2568
17333    hub_port_logical_disconnect(hub, port1);
17334    }
17335  } else {
17336
17337  }
17338#line 2570
17339  return (status);
17340}
17341}
17342#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"
17343int usb_remote_wakeup(struct usb_device *udev ) 
17344{ int status ;
17345  enum usb_device_state __cil_tmp3 ;
17346  unsigned int __cil_tmp4 ;
17347  struct device *__cil_tmp5 ;
17348  struct device  const  *__cil_tmp6 ;
17349  char *__cil_tmp7 ;
17350
17351  {
17352#line 2576
17353  status = 0;
17354  {
17355#line 2578
17356  __cil_tmp3 = udev->state;
17357#line 2578
17358  __cil_tmp4 = (unsigned int )__cil_tmp3;
17359#line 2578
17360  if (__cil_tmp4 == 8U) {
17361    {
17362#line 2579
17363    __cil_tmp5 = & udev->dev;
17364#line 2579
17365    __cil_tmp6 = (struct device  const  *)__cil_tmp5;
17366#line 2579
17367    __cil_tmp7 = (char *)"wakeup-";
17368#line 2579
17369    dev_printk("<7>", __cil_tmp6, "usb %sresume\n", __cil_tmp7);
17370#line 2580
17371    status = usb_autoresume_device(udev);
17372    }
17373#line 2581
17374    if (status == 0) {
17375      {
17376#line 2583
17377      usb_autosuspend_device(udev);
17378      }
17379    } else {
17380
17381    }
17382  } else {
17383
17384  }
17385  }
17386#line 2586
17387  return (status);
17388}
17389}
17390#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"
17391static int hub_suspend(struct usb_interface *intf , pm_message_t msg ) 
17392{ struct usb_hub *hub ;
17393  void *tmp ;
17394  struct usb_device *hdev ;
17395  unsigned int port1 ;
17396  struct usb_device *udev ;
17397  struct usb_device *__cil_tmp8 ;
17398  unsigned long __cil_tmp9 ;
17399  unsigned long __cil_tmp10 ;
17400  unsigned char *__cil_tmp11 ;
17401  unsigned char *__cil_tmp12 ;
17402  unsigned char __cil_tmp13 ;
17403  unsigned int __cil_tmp14 ;
17404  struct device *__cil_tmp15 ;
17405  struct device  const  *__cil_tmp16 ;
17406  int __cil_tmp17 ;
17407  int __cil_tmp18 ;
17408  unsigned int __cil_tmp19 ;
17409  struct device *__cil_tmp20 ;
17410  struct device  const  *__cil_tmp21 ;
17411  enum hub_quiescing_type __cil_tmp22 ;
17412
17413  {
17414  {
17415#line 2625
17416  tmp = usb_get_intfdata(intf);
17417#line 2625
17418  hub = (struct usb_hub *)tmp;
17419#line 2626
17420  hdev = hub->hdev;
17421#line 2630
17422  port1 = 1U;
17423  }
17424#line 2630
17425  goto ldv_26154;
17426  ldv_26153: 
17427#line 2633
17428  udev = hdev->children[port1 - 1U];
17429  {
17430#line 2634
17431  __cil_tmp8 = (struct usb_device *)0;
17432#line 2634
17433  __cil_tmp9 = (unsigned long )__cil_tmp8;
17434#line 2634
17435  __cil_tmp10 = (unsigned long )udev;
17436#line 2634
17437  if (__cil_tmp10 != __cil_tmp9) {
17438    {
17439#line 2634
17440    __cil_tmp11 = (unsigned char *)udev;
17441#line 2634
17442    __cil_tmp12 = __cil_tmp11 + 1556UL;
17443#line 2634
17444    __cil_tmp13 = *__cil_tmp12;
17445#line 2634
17446    __cil_tmp14 = (unsigned int )__cil_tmp13;
17447#line 2634
17448    if (__cil_tmp14 != 0U) {
17449      {
17450#line 2635
17451      __cil_tmp15 = & intf->dev;
17452#line 2635
17453      __cil_tmp16 = (struct device  const  *)__cil_tmp15;
17454#line 2635
17455      dev_warn(__cil_tmp16, "port %d nyet suspended\n", port1);
17456      }
17457      {
17458#line 2636
17459      __cil_tmp17 = msg.event & 1024;
17460#line 2636
17461      if (__cil_tmp17 != 0) {
17462#line 2637
17463        return (-16);
17464      } else {
17465
17466      }
17467      }
17468    } else {
17469
17470    }
17471    }
17472  } else {
17473
17474  }
17475  }
17476#line 2630
17477  port1 = port1 + 1U;
17478  ldv_26154: ;
17479  {
17480#line 2630
17481  __cil_tmp18 = hdev->maxchild;
17482#line 2630
17483  __cil_tmp19 = (unsigned int )__cil_tmp18;
17484#line 2630
17485  if (__cil_tmp19 >= port1) {
17486#line 2631
17487    goto ldv_26153;
17488  } else {
17489#line 2633
17490    goto ldv_26155;
17491  }
17492  }
17493  ldv_26155: 
17494  {
17495#line 2641
17496  __cil_tmp20 = & intf->dev;
17497#line 2641
17498  __cil_tmp21 = (struct device  const  *)__cil_tmp20;
17499#line 2641
17500  dev_printk("<7>", __cil_tmp21, "%s\n", "hub_suspend");
17501#line 2644
17502  __cil_tmp22 = (enum hub_quiescing_type )2;
17503#line 2644
17504  hub_quiesce(hub, __cil_tmp22);
17505  }
17506#line 2645
17507  return (0);
17508}
17509}
17510#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"
17511static int hub_resume(struct usb_interface *intf ) 
17512{ struct usb_hub *hub ;
17513  void *tmp ;
17514  struct device *__cil_tmp4 ;
17515  struct device  const  *__cil_tmp5 ;
17516  enum hub_activation_type __cil_tmp6 ;
17517
17518  {
17519  {
17520#line 2650
17521  tmp = usb_get_intfdata(intf);
17522#line 2650
17523  hub = (struct usb_hub *)tmp;
17524#line 2652
17525  __cil_tmp4 = & intf->dev;
17526#line 2652
17527  __cil_tmp5 = (struct device  const  *)__cil_tmp4;
17528#line 2652
17529  dev_printk("<7>", __cil_tmp5, "%s\n", "hub_resume");
17530#line 2653
17531  __cil_tmp6 = (enum hub_activation_type )4;
17532#line 2653
17533  hub_activate(hub, __cil_tmp6);
17534  }
17535#line 2654
17536  return (0);
17537}
17538}
17539#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"
17540static int hub_reset_resume(struct usb_interface *intf ) 
17541{ struct usb_hub *hub ;
17542  void *tmp ;
17543  struct device *__cil_tmp4 ;
17544  struct device  const  *__cil_tmp5 ;
17545  enum hub_activation_type __cil_tmp6 ;
17546
17547  {
17548  {
17549#line 2659
17550  tmp = usb_get_intfdata(intf);
17551#line 2659
17552  hub = (struct usb_hub *)tmp;
17553#line 2661
17554  __cil_tmp4 = & intf->dev;
17555#line 2661
17556  __cil_tmp5 = (struct device  const  *)__cil_tmp4;
17557#line 2661
17558  dev_printk("<7>", __cil_tmp5, "%s\n", "hub_reset_resume");
17559#line 2662
17560  __cil_tmp6 = (enum hub_activation_type )5;
17561#line 2662
17562  hub_activate(hub, __cil_tmp6);
17563  }
17564#line 2663
17565  return (0);
17566}
17567}
17568#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"
17569void usb_root_hub_lost_power(struct usb_device *rhdev ) 
17570{ struct device *__cil_tmp2 ;
17571  struct device  const  *__cil_tmp3 ;
17572
17573  {
17574  {
17575#line 2679
17576  __cil_tmp2 = & rhdev->dev;
17577#line 2679
17578  __cil_tmp3 = (struct device  const  *)__cil_tmp2;
17579#line 2679
17580  dev_warn(__cil_tmp3, "root hub lost power or was reset\n");
17581#line 2680
17582  rhdev->reset_resume = (unsigned char)1;
17583  }
17584#line 2681
17585  return;
17586}
17587}
17588#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"
17589static int hub_port_debounce(struct usb_hub *hub , int port1 ) 
17590{ int ret ;
17591  int total_time ;
17592  int stable_time ;
17593  u16 portchange ;
17594  u16 portstatus ;
17595  unsigned int connection ;
17596  int __cil_tmp9 ;
17597  int __cil_tmp10 ;
17598  unsigned int __cil_tmp11 ;
17599  unsigned int __cil_tmp12 ;
17600  unsigned int __cil_tmp13 ;
17601  unsigned int __cil_tmp14 ;
17602  int __cil_tmp15 ;
17603  struct usb_device *__cil_tmp16 ;
17604  struct device *__cil_tmp17 ;
17605  struct device  const  *__cil_tmp18 ;
17606  int __cil_tmp19 ;
17607
17608  {
17609#line 2710
17610  stable_time = 0;
17611#line 2712
17612  connection = 65535U;
17613#line 2714
17614  total_time = 0;
17615  ldv_26187: 
17616  {
17617#line 2715
17618  ret = hub_port_status(hub, port1, & portstatus, & portchange);
17619  }
17620#line 2716
17621  if (ret < 0) {
17622#line 2717
17623    return (ret);
17624  } else {
17625
17626  }
17627  {
17628#line 2719
17629  __cil_tmp9 = (int )portchange;
17630#line 2719
17631  __cil_tmp10 = __cil_tmp9 & 1;
17632#line 2719
17633  if (__cil_tmp10 == 0) {
17634    {
17635#line 2719
17636    __cil_tmp11 = (unsigned int )portstatus;
17637#line 2719
17638    __cil_tmp12 = __cil_tmp11 & 1U;
17639#line 2719
17640    if (__cil_tmp12 == connection) {
17641#line 2721
17642      stable_time = stable_time + 25;
17643#line 2722
17644      if (stable_time > 99) {
17645#line 2723
17646        goto ldv_26186;
17647      } else {
17648
17649      }
17650    } else {
17651#line 2725
17652      stable_time = 0;
17653#line 2726
17654      __cil_tmp13 = (unsigned int )portstatus;
17655#line 2726
17656      connection = __cil_tmp13 & 1U;
17657    }
17658    }
17659  } else {
17660#line 2725
17661    stable_time = 0;
17662#line 2726
17663    __cil_tmp14 = (unsigned int )portstatus;
17664#line 2726
17665    connection = __cil_tmp14 & 1U;
17666  }
17667  }
17668  {
17669#line 2729
17670  __cil_tmp15 = (int )portchange;
17671#line 2729
17672  if (__cil_tmp15 & 1) {
17673    {
17674#line 2730
17675    __cil_tmp16 = hub->hdev;
17676#line 2730
17677    clear_port_feature(__cil_tmp16, port1, 16);
17678    }
17679  } else {
17680
17681  }
17682  }
17683#line 2734
17684  if (total_time > 1499) {
17685#line 2735
17686    goto ldv_26186;
17687  } else {
17688
17689  }
17690  {
17691#line 2736
17692  msleep(25U);
17693#line 2714
17694  total_time = total_time + 25;
17695  }
17696#line 2737
17697  goto ldv_26187;
17698  ldv_26186: 
17699  {
17700#line 2739
17701  __cil_tmp17 = hub->intfdev;
17702#line 2739
17703  __cil_tmp18 = (struct device  const  *)__cil_tmp17;
17704#line 2739
17705  __cil_tmp19 = (int )portstatus;
17706#line 2739
17707  dev_printk("<7>", __cil_tmp18, "debounce: port %d: total %dms stable %dms status 0x%x\n",
17708             port1, total_time, stable_time, __cil_tmp19);
17709  }
17710#line 2743
17711  if (stable_time <= 99) {
17712#line 2744
17713    return (-110);
17714  } else {
17715
17716  }
17717#line 2745
17718  return ((int )portstatus);
17719}
17720}
17721#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"
17722void usb_ep0_reinit(struct usb_device *udev ) 
17723{ bool __cil_tmp2 ;
17724  bool __cil_tmp3 ;
17725  struct usb_host_endpoint *__cil_tmp4 ;
17726  bool __cil_tmp5 ;
17727
17728  {
17729  {
17730#line 2750
17731  __cil_tmp2 = (bool )1;
17732#line 2750
17733  usb_disable_endpoint(udev, 128U, __cil_tmp2);
17734#line 2751
17735  __cil_tmp3 = (bool )1;
17736#line 2751
17737  usb_disable_endpoint(udev, 0U, __cil_tmp3);
17738#line 2752
17739  __cil_tmp4 = & udev->ep0;
17740#line 2752
17741  __cil_tmp5 = (bool )1;
17742#line 2752
17743  usb_enable_endpoint(udev, __cil_tmp4, __cil_tmp5);
17744  }
17745#line 2753
17746  return;
17747}
17748}
17749#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"
17750static int hub_set_address(struct usb_device *udev , int devnum ) 
17751{ int retval ;
17752  struct usb_hcd *hcd ;
17753  struct usb_hcd *tmp ;
17754  struct usb_bus *__cil_tmp6 ;
17755  int (*__cil_tmp7)(struct usb_hcd * , struct usb_device * ) ;
17756  unsigned long __cil_tmp8 ;
17757  struct hc_driver  const  *__cil_tmp9 ;
17758  int (*__cil_tmp10)(struct usb_hcd * , struct usb_device * ) ;
17759  unsigned long __cil_tmp11 ;
17760  enum usb_device_state __cil_tmp12 ;
17761  unsigned int __cil_tmp13 ;
17762  enum usb_device_state __cil_tmp14 ;
17763  unsigned int __cil_tmp15 ;
17764  int (*__cil_tmp16)(struct usb_hcd * , struct usb_device * ) ;
17765  unsigned long __cil_tmp17 ;
17766  struct hc_driver  const  *__cil_tmp18 ;
17767  int (*__cil_tmp19)(struct usb_hcd * , struct usb_device * ) ;
17768  unsigned long __cil_tmp20 ;
17769  struct hc_driver  const  *__cil_tmp21 ;
17770  int (*__cil_tmp22)(struct usb_hcd * , struct usb_device * ) ;
17771  __u8 __cil_tmp23 ;
17772  __u8 __cil_tmp24 ;
17773  __u16 __cil_tmp25 ;
17774  int __cil_tmp26 ;
17775  __u16 __cil_tmp27 ;
17776  __u16 __cil_tmp28 ;
17777  void *__cil_tmp29 ;
17778  __u16 __cil_tmp30 ;
17779  enum usb_device_state __cil_tmp31 ;
17780
17781  {
17782  {
17783#line 2762
17784  __cil_tmp6 = udev->bus;
17785#line 2762
17786  tmp = bus_to_hcd(__cil_tmp6);
17787#line 2762
17788  hcd = tmp;
17789  }
17790  {
17791#line 2768
17792  __cil_tmp7 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
17793#line 2768
17794  __cil_tmp8 = (unsigned long )__cil_tmp7;
17795#line 2768
17796  __cil_tmp9 = hcd->driver;
17797#line 2768
17798  __cil_tmp10 = __cil_tmp9->address_device;
17799#line 2768
17800  __cil_tmp11 = (unsigned long )__cil_tmp10;
17801#line 2768
17802  if (__cil_tmp11 == __cil_tmp8) {
17803#line 2768
17804    if (devnum <= 1) {
17805#line 2769
17806      return (-22);
17807    } else {
17808
17809    }
17810  } else {
17811
17812  }
17813  }
17814  {
17815#line 2770
17816  __cil_tmp12 = udev->state;
17817#line 2770
17818  __cil_tmp13 = (unsigned int )__cil_tmp12;
17819#line 2770
17820  if (__cil_tmp13 == 6U) {
17821#line 2771
17822    return (0);
17823  } else {
17824
17825  }
17826  }
17827  {
17828#line 2772
17829  __cil_tmp14 = udev->state;
17830#line 2772
17831  __cil_tmp15 = (unsigned int )__cil_tmp14;
17832#line 2772
17833  if (__cil_tmp15 != 5U) {
17834#line 2773
17835    return (-22);
17836  } else {
17837
17838  }
17839  }
17840  {
17841#line 2774
17842  __cil_tmp16 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
17843#line 2774
17844  __cil_tmp17 = (unsigned long )__cil_tmp16;
17845#line 2774
17846  __cil_tmp18 = hcd->driver;
17847#line 2774
17848  __cil_tmp19 = __cil_tmp18->address_device;
17849#line 2774
17850  __cil_tmp20 = (unsigned long )__cil_tmp19;
17851#line 2774
17852  if (__cil_tmp20 != __cil_tmp17) {
17853    {
17854#line 2775
17855    __cil_tmp21 = hcd->driver;
17856#line 2775
17857    __cil_tmp22 = __cil_tmp21->address_device;
17858#line 2775
17859    retval = (*__cil_tmp22)(hcd, udev);
17860    }
17861  } else {
17862    {
17863#line 2777
17864    __cil_tmp23 = (__u8 )5;
17865#line 2777
17866    __cil_tmp24 = (__u8 )0;
17867#line 2777
17868    __cil_tmp25 = (__u16 )devnum;
17869#line 2777
17870    __cil_tmp26 = (int )__cil_tmp25;
17871#line 2777
17872    __cil_tmp27 = (__u16 )__cil_tmp26;
17873#line 2777
17874    __cil_tmp28 = (__u16 )0;
17875#line 2777
17876    __cil_tmp29 = (void *)0;
17877#line 2777
17878    __cil_tmp30 = (__u16 )0;
17879#line 2777
17880    retval = usb_control_msg(udev, 2147483648U, __cil_tmp23, __cil_tmp24, __cil_tmp27,
17881                             __cil_tmp28, __cil_tmp29, __cil_tmp30, 5000);
17882    }
17883  }
17884  }
17885#line 2780
17886  if (retval == 0) {
17887    {
17888#line 2781
17889    update_devnum(udev, devnum);
17890#line 2783
17891    __cil_tmp31 = (enum usb_device_state )6;
17892#line 2783
17893    usb_set_device_state(udev, __cil_tmp31);
17894#line 2784
17895    usb_ep0_reinit(udev);
17896    }
17897  } else {
17898
17899  }
17900#line 2786
17901  return (retval);
17902}
17903}
17904#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"
17905static int hub_port_init(struct usb_hub *hub , struct usb_device *udev , int port1 ,
17906                         int retry_counter ) 
17907{ struct mutex usb_address0_mutex ;
17908  struct usb_device *hdev ;
17909  struct usb_hcd *hcd ;
17910  struct usb_hcd *tmp ;
17911  int i ;
17912  int j ;
17913  int retval ;
17914  unsigned int delay ;
17915  enum usb_device_speed oldspeed ;
17916  char *speed ;
17917  char *type ;
17918  int devnum ;
17919  char *tmp___0 ;
17920  struct usb_device_descriptor *buf ;
17921  int r ;
17922  void *tmp___1 ;
17923  char *tmp___2 ;
17924  struct usb_bus *__cil_tmp22 ;
17925  struct usb_device *__cil_tmp23 ;
17926  unsigned long __cil_tmp24 ;
17927  struct usb_device *__cil_tmp25 ;
17928  unsigned long __cil_tmp26 ;
17929  struct usb_bus *__cil_tmp27 ;
17930  u8 __cil_tmp28 ;
17931  int __cil_tmp29 ;
17932  struct usb_bus *__cil_tmp30 ;
17933  unsigned int __cil_tmp31 ;
17934  unsigned int __cil_tmp32 ;
17935  unsigned int __cil_tmp33 ;
17936  enum usb_device_speed __cil_tmp34 ;
17937  unsigned int __cil_tmp35 ;
17938  struct device *__cil_tmp36 ;
17939  struct device  const  *__cil_tmp37 ;
17940  enum usb_device_speed __cil_tmp38 ;
17941  unsigned int __cil_tmp39 ;
17942  int __cil_tmp40 ;
17943  enum usb_device_speed __cil_tmp41 ;
17944  unsigned int __cil_tmp42 ;
17945  int __cil_tmp43 ;
17946  enum usb_device_speed __cil_tmp44 ;
17947  unsigned int __cil_tmp45 ;
17948  int __cil_tmp46 ;
17949  enum usb_device_speed __cil_tmp47 ;
17950  unsigned int __cil_tmp48 ;
17951  int __cil_tmp49 ;
17952  enum usb_device_speed __cil_tmp50 ;
17953  unsigned int __cil_tmp51 ;
17954  int __cil_tmp52 ;
17955  enum usb_device_speed __cil_tmp53 ;
17956  unsigned int __cil_tmp54 ;
17957  int __cil_tmp55 ;
17958  enum usb_device_speed __cil_tmp56 ;
17959  unsigned int __cil_tmp57 ;
17960  int __cil_tmp58 ;
17961  enum usb_device_speed __cil_tmp59 ;
17962  unsigned int __cil_tmp60 ;
17963  int __cil_tmp61 ;
17964  enum usb_device_speed __cil_tmp62 ;
17965  unsigned int __cil_tmp63 ;
17966  int __cil_tmp64 ;
17967  enum usb_device_speed __cil_tmp65 ;
17968  unsigned int __cil_tmp66 ;
17969  int __cil_tmp67 ;
17970  enum usb_device_speed __cil_tmp68 ;
17971  unsigned int __cil_tmp69 ;
17972  struct usb_host_config *__cil_tmp70 ;
17973  unsigned long __cil_tmp71 ;
17974  struct usb_host_config *__cil_tmp72 ;
17975  unsigned long __cil_tmp73 ;
17976  struct device *__cil_tmp74 ;
17977  struct device  const  *__cil_tmp75 ;
17978  struct usb_bus *__cil_tmp76 ;
17979  struct device *__cil_tmp77 ;
17980  struct device_driver *__cil_tmp78 ;
17981  char const   *__cil_tmp79 ;
17982  struct usb_tt *__cil_tmp80 ;
17983  unsigned long __cil_tmp81 ;
17984  struct usb_tt *__cil_tmp82 ;
17985  unsigned long __cil_tmp83 ;
17986  enum usb_device_speed __cil_tmp84 ;
17987  unsigned int __cil_tmp85 ;
17988  enum usb_device_speed __cil_tmp86 ;
17989  unsigned int __cil_tmp87 ;
17990  struct usb_device *__cil_tmp88 ;
17991  unsigned long __cil_tmp89 ;
17992  struct usb_device *__cil_tmp90 ;
17993  unsigned long __cil_tmp91 ;
17994  struct device *__cil_tmp92 ;
17995  struct device  const  *__cil_tmp93 ;
17996  int __cil_tmp94 ;
17997  struct hc_driver  const  *__cil_tmp95 ;
17998  int __cil_tmp96 ;
17999  int __cil_tmp97 ;
18000  int __cil_tmp98 ;
18001  struct usb_device_descriptor *__cil_tmp99 ;
18002  unsigned long __cil_tmp100 ;
18003  unsigned long __cil_tmp101 ;
18004  __u8 __cil_tmp102 ;
18005  __u8 __cil_tmp103 ;
18006  __u16 __cil_tmp104 ;
18007  __u16 __cil_tmp105 ;
18008  void *__cil_tmp106 ;
18009  __u16 __cil_tmp107 ;
18010  __u8 __cil_tmp108 ;
18011  int __cil_tmp109 ;
18012  __u8 __cil_tmp110 ;
18013  int __cil_tmp111 ;
18014  __u8 __cil_tmp112 ;
18015  int __cil_tmp113 ;
18016  __u8 __cil_tmp114 ;
18017  int __cil_tmp115 ;
18018  __u8 __cil_tmp116 ;
18019  int __cil_tmp117 ;
18020  __u8 __cil_tmp118 ;
18021  unsigned int __cil_tmp119 ;
18022  void const   *__cil_tmp120 ;
18023  unsigned int __cil_tmp121 ;
18024  enum usb_device_speed __cil_tmp122 ;
18025  unsigned int __cil_tmp123 ;
18026  struct device *__cil_tmp124 ;
18027  struct device  const  *__cil_tmp125 ;
18028  struct device *__cil_tmp126 ;
18029  struct device  const  *__cil_tmp127 ;
18030  unsigned char *__cil_tmp128 ;
18031  unsigned char *__cil_tmp129 ;
18032  unsigned char __cil_tmp130 ;
18033  unsigned int __cil_tmp131 ;
18034  struct device *__cil_tmp132 ;
18035  struct device  const  *__cil_tmp133 ;
18036  enum usb_device_speed __cil_tmp134 ;
18037  unsigned int __cil_tmp135 ;
18038  struct usb_host_config *__cil_tmp136 ;
18039  unsigned long __cil_tmp137 ;
18040  struct usb_host_config *__cil_tmp138 ;
18041  unsigned long __cil_tmp139 ;
18042  struct device *__cil_tmp140 ;
18043  struct device  const  *__cil_tmp141 ;
18044  struct usb_bus *__cil_tmp142 ;
18045  struct device *__cil_tmp143 ;
18046  struct device_driver *__cil_tmp144 ;
18047  char const   *__cil_tmp145 ;
18048  int __cil_tmp146 ;
18049  struct hc_driver  const  *__cil_tmp147 ;
18050  int __cil_tmp148 ;
18051  int __cil_tmp149 ;
18052  int __cil_tmp150 ;
18053  struct device *__cil_tmp151 ;
18054  struct device  const  *__cil_tmp152 ;
18055  __u8 __cil_tmp153 ;
18056  unsigned int __cil_tmp154 ;
18057  enum usb_device_speed __cil_tmp155 ;
18058  unsigned int __cil_tmp156 ;
18059  __u8 __cil_tmp157 ;
18060  __le16 __cil_tmp158 ;
18061  int __cil_tmp159 ;
18062  enum usb_device_speed __cil_tmp160 ;
18063  unsigned int __cil_tmp161 ;
18064  struct device *__cil_tmp162 ;
18065  struct device  const  *__cil_tmp163 ;
18066  struct device *__cil_tmp164 ;
18067  struct device  const  *__cil_tmp165 ;
18068  enum usb_device_speed __cil_tmp166 ;
18069  unsigned int __cil_tmp167 ;
18070  struct device *__cil_tmp168 ;
18071  struct device  const  *__cil_tmp169 ;
18072  struct device *__cil_tmp170 ;
18073  struct device  const  *__cil_tmp171 ;
18074  struct device *__cil_tmp172 ;
18075  struct device  const  *__cil_tmp173 ;
18076  int (*__cil_tmp174)(struct usb_hcd * , struct usb_device * ) ;
18077  unsigned long __cil_tmp175 ;
18078  struct hc_driver  const  *__cil_tmp176 ;
18079  int (*__cil_tmp177)(struct usb_hcd * , struct usb_device * ) ;
18080  unsigned long __cil_tmp178 ;
18081  struct hc_driver  const  *__cil_tmp179 ;
18082  int (*__cil_tmp180)(struct usb_hcd * , struct usb_device * ) ;
18083
18084  {
18085  {
18086#line 2802
18087  usb_address0_mutex.count.counter = 1;
18088#line 2802
18089  usb_address0_mutex.wait_lock.ldv_6060.rlock.raw_lock.slock = 0U;
18090#line 2802
18091  usb_address0_mutex.wait_lock.ldv_6060.rlock.magic = 3735899821U;
18092#line 2802
18093  usb_address0_mutex.wait_lock.ldv_6060.rlock.owner_cpu = 4294967295U;
18094#line 2802
18095  usb_address0_mutex.wait_lock.ldv_6060.rlock.owner = (void *)1152921504606846975UL;
18096#line 2802
18097  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.key = (struct lock_class_key *)0;
18098#line 2802
18099  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.class_cache[0] = (struct lock_class *)0;
18100#line 2802
18101  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.class_cache[1] = (struct lock_class *)0;
18102#line 2802
18103  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.name = "usb_address0_mutex.wait_lock";
18104#line 2802
18105  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.cpu = 0;
18106#line 2802
18107  usb_address0_mutex.wait_lock.ldv_6060.rlock.dep_map.ip = 0UL;
18108#line 2802
18109  usb_address0_mutex.wait_list.next = & usb_address0_mutex.wait_list;
18110#line 2802
18111  usb_address0_mutex.wait_list.prev = & usb_address0_mutex.wait_list;
18112#line 2802
18113  usb_address0_mutex.owner = (struct task_struct *)0;
18114#line 2802
18115  usb_address0_mutex.name = (char const   *)0;
18116#line 2802
18117  usb_address0_mutex.magic = (void *)(& usb_address0_mutex);
18118#line 2802
18119  usb_address0_mutex.dep_map.key = (struct lock_class_key *)0;
18120#line 2802
18121  usb_address0_mutex.dep_map.class_cache[0] = (struct lock_class *)0;
18122#line 2802
18123  usb_address0_mutex.dep_map.class_cache[1] = (struct lock_class *)0;
18124#line 2802
18125  usb_address0_mutex.dep_map.name = "usb_address0_mutex";
18126#line 2802
18127  usb_address0_mutex.dep_map.cpu = 0;
18128#line 2802
18129  usb_address0_mutex.dep_map.ip = 0UL;
18130#line 2804
18131  hdev = hub->hdev;
18132#line 2805
18133  __cil_tmp22 = hdev->bus;
18134#line 2805
18135  tmp = bus_to_hcd(__cil_tmp22);
18136#line 2805
18137  hcd = tmp;
18138#line 2807
18139  delay = 10U;
18140#line 2808
18141  oldspeed = udev->speed;
18142#line 2810
18143  devnum = udev->devnum;
18144  }
18145  {
18146#line 2815
18147  __cil_tmp23 = (struct usb_device *)0;
18148#line 2815
18149  __cil_tmp24 = (unsigned long )__cil_tmp23;
18150#line 2815
18151  __cil_tmp25 = hdev->parent;
18152#line 2815
18153  __cil_tmp26 = (unsigned long )__cil_tmp25;
18154#line 2815
18155  if (__cil_tmp26 == __cil_tmp24) {
18156#line 2816
18157    delay = 50U;
18158    {
18159#line 2817
18160    __cil_tmp27 = hdev->bus;
18161#line 2817
18162    __cil_tmp28 = __cil_tmp27->otg_port;
18163#line 2817
18164    __cil_tmp29 = (int )__cil_tmp28;
18165#line 2817
18166    if (__cil_tmp29 == port1) {
18167#line 2818
18168      __cil_tmp30 = hdev->bus;
18169#line 2818
18170      __cil_tmp30->b_hnp_enable = (unsigned char)0;
18171    } else {
18172
18173    }
18174    }
18175  } else {
18176
18177  }
18178  }
18179  {
18180#line 2823
18181  __cil_tmp31 = (unsigned int )oldspeed;
18182#line 2823
18183  if (__cil_tmp31 == 1U) {
18184#line 2824
18185    delay = 200U;
18186  } else {
18187
18188  }
18189  }
18190  {
18191#line 2826
18192  mutex_lock_nested(& usb_address0_mutex, 0U);
18193#line 2830
18194  retval = hub_port_reset(hub, port1, udev, delay);
18195  }
18196#line 2831
18197  if (retval < 0) {
18198#line 2832
18199    goto fail;
18200  } else {
18201
18202  }
18203#line 2835
18204  retval = -19;
18205  {
18206#line 2837
18207  __cil_tmp32 = (unsigned int )oldspeed;
18208#line 2837
18209  if (__cil_tmp32 != 0U) {
18210    {
18211#line 2837
18212    __cil_tmp33 = (unsigned int )oldspeed;
18213#line 2837
18214    __cil_tmp34 = udev->speed;
18215#line 2837
18216    __cil_tmp35 = (unsigned int )__cil_tmp34;
18217#line 2837
18218    if (__cil_tmp35 != __cil_tmp33) {
18219      {
18220#line 2838
18221      __cil_tmp36 = & udev->dev;
18222#line 2838
18223      __cil_tmp37 = (struct device  const  *)__cil_tmp36;
18224#line 2838
18225      dev_printk("<7>", __cil_tmp37, "device reset changed speed!\n");
18226      }
18227#line 2839
18228      goto fail;
18229    } else {
18230
18231    }
18232    }
18233  } else {
18234
18235  }
18236  }
18237#line 2841
18238  oldspeed = udev->speed;
18239  {
18240#line 2849
18241  __cil_tmp38 = udev->speed;
18242#line 2849
18243  __cil_tmp39 = (unsigned int )__cil_tmp38;
18244#line 2849
18245  __cil_tmp40 = (int )__cil_tmp39;
18246#line 2849
18247  if (__cil_tmp40 == 5) {
18248#line 2849
18249    goto case_5;
18250  } else {
18251    {
18252#line 2850
18253    __cil_tmp41 = udev->speed;
18254#line 2850
18255    __cil_tmp42 = (unsigned int )__cil_tmp41;
18256#line 2850
18257    __cil_tmp43 = (int )__cil_tmp42;
18258#line 2850
18259    if (__cil_tmp43 == 4) {
18260#line 2850
18261      goto case_4;
18262    } else {
18263      {
18264#line 2853
18265      __cil_tmp44 = udev->speed;
18266#line 2853
18267      __cil_tmp45 = (unsigned int )__cil_tmp44;
18268#line 2853
18269      __cil_tmp46 = (int )__cil_tmp45;
18270#line 2853
18271      if (__cil_tmp46 == 3) {
18272#line 2853
18273        goto case_3;
18274      } else {
18275        {
18276#line 2856
18277        __cil_tmp47 = udev->speed;
18278#line 2856
18279        __cil_tmp48 = (unsigned int )__cil_tmp47;
18280#line 2856
18281        __cil_tmp49 = (int )__cil_tmp48;
18282#line 2856
18283        if (__cil_tmp49 == 2) {
18284#line 2856
18285          goto case_2;
18286        } else {
18287          {
18288#line 2863
18289          __cil_tmp50 = udev->speed;
18290#line 2863
18291          __cil_tmp51 = (unsigned int )__cil_tmp50;
18292#line 2863
18293          __cil_tmp52 = (int )__cil_tmp51;
18294#line 2863
18295          if (__cil_tmp52 == 1) {
18296#line 2863
18297            goto case_1;
18298          } else {
18299#line 2866
18300            goto switch_default;
18301#line 2848
18302            if (0) {
18303              case_5: ;
18304              case_4: 
18305#line 2851
18306              udev->ep0.desc.wMaxPacketSize = (__le16 )512U;
18307#line 2852
18308              goto ldv_26224;
18309              case_3: 
18310#line 2854
18311              udev->ep0.desc.wMaxPacketSize = (__le16 )64U;
18312#line 2855
18313              goto ldv_26224;
18314              case_2: 
18315#line 2861
18316              udev->ep0.desc.wMaxPacketSize = (__le16 )64U;
18317#line 2862
18318              goto ldv_26224;
18319              case_1: 
18320#line 2864
18321              udev->ep0.desc.wMaxPacketSize = (__le16 )8U;
18322#line 2865
18323              goto ldv_26224;
18324              switch_default: ;
18325#line 2867
18326              goto fail;
18327            } else {
18328
18329            }
18330          }
18331          }
18332        }
18333        }
18334      }
18335      }
18336    }
18337    }
18338  }
18339  }
18340  ldv_26224: 
18341#line 2870
18342  type = (char *)"";
18343  {
18344#line 2872
18345  __cil_tmp53 = udev->speed;
18346#line 2872
18347  __cil_tmp54 = (unsigned int )__cil_tmp53;
18348#line 2872
18349  __cil_tmp55 = (int )__cil_tmp54;
18350#line 2872
18351  if (__cil_tmp55 == 1) {
18352#line 2872
18353    goto case_1___0;
18354  } else {
18355    {
18356#line 2873
18357    __cil_tmp56 = udev->speed;
18358#line 2873
18359    __cil_tmp57 = (unsigned int )__cil_tmp56;
18360#line 2873
18361    __cil_tmp58 = (int )__cil_tmp57;
18362#line 2873
18363    if (__cil_tmp58 == 2) {
18364#line 2873
18365      goto case_2___0;
18366    } else {
18367      {
18368#line 2874
18369      __cil_tmp59 = udev->speed;
18370#line 2874
18371      __cil_tmp60 = (unsigned int )__cil_tmp59;
18372#line 2874
18373      __cil_tmp61 = (int )__cil_tmp60;
18374#line 2874
18375      if (__cil_tmp61 == 3) {
18376#line 2874
18377        goto case_3___0;
18378      } else {
18379        {
18380#line 2875
18381        __cil_tmp62 = udev->speed;
18382#line 2875
18383        __cil_tmp63 = (unsigned int )__cil_tmp62;
18384#line 2875
18385        __cil_tmp64 = (int )__cil_tmp63;
18386#line 2875
18387        if (__cil_tmp64 == 5) {
18388#line 2875
18389          goto case_5___0;
18390        } else {
18391          {
18392#line 2878
18393          __cil_tmp65 = udev->speed;
18394#line 2878
18395          __cil_tmp66 = (unsigned int )__cil_tmp65;
18396#line 2878
18397          __cil_tmp67 = (int )__cil_tmp66;
18398#line 2878
18399          if (__cil_tmp67 == 4) {
18400#line 2878
18401            goto case_4___0;
18402          } else {
18403#line 2882
18404            goto switch_default___0;
18405#line 2871
18406            if (0) {
18407              case_1___0: 
18408#line 2872
18409              speed = (char *)"low";
18410#line 2872
18411              goto ldv_26230;
18412              case_2___0: 
18413#line 2873
18414              speed = (char *)"full";
18415#line 2873
18416              goto ldv_26230;
18417              case_3___0: 
18418#line 2874
18419              speed = (char *)"high";
18420#line 2874
18421              goto ldv_26230;
18422              case_5___0: 
18423#line 2876
18424              speed = (char *)"super";
18425#line 2877
18426              goto ldv_26230;
18427              case_4___0: 
18428#line 2879
18429              speed = (char *)"variable";
18430#line 2880
18431              type = (char *)"Wireless ";
18432#line 2881
18433              goto ldv_26230;
18434              switch_default___0: 
18435#line 2882
18436              speed = (char *)"?";
18437#line 2882
18438              goto ldv_26230;
18439            } else {
18440
18441            }
18442          }
18443          }
18444        }
18445        }
18446      }
18447      }
18448    }
18449    }
18450  }
18451  }
18452  ldv_26230: ;
18453  {
18454#line 2884
18455  __cil_tmp68 = udev->speed;
18456#line 2884
18457  __cil_tmp69 = (unsigned int )__cil_tmp68;
18458#line 2884
18459  if (__cil_tmp69 != 5U) {
18460    {
18461#line 2885
18462    __cil_tmp70 = (struct usb_host_config *)0;
18463#line 2885
18464    __cil_tmp71 = (unsigned long )__cil_tmp70;
18465#line 2885
18466    __cil_tmp72 = udev->config;
18467#line 2885
18468    __cil_tmp73 = (unsigned long )__cil_tmp72;
18469#line 2885
18470    if (__cil_tmp73 != __cil_tmp71) {
18471#line 2885
18472      tmp___0 = (char *)"reset";
18473    } else {
18474#line 2885
18475      tmp___0 = (char *)"new";
18476    }
18477    }
18478    {
18479#line 2885
18480    __cil_tmp74 = & udev->dev;
18481#line 2885
18482    __cil_tmp75 = (struct device  const  *)__cil_tmp74;
18483#line 2885
18484    __cil_tmp76 = udev->bus;
18485#line 2885
18486    __cil_tmp77 = __cil_tmp76->controller;
18487#line 2885
18488    __cil_tmp78 = __cil_tmp77->driver;
18489#line 2885
18490    __cil_tmp79 = __cil_tmp78->name;
18491#line 2885
18492    _dev_info(__cil_tmp75, "%s %s speed %sUSB device number %d using %s\n", tmp___0,
18493              speed, type, devnum, __cil_tmp79);
18494    }
18495  } else {
18496
18497  }
18498  }
18499  {
18500#line 2891
18501  __cil_tmp80 = (struct usb_tt *)0;
18502#line 2891
18503  __cil_tmp81 = (unsigned long )__cil_tmp80;
18504#line 2891
18505  __cil_tmp82 = hdev->tt;
18506#line 2891
18507  __cil_tmp83 = (unsigned long )__cil_tmp82;
18508#line 2891
18509  if (__cil_tmp83 != __cil_tmp81) {
18510#line 2892
18511    udev->tt = hdev->tt;
18512#line 2893
18513    udev->ttport = hdev->ttport;
18514  } else {
18515    {
18516#line 2894
18517    __cil_tmp84 = udev->speed;
18518#line 2894
18519    __cil_tmp85 = (unsigned int )__cil_tmp84;
18520#line 2894
18521    if (__cil_tmp85 != 3U) {
18522      {
18523#line 2894
18524      __cil_tmp86 = hdev->speed;
18525#line 2894
18526      __cil_tmp87 = (unsigned int )__cil_tmp86;
18527#line 2894
18528      if (__cil_tmp87 == 3U) {
18529        {
18530#line 2896
18531        __cil_tmp88 = (struct usb_device *)0;
18532#line 2896
18533        __cil_tmp89 = (unsigned long )__cil_tmp88;
18534#line 2896
18535        __cil_tmp90 = hub->tt.hub;
18536#line 2896
18537        __cil_tmp91 = (unsigned long )__cil_tmp90;
18538#line 2896
18539        if (__cil_tmp91 == __cil_tmp89) {
18540          {
18541#line 2897
18542          __cil_tmp92 = & udev->dev;
18543#line 2897
18544          __cil_tmp93 = (struct device  const  *)__cil_tmp92;
18545#line 2897
18546          dev_err(__cil_tmp93, "parent hub has no TT\n");
18547#line 2898
18548          retval = -22;
18549          }
18550#line 2899
18551          goto fail;
18552        } else {
18553
18554        }
18555        }
18556#line 2901
18557        udev->tt = & hub->tt;
18558#line 2902
18559        udev->ttport = port1;
18560      } else {
18561
18562      }
18563      }
18564    } else {
18565
18566    }
18567    }
18568  }
18569  }
18570#line 2917
18571  i = 0;
18572#line 2917
18573  goto ldv_26254;
18574  ldv_26253: ;
18575  {
18576#line 2918
18577  __cil_tmp94 = retry_counter / 2;
18578#line 2918
18579  if (__cil_tmp94 == old_scheme_first) {
18580    {
18581#line 2918
18582    __cil_tmp95 = hcd->driver;
18583#line 2918
18584    __cil_tmp96 = __cil_tmp95->flags;
18585#line 2918
18586    __cil_tmp97 = (int )__cil_tmp96;
18587#line 2918
18588    __cil_tmp98 = __cil_tmp97 & 64;
18589#line 2918
18590    if (__cil_tmp98 == 0) {
18591      {
18592#line 2920
18593      r = 0;
18594#line 2923
18595      tmp___1 = kmalloc(64UL, 16U);
18596#line 2923
18597      buf = (struct usb_device_descriptor *)tmp___1;
18598      }
18599      {
18600#line 2924
18601      __cil_tmp99 = (struct usb_device_descriptor *)0;
18602#line 2924
18603      __cil_tmp100 = (unsigned long )__cil_tmp99;
18604#line 2924
18605      __cil_tmp101 = (unsigned long )buf;
18606#line 2924
18607      if (__cil_tmp101 == __cil_tmp100) {
18608#line 2925
18609        retval = -12;
18610#line 2926
18611        goto ldv_26238;
18612      } else {
18613
18614      }
18615      }
18616#line 2933
18617      j = 0;
18618#line 2933
18619      goto ldv_26248;
18620      ldv_26247: 
18621      {
18622#line 2934
18623      buf->bMaxPacketSize0 = (__u8 )0U;
18624#line 2935
18625      __cil_tmp102 = (__u8 )6;
18626#line 2935
18627      __cil_tmp103 = (__u8 )128;
18628#line 2935
18629      __cil_tmp104 = (__u16 )256;
18630#line 2935
18631      __cil_tmp105 = (__u16 )0;
18632#line 2935
18633      __cil_tmp106 = (void *)buf;
18634#line 2935
18635      __cil_tmp107 = (__u16 )64;
18636#line 2935
18637      r = usb_control_msg(udev, 2147483776U, __cil_tmp102, __cil_tmp103, __cil_tmp104,
18638                          __cil_tmp105, __cil_tmp106, __cil_tmp107, initial_descriptor_timeout);
18639      }
18640      {
18641#line 2941
18642      __cil_tmp108 = buf->bMaxPacketSize0;
18643#line 2941
18644      __cil_tmp109 = (int )__cil_tmp108;
18645#line 2941
18646      if (__cil_tmp109 == 8) {
18647#line 2941
18648        goto case_8;
18649      } else {
18650        {
18651#line 2941
18652        __cil_tmp110 = buf->bMaxPacketSize0;
18653#line 2941
18654        __cil_tmp111 = (int )__cil_tmp110;
18655#line 2941
18656        if (__cil_tmp111 == 16) {
18657#line 2941
18658          goto case_16;
18659        } else {
18660          {
18661#line 2941
18662          __cil_tmp112 = buf->bMaxPacketSize0;
18663#line 2941
18664          __cil_tmp113 = (int )__cil_tmp112;
18665#line 2941
18666          if (__cil_tmp113 == 32) {
18667#line 2941
18668            goto case_32;
18669          } else {
18670            {
18671#line 2941
18672            __cil_tmp114 = buf->bMaxPacketSize0;
18673#line 2941
18674            __cil_tmp115 = (int )__cil_tmp114;
18675#line 2941
18676            if (__cil_tmp115 == 64) {
18677#line 2941
18678              goto case_64;
18679            } else {
18680              {
18681#line 2941
18682              __cil_tmp116 = buf->bMaxPacketSize0;
18683#line 2941
18684              __cil_tmp117 = (int )__cil_tmp116;
18685#line 2941
18686              if (__cil_tmp117 == 255) {
18687#line 2941
18688                goto case_255;
18689              } else {
18690#line 2948
18691                goto switch_default___1;
18692#line 2940
18693                if (0) {
18694                  case_8: ;
18695                  case_16: ;
18696                  case_32: ;
18697                  case_64: ;
18698                  case_255: ;
18699                  {
18700#line 2942
18701                  __cil_tmp118 = buf->bDescriptorType;
18702#line 2942
18703                  __cil_tmp119 = (unsigned int )__cil_tmp118;
18704#line 2942
18705                  if (__cil_tmp119 == 1U) {
18706#line 2944
18707                    r = 0;
18708#line 2945
18709                    goto ldv_26244;
18710                  } else {
18711
18712                  }
18713                  }
18714                  switch_default___1: ;
18715#line 2949
18716                  if (r == 0) {
18717#line 2950
18718                    r = -71;
18719                  } else {
18720
18721                  }
18722#line 2951
18723                  goto ldv_26244;
18724                } else {
18725
18726                }
18727              }
18728              }
18729            }
18730            }
18731          }
18732          }
18733        }
18734        }
18735      }
18736      }
18737      ldv_26244: ;
18738#line 2953
18739      if (r == 0) {
18740#line 2954
18741        goto ldv_26246;
18742      } else {
18743
18744      }
18745#line 2933
18746      j = j + 1;
18747      ldv_26248: ;
18748#line 2933
18749      if (j <= 2) {
18750#line 2934
18751        goto ldv_26247;
18752      } else {
18753#line 2936
18754        goto ldv_26246;
18755      }
18756      ldv_26246: 
18757      {
18758#line 2956
18759      udev->descriptor.bMaxPacketSize0 = buf->bMaxPacketSize0;
18760#line 2958
18761      __cil_tmp120 = (void const   *)buf;
18762#line 2958
18763      kfree(__cil_tmp120);
18764#line 2960
18765      retval = hub_port_reset(hub, port1, udev, delay);
18766      }
18767#line 2961
18768      if (retval < 0) {
18769#line 2962
18770        goto fail;
18771      } else {
18772
18773      }
18774      {
18775#line 2963
18776      __cil_tmp121 = (unsigned int )oldspeed;
18777#line 2963
18778      __cil_tmp122 = udev->speed;
18779#line 2963
18780      __cil_tmp123 = (unsigned int )__cil_tmp122;
18781#line 2963
18782      if (__cil_tmp123 != __cil_tmp121) {
18783        {
18784#line 2964
18785        __cil_tmp124 = & udev->dev;
18786#line 2964
18787        __cil_tmp125 = (struct device  const  *)__cil_tmp124;
18788#line 2964
18789        dev_printk("<7>", __cil_tmp125, "device reset changed speed!\n");
18790#line 2966
18791        retval = -19;
18792        }
18793#line 2967
18794        goto fail;
18795      } else {
18796
18797      }
18798      }
18799#line 2969
18800      if (r != 0) {
18801        {
18802#line 2970
18803        __cil_tmp126 = & udev->dev;
18804#line 2970
18805        __cil_tmp127 = (struct device  const  *)__cil_tmp126;
18806#line 2970
18807        dev_err(__cil_tmp127, "device descriptor read/64, error %d\n", r);
18808#line 2973
18809        retval = -90;
18810        }
18811#line 2974
18812        goto ldv_26238;
18813      } else {
18814
18815      }
18816    } else {
18817
18818    }
18819    }
18820  } else {
18821
18822  }
18823  }
18824  {
18825#line 2984
18826  __cil_tmp128 = (unsigned char *)udev;
18827#line 2984
18828  __cil_tmp129 = __cil_tmp128 + 1556UL;
18829#line 2984
18830  __cil_tmp130 = *__cil_tmp129;
18831#line 2984
18832  __cil_tmp131 = (unsigned int )__cil_tmp130;
18833#line 2984
18834  if (__cil_tmp131 == 0U) {
18835#line 2985
18836    j = 0;
18837#line 2985
18838    goto ldv_26251;
18839    ldv_26250: 
18840    {
18841#line 2986
18842    retval = hub_set_address(udev, devnum);
18843    }
18844#line 2987
18845    if (retval >= 0) {
18846#line 2988
18847      goto ldv_26249;
18848    } else {
18849
18850    }
18851    {
18852#line 2989
18853    msleep(200U);
18854#line 2985
18855    j = j + 1;
18856    }
18857    ldv_26251: ;
18858#line 2985
18859    if (j <= 1) {
18860#line 2986
18861      goto ldv_26250;
18862    } else {
18863#line 2988
18864      goto ldv_26249;
18865    }
18866    ldv_26249: ;
18867#line 2991
18868    if (retval < 0) {
18869      {
18870#line 2992
18871      __cil_tmp132 = & udev->dev;
18872#line 2992
18873      __cil_tmp133 = (struct device  const  *)__cil_tmp132;
18874#line 2992
18875      dev_err(__cil_tmp133, "device not accepting address %d, error %d\n", devnum,
18876              retval);
18877      }
18878#line 2995
18879      goto fail;
18880    } else {
18881
18882    }
18883    {
18884#line 2997
18885    __cil_tmp134 = udev->speed;
18886#line 2997
18887    __cil_tmp135 = (unsigned int )__cil_tmp134;
18888#line 2997
18889    if (__cil_tmp135 == 5U) {
18890#line 2998
18891      devnum = udev->devnum;
18892      {
18893#line 2999
18894      __cil_tmp136 = (struct usb_host_config *)0;
18895#line 2999
18896      __cil_tmp137 = (unsigned long )__cil_tmp136;
18897#line 2999
18898      __cil_tmp138 = udev->config;
18899#line 2999
18900      __cil_tmp139 = (unsigned long )__cil_tmp138;
18901#line 2999
18902      if (__cil_tmp139 != __cil_tmp137) {
18903#line 2999
18904        tmp___2 = (char *)"reset";
18905      } else {
18906#line 2999
18907        tmp___2 = (char *)"new";
18908      }
18909      }
18910      {
18911#line 2999
18912      __cil_tmp140 = & udev->dev;
18913#line 2999
18914      __cil_tmp141 = (struct device  const  *)__cil_tmp140;
18915#line 2999
18916      __cil_tmp142 = udev->bus;
18917#line 2999
18918      __cil_tmp143 = __cil_tmp142->controller;
18919#line 2999
18920      __cil_tmp144 = __cil_tmp143->driver;
18921#line 2999
18922      __cil_tmp145 = __cil_tmp144->name;
18923#line 2999
18924      _dev_info(__cil_tmp141, "%s SuperSpeed USB device number %d using %s\n", tmp___2,
18925                devnum, __cil_tmp145);
18926      }
18927    } else {
18928
18929    }
18930    }
18931    {
18932#line 3009
18933    msleep(10U);
18934    }
18935    {
18936#line 3010
18937    __cil_tmp146 = retry_counter / 2;
18938#line 3010
18939    if (__cil_tmp146 == old_scheme_first) {
18940      {
18941#line 3010
18942      __cil_tmp147 = hcd->driver;
18943#line 3010
18944      __cil_tmp148 = __cil_tmp147->flags;
18945#line 3010
18946      __cil_tmp149 = (int )__cil_tmp148;
18947#line 3010
18948      __cil_tmp150 = __cil_tmp149 & 64;
18949#line 3010
18950      if (__cil_tmp150 == 0) {
18951#line 3011
18952        goto ldv_26252;
18953      } else {
18954
18955      }
18956      }
18957    } else {
18958
18959    }
18960    }
18961  } else {
18962
18963  }
18964  }
18965  {
18966#line 3014
18967  retval = usb_get_device_descriptor(udev, 8U);
18968  }
18969#line 3015
18970  if (retval <= 7) {
18971    {
18972#line 3016
18973    __cil_tmp151 = & udev->dev;
18974#line 3016
18975    __cil_tmp152 = (struct device  const  *)__cil_tmp151;
18976#line 3016
18977    dev_err(__cil_tmp152, "device descriptor read/8, error %d\n", retval);
18978    }
18979#line 3019
18980    if (retval >= 0) {
18981#line 3020
18982      retval = -90;
18983    } else {
18984
18985    }
18986  } else {
18987#line 3022
18988    retval = 0;
18989#line 3023
18990    goto ldv_26252;
18991  }
18992  ldv_26238: 
18993  {
18994#line 2917
18995  i = i + 1;
18996#line 2917
18997  msleep(100U);
18998  }
18999  ldv_26254: ;
19000#line 2917
19001  if (i <= 1) {
19002#line 2918
19003    goto ldv_26253;
19004  } else {
19005#line 2920
19006    goto ldv_26252;
19007  }
19008  ldv_26252: ;
19009#line 3026
19010  if (retval != 0) {
19011#line 3027
19012    goto fail;
19013  } else {
19014
19015  }
19016  {
19017#line 3029
19018  __cil_tmp153 = udev->descriptor.bMaxPacketSize0;
19019#line 3029
19020  __cil_tmp154 = (unsigned int )__cil_tmp153;
19021#line 3029
19022  if (__cil_tmp154 == 255U) {
19023#line 3031
19024    i = 512;
19025  } else {
19026    {
19027#line 3029
19028    __cil_tmp155 = udev->speed;
19029#line 3029
19030    __cil_tmp156 = (unsigned int )__cil_tmp155;
19031#line 3029
19032    if (__cil_tmp156 == 5U) {
19033#line 3031
19034      i = 512;
19035    } else {
19036#line 3033
19037      __cil_tmp157 = udev->descriptor.bMaxPacketSize0;
19038#line 3033
19039      i = (int )__cil_tmp157;
19040    }
19041    }
19042  }
19043  }
19044  {
19045#line 3034
19046  __cil_tmp158 = udev->ep0.desc.wMaxPacketSize;
19047#line 3034
19048  __cil_tmp159 = (int )__cil_tmp158;
19049#line 3034
19050  if (__cil_tmp159 != i) {
19051    {
19052#line 3035
19053    __cil_tmp160 = udev->speed;
19054#line 3035
19055    __cil_tmp161 = (unsigned int )__cil_tmp160;
19056#line 3035
19057    if (__cil_tmp161 == 1U) {
19058      {
19059#line 3037
19060      __cil_tmp162 = & udev->dev;
19061#line 3037
19062      __cil_tmp163 = (struct device  const  *)__cil_tmp162;
19063#line 3037
19064      dev_err(__cil_tmp163, "Invalid ep0 maxpacket: %d\n", i);
19065#line 3038
19066      retval = -90;
19067      }
19068#line 3039
19069      goto fail;
19070    } else
19071#line 3035
19072    if (i != 8) {
19073#line 3035
19074      if (i != 16) {
19075#line 3035
19076        if (i != 32) {
19077#line 3035
19078          if (i != 64) {
19079            {
19080#line 3037
19081            __cil_tmp164 = & udev->dev;
19082#line 3037
19083            __cil_tmp165 = (struct device  const  *)__cil_tmp164;
19084#line 3037
19085            dev_err(__cil_tmp165, "Invalid ep0 maxpacket: %d\n", i);
19086#line 3038
19087            retval = -90;
19088            }
19089#line 3039
19090            goto fail;
19091          } else {
19092
19093          }
19094        } else {
19095
19096        }
19097      } else {
19098
19099      }
19100    } else {
19101
19102    }
19103    }
19104    {
19105#line 3041
19106    __cil_tmp166 = udev->speed;
19107#line 3041
19108    __cil_tmp167 = (unsigned int )__cil_tmp166;
19109#line 3041
19110    if (__cil_tmp167 == 2U) {
19111      {
19112#line 3042
19113      __cil_tmp168 = & udev->dev;
19114#line 3042
19115      __cil_tmp169 = (struct device  const  *)__cil_tmp168;
19116#line 3042
19117      dev_printk("<7>", __cil_tmp169, "ep0 maxpacket = %d\n", i);
19118      }
19119    } else {
19120      {
19121#line 3044
19122      __cil_tmp170 = & udev->dev;
19123#line 3044
19124      __cil_tmp171 = (struct device  const  *)__cil_tmp170;
19125#line 3044
19126      dev_warn(__cil_tmp171, "Using ep0 maxpacket: %d\n", i);
19127      }
19128    }
19129    }
19130    {
19131#line 3045
19132    udev->ep0.desc.wMaxPacketSize = (unsigned short )i;
19133#line 3046
19134    usb_ep0_reinit(udev);
19135    }
19136  } else {
19137
19138  }
19139  }
19140  {
19141#line 3049
19142  retval = usb_get_device_descriptor(udev, 18U);
19143  }
19144#line 3050
19145  if (retval <= 17) {
19146    {
19147#line 3051
19148    __cil_tmp172 = & udev->dev;
19149#line 3051
19150    __cil_tmp173 = (struct device  const  *)__cil_tmp172;
19151#line 3051
19152    dev_err(__cil_tmp173, "device descriptor read/all, error %d\n", retval);
19153    }
19154#line 3053
19155    if (retval >= 0) {
19156#line 3054
19157      retval = -42;
19158    } else {
19159
19160    }
19161#line 3055
19162    goto fail;
19163  } else {
19164
19165  }
19166#line 3058
19167  retval = 0;
19168  {
19169#line 3060
19170  __cil_tmp174 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
19171#line 3060
19172  __cil_tmp175 = (unsigned long )__cil_tmp174;
19173#line 3060
19174  __cil_tmp176 = hcd->driver;
19175#line 3060
19176  __cil_tmp177 = __cil_tmp176->update_device;
19177#line 3060
19178  __cil_tmp178 = (unsigned long )__cil_tmp177;
19179#line 3060
19180  if (__cil_tmp178 != __cil_tmp175) {
19181    {
19182#line 3061
19183    __cil_tmp179 = hcd->driver;
19184#line 3061
19185    __cil_tmp180 = __cil_tmp179->update_device;
19186#line 3061
19187    (*__cil_tmp180)(hcd, udev);
19188    }
19189  } else {
19190
19191  }
19192  }
19193  fail: ;
19194#line 3063
19195  if (retval != 0) {
19196    {
19197#line 3064
19198    hub_port_disable(hub, port1, 0);
19199#line 3065
19200    update_devnum(udev, devnum);
19201    }
19202  } else {
19203
19204  }
19205  {
19206#line 3067
19207  mutex_unlock(& usb_address0_mutex);
19208  }
19209#line 3068
19210  return (retval);
19211}
19212}
19213#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"
19214static void check_highspeed(struct usb_hub *hub , struct usb_device *udev , int port1 ) 
19215{ struct usb_qualifier_descriptor *qual ;
19216  int status ;
19217  void *tmp ;
19218  struct usb_qualifier_descriptor *__cil_tmp7 ;
19219  unsigned long __cil_tmp8 ;
19220  unsigned long __cil_tmp9 ;
19221  void *__cil_tmp10 ;
19222  struct device *__cil_tmp11 ;
19223  struct device  const  *__cil_tmp12 ;
19224  unsigned char *__cil_tmp13 ;
19225  unsigned char *__cil_tmp14 ;
19226  unsigned char __cil_tmp15 ;
19227  unsigned int __cil_tmp16 ;
19228  struct delayed_work *__cil_tmp17 ;
19229  void const   *__cil_tmp18 ;
19230
19231  {
19232  {
19233#line 3077
19234  tmp = kmalloc(10UL, 208U);
19235#line 3077
19236  qual = (struct usb_qualifier_descriptor *)tmp;
19237  }
19238  {
19239#line 3078
19240  __cil_tmp7 = (struct usb_qualifier_descriptor *)0;
19241#line 3078
19242  __cil_tmp8 = (unsigned long )__cil_tmp7;
19243#line 3078
19244  __cil_tmp9 = (unsigned long )qual;
19245#line 3078
19246  if (__cil_tmp9 == __cil_tmp8) {
19247#line 3079
19248    return;
19249  } else {
19250
19251  }
19252  }
19253  {
19254#line 3081
19255  __cil_tmp10 = (void *)qual;
19256#line 3081
19257  status = usb_get_descriptor(udev, (unsigned char)6, (unsigned char)0, __cil_tmp10,
19258                              10);
19259  }
19260#line 3083
19261  if (status == 10) {
19262    {
19263#line 3084
19264    __cil_tmp11 = & udev->dev;
19265#line 3084
19266    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
19267#line 3084
19268    _dev_info(__cil_tmp12, "not running at top speed; connect to a high speed hub\n");
19269    }
19270    {
19271#line 3087
19272    __cil_tmp13 = (unsigned char *)hub;
19273#line 3087
19274    __cil_tmp14 = __cil_tmp13 + 468UL;
19275#line 3087
19276    __cil_tmp15 = *__cil_tmp14;
19277#line 3087
19278    __cil_tmp16 = (unsigned int )__cil_tmp15;
19279#line 3087
19280    if (__cil_tmp16 != 0U) {
19281      {
19282#line 3088
19283      hub->indicator[port1 + -1] = (u8 )2U;
19284#line 3089
19285      __cil_tmp17 = & hub->leds;
19286#line 3089
19287      schedule_delayed_work(__cil_tmp17, 0UL);
19288      }
19289    } else {
19290
19291    }
19292    }
19293  } else {
19294
19295  }
19296  {
19297#line 3092
19298  __cil_tmp18 = (void const   *)qual;
19299#line 3092
19300  kfree(__cil_tmp18);
19301  }
19302#line 3093
19303  return;
19304}
19305}
19306#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"
19307static unsigned int hub_power_remaining(struct usb_hub *hub ) 
19308{ struct usb_device *hdev ;
19309  int remaining ;
19310  int port1 ;
19311  struct usb_device *udev ;
19312  int delta ;
19313  unsigned char *__cil_tmp7 ;
19314  unsigned char *__cil_tmp8 ;
19315  unsigned char __cil_tmp9 ;
19316  unsigned int __cil_tmp10 ;
19317  struct usb_hub_descriptor *__cil_tmp11 ;
19318  __u8 __cil_tmp12 ;
19319  int __cil_tmp13 ;
19320  unsigned short __cil_tmp14 ;
19321  int __cil_tmp15 ;
19322  struct usb_device *__cil_tmp16 ;
19323  unsigned long __cil_tmp17 ;
19324  unsigned long __cil_tmp18 ;
19325  struct usb_host_config *__cil_tmp19 ;
19326  unsigned long __cil_tmp20 ;
19327  struct usb_host_config *__cil_tmp21 ;
19328  unsigned long __cil_tmp22 ;
19329  struct usb_host_config *__cil_tmp23 ;
19330  __u8 __cil_tmp24 ;
19331  int __cil_tmp25 ;
19332  struct usb_bus *__cil_tmp26 ;
19333  u8 __cil_tmp27 ;
19334  int __cil_tmp28 ;
19335  struct usb_device *__cil_tmp29 ;
19336  unsigned long __cil_tmp30 ;
19337  struct usb_device *__cil_tmp31 ;
19338  unsigned long __cil_tmp32 ;
19339  unsigned int __cil_tmp33 ;
19340  unsigned int __cil_tmp34 ;
19341  struct device *__cil_tmp35 ;
19342  struct device  const  *__cil_tmp36 ;
19343  unsigned int __cil_tmp37 ;
19344  int __cil_tmp38 ;
19345  struct device *__cil_tmp39 ;
19346  struct device  const  *__cil_tmp40 ;
19347  int __cil_tmp41 ;
19348
19349  {
19350#line 3098
19351  hdev = hub->hdev;
19352  {
19353#line 3102
19354  __cil_tmp7 = (unsigned char *)hub;
19355#line 3102
19356  __cil_tmp8 = __cil_tmp7 + 468UL;
19357#line 3102
19358  __cil_tmp9 = *__cil_tmp8;
19359#line 3102
19360  __cil_tmp10 = (unsigned int )__cil_tmp9;
19361#line 3102
19362  if (__cil_tmp10 == 0U) {
19363#line 3103
19364    return (0U);
19365  } else {
19366
19367  }
19368  }
19369#line 3105
19370  __cil_tmp11 = hub->descriptor;
19371#line 3105
19372  __cil_tmp12 = __cil_tmp11->bHubContrCurrent;
19373#line 3105
19374  __cil_tmp13 = (int )__cil_tmp12;
19375#line 3105
19376  __cil_tmp14 = hdev->bus_mA;
19377#line 3105
19378  __cil_tmp15 = (int )__cil_tmp14;
19379#line 3105
19380  remaining = __cil_tmp15 - __cil_tmp13;
19381#line 3106
19382  port1 = 1;
19383#line 3106
19384  goto ldv_26272;
19385  ldv_26271: 
19386#line 3107
19387  udev = hdev->children[port1 + -1];
19388  {
19389#line 3110
19390  __cil_tmp16 = (struct usb_device *)0;
19391#line 3110
19392  __cil_tmp17 = (unsigned long )__cil_tmp16;
19393#line 3110
19394  __cil_tmp18 = (unsigned long )udev;
19395#line 3110
19396  if (__cil_tmp18 == __cil_tmp17) {
19397#line 3111
19398    goto ldv_26270;
19399  } else {
19400
19401  }
19402  }
19403  {
19404#line 3115
19405  __cil_tmp19 = (struct usb_host_config *)0;
19406#line 3115
19407  __cil_tmp20 = (unsigned long )__cil_tmp19;
19408#line 3115
19409  __cil_tmp21 = udev->actconfig;
19410#line 3115
19411  __cil_tmp22 = (unsigned long )__cil_tmp21;
19412#line 3115
19413  if (__cil_tmp22 != __cil_tmp20) {
19414#line 3116
19415    __cil_tmp23 = udev->actconfig;
19416#line 3116
19417    __cil_tmp24 = __cil_tmp23->desc.bMaxPower;
19418#line 3116
19419    __cil_tmp25 = (int )__cil_tmp24;
19420#line 3116
19421    delta = __cil_tmp25 * 2;
19422  } else {
19423    {
19424#line 3117
19425    __cil_tmp26 = udev->bus;
19426#line 3117
19427    __cil_tmp27 = __cil_tmp26->otg_port;
19428#line 3117
19429    __cil_tmp28 = (int )__cil_tmp27;
19430#line 3117
19431    if (__cil_tmp28 != port1) {
19432#line 3118
19433      delta = 100;
19434    } else {
19435      {
19436#line 3117
19437      __cil_tmp29 = (struct usb_device *)0;
19438#line 3117
19439      __cil_tmp30 = (unsigned long )__cil_tmp29;
19440#line 3117
19441      __cil_tmp31 = hdev->parent;
19442#line 3117
19443      __cil_tmp32 = (unsigned long )__cil_tmp31;
19444#line 3117
19445      if (__cil_tmp32 != __cil_tmp30) {
19446#line 3118
19447        delta = 100;
19448      } else {
19449#line 3120
19450        delta = 8;
19451      }
19452      }
19453    }
19454    }
19455  }
19456  }
19457  {
19458#line 3121
19459  __cil_tmp33 = hub->mA_per_port;
19460#line 3121
19461  __cil_tmp34 = (unsigned int )delta;
19462#line 3121
19463  if (__cil_tmp34 > __cil_tmp33) {
19464    {
19465#line 3122
19466    __cil_tmp35 = & udev->dev;
19467#line 3122
19468    __cil_tmp36 = (struct device  const  *)__cil_tmp35;
19469#line 3122
19470    __cil_tmp37 = hub->mA_per_port;
19471#line 3122
19472    dev_warn(__cil_tmp36, "%dmA is over %umA budget for port %d!\n", delta, __cil_tmp37,
19473             port1);
19474    }
19475  } else {
19476
19477  }
19478  }
19479#line 3125
19480  remaining = remaining - delta;
19481  ldv_26270: 
19482#line 3106
19483  port1 = port1 + 1;
19484  ldv_26272: ;
19485  {
19486#line 3106
19487  __cil_tmp38 = hdev->maxchild;
19488#line 3106
19489  if (__cil_tmp38 >= port1) {
19490#line 3107
19491    goto ldv_26271;
19492  } else {
19493#line 3109
19494    goto ldv_26273;
19495  }
19496  }
19497  ldv_26273: ;
19498#line 3127
19499  if (remaining < 0) {
19500    {
19501#line 3128
19502    __cil_tmp39 = hub->intfdev;
19503#line 3128
19504    __cil_tmp40 = (struct device  const  *)__cil_tmp39;
19505#line 3128
19506    __cil_tmp41 = - remaining;
19507#line 3128
19508    dev_warn(__cil_tmp40, "%dmA over power budget!\n", __cil_tmp41);
19509#line 3130
19510    remaining = 0;
19511    }
19512  } else {
19513
19514  }
19515#line 3132
19516  return ((unsigned int )remaining);
19517}
19518}
19519#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"
19520static void hub_port_connect_change(struct usb_hub *hub , int port1 , u16 portstatus ,
19521                                    u16 portchange ) 
19522{ struct usb_device *hdev ;
19523  struct device *hub_dev ;
19524  struct usb_hcd *hcd ;
19525  struct usb_hcd *tmp ;
19526  unsigned int wHubCharacteristics ;
19527  struct usb_device *udev ;
19528  int status ;
19529  int i ;
19530  char *tmp___0 ;
19531  int tmp___1 ;
19532  int tmp___2 ;
19533  int tmp___3 ;
19534  unsigned int tmp___4 ;
19535  int tmp___5 ;
19536  u16 devstat ;
19537  unsigned int tmp___6 ;
19538  int tmp___7 ;
19539  struct usb_bus *__cil_tmp22 ;
19540  struct usb_hub_descriptor *__cil_tmp23 ;
19541  __le16 __cil_tmp24 ;
19542  int __cil_tmp25 ;
19543  struct device  const  *__cil_tmp26 ;
19544  int __cil_tmp27 ;
19545  int __cil_tmp28 ;
19546  unsigned char *__cil_tmp29 ;
19547  unsigned char *__cil_tmp30 ;
19548  unsigned char __cil_tmp31 ;
19549  unsigned int __cil_tmp32 ;
19550  struct usb_bus *__cil_tmp33 ;
19551  unsigned char *__cil_tmp34 ;
19552  unsigned char *__cil_tmp35 ;
19553  unsigned char __cil_tmp36 ;
19554  unsigned int __cil_tmp37 ;
19555  unsigned int __cil_tmp38 ;
19556  unsigned int __cil_tmp39 ;
19557  int __cil_tmp40 ;
19558  struct usb_device *__cil_tmp41 ;
19559  unsigned long __cil_tmp42 ;
19560  unsigned long __cil_tmp43 ;
19561  enum usb_device_state __cil_tmp44 ;
19562  unsigned int __cil_tmp45 ;
19563  struct device *__cil_tmp46 ;
19564  int __cil_tmp47 ;
19565  int __cil_tmp48 ;
19566  enum usb_device_state __cil_tmp49 ;
19567  unsigned int __cil_tmp50 ;
19568  unsigned char *__cil_tmp51 ;
19569  unsigned char *__cil_tmp52 ;
19570  unsigned char __cil_tmp53 ;
19571  unsigned int __cil_tmp54 ;
19572  struct device *__cil_tmp55 ;
19573  unsigned long (*__cil_tmp56)[1U] ;
19574  unsigned long volatile   *__cil_tmp57 ;
19575  struct usb_device *__cil_tmp58 ;
19576  unsigned long __cil_tmp59 ;
19577  unsigned long __cil_tmp60 ;
19578  unsigned long __cil_tmp61 ;
19579  unsigned long __cil_tmp62 ;
19580  struct usb_device *(*__cil_tmp63)[31U] ;
19581  struct usb_device **__cil_tmp64 ;
19582  struct usb_device **__cil_tmp65 ;
19583  unsigned long (*__cil_tmp66)[1U] ;
19584  unsigned long volatile   *__cil_tmp67 ;
19585  int __cil_tmp68 ;
19586  int __cil_tmp69 ;
19587  unsigned long (*__cil_tmp70)[1U] ;
19588  unsigned long volatile   *__cil_tmp71 ;
19589  int __cil_tmp72 ;
19590  unsigned long (*__cil_tmp73)[1U] ;
19591  unsigned long volatile   *__cil_tmp74 ;
19592  int __cil_tmp75 ;
19593  int __cil_tmp76 ;
19594  struct device  const  *__cil_tmp77 ;
19595  unsigned int __cil_tmp78 ;
19596  unsigned int __cil_tmp79 ;
19597  int __cil_tmp80 ;
19598  int __cil_tmp81 ;
19599  unsigned long (*__cil_tmp82)[1U] ;
19600  unsigned long const volatile   *__cil_tmp83 ;
19601  unsigned int __cil_tmp84 ;
19602  unsigned int __cil_tmp85 ;
19603  int __cil_tmp86 ;
19604  int __cil_tmp87 ;
19605  struct usb_bus *__cil_tmp88 ;
19606  unsigned int __cil_tmp89 ;
19607  struct usb_device *__cil_tmp90 ;
19608  unsigned long __cil_tmp91 ;
19609  unsigned long __cil_tmp92 ;
19610  struct device  const  *__cil_tmp93 ;
19611  enum usb_device_state __cil_tmp94 ;
19612  unsigned int __cil_tmp95 ;
19613  u8 __cil_tmp96 ;
19614  unsigned int __cil_tmp97 ;
19615  unsigned int __cil_tmp98 ;
19616  struct usb_device *__cil_tmp99 ;
19617  int __cil_tmp100 ;
19618  u32 __cil_tmp101 ;
19619  unsigned int __cil_tmp102 ;
19620  __u8 __cil_tmp103 ;
19621  unsigned int __cil_tmp104 ;
19622  unsigned short __cil_tmp105 ;
19623  unsigned int __cil_tmp106 ;
19624  void *__cil_tmp107 ;
19625  struct device *__cil_tmp108 ;
19626  struct device  const  *__cil_tmp109 ;
19627  int __cil_tmp110 ;
19628  int __cil_tmp111 ;
19629  struct device *__cil_tmp112 ;
19630  struct device  const  *__cil_tmp113 ;
19631  unsigned char *__cil_tmp114 ;
19632  unsigned char *__cil_tmp115 ;
19633  unsigned char __cil_tmp116 ;
19634  unsigned int __cil_tmp117 ;
19635  struct delayed_work *__cil_tmp118 ;
19636  __le16 __cil_tmp119 ;
19637  unsigned int __cil_tmp120 ;
19638  enum usb_device_speed __cil_tmp121 ;
19639  unsigned int __cil_tmp122 ;
19640  enum usb_device_state __cil_tmp123 ;
19641  unsigned int __cil_tmp124 ;
19642  struct device  const  *__cil_tmp125 ;
19643  int __cil_tmp126 ;
19644  int __cil_tmp127 ;
19645  struct usb_device *__cil_tmp128 ;
19646  unsigned long __cil_tmp129 ;
19647  struct usb_device *__cil_tmp130 ;
19648  struct usb_device *__cil_tmp131 ;
19649  unsigned long __cil_tmp132 ;
19650  struct device  const  *__cil_tmp133 ;
19651  int (*__cil_tmp134)(struct usb_hcd * , int  ) ;
19652  unsigned long __cil_tmp135 ;
19653  struct hc_driver  const  *__cil_tmp136 ;
19654  int (*__cil_tmp137)(struct usb_hcd * , int  ) ;
19655  unsigned long __cil_tmp138 ;
19656  struct device  const  *__cil_tmp139 ;
19657  struct hc_driver  const  *__cil_tmp140 ;
19658  int (*__cil_tmp141)(struct usb_hcd * , int  ) ;
19659  struct device  const  *__cil_tmp142 ;
19660  void (*__cil_tmp143)(struct usb_hcd * , int  ) ;
19661  unsigned long __cil_tmp144 ;
19662  struct hc_driver  const  *__cil_tmp145 ;
19663  void (*__cil_tmp146)(struct usb_hcd * , int  ) ;
19664  unsigned long __cil_tmp147 ;
19665  struct usb_device *__cil_tmp148 ;
19666  unsigned long __cil_tmp149 ;
19667  struct usb_device *__cil_tmp150 ;
19668  struct usb_device *__cil_tmp151 ;
19669  unsigned long __cil_tmp152 ;
19670  struct hc_driver  const  *__cil_tmp153 ;
19671  void (*__cil_tmp154)(struct usb_hcd * , int  ) ;
19672
19673  {
19674  {
19675#line 3146
19676  hdev = hub->hdev;
19677#line 3147
19678  hub_dev = hub->intfdev;
19679#line 3148
19680  __cil_tmp22 = hdev->bus;
19681#line 3148
19682  tmp = bus_to_hcd(__cil_tmp22);
19683#line 3148
19684  hcd = tmp;
19685#line 3149
19686  __cil_tmp23 = hub->descriptor;
19687#line 3149
19688  __cil_tmp24 = __cil_tmp23->wHubCharacteristics;
19689#line 3149
19690  wHubCharacteristics = (unsigned int )__cil_tmp24;
19691#line 3154
19692  __cil_tmp25 = (int )portstatus;
19693#line 3154
19694  tmp___0 = portspeed(hub, __cil_tmp25);
19695#line 3154
19696  __cil_tmp26 = (struct device  const  *)hub_dev;
19697#line 3154
19698  __cil_tmp27 = (int )portstatus;
19699#line 3154
19700  __cil_tmp28 = (int )portchange;
19701#line 3154
19702  dev_printk("<7>", __cil_tmp26, "port %d, status %04x, change %04x, %s\n", port1,
19703             __cil_tmp27, __cil_tmp28, tmp___0);
19704  }
19705  {
19706#line 3158
19707  __cil_tmp29 = (unsigned char *)hub;
19708#line 3158
19709  __cil_tmp30 = __cil_tmp29 + 468UL;
19710#line 3158
19711  __cil_tmp31 = *__cil_tmp30;
19712#line 3158
19713  __cil_tmp32 = (unsigned int )__cil_tmp31;
19714#line 3158
19715  if (__cil_tmp32 != 0U) {
19716    {
19717#line 3159
19718    set_port_led(hub, port1, 0);
19719#line 3160
19720    hub->indicator[port1 + -1] = (u8 )0U;
19721    }
19722  } else {
19723
19724  }
19725  }
19726  {
19727#line 3165
19728  __cil_tmp33 = hdev->bus;
19729#line 3165
19730  __cil_tmp34 = (unsigned char *)__cil_tmp33;
19731#line 3165
19732  __cil_tmp35 = __cil_tmp34 + 27UL;
19733#line 3165
19734  __cil_tmp36 = *__cil_tmp35;
19735#line 3165
19736  __cil_tmp37 = (unsigned int )__cil_tmp36;
19737#line 3165
19738  if (__cil_tmp37 != 0U) {
19739#line 3166
19740    __cil_tmp38 = (unsigned int )portchange;
19741#line 3166
19742    __cil_tmp39 = __cil_tmp38 & 65532U;
19743#line 3166
19744    portchange = (u16 )__cil_tmp39;
19745  } else {
19746
19747  }
19748  }
19749#line 3171
19750  udev = hdev->children[port1 + -1];
19751  {
19752#line 3172
19753  __cil_tmp40 = (int )portstatus;
19754#line 3172
19755  if (__cil_tmp40 & 1) {
19756    {
19757#line 3172
19758    __cil_tmp41 = (struct usb_device *)0;
19759#line 3172
19760    __cil_tmp42 = (unsigned long )__cil_tmp41;
19761#line 3172
19762    __cil_tmp43 = (unsigned long )udev;
19763#line 3172
19764    if (__cil_tmp43 != __cil_tmp42) {
19765      {
19766#line 3172
19767      __cil_tmp44 = udev->state;
19768#line 3172
19769      __cil_tmp45 = (unsigned int )__cil_tmp44;
19770#line 3172
19771      if (__cil_tmp45 != 0U) {
19772        {
19773#line 3174
19774        __cil_tmp46 = & udev->dev;
19775#line 3174
19776        device_lock(__cil_tmp46);
19777        }
19778        {
19779#line 3175
19780        __cil_tmp47 = (int )portstatus;
19781#line 3175
19782        __cil_tmp48 = __cil_tmp47 & 2;
19783#line 3175
19784        if (__cil_tmp48 != 0) {
19785#line 3176
19786          status = 0;
19787        } else {
19788          {
19789#line 3179
19790          __cil_tmp49 = udev->state;
19791#line 3179
19792          __cil_tmp50 = (unsigned int )__cil_tmp49;
19793#line 3179
19794          if (__cil_tmp50 == 8U) {
19795            {
19796#line 3179
19797            __cil_tmp51 = (unsigned char *)udev;
19798#line 3179
19799            __cil_tmp52 = __cil_tmp51 + 1556UL;
19800#line 3179
19801            __cil_tmp53 = *__cil_tmp52;
19802#line 3179
19803            __cil_tmp54 = (unsigned int )__cil_tmp53;
19804#line 3179
19805            if (__cil_tmp54 != 0U) {
19806              {
19807#line 3184
19808              status = usb_remote_wakeup(udev);
19809              }
19810            } else {
19811#line 3188
19812              status = -19;
19813            }
19814            }
19815          } else {
19816#line 3188
19817            status = -19;
19818          }
19819          }
19820        }
19821        }
19822        {
19823#line 3190
19824        __cil_tmp55 = & udev->dev;
19825#line 3190
19826        device_unlock(__cil_tmp55);
19827        }
19828#line 3192
19829        if (status == 0) {
19830          {
19831#line 3193
19832          __cil_tmp56 = & hub->change_bits;
19833#line 3193
19834          __cil_tmp57 = (unsigned long volatile   *)__cil_tmp56;
19835#line 3193
19836          clear_bit(port1, __cil_tmp57);
19837          }
19838#line 3194
19839          return;
19840        } else {
19841
19842        }
19843      } else {
19844
19845      }
19846      }
19847    } else {
19848
19849    }
19850    }
19851  } else {
19852
19853  }
19854  }
19855  {
19856#line 3199
19857  __cil_tmp58 = (struct usb_device *)0;
19858#line 3199
19859  __cil_tmp59 = (unsigned long )__cil_tmp58;
19860#line 3199
19861  __cil_tmp60 = (unsigned long )udev;
19862#line 3199
19863  if (__cil_tmp60 != __cil_tmp59) {
19864    {
19865#line 3200
19866    __cil_tmp61 = (unsigned long )port1;
19867#line 3200
19868    __cil_tmp62 = __cil_tmp61 + 1152921504606846975UL;
19869#line 3200
19870    __cil_tmp63 = & hdev->children;
19871#line 3200
19872    __cil_tmp64 = (struct usb_device **)__cil_tmp63;
19873#line 3200
19874    __cil_tmp65 = __cil_tmp64 + __cil_tmp62;
19875#line 3200
19876    usb_disconnect(__cil_tmp65);
19877    }
19878  } else {
19879
19880  }
19881  }
19882  {
19883#line 3201
19884  __cil_tmp66 = & hub->change_bits;
19885#line 3201
19886  __cil_tmp67 = (unsigned long volatile   *)__cil_tmp66;
19887#line 3201
19888  clear_bit(port1, __cil_tmp67);
19889  }
19890  {
19891#line 3206
19892  __cil_tmp68 = (int )portstatus;
19893#line 3206
19894  __cil_tmp69 = __cil_tmp68 & 1;
19895#line 3206
19896  if (__cil_tmp69 == 0) {
19897    {
19898#line 3208
19899    __cil_tmp70 = & hub->removed_bits;
19900#line 3208
19901    __cil_tmp71 = (unsigned long volatile   *)__cil_tmp70;
19902#line 3208
19903    clear_bit(port1, __cil_tmp71);
19904    }
19905  } else {
19906    {
19907#line 3206
19908    __cil_tmp72 = (int )portchange;
19909#line 3206
19910    if (__cil_tmp72 & 1) {
19911      {
19912#line 3208
19913      __cil_tmp73 = & hub->removed_bits;
19914#line 3208
19915      __cil_tmp74 = (unsigned long volatile   *)__cil_tmp73;
19916#line 3208
19917      clear_bit(port1, __cil_tmp74);
19918      }
19919    } else {
19920
19921    }
19922    }
19923  }
19924  }
19925  {
19926#line 3210
19927  __cil_tmp75 = (int )portchange;
19928#line 3210
19929  __cil_tmp76 = __cil_tmp75 & 3;
19930#line 3210
19931  if (__cil_tmp76 != 0) {
19932    {
19933#line 3212
19934    status = hub_port_debounce(hub, port1);
19935    }
19936#line 3213
19937    if (status < 0) {
19938      {
19939#line 3214
19940      tmp___1 = __printk_ratelimit("hub_port_connect_change");
19941      }
19942#line 3214
19943      if (tmp___1 != 0) {
19944        {
19945#line 3215
19946        __cil_tmp77 = (struct device  const  *)hub_dev;
19947#line 3215
19948        dev_err(__cil_tmp77, "connect-debounce failed, port %d disabled\n", port1);
19949        }
19950      } else {
19951
19952      }
19953#line 3217
19954      __cil_tmp78 = (unsigned int )portstatus;
19955#line 3217
19956      __cil_tmp79 = __cil_tmp78 & 65534U;
19957#line 3217
19958      portstatus = (u16 )__cil_tmp79;
19959    } else {
19960#line 3219
19961      portstatus = (u16 )status;
19962    }
19963  } else {
19964
19965  }
19966  }
19967  {
19968#line 3226
19969  __cil_tmp80 = (int )portstatus;
19970#line 3226
19971  __cil_tmp81 = __cil_tmp80 & 1;
19972#line 3226
19973  if (__cil_tmp81 == 0) {
19974#line 3226
19975    goto _L;
19976  } else {
19977    {
19978#line 3226
19979    __cil_tmp82 = & hub->removed_bits;
19980#line 3226
19981    __cil_tmp83 = (unsigned long const volatile   *)__cil_tmp82;
19982#line 3226
19983    tmp___3 = variable_test_bit(port1, __cil_tmp83);
19984    }
19985#line 3226
19986    if (tmp___3 != 0) {
19987      _L: 
19988      {
19989#line 3230
19990      __cil_tmp84 = wHubCharacteristics & 3U;
19991#line 3230
19992      if (__cil_tmp84 <= 1U) {
19993        {
19994#line 3230
19995        __cil_tmp85 = (unsigned int )portstatus;
19996#line 3230
19997        tmp___2 = port_is_power_on(hub, __cil_tmp85);
19998        }
19999#line 3230
20000        if (tmp___2 == 0) {
20001          {
20002#line 3232
20003          set_port_feature(hdev, port1, 8);
20004          }
20005        } else {
20006
20007        }
20008      } else {
20009
20010      }
20011      }
20012      {
20013#line 3234
20014      __cil_tmp86 = (int )portstatus;
20015#line 3234
20016      __cil_tmp87 = __cil_tmp86 & 2;
20017#line 3234
20018      if (__cil_tmp87 != 0) {
20019#line 3235
20020        goto done;
20021      } else {
20022
20023      }
20024      }
20025#line 3236
20026      return;
20027    } else {
20028
20029    }
20030  }
20031  }
20032#line 3239
20033  i = 0;
20034#line 3239
20035  goto ldv_26294;
20036  ldv_26293: 
20037  {
20038#line 3244
20039  __cil_tmp88 = hdev->bus;
20040#line 3244
20041  __cil_tmp89 = (unsigned int )port1;
20042#line 3244
20043  udev = usb_alloc_dev(hdev, __cil_tmp88, __cil_tmp89);
20044  }
20045  {
20046#line 3245
20047  __cil_tmp90 = (struct usb_device *)0;
20048#line 3245
20049  __cil_tmp91 = (unsigned long )__cil_tmp90;
20050#line 3245
20051  __cil_tmp92 = (unsigned long )udev;
20052#line 3245
20053  if (__cil_tmp92 == __cil_tmp91) {
20054    {
20055#line 3246
20056    __cil_tmp93 = (struct device  const  *)hub_dev;
20057#line 3246
20058    dev_err(__cil_tmp93, "couldn\'t allocate port %d usb_device\n", port1);
20059    }
20060#line 3249
20061    goto done;
20062  } else {
20063
20064  }
20065  }
20066  {
20067#line 3252
20068  __cil_tmp94 = (enum usb_device_state )2;
20069#line 3252
20070  usb_set_device_state(udev, __cil_tmp94);
20071#line 3253
20072  __cil_tmp95 = hub->mA_per_port;
20073#line 3253
20074  udev->bus_mA = (unsigned short )__cil_tmp95;
20075#line 3254
20076  __cil_tmp96 = hdev->level;
20077#line 3254
20078  __cil_tmp97 = (unsigned int )__cil_tmp96;
20079#line 3254
20080  __cil_tmp98 = __cil_tmp97 + 1U;
20081#line 3254
20082  udev->level = (u8 )__cil_tmp98;
20083#line 3255
20084  tmp___4 = hub_is_wusb(hub);
20085#line 3255
20086  udev->wusb = (unsigned char )tmp___4;
20087#line 3258
20088  __cil_tmp99 = hub->hdev;
20089#line 3258
20090  tmp___5 = hub_is_superspeed(__cil_tmp99);
20091  }
20092#line 3258
20093  if (tmp___5 != 0) {
20094#line 3259
20095    udev->speed = (enum usb_device_speed )5;
20096  } else {
20097#line 3261
20098    udev->speed = (enum usb_device_speed )0;
20099  }
20100  {
20101#line 3263
20102  choose_devnum(udev);
20103  }
20104  {
20105#line 3264
20106  __cil_tmp100 = udev->devnum;
20107#line 3264
20108  if (__cil_tmp100 <= 0) {
20109#line 3265
20110    status = -107;
20111#line 3266
20112    goto loop;
20113  } else {
20114
20115  }
20116  }
20117  {
20118#line 3270
20119  status = hub_port_init(hub, udev, port1, i);
20120  }
20121#line 3271
20122  if (status < 0) {
20123#line 3272
20124    goto loop;
20125  } else {
20126
20127  }
20128  {
20129#line 3274
20130  usb_detect_quirks(udev);
20131  }
20132  {
20133#line 3275
20134  __cil_tmp101 = udev->quirks;
20135#line 3275
20136  __cil_tmp102 = __cil_tmp101 & 64U;
20137#line 3275
20138  if (__cil_tmp102 != 0U) {
20139    {
20140#line 3276
20141    msleep(1000U);
20142    }
20143  } else {
20144
20145  }
20146  }
20147  {
20148#line 3284
20149  __cil_tmp103 = udev->descriptor.bDeviceClass;
20150#line 3284
20151  __cil_tmp104 = (unsigned int )__cil_tmp103;
20152#line 3284
20153  if (__cil_tmp104 == 9U) {
20154    {
20155#line 3284
20156    __cil_tmp105 = udev->bus_mA;
20157#line 3284
20158    __cil_tmp106 = (unsigned int )__cil_tmp105;
20159#line 3284
20160    if (__cil_tmp106 <= 100U) {
20161      {
20162#line 3288
20163      __cil_tmp107 = (void *)(& devstat);
20164#line 3288
20165      status = usb_get_status(udev, 0, 0, __cil_tmp107);
20166      }
20167#line 3290
20168      if (status <= 1) {
20169        {
20170#line 3291
20171        __cil_tmp108 = & udev->dev;
20172#line 3291
20173        __cil_tmp109 = (struct device  const  *)__cil_tmp108;
20174#line 3291
20175        dev_printk("<7>", __cil_tmp109, "get status %d ?\n", status);
20176        }
20177#line 3292
20178        goto loop_disable;
20179      } else {
20180
20181      }
20182      {
20183#line 3295
20184      __cil_tmp110 = (int )devstat;
20185#line 3295
20186      __cil_tmp111 = __cil_tmp110 & 1;
20187#line 3295
20188      if (__cil_tmp111 == 0) {
20189        {
20190#line 3296
20191        __cil_tmp112 = & udev->dev;
20192#line 3296
20193        __cil_tmp113 = (struct device  const  *)__cil_tmp112;
20194#line 3296
20195        dev_err(__cil_tmp113, "can\'t connect bus-powered hub to this port\n");
20196        }
20197        {
20198#line 3299
20199        __cil_tmp114 = (unsigned char *)hub;
20200#line 3299
20201        __cil_tmp115 = __cil_tmp114 + 468UL;
20202#line 3299
20203        __cil_tmp116 = *__cil_tmp115;
20204#line 3299
20205        __cil_tmp117 = (unsigned int )__cil_tmp116;
20206#line 3299
20207        if (__cil_tmp117 != 0U) {
20208          {
20209#line 3300
20210          hub->indicator[port1 + -1] = (u8 )4U;
20211#line 3302
20212          __cil_tmp118 = & hub->leds;
20213#line 3302
20214          schedule_delayed_work(__cil_tmp118, 0UL);
20215          }
20216        } else {
20217
20218        }
20219        }
20220#line 3304
20221        status = -107;
20222#line 3305
20223        goto loop_disable;
20224      } else {
20225
20226      }
20227      }
20228    } else {
20229
20230    }
20231    }
20232  } else {
20233
20234  }
20235  }
20236  {
20237#line 3310
20238  __cil_tmp119 = udev->descriptor.bcdUSB;
20239#line 3310
20240  __cil_tmp120 = (unsigned int )__cil_tmp119;
20241#line 3310
20242  if (__cil_tmp120 > 511U) {
20243    {
20244#line 3310
20245    __cil_tmp121 = udev->speed;
20246#line 3310
20247    __cil_tmp122 = (unsigned int )__cil_tmp121;
20248#line 3310
20249    if (__cil_tmp122 == 2U) {
20250#line 3310
20251      if (highspeed_hubs != 0U) {
20252        {
20253#line 3313
20254        check_highspeed(hub, udev, port1);
20255        }
20256      } else {
20257
20258      }
20259    } else {
20260
20261    }
20262    }
20263  } else {
20264
20265  }
20266  }
20267  {
20268#line 3319
20269  status = 0;
20270#line 3325
20271  spin_lock_irq(& device_state_lock);
20272  }
20273  {
20274#line 3326
20275  __cil_tmp123 = hdev->state;
20276#line 3326
20277  __cil_tmp124 = (unsigned int )__cil_tmp123;
20278#line 3326
20279  if (__cil_tmp124 == 0U) {
20280#line 3327
20281    status = -107;
20282  } else {
20283#line 3329
20284    hdev->children[port1 + -1] = udev;
20285  }
20286  }
20287  {
20288#line 3330
20289  spin_unlock_irq(& device_state_lock);
20290  }
20291#line 3333
20292  if (status == 0) {
20293    {
20294#line 3334
20295    status = usb_new_device(udev);
20296    }
20297#line 3335
20298    if (status != 0) {
20299      {
20300#line 3336
20301      spin_lock_irq(& device_state_lock);
20302#line 3337
20303      hdev->children[port1 + -1] = (struct usb_device *)0;
20304#line 3338
20305      spin_unlock_irq(& device_state_lock);
20306      }
20307    } else {
20308
20309    }
20310  } else {
20311
20312  }
20313#line 3342
20314  if (status != 0) {
20315#line 3343
20316    goto loop_disable;
20317  } else {
20318
20319  }
20320  {
20321#line 3345
20322  tmp___6 = hub_power_remaining(hub);
20323#line 3345
20324  status = (int )tmp___6;
20325  }
20326#line 3346
20327  if (status != 0) {
20328    {
20329#line 3347
20330    __cil_tmp125 = (struct device  const  *)hub_dev;
20331#line 3347
20332    dev_printk("<7>", __cil_tmp125, "%dmA power budget left\n", status);
20333    }
20334  } else {
20335
20336  }
20337#line 3349
20338  return;
20339  loop_disable: 
20340  {
20341#line 3352
20342  hub_port_disable(hub, port1, 1);
20343  }
20344  loop: 
20345  {
20346#line 3354
20347  usb_ep0_reinit(udev);
20348#line 3355
20349  release_devnum(udev);
20350#line 3356
20351  hub_free_dev(udev);
20352#line 3357
20353  usb_put_dev(udev);
20354  }
20355#line 3358
20356  if (status == -107) {
20357#line 3359
20358    goto ldv_26292;
20359  } else
20360#line 3358
20361  if (status == -524) {
20362#line 3359
20363    goto ldv_26292;
20364  } else {
20365
20366  }
20367#line 3239
20368  i = i + 1;
20369  ldv_26294: ;
20370  {
20371#line 3239
20372  __cil_tmp126 = use_both_schemes + 1;
20373#line 3239
20374  __cil_tmp127 = __cil_tmp126 * 2;
20375#line 3239
20376  if (__cil_tmp127 > i) {
20377#line 3240
20378    goto ldv_26293;
20379  } else {
20380#line 3242
20381    goto ldv_26292;
20382  }
20383  }
20384  ldv_26292: ;
20385  {
20386#line 3361
20387  __cil_tmp128 = (struct usb_device *)0;
20388#line 3361
20389  __cil_tmp129 = (unsigned long )__cil_tmp128;
20390#line 3361
20391  __cil_tmp130 = hub->hdev;
20392#line 3361
20393  __cil_tmp131 = __cil_tmp130->parent;
20394#line 3361
20395  __cil_tmp132 = (unsigned long )__cil_tmp131;
20396#line 3361
20397  if (__cil_tmp132 != __cil_tmp129) {
20398    {
20399#line 3364
20400    __cil_tmp133 = (struct device  const  *)hub_dev;
20401#line 3364
20402    dev_err(__cil_tmp133, "unable to enumerate USB device on port %d\n", port1);
20403    }
20404  } else {
20405    {
20406#line 3361
20407    __cil_tmp134 = (int (* const  )(struct usb_hcd * , int  ))0;
20408#line 3361
20409    __cil_tmp135 = (unsigned long )__cil_tmp134;
20410#line 3361
20411    __cil_tmp136 = hcd->driver;
20412#line 3361
20413    __cil_tmp137 = __cil_tmp136->port_handed_over;
20414#line 3361
20415    __cil_tmp138 = (unsigned long )__cil_tmp137;
20416#line 3361
20417    if (__cil_tmp138 == __cil_tmp135) {
20418      {
20419#line 3364
20420      __cil_tmp139 = (struct device  const  *)hub_dev;
20421#line 3364
20422      dev_err(__cil_tmp139, "unable to enumerate USB device on port %d\n", port1);
20423      }
20424    } else {
20425      {
20426#line 3361
20427      __cil_tmp140 = hcd->driver;
20428#line 3361
20429      __cil_tmp141 = __cil_tmp140->port_handed_over;
20430#line 3361
20431      tmp___7 = (*__cil_tmp141)(hcd, port1);
20432      }
20433#line 3361
20434      if (tmp___7 == 0) {
20435        {
20436#line 3364
20437        __cil_tmp142 = (struct device  const  *)hub_dev;
20438#line 3364
20439        dev_err(__cil_tmp142, "unable to enumerate USB device on port %d\n", port1);
20440        }
20441      } else {
20442
20443      }
20444    }
20445    }
20446  }
20447  }
20448  done: 
20449  {
20450#line 3368
20451  hub_port_disable(hub, port1, 1);
20452  }
20453  {
20454#line 3369
20455  __cil_tmp143 = (void (* const  )(struct usb_hcd * , int  ))0;
20456#line 3369
20457  __cil_tmp144 = (unsigned long )__cil_tmp143;
20458#line 3369
20459  __cil_tmp145 = hcd->driver;
20460#line 3369
20461  __cil_tmp146 = __cil_tmp145->relinquish_port;
20462#line 3369
20463  __cil_tmp147 = (unsigned long )__cil_tmp146;
20464#line 3369
20465  if (__cil_tmp147 != __cil_tmp144) {
20466    {
20467#line 3369
20468    __cil_tmp148 = (struct usb_device *)0;
20469#line 3369
20470    __cil_tmp149 = (unsigned long )__cil_tmp148;
20471#line 3369
20472    __cil_tmp150 = hub->hdev;
20473#line 3369
20474    __cil_tmp151 = __cil_tmp150->parent;
20475#line 3369
20476    __cil_tmp152 = (unsigned long )__cil_tmp151;
20477#line 3369
20478    if (__cil_tmp152 == __cil_tmp149) {
20479      {
20480#line 3370
20481      __cil_tmp153 = hcd->driver;
20482#line 3370
20483      __cil_tmp154 = __cil_tmp153->relinquish_port;
20484#line 3370
20485      (*__cil_tmp154)(hcd, port1);
20486      }
20487    } else {
20488
20489    }
20490    }
20491  } else {
20492
20493  }
20494  }
20495#line 3371
20496  return;
20497}
20498}
20499#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"
20500static void hub_events(void) 
20501{ struct list_head *tmp ;
20502  struct usb_device *hdev ;
20503  struct usb_interface *intf ;
20504  struct usb_hub *hub ;
20505  struct device *hub_dev ;
20506  u16 hubstatus ;
20507  u16 hubchange ;
20508  u16 portstatus ;
20509  u16 portchange ;
20510  int i ;
20511  int ret ;
20512  int connect_change ;
20513  int tmp___0 ;
20514  struct list_head  const  *__mptr ;
20515  struct device  const  *__mptr___0 ;
20516  int tmp___1 ;
20517  long tmp___2 ;
20518  int tmp___3 ;
20519  int tmp___4 ;
20520  struct usb_device *udev ;
20521  u16 status ;
20522  u16 unused ;
20523  int tmp___5 ;
20524  int tmp___6 ;
20525  u16 status___0 ;
20526  u16 unused___0 ;
20527  int tmp___7 ;
20528  int tmp___8 ;
20529  struct list_head  const  *__cil_tmp29 ;
20530  struct usb_hub *__cil_tmp30 ;
20531  struct kref *__cil_tmp31 ;
20532  struct usb_interface *__cil_tmp32 ;
20533  struct usb_hub_descriptor *__cil_tmp33 ;
20534  unsigned long __cil_tmp34 ;
20535  struct usb_hub_descriptor *__cil_tmp35 ;
20536  unsigned long __cil_tmp36 ;
20537  struct usb_hub_descriptor *__cil_tmp37 ;
20538  __u8 __cil_tmp38 ;
20539  struct device  const  *__cil_tmp39 ;
20540  enum usb_device_state __cil_tmp40 ;
20541  unsigned int __cil_tmp41 ;
20542  unsigned long __cil_tmp42 ;
20543  unsigned short __cil_tmp43 ;
20544  int __cil_tmp44 ;
20545  unsigned long __cil_tmp45 ;
20546  unsigned short __cil_tmp46 ;
20547  int __cil_tmp47 ;
20548  struct device *__cil_tmp48 ;
20549  unsigned char *__cil_tmp49 ;
20550  unsigned char *__cil_tmp50 ;
20551  unsigned char __cil_tmp51 ;
20552  unsigned int __cil_tmp52 ;
20553  int __cil_tmp53 ;
20554  long __cil_tmp54 ;
20555  enum usb_device_state __cil_tmp55 ;
20556  unsigned int __cil_tmp56 ;
20557  enum hub_quiescing_type __cil_tmp57 ;
20558  struct device  const  *__cil_tmp58 ;
20559  unsigned char *__cil_tmp59 ;
20560  unsigned char *__cil_tmp60 ;
20561  unsigned char __cil_tmp61 ;
20562  unsigned int __cil_tmp62 ;
20563  int __cil_tmp63 ;
20564  struct device  const  *__cil_tmp64 ;
20565  int __cil_tmp65 ;
20566  struct device  const  *__cil_tmp66 ;
20567  unsigned long (*__cil_tmp67)[1U] ;
20568  unsigned long const volatile   *__cil_tmp68 ;
20569  unsigned long (*__cil_tmp69)[1U] ;
20570  unsigned long const volatile   *__cil_tmp70 ;
20571  unsigned long (*__cil_tmp71)[1U] ;
20572  unsigned long volatile   *__cil_tmp72 ;
20573  int __cil_tmp73 ;
20574  int __cil_tmp74 ;
20575  int __cil_tmp75 ;
20576  struct device  const  *__cil_tmp76 ;
20577  int __cil_tmp77 ;
20578  int __cil_tmp78 ;
20579  int __cil_tmp79 ;
20580  struct usb_device *__cil_tmp80 ;
20581  unsigned long __cil_tmp81 ;
20582  struct usb_device *__cil_tmp82 ;
20583  unsigned long __cil_tmp83 ;
20584  struct device  const  *__cil_tmp84 ;
20585  int __cil_tmp85 ;
20586  int __cil_tmp86 ;
20587  struct usb_device *__cil_tmp87 ;
20588  unsigned long __cil_tmp88 ;
20589  unsigned long __cil_tmp89 ;
20590  struct device *__cil_tmp90 ;
20591  struct usb_device *__cil_tmp91 ;
20592  struct device *__cil_tmp92 ;
20593  struct device  const  *__cil_tmp93 ;
20594  int __cil_tmp94 ;
20595  int __cil_tmp95 ;
20596  struct device  const  *__cil_tmp96 ;
20597  bool __cil_tmp97 ;
20598  int __cil_tmp98 ;
20599  int __cil_tmp99 ;
20600  struct device  const  *__cil_tmp100 ;
20601  int __cil_tmp101 ;
20602  int __cil_tmp102 ;
20603  struct device  const  *__cil_tmp103 ;
20604  int __cil_tmp104 ;
20605  int __cil_tmp105 ;
20606  struct usb_device *__cil_tmp106 ;
20607  struct device  const  *__cil_tmp107 ;
20608  int __cil_tmp108 ;
20609  int __cil_tmp109 ;
20610  struct usb_device *__cil_tmp110 ;
20611  int __cil_tmp111 ;
20612  int __cil_tmp112 ;
20613  struct device  const  *__cil_tmp113 ;
20614  struct usb_device *__cil_tmp114 ;
20615  struct usb_device *__cil_tmp115 ;
20616  int __cil_tmp116 ;
20617  int __cil_tmp117 ;
20618  struct device  const  *__cil_tmp118 ;
20619  int __cil_tmp119 ;
20620  u16 __cil_tmp120 ;
20621  int __cil_tmp121 ;
20622  u16 __cil_tmp122 ;
20623  struct usb_hub_descriptor *__cil_tmp123 ;
20624  __u8 __cil_tmp124 ;
20625  int __cil_tmp125 ;
20626  unsigned long (*__cil_tmp126)[1U] ;
20627  unsigned long volatile   *__cil_tmp127 ;
20628  struct device  const  *__cil_tmp128 ;
20629  int __cil_tmp129 ;
20630  struct device  const  *__cil_tmp130 ;
20631  int __cil_tmp131 ;
20632  int __cil_tmp132 ;
20633  int __cil_tmp133 ;
20634  struct device  const  *__cil_tmp134 ;
20635  bool __cil_tmp135 ;
20636  int __cil_tmp136 ;
20637  int __cil_tmp137 ;
20638  struct device  const  *__cil_tmp138 ;
20639  struct device *__cil_tmp139 ;
20640  struct kref *__cil_tmp140 ;
20641
20642  {
20643  ldv_26327: 
20644  {
20645#line 3396
20646  spin_lock_irq(& hub_event_lock);
20647#line 3397
20648  __cil_tmp29 = (struct list_head  const  *)(& hub_event_list);
20649#line 3397
20650  tmp___0 = list_empty(__cil_tmp29);
20651  }
20652#line 3397
20653  if (tmp___0 != 0) {
20654    {
20655#line 3398
20656    spin_unlock_irq(& hub_event_lock);
20657    }
20658#line 3399
20659    goto ldv_26310;
20660  } else {
20661
20662  }
20663  {
20664#line 3402
20665  tmp = hub_event_list.next;
20666#line 3403
20667  list_del_init(tmp);
20668#line 3405
20669  __mptr = (struct list_head  const  *)tmp;
20670#line 3405
20671  __cil_tmp30 = (struct usb_hub *)__mptr;
20672#line 3405
20673  hub = __cil_tmp30 + 1152921504606846752UL;
20674#line 3406
20675  __cil_tmp31 = & hub->kref;
20676#line 3406
20677  kref_get(__cil_tmp31);
20678#line 3407
20679  spin_unlock_irq(& hub_event_lock);
20680#line 3409
20681  hdev = hub->hdev;
20682#line 3410
20683  hub_dev = hub->intfdev;
20684#line 3411
20685  __mptr___0 = (struct device  const  *)hub_dev;
20686#line 3411
20687  __cil_tmp32 = (struct usb_interface *)__mptr___0;
20688#line 3411
20689  intf = __cil_tmp32 + 1152921504606846928UL;
20690  }
20691  {
20692#line 3412
20693  __cil_tmp33 = (struct usb_hub_descriptor *)0;
20694#line 3412
20695  __cil_tmp34 = (unsigned long )__cil_tmp33;
20696#line 3412
20697  __cil_tmp35 = hub->descriptor;
20698#line 3412
20699  __cil_tmp36 = (unsigned long )__cil_tmp35;
20700#line 3412
20701  if (__cil_tmp36 != __cil_tmp34) {
20702#line 3412
20703    __cil_tmp37 = hub->descriptor;
20704#line 3412
20705    __cil_tmp38 = __cil_tmp37->bNbrPorts;
20706#line 3412
20707    tmp___1 = (int )__cil_tmp38;
20708  } else {
20709#line 3412
20710    tmp___1 = 0;
20711  }
20712  }
20713  {
20714#line 3412
20715  __cil_tmp39 = (struct device  const  *)hub_dev;
20716#line 3412
20717  __cil_tmp40 = hdev->state;
20718#line 3412
20719  __cil_tmp41 = (unsigned int )__cil_tmp40;
20720#line 3412
20721  __cil_tmp42 = hub->change_bits[0];
20722#line 3412
20723  __cil_tmp43 = (unsigned short )__cil_tmp42;
20724#line 3412
20725  __cil_tmp44 = (int )__cil_tmp43;
20726#line 3412
20727  __cil_tmp45 = hub->event_bits[0];
20728#line 3412
20729  __cil_tmp46 = (unsigned short )__cil_tmp45;
20730#line 3412
20731  __cil_tmp47 = (int )__cil_tmp46;
20732#line 3412
20733  dev_printk("<7>", __cil_tmp39, "state %d ports %d chg %04x evt %04x\n", __cil_tmp41,
20734             tmp___1, __cil_tmp44, __cil_tmp47);
20735#line 3422
20736  __cil_tmp48 = & hdev->dev;
20737#line 3422
20738  device_lock(__cil_tmp48);
20739#line 3423
20740  __cil_tmp49 = (unsigned char *)hub;
20741#line 3423
20742  __cil_tmp50 = __cil_tmp49 + 468UL;
20743#line 3423
20744  __cil_tmp51 = *__cil_tmp50;
20745#line 3423
20746  __cil_tmp52 = (unsigned int )__cil_tmp51;
20747#line 3423
20748  __cil_tmp53 = __cil_tmp52 != 0U;
20749#line 3423
20750  __cil_tmp54 = (long )__cil_tmp53;
20751#line 3423
20752  tmp___2 = __builtin_expect(__cil_tmp54, 0L);
20753  }
20754#line 3423
20755  if (tmp___2 != 0L) {
20756#line 3424
20757    goto loop_disconnected;
20758  } else {
20759
20760  }
20761  {
20762#line 3427
20763  __cil_tmp55 = hdev->state;
20764#line 3427
20765  __cil_tmp56 = (unsigned int )__cil_tmp55;
20766#line 3427
20767  if (__cil_tmp56 == 0U) {
20768    {
20769#line 3428
20770    hub->error = -19;
20771#line 3429
20772    __cil_tmp57 = (enum hub_quiescing_type )0;
20773#line 3429
20774    hub_quiesce(hub, __cil_tmp57);
20775    }
20776#line 3430
20777    goto loop;
20778  } else {
20779
20780  }
20781  }
20782  {
20783#line 3434
20784  ret = usb_autopm_get_interface(intf);
20785  }
20786#line 3435
20787  if (ret != 0) {
20788    {
20789#line 3436
20790    __cil_tmp58 = (struct device  const  *)hub_dev;
20791#line 3436
20792    dev_printk("<7>", __cil_tmp58, "Can\'t autoresume: %d\n", ret);
20793    }
20794#line 3437
20795    goto loop;
20796  } else {
20797
20798  }
20799  {
20800#line 3441
20801  __cil_tmp59 = (unsigned char *)hub;
20802#line 3441
20803  __cil_tmp60 = __cil_tmp59 + 468UL;
20804#line 3441
20805  __cil_tmp61 = *__cil_tmp60;
20806#line 3441
20807  __cil_tmp62 = (unsigned int )__cil_tmp61;
20808#line 3441
20809  if (__cil_tmp62 != 0U) {
20810#line 3442
20811    goto loop_autopm;
20812  } else {
20813
20814  }
20815  }
20816  {
20817#line 3444
20818  __cil_tmp63 = hub->error;
20819#line 3444
20820  if (__cil_tmp63 != 0) {
20821    {
20822#line 3445
20823    __cil_tmp64 = (struct device  const  *)hub_dev;
20824#line 3445
20825    __cil_tmp65 = hub->error;
20826#line 3445
20827    dev_printk("<7>", __cil_tmp64, "resetting for error %d\n", __cil_tmp65);
20828#line 3448
20829    ret = usb_reset_device(hdev);
20830    }
20831#line 3449
20832    if (ret != 0) {
20833      {
20834#line 3450
20835      __cil_tmp66 = (struct device  const  *)hub_dev;
20836#line 3450
20837      dev_printk("<7>", __cil_tmp66, "error resetting hub: %d\n", ret);
20838      }
20839#line 3452
20840      goto loop_autopm;
20841    } else {
20842
20843    }
20844#line 3455
20845    hub->nerrors = 0;
20846#line 3456
20847    hub->error = 0;
20848  } else {
20849
20850  }
20851  }
20852#line 3460
20853  i = 1;
20854#line 3460
20855  goto ldv_26323;
20856  ldv_26322: 
20857  {
20858#line 3461
20859  __cil_tmp67 = & hub->busy_bits;
20860#line 3461
20861  __cil_tmp68 = (unsigned long const volatile   *)__cil_tmp67;
20862#line 3461
20863  tmp___3 = variable_test_bit(i, __cil_tmp68);
20864  }
20865#line 3461
20866  if (tmp___3 != 0) {
20867#line 3462
20868    goto ldv_26318;
20869  } else {
20870
20871  }
20872  {
20873#line 3463
20874  __cil_tmp69 = & hub->change_bits;
20875#line 3463
20876  __cil_tmp70 = (unsigned long const volatile   *)__cil_tmp69;
20877#line 3463
20878  connect_change = variable_test_bit(i, __cil_tmp70);
20879#line 3464
20880  __cil_tmp71 = & hub->event_bits;
20881#line 3464
20882  __cil_tmp72 = (unsigned long volatile   *)__cil_tmp71;
20883#line 3464
20884  tmp___4 = test_and_clear_bit(i, __cil_tmp72);
20885  }
20886#line 3464
20887  if (tmp___4 == 0) {
20888#line 3464
20889    if (connect_change == 0) {
20890#line 3466
20891      goto ldv_26318;
20892    } else {
20893
20894    }
20895  } else {
20896
20897  }
20898  {
20899#line 3468
20900  ret = hub_port_status(hub, i, & portstatus, & portchange);
20901  }
20902#line 3470
20903  if (ret < 0) {
20904#line 3471
20905    goto ldv_26318;
20906  } else {
20907
20908  }
20909  {
20910#line 3473
20911  __cil_tmp73 = (int )portchange;
20912#line 3473
20913  if (__cil_tmp73 & 1) {
20914    {
20915#line 3474
20916    clear_port_feature(hdev, i, 16);
20917#line 3476
20918    connect_change = 1;
20919    }
20920  } else {
20921
20922  }
20923  }
20924  {
20925#line 3479
20926  __cil_tmp74 = (int )portchange;
20927#line 3479
20928  __cil_tmp75 = __cil_tmp74 & 2;
20929#line 3479
20930  if (__cil_tmp75 != 0) {
20931#line 3480
20932    if (connect_change == 0) {
20933      {
20934#line 3481
20935      __cil_tmp76 = (struct device  const  *)hub_dev;
20936#line 3481
20937      __cil_tmp77 = (int )portstatus;
20938#line 3481
20939      dev_printk("<7>", __cil_tmp76, "port %d enable change, status %08x\n", i, __cil_tmp77);
20940      }
20941    } else {
20942
20943    }
20944    {
20945#line 3485
20946    clear_port_feature(hdev, i, 17);
20947    }
20948    {
20949#line 3494
20950    __cil_tmp78 = (int )portstatus;
20951#line 3494
20952    __cil_tmp79 = __cil_tmp78 & 2;
20953#line 3494
20954    if (__cil_tmp79 == 0) {
20955#line 3494
20956      if (connect_change == 0) {
20957        {
20958#line 3494
20959        __cil_tmp80 = (struct usb_device *)0;
20960#line 3494
20961        __cil_tmp81 = (unsigned long )__cil_tmp80;
20962#line 3494
20963        __cil_tmp82 = hdev->children[i + -1];
20964#line 3494
20965        __cil_tmp83 = (unsigned long )__cil_tmp82;
20966#line 3494
20967        if (__cil_tmp83 != __cil_tmp81) {
20968          {
20969#line 3497
20970          __cil_tmp84 = (struct device  const  *)hub_dev;
20971#line 3497
20972          dev_err(__cil_tmp84, "port %i disabled by hub (EMI?), re-enabling...\n",
20973                  i);
20974#line 3502
20975          connect_change = 1;
20976          }
20977        } else {
20978
20979        }
20980        }
20981      } else {
20982
20983      }
20984    } else {
20985
20986    }
20987    }
20988  } else {
20989
20990  }
20991  }
20992  {
20993#line 3506
20994  __cil_tmp85 = (int )portchange;
20995#line 3506
20996  __cil_tmp86 = __cil_tmp85 & 4;
20997#line 3506
20998  if (__cil_tmp86 != 0) {
20999    {
21000#line 3509
21001    clear_port_feature(hdev, i, 18);
21002#line 3511
21003    udev = hdev->children[i + -1];
21004    }
21005    {
21006#line 3512
21007    __cil_tmp87 = (struct usb_device *)0;
21008#line 3512
21009    __cil_tmp88 = (unsigned long )__cil_tmp87;
21010#line 3512
21011    __cil_tmp89 = (unsigned long )udev;
21012#line 3512
21013    if (__cil_tmp89 != __cil_tmp88) {
21014      {
21015#line 3514
21016      msleep(10U);
21017#line 3516
21018      __cil_tmp90 = & udev->dev;
21019#line 3516
21020      device_lock(__cil_tmp90);
21021#line 3517
21022      __cil_tmp91 = hdev->children[i + -1];
21023#line 3517
21024      ret = usb_remote_wakeup(__cil_tmp91);
21025#line 3519
21026      __cil_tmp92 = & udev->dev;
21027#line 3519
21028      device_unlock(__cil_tmp92);
21029      }
21030#line 3520
21031      if (ret < 0) {
21032#line 3521
21033        connect_change = 1;
21034      } else {
21035
21036      }
21037    } else {
21038      {
21039#line 3523
21040      ret = -19;
21041#line 3524
21042      hub_port_disable(hub, i, 1);
21043      }
21044    }
21045    }
21046    {
21047#line 3526
21048    __cil_tmp93 = (struct device  const  *)hub_dev;
21049#line 3526
21050    dev_printk("<7>", __cil_tmp93, "resume on port %d, status %d\n", i, ret);
21051    }
21052  } else {
21053
21054  }
21055  }
21056  {
21057#line 3531
21058  __cil_tmp94 = (int )portchange;
21059#line 3531
21060  __cil_tmp95 = __cil_tmp94 & 8;
21061#line 3531
21062  if (__cil_tmp95 != 0) {
21063    {
21064#line 3532
21065    status = (u16 )0U;
21066#line 3535
21067    __cil_tmp96 = (struct device  const  *)hub_dev;
21068#line 3535
21069    dev_printk("<7>", __cil_tmp96, "over-current change on port %d\n", i);
21070#line 3537
21071    clear_port_feature(hdev, i, 19);
21072#line 3539
21073    msleep(100U);
21074#line 3540
21075    __cil_tmp97 = (bool )1;
21076#line 3540
21077    hub_power_on(hub, __cil_tmp97);
21078#line 3541
21079    hub_port_status(hub, i, & status, & unused);
21080    }
21081    {
21082#line 3542
21083    __cil_tmp98 = (int )status;
21084#line 3542
21085    __cil_tmp99 = __cil_tmp98 & 8;
21086#line 3542
21087    if (__cil_tmp99 != 0) {
21088      {
21089#line 3543
21090      __cil_tmp100 = (struct device  const  *)hub_dev;
21091#line 3543
21092      dev_err(__cil_tmp100, "over-current condition on port %d\n", i);
21093      }
21094    } else {
21095
21096    }
21097    }
21098  } else {
21099
21100  }
21101  }
21102  {
21103#line 3547
21104  __cil_tmp101 = (int )portchange;
21105#line 3547
21106  __cil_tmp102 = __cil_tmp101 & 16;
21107#line 3547
21108  if (__cil_tmp102 != 0) {
21109    {
21110#line 3548
21111    __cil_tmp103 = (struct device  const  *)hub_dev;
21112#line 3548
21113    dev_printk("<7>", __cil_tmp103, "reset change on port %d\n", i);
21114#line 3551
21115    clear_port_feature(hdev, i, 20);
21116    }
21117  } else {
21118
21119  }
21120  }
21121  {
21122#line 3554
21123  __cil_tmp104 = (int )portchange;
21124#line 3554
21125  __cil_tmp105 = __cil_tmp104 & 32;
21126#line 3554
21127  if (__cil_tmp105 != 0) {
21128    {
21129#line 3554
21130    __cil_tmp106 = hub->hdev;
21131#line 3554
21132    tmp___5 = hub_is_superspeed(__cil_tmp106);
21133    }
21134#line 3554
21135    if (tmp___5 != 0) {
21136      {
21137#line 3556
21138      __cil_tmp107 = (struct device  const  *)hub_dev;
21139#line 3556
21140      dev_printk("<7>", __cil_tmp107, "warm reset change on port %d\n", i);
21141#line 3559
21142      clear_port_feature(hdev, i, 29);
21143      }
21144    } else {
21145
21146    }
21147  } else {
21148
21149  }
21150  }
21151  {
21152#line 3562
21153  __cil_tmp108 = (int )portchange;
21154#line 3562
21155  __cil_tmp109 = __cil_tmp108 & 64;
21156#line 3562
21157  if (__cil_tmp109 != 0) {
21158    {
21159#line 3563
21160    __cil_tmp110 = hub->hdev;
21161#line 3563
21162    clear_port_feature(__cil_tmp110, i, 25);
21163    }
21164  } else {
21165
21166  }
21167  }
21168  {
21169#line 3566
21170  __cil_tmp111 = (int )portchange;
21171#line 3566
21172  __cil_tmp112 = __cil_tmp111 & 128;
21173#line 3566
21174  if (__cil_tmp112 != 0) {
21175    {
21176#line 3567
21177    __cil_tmp113 = (struct device  const  *)hub_dev;
21178#line 3567
21179    dev_warn(__cil_tmp113, "config error on port %d\n", i);
21180#line 3570
21181    __cil_tmp114 = hub->hdev;
21182#line 3570
21183    clear_port_feature(__cil_tmp114, i, 26);
21184    }
21185  } else {
21186
21187  }
21188  }
21189  {
21190#line 3577
21191  __cil_tmp115 = hub->hdev;
21192#line 3577
21193  tmp___6 = hub_is_superspeed(__cil_tmp115);
21194  }
21195#line 3577
21196  if (tmp___6 != 0) {
21197    {
21198#line 3577
21199    __cil_tmp116 = (int )portstatus;
21200#line 3577
21201    __cil_tmp117 = __cil_tmp116 & 480;
21202#line 3577
21203    if (__cil_tmp117 == 192) {
21204      {
21205#line 3580
21206      __cil_tmp118 = (struct device  const  *)hub_dev;
21207#line 3580
21208      dev_printk("<7>", __cil_tmp118, "warm reset port %d\n", i);
21209#line 3581
21210      hub_port_warm_reset(hub, i);
21211      }
21212    } else {
21213
21214    }
21215    }
21216  } else {
21217
21218  }
21219#line 3584
21220  if (connect_change != 0) {
21221    {
21222#line 3585
21223    __cil_tmp119 = (int )portstatus;
21224#line 3585
21225    __cil_tmp120 = (u16 )__cil_tmp119;
21226#line 3585
21227    __cil_tmp121 = (int )portchange;
21228#line 3585
21229    __cil_tmp122 = (u16 )__cil_tmp121;
21230#line 3585
21231    hub_port_connect_change(hub, i, __cil_tmp120, __cil_tmp122);
21232    }
21233  } else {
21234
21235  }
21236  ldv_26318: 
21237#line 3460
21238  i = i + 1;
21239  ldv_26323: ;
21240  {
21241#line 3460
21242  __cil_tmp123 = hub->descriptor;
21243#line 3460
21244  __cil_tmp124 = __cil_tmp123->bNbrPorts;
21245#line 3460
21246  __cil_tmp125 = (int )__cil_tmp124;
21247#line 3460
21248  if (__cil_tmp125 >= i) {
21249#line 3461
21250    goto ldv_26322;
21251  } else {
21252#line 3463
21253    goto ldv_26324;
21254  }
21255  }
21256  ldv_26324: 
21257  {
21258#line 3590
21259  __cil_tmp126 = & hub->event_bits;
21260#line 3590
21261  __cil_tmp127 = (unsigned long volatile   *)__cil_tmp126;
21262#line 3590
21263  tmp___8 = test_and_clear_bit(0, __cil_tmp127);
21264  }
21265#line 3590
21266  if (tmp___8 == 0) {
21267
21268  } else {
21269    {
21270#line 3592
21271    tmp___7 = hub_hub_status(hub, & hubstatus, & hubchange);
21272    }
21273#line 3592
21274    if (tmp___7 < 0) {
21275      {
21276#line 3593
21277      __cil_tmp128 = (struct device  const  *)hub_dev;
21278#line 3593
21279      dev_err(__cil_tmp128, "get_hub_status failed\n");
21280      }
21281    } else {
21282      {
21283#line 3595
21284      __cil_tmp129 = (int )hubchange;
21285#line 3595
21286      if (__cil_tmp129 & 1) {
21287        {
21288#line 3596
21289        __cil_tmp130 = (struct device  const  *)hub_dev;
21290#line 3596
21291        dev_printk("<7>", __cil_tmp130, "power change\n");
21292#line 3597
21293        clear_hub_feature(hdev, 0);
21294        }
21295        {
21296#line 3598
21297        __cil_tmp131 = (int )hubstatus;
21298#line 3598
21299        if (__cil_tmp131 & 1) {
21300#line 3600
21301          hub->limited_power = (unsigned char)1;
21302        } else {
21303#line 3602
21304          hub->limited_power = (unsigned char)0;
21305        }
21306        }
21307      } else {
21308
21309      }
21310      }
21311      {
21312#line 3604
21313      __cil_tmp132 = (int )hubchange;
21314#line 3604
21315      __cil_tmp133 = __cil_tmp132 & 2;
21316#line 3604
21317      if (__cil_tmp133 != 0) {
21318        {
21319#line 3605
21320        status___0 = (u16 )0U;
21321#line 3608
21322        __cil_tmp134 = (struct device  const  *)hub_dev;
21323#line 3608
21324        dev_printk("<7>", __cil_tmp134, "over-current change\n");
21325#line 3609
21326        clear_hub_feature(hdev, 1);
21327#line 3610
21328        msleep(500U);
21329#line 3611
21330        __cil_tmp135 = (bool )1;
21331#line 3611
21332        hub_power_on(hub, __cil_tmp135);
21333#line 3612
21334        hub_hub_status(hub, & status___0, & unused___0);
21335        }
21336        {
21337#line 3613
21338        __cil_tmp136 = (int )status___0;
21339#line 3613
21340        __cil_tmp137 = __cil_tmp136 & 2;
21341#line 3613
21342        if (__cil_tmp137 != 0) {
21343          {
21344#line 3614
21345          __cil_tmp138 = (struct device  const  *)hub_dev;
21346#line 3614
21347          dev_err(__cil_tmp138, "over-current condition\n");
21348          }
21349        } else {
21350
21351        }
21352        }
21353      } else {
21354
21355      }
21356      }
21357    }
21358  }
21359  loop_autopm: 
21360  {
21361#line 3621
21362  usb_autopm_put_interface_no_suspend(intf);
21363  }
21364  loop: 
21365  {
21366#line 3626
21367  usb_autopm_put_interface(intf);
21368  }
21369  loop_disconnected: 
21370  {
21371#line 3628
21372  __cil_tmp139 = & hdev->dev;
21373#line 3628
21374  device_unlock(__cil_tmp139);
21375#line 3629
21376  __cil_tmp140 = & hub->kref;
21377#line 3629
21378  kref_put(__cil_tmp140, & hub_release);
21379  }
21380#line 3631
21381  goto ldv_26327;
21382  ldv_26310: ;
21383#line 3633
21384  return;
21385}
21386}
21387#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"
21388static int hub_thread(void *__unused ) 
21389{ int __retval ;
21390  int __ret ;
21391  wait_queue_t __wait ;
21392  struct task_struct *tmp ;
21393  int tmp___0 ;
21394  int tmp___1 ;
21395  struct task_struct *tmp___2 ;
21396  int tmp___3 ;
21397  struct task_struct *tmp___4 ;
21398  int tmp___5 ;
21399  int tmp___6 ;
21400  int tmp___7 ;
21401  struct task_struct *tmp___8 ;
21402  int tmp___9 ;
21403  int tmp___10 ;
21404  int tmp___11 ;
21405  struct task_struct *tmp___12 ;
21406  int tmp___13 ;
21407  int tmp___14 ;
21408  int tmp___15 ;
21409  int tmp___16 ;
21410  struct list_head  const  *__cil_tmp23 ;
21411  struct list_head  const  *__cil_tmp24 ;
21412  struct list_head  const  *__cil_tmp25 ;
21413  struct list_head  const  *__cil_tmp26 ;
21414
21415  {
21416  {
21417#line 3641
21418  set_freezable();
21419  }
21420  ldv_26341: 
21421  {
21422#line 3644
21423  hub_events();
21424  }
21425  ldv_26339: 
21426  {
21427#line 3645
21428  __ret = 0;
21429#line 3645
21430  __cil_tmp23 = (struct list_head  const  *)(& hub_event_list);
21431#line 3645
21432  tmp___6 = list_empty(__cil_tmp23);
21433  }
21434#line 3645
21435  if (tmp___6 != 0) {
21436    {
21437#line 3645
21438    tmp___7 = kthread_should_stop();
21439    }
21440#line 3645
21441    if (tmp___7 == 0) {
21442      {
21443#line 3645
21444      tmp___8 = get_current();
21445#line 3645
21446      tmp___9 = freezing(tmp___8);
21447      }
21448#line 3645
21449      if (tmp___9 == 0) {
21450        {
21451#line 3645
21452        tmp = get_current();
21453#line 3645
21454        __wait.flags = 0U;
21455#line 3645
21456        __wait.private = (void *)tmp;
21457#line 3645
21458        __wait.func = & autoremove_wake_function;
21459#line 3645
21460        __wait.task_list.next = & __wait.task_list;
21461#line 3645
21462        __wait.task_list.prev = & __wait.task_list;
21463        }
21464        ldv_26336: 
21465        {
21466#line 3645
21467        prepare_to_wait(& khubd_wait, & __wait, 1);
21468#line 3645
21469        __cil_tmp24 = (struct list_head  const  *)(& hub_event_list);
21470#line 3645
21471        tmp___0 = list_empty(__cil_tmp24);
21472        }
21473#line 3645
21474        if (tmp___0 == 0) {
21475#line 3645
21476          goto ldv_26334;
21477        } else {
21478          {
21479#line 3645
21480          tmp___1 = kthread_should_stop();
21481          }
21482#line 3645
21483          if (tmp___1 != 0) {
21484#line 3645
21485            goto ldv_26334;
21486          } else {
21487            {
21488#line 3645
21489            tmp___2 = get_current();
21490#line 3645
21491            tmp___3 = freezing(tmp___2);
21492            }
21493#line 3645
21494            if (tmp___3 != 0) {
21495#line 3645
21496              goto ldv_26334;
21497            } else {
21498
21499            }
21500          }
21501        }
21502        {
21503#line 3645
21504        tmp___4 = get_current();
21505#line 3645
21506        tmp___5 = signal_pending(tmp___4);
21507        }
21508#line 3645
21509        if (tmp___5 == 0) {
21510          {
21511#line 3645
21512          schedule();
21513          }
21514#line 3645
21515          goto ldv_26335;
21516        } else {
21517
21518        }
21519#line 3645
21520        __ret = -512;
21521#line 3645
21522        goto ldv_26334;
21523        ldv_26335: ;
21524#line 3645
21525        goto ldv_26336;
21526        ldv_26334: 
21527        {
21528#line 3645
21529        finish_wait(& khubd_wait, & __wait);
21530        }
21531      } else {
21532
21533      }
21534    } else {
21535
21536    }
21537  } else {
21538
21539  }
21540#line 3645
21541  __retval = __ret;
21542#line 3645
21543  if (__retval != 0) {
21544    {
21545#line 3645
21546    tmp___12 = get_current();
21547#line 3645
21548    tmp___13 = freezing(tmp___12);
21549    }
21550#line 3645
21551    if (tmp___13 == 0) {
21552#line 3645
21553      goto ldv_26338;
21554    } else {
21555#line 3645
21556      goto _L;
21557    }
21558  } else {
21559    _L: 
21560    {
21561#line 3645
21562    __cil_tmp25 = (struct list_head  const  *)(& hub_event_list);
21563#line 3645
21564    tmp___10 = list_empty(__cil_tmp25);
21565    }
21566#line 3645
21567    if (tmp___10 != 0) {
21568      {
21569#line 3645
21570      tmp___11 = kthread_should_stop();
21571      }
21572#line 3645
21573      if (tmp___11 == 0) {
21574#line 3645
21575        __retval = -512;
21576      } else {
21577
21578      }
21579    } else {
21580
21581    }
21582  }
21583  {
21584#line 3645
21585  tmp___14 = try_to_freeze();
21586  }
21587#line 3645
21588  if (tmp___14 != 0) {
21589#line 3646
21590    goto ldv_26339;
21591  } else {
21592#line 3648
21593    goto ldv_26338;
21594  }
21595  ldv_26338: 
21596  {
21597#line 3648
21598  tmp___15 = kthread_should_stop();
21599  }
21600#line 3648
21601  if (tmp___15 == 0) {
21602#line 3649
21603    goto ldv_26341;
21604  } else {
21605    {
21606#line 3648
21607    __cil_tmp26 = (struct list_head  const  *)(& hub_event_list);
21608#line 3648
21609    tmp___16 = list_empty(__cil_tmp26);
21610    }
21611#line 3648
21612    if (tmp___16 == 0) {
21613#line 3649
21614      goto ldv_26341;
21615    } else {
21616#line 3651
21617      goto ldv_26342;
21618    }
21619  }
21620  ldv_26342: 
21621  {
21622#line 3650
21623  printk("<7>%s: khubd exiting\n", usbcore_name);
21624  }
21625#line 3651
21626  return (0);
21627}
21628}
21629#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"
21630static struct usb_device_id  const  hub_id_table[3U]  = {      {(__u16 )16U, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
21631      (__u8 )9U, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
21632      (unsigned char)0, 0UL}, 
21633        {(__u16 )128U, (unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
21634      (unsigned char)0, (unsigned char)0, (unsigned char)0, (__u8 )9U, (unsigned char)0,
21635      (unsigned char)0, 0UL}, 
21636        {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
21637      (unsigned short)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
21638      (unsigned char)0, (unsigned char)0, 0UL}};
21639#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"
21640struct usb_device_id  const  __mod_usb_device_table  ;
21641#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"
21642static struct usb_driver hub_driver  = 
21643#line 3664
21644     {"hub", & hub_probe, & hub_disconnect, & hub_ioctl, & hub_suspend, & hub_resume,
21645    & hub_reset_resume, & hub_pre_reset, & hub_post_reset, (struct usb_device_id  const  *)(& hub_id_table),
21646    {{{{{0U}, 0U, 0U, (void *)0, {(struct lock_class_key *)0, {(struct lock_class *)0,
21647                                                               (struct lock_class *)0},
21648                                  (char const   *)0, 0, 0UL}}}}, {(struct list_head *)0,
21649                                                                  (struct list_head *)0}},
21650    {{(char const   *)0, (struct bus_type *)0, (struct module *)0, (char const   *)0,
21651      (_Bool)0, (struct of_device_id  const  *)0, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
21652      (void (*)(struct device * ))0, (int (*)(struct device * , pm_message_t  ))0,
21653      (int (*)(struct device * ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
21654      (struct driver_private *)0}, 0}, (unsigned char)0, (unsigned char)1, (unsigned char)0};
21655#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"
21656int usb_hub_init(void) 
21657{ int tmp ;
21658  struct task_struct *__k ;
21659  struct task_struct *tmp___0 ;
21660  long tmp___1 ;
21661  long tmp___2 ;
21662  void *__cil_tmp6 ;
21663  void const   *__cil_tmp7 ;
21664  void const   *__cil_tmp8 ;
21665
21666  {
21667  {
21668#line 3680
21669  tmp = usb_register(& hub_driver);
21670  }
21671#line 3680
21672  if (tmp < 0) {
21673    {
21674#line 3681
21675    printk("<3>%s: can\'t register hub driver\n", usbcore_name);
21676    }
21677#line 3683
21678    return (-1);
21679  } else {
21680
21681  }
21682  {
21683#line 3686
21684  __cil_tmp6 = (void *)0;
21685#line 3686
21686  tmp___0 = kthread_create_on_node(& hub_thread, __cil_tmp6, -1, "khubd");
21687#line 3686
21688  __k = tmp___0;
21689#line 3686
21690  __cil_tmp7 = (void const   *)__k;
21691#line 3686
21692  tmp___1 = IS_ERR(__cil_tmp7);
21693  }
21694#line 3686
21695  if (tmp___1 == 0L) {
21696    {
21697#line 3686
21698    wake_up_process(__k);
21699    }
21700  } else {
21701
21702  }
21703  {
21704#line 3686
21705  khubd_task = __k;
21706#line 3687
21707  __cil_tmp8 = (void const   *)khubd_task;
21708#line 3687
21709  tmp___2 = IS_ERR(__cil_tmp8);
21710  }
21711#line 3687
21712  if (tmp___2 == 0L) {
21713#line 3688
21714    return (0);
21715  } else {
21716
21717  }
21718  {
21719#line 3691
21720  usb_deregister(& hub_driver);
21721#line 3692
21722  printk("<3>%s: can\'t start khubd\n", usbcore_name);
21723  }
21724#line 3694
21725  return (-1);
21726}
21727}
21728#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"
21729void usb_hub_cleanup(void) 
21730{ 
21731
21732  {
21733  {
21734#line 3699
21735  kthread_stop(khubd_task);
21736#line 3708
21737  usb_deregister(& hub_driver);
21738  }
21739#line 3709
21740  return;
21741}
21742}
21743#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"
21744static int descriptors_changed(struct usb_device *udev , struct usb_device_descriptor *old_device_descriptor ) 
21745{ int changed ;
21746  unsigned int index ;
21747  unsigned int serial_len ;
21748  unsigned int len ;
21749  unsigned int old_length ;
21750  int length ;
21751  char *buf ;
21752  int tmp ;
21753  size_t tmp___0 ;
21754  unsigned int _max1 ;
21755  unsigned int _max2 ;
21756  unsigned int tmp___1 ;
21757  void *tmp___2 ;
21758  int tmp___3 ;
21759  int tmp___4 ;
21760  struct usb_device_descriptor *__cil_tmp18 ;
21761  void const   *__cil_tmp19 ;
21762  void const   *__cil_tmp20 ;
21763  char *__cil_tmp21 ;
21764  unsigned long __cil_tmp22 ;
21765  char *__cil_tmp23 ;
21766  unsigned long __cil_tmp24 ;
21767  char *__cil_tmp25 ;
21768  char const   *__cil_tmp26 ;
21769  unsigned int __cil_tmp27 ;
21770  unsigned long __cil_tmp28 ;
21771  struct usb_host_config *__cil_tmp29 ;
21772  struct usb_host_config *__cil_tmp30 ;
21773  __le16 __cil_tmp31 ;
21774  __u8 __cil_tmp32 ;
21775  unsigned int __cil_tmp33 ;
21776  size_t __cil_tmp34 ;
21777  char *__cil_tmp35 ;
21778  unsigned long __cil_tmp36 ;
21779  unsigned long __cil_tmp37 ;
21780  struct device *__cil_tmp38 ;
21781  struct device  const  *__cil_tmp39 ;
21782  unsigned long __cil_tmp40 ;
21783  struct usb_host_config *__cil_tmp41 ;
21784  struct usb_host_config *__cil_tmp42 ;
21785  __le16 __cil_tmp43 ;
21786  unsigned char __cil_tmp44 ;
21787  int __cil_tmp45 ;
21788  unsigned char __cil_tmp46 ;
21789  void *__cil_tmp47 ;
21790  int __cil_tmp48 ;
21791  unsigned int __cil_tmp49 ;
21792  struct device *__cil_tmp50 ;
21793  struct device  const  *__cil_tmp51 ;
21794  void const   *__cil_tmp52 ;
21795  unsigned long __cil_tmp53 ;
21796  char **__cil_tmp54 ;
21797  char **__cil_tmp55 ;
21798  char *__cil_tmp56 ;
21799  void const   *__cil_tmp57 ;
21800  size_t __cil_tmp58 ;
21801  struct device *__cil_tmp59 ;
21802  struct device  const  *__cil_tmp60 ;
21803  struct usb_config_descriptor *__cil_tmp61 ;
21804  __u8 __cil_tmp62 ;
21805  int __cil_tmp63 ;
21806  __u8 __cil_tmp64 ;
21807  unsigned int __cil_tmp65 ;
21808  __u8 __cil_tmp66 ;
21809  int __cil_tmp67 ;
21810  size_t __cil_tmp68 ;
21811  int __cil_tmp69 ;
21812  unsigned int __cil_tmp70 ;
21813  struct device *__cil_tmp71 ;
21814  struct device  const  *__cil_tmp72 ;
21815  void const   *__cil_tmp73 ;
21816  char *__cil_tmp74 ;
21817  void const   *__cil_tmp75 ;
21818  size_t __cil_tmp76 ;
21819  struct device *__cil_tmp77 ;
21820  struct device  const  *__cil_tmp78 ;
21821  void const   *__cil_tmp79 ;
21822
21823  {
21824  {
21825#line 3714
21826  changed = 0;
21827#line 3716
21828  serial_len = 0U;
21829#line 3722
21830  __cil_tmp18 = & udev->descriptor;
21831#line 3722
21832  __cil_tmp19 = (void const   *)__cil_tmp18;
21833#line 3722
21834  __cil_tmp20 = (void const   *)old_device_descriptor;
21835#line 3722
21836  tmp = memcmp(__cil_tmp19, __cil_tmp20, 18UL);
21837  }
21838#line 3722
21839  if (tmp != 0) {
21840#line 3724
21841    return (1);
21842  } else {
21843
21844  }
21845  {
21846#line 3732
21847  __cil_tmp21 = (char *)0;
21848#line 3732
21849  __cil_tmp22 = (unsigned long )__cil_tmp21;
21850#line 3732
21851  __cil_tmp23 = udev->serial;
21852#line 3732
21853  __cil_tmp24 = (unsigned long )__cil_tmp23;
21854#line 3732
21855  if (__cil_tmp24 != __cil_tmp22) {
21856    {
21857#line 3733
21858    __cil_tmp25 = udev->serial;
21859#line 3733
21860    __cil_tmp26 = (char const   *)__cil_tmp25;
21861#line 3733
21862    tmp___0 = strlen(__cil_tmp26);
21863#line 3733
21864    __cil_tmp27 = (unsigned int )tmp___0;
21865#line 3733
21866    serial_len = __cil_tmp27 + 1U;
21867    }
21868  } else {
21869
21870  }
21871  }
21872#line 3735
21873  len = serial_len;
21874#line 3736
21875  index = 0U;
21876#line 3736
21877  goto ldv_26369;
21878  ldv_26368: 
21879#line 3737
21880  __cil_tmp28 = (unsigned long )index;
21881#line 3737
21882  __cil_tmp29 = udev->config;
21883#line 3737
21884  __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
21885#line 3737
21886  __cil_tmp31 = __cil_tmp30->desc.wTotalLength;
21887#line 3737
21888  old_length = (unsigned int )__cil_tmp31;
21889#line 3738
21890  _max1 = len;
21891#line 3738
21892  _max2 = old_length;
21893#line 3738
21894  if (_max1 > _max2) {
21895#line 3738
21896    tmp___1 = _max1;
21897  } else {
21898#line 3738
21899    tmp___1 = _max2;
21900  }
21901#line 3738
21902  len = tmp___1;
21903#line 3736
21904  index = index + 1U;
21905  ldv_26369: ;
21906  {
21907#line 3736
21908  __cil_tmp32 = udev->descriptor.bNumConfigurations;
21909#line 3736
21910  __cil_tmp33 = (unsigned int )__cil_tmp32;
21911#line 3736
21912  if (__cil_tmp33 > index) {
21913#line 3737
21914    goto ldv_26368;
21915  } else {
21916#line 3739
21917    goto ldv_26370;
21918  }
21919  }
21920  ldv_26370: 
21921  {
21922#line 3741
21923  __cil_tmp34 = (size_t )len;
21924#line 3741
21925  tmp___2 = kmalloc(__cil_tmp34, 16U);
21926#line 3741
21927  buf = (char *)tmp___2;
21928  }
21929  {
21930#line 3742
21931  __cil_tmp35 = (char *)0;
21932#line 3742
21933  __cil_tmp36 = (unsigned long )__cil_tmp35;
21934#line 3742
21935  __cil_tmp37 = (unsigned long )buf;
21936#line 3742
21937  if (__cil_tmp37 == __cil_tmp36) {
21938    {
21939#line 3743
21940    __cil_tmp38 = & udev->dev;
21941#line 3743
21942    __cil_tmp39 = (struct device  const  *)__cil_tmp38;
21943#line 3743
21944    dev_err(__cil_tmp39, "no mem to re-read configs after reset\n");
21945    }
21946#line 3745
21947    return (1);
21948  } else {
21949
21950  }
21951  }
21952#line 3747
21953  index = 0U;
21954#line 3747
21955  goto ldv_26373;
21956  ldv_26372: 
21957  {
21958#line 3748
21959  __cil_tmp40 = (unsigned long )index;
21960#line 3748
21961  __cil_tmp41 = udev->config;
21962#line 3748
21963  __cil_tmp42 = __cil_tmp41 + __cil_tmp40;
21964#line 3748
21965  __cil_tmp43 = __cil_tmp42->desc.wTotalLength;
21966#line 3748
21967  old_length = (unsigned int )__cil_tmp43;
21968#line 3749
21969  __cil_tmp44 = (unsigned char )index;
21970#line 3749
21971  __cil_tmp45 = (int )__cil_tmp44;
21972#line 3749
21973  __cil_tmp46 = (unsigned char )__cil_tmp45;
21974#line 3749
21975  __cil_tmp47 = (void *)buf;
21976#line 3749
21977  __cil_tmp48 = (int )old_length;
21978#line 3749
21979  length = usb_get_descriptor(udev, (unsigned char)2, __cil_tmp46, __cil_tmp47, __cil_tmp48);
21980  }
21981  {
21982#line 3751
21983  __cil_tmp49 = (unsigned int )length;
21984#line 3751
21985  if (__cil_tmp49 != old_length) {
21986    {
21987#line 3752
21988    __cil_tmp50 = & udev->dev;
21989#line 3752
21990    __cil_tmp51 = (struct device  const  *)__cil_tmp50;
21991#line 3752
21992    dev_printk("<7>", __cil_tmp51, "config index %d, error %d\n", index, length);
21993#line 3754
21994    changed = 1;
21995    }
21996#line 3755
21997    goto ldv_26371;
21998  } else {
21999
22000  }
22001  }
22002  {
22003#line 3757
22004  __cil_tmp52 = (void const   *)buf;
22005#line 3757
22006  __cil_tmp53 = (unsigned long )index;
22007#line 3757
22008  __cil_tmp54 = udev->rawdescriptors;
22009#line 3757
22010  __cil_tmp55 = __cil_tmp54 + __cil_tmp53;
22011#line 3757
22012  __cil_tmp56 = *__cil_tmp55;
22013#line 3757
22014  __cil_tmp57 = (void const   *)__cil_tmp56;
22015#line 3757
22016  __cil_tmp58 = (size_t )old_length;
22017#line 3757
22018  tmp___3 = memcmp(__cil_tmp52, __cil_tmp57, __cil_tmp58);
22019  }
22020#line 3757
22021  if (tmp___3 != 0) {
22022    {
22023#line 3759
22024    __cil_tmp59 = & udev->dev;
22025#line 3759
22026    __cil_tmp60 = (struct device  const  *)__cil_tmp59;
22027#line 3759
22028    __cil_tmp61 = (struct usb_config_descriptor *)buf;
22029#line 3759
22030    __cil_tmp62 = __cil_tmp61->bConfigurationValue;
22031#line 3759
22032    __cil_tmp63 = (int )__cil_tmp62;
22033#line 3759
22034    dev_printk("<7>", __cil_tmp60, "config index %d changed (#%d)\n", index, __cil_tmp63);
22035#line 3763
22036    changed = 1;
22037    }
22038#line 3764
22039    goto ldv_26371;
22040  } else {
22041
22042  }
22043#line 3747
22044  index = index + 1U;
22045  ldv_26373: ;
22046  {
22047#line 3747
22048  __cil_tmp64 = udev->descriptor.bNumConfigurations;
22049#line 3747
22050  __cil_tmp65 = (unsigned int )__cil_tmp64;
22051#line 3747
22052  if (__cil_tmp65 > index) {
22053#line 3748
22054    goto ldv_26372;
22055  } else {
22056#line 3750
22057    goto ldv_26371;
22058  }
22059  }
22060  ldv_26371: ;
22061#line 3768
22062  if (changed == 0) {
22063#line 3768
22064    if (serial_len != 0U) {
22065      {
22066#line 3769
22067      __cil_tmp66 = udev->descriptor.iSerialNumber;
22068#line 3769
22069      __cil_tmp67 = (int )__cil_tmp66;
22070#line 3769
22071      __cil_tmp68 = (size_t )serial_len;
22072#line 3769
22073      length = usb_string(udev, __cil_tmp67, buf, __cil_tmp68);
22074      }
22075      {
22076#line 3771
22077      __cil_tmp69 = length + 1;
22078#line 3771
22079      __cil_tmp70 = (unsigned int )__cil_tmp69;
22080#line 3771
22081      if (__cil_tmp70 != serial_len) {
22082        {
22083#line 3772
22084        __cil_tmp71 = & udev->dev;
22085#line 3772
22086        __cil_tmp72 = (struct device  const  *)__cil_tmp71;
22087#line 3772
22088        dev_printk("<7>", __cil_tmp72, "serial string error %d\n", length);
22089#line 3774
22090        changed = 1;
22091        }
22092      } else {
22093        {
22094#line 3775
22095        __cil_tmp73 = (void const   *)buf;
22096#line 3775
22097        __cil_tmp74 = udev->serial;
22098#line 3775
22099        __cil_tmp75 = (void const   *)__cil_tmp74;
22100#line 3775
22101        __cil_tmp76 = (size_t )length;
22102#line 3775
22103        tmp___4 = memcmp(__cil_tmp73, __cil_tmp75, __cil_tmp76);
22104        }
22105#line 3775
22106        if (tmp___4 != 0) {
22107          {
22108#line 3776
22109          __cil_tmp77 = & udev->dev;
22110#line 3776
22111          __cil_tmp78 = (struct device  const  *)__cil_tmp77;
22112#line 3776
22113          dev_printk("<7>", __cil_tmp78, "serial string changed\n");
22114#line 3777
22115          changed = 1;
22116          }
22117        } else {
22118
22119        }
22120      }
22121      }
22122    } else {
22123
22124    }
22125  } else {
22126
22127  }
22128  {
22129#line 3781
22130  __cil_tmp79 = (void const   *)buf;
22131#line 3781
22132  kfree(__cil_tmp79);
22133  }
22134#line 3782
22135  return (changed);
22136}
22137}
22138#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"
22139static int usb_reset_and_verify_device(struct usb_device *udev ) 
22140{ struct usb_device *parent_hdev ;
22141  struct usb_hub *parent_hub ;
22142  struct usb_hcd *hcd ;
22143  struct usb_hcd *tmp ;
22144  struct usb_device_descriptor descriptor ;
22145  int i ;
22146  int ret ;
22147  int port1 ;
22148  int tmp___0 ;
22149  unsigned int tmp___1 ;
22150  struct usb_host_config *config ;
22151  struct usb_interface *intf ;
22152  struct usb_interface_descriptor *desc ;
22153  struct usb_bus *__cil_tmp15 ;
22154  u8 __cil_tmp16 ;
22155  enum usb_device_state __cil_tmp17 ;
22156  unsigned int __cil_tmp18 ;
22157  struct device *__cil_tmp19 ;
22158  struct device  const  *__cil_tmp20 ;
22159  enum usb_device_state __cil_tmp21 ;
22160  unsigned int __cil_tmp22 ;
22161  enum usb_device_state __cil_tmp23 ;
22162  unsigned int __cil_tmp24 ;
22163  struct device *__cil_tmp25 ;
22164  struct device  const  *__cil_tmp26 ;
22165  enum usb_device_state __cil_tmp27 ;
22166  unsigned int __cil_tmp28 ;
22167  struct usb_device *__cil_tmp29 ;
22168  unsigned long __cil_tmp30 ;
22169  unsigned long __cil_tmp31 ;
22170  struct device *__cil_tmp32 ;
22171  struct device  const  *__cil_tmp33 ;
22172  unsigned int __cil_tmp34 ;
22173  unsigned long (*__cil_tmp35)[1U] ;
22174  unsigned long volatile   *__cil_tmp36 ;
22175  int __cil_tmp37 ;
22176  int __cil_tmp38 ;
22177  unsigned long (*__cil_tmp39)[1U] ;
22178  unsigned long volatile   *__cil_tmp40 ;
22179  struct device *__cil_tmp41 ;
22180  struct device  const  *__cil_tmp42 ;
22181  struct usb_host_config *__cil_tmp43 ;
22182  unsigned long __cil_tmp44 ;
22183  struct usb_host_config *__cil_tmp45 ;
22184  unsigned long __cil_tmp46 ;
22185  struct mutex *__cil_tmp47 ;
22186  struct usb_host_config *__cil_tmp48 ;
22187  struct usb_host_interface *__cil_tmp49 ;
22188  struct usb_host_interface *__cil_tmp50 ;
22189  struct device *__cil_tmp51 ;
22190  struct device  const  *__cil_tmp52 ;
22191  struct mutex *__cil_tmp53 ;
22192  unsigned int __cil_tmp54 ;
22193  __u8 __cil_tmp55 ;
22194  __u8 __cil_tmp56 ;
22195  struct usb_host_config *__cil_tmp57 ;
22196  __u8 __cil_tmp58 ;
22197  int __cil_tmp59 ;
22198  __u16 __cil_tmp60 ;
22199  __u16 __cil_tmp61 ;
22200  void *__cil_tmp62 ;
22201  __u16 __cil_tmp63 ;
22202  struct device *__cil_tmp64 ;
22203  struct device  const  *__cil_tmp65 ;
22204  struct usb_host_config *__cil_tmp66 ;
22205  __u8 __cil_tmp67 ;
22206  int __cil_tmp68 ;
22207  struct mutex *__cil_tmp69 ;
22208  struct mutex *__cil_tmp70 ;
22209  enum usb_device_state __cil_tmp71 ;
22210  struct usb_host_interface *__cil_tmp72 ;
22211  __u8 __cil_tmp73 ;
22212  unsigned int __cil_tmp74 ;
22213  bool __cil_tmp75 ;
22214  bool __cil_tmp76 ;
22215  __u8 __cil_tmp77 ;
22216  int __cil_tmp78 ;
22217  __u8 __cil_tmp79 ;
22218  int __cil_tmp80 ;
22219  struct device *__cil_tmp81 ;
22220  struct device  const  *__cil_tmp82 ;
22221  __u8 __cil_tmp83 ;
22222  int __cil_tmp84 ;
22223  __u8 __cil_tmp85 ;
22224  int __cil_tmp86 ;
22225  struct usb_host_config *__cil_tmp87 ;
22226  __u8 __cil_tmp88 ;
22227  int __cil_tmp89 ;
22228
22229  {
22230  {
22231#line 3817
22232  parent_hdev = udev->parent;
22233#line 3819
22234  __cil_tmp15 = udev->bus;
22235#line 3819
22236  tmp = bus_to_hcd(__cil_tmp15);
22237#line 3819
22238  hcd = tmp;
22239#line 3820
22240  descriptor = udev->descriptor;
22241#line 3821
22242  ret = 0;
22243#line 3822
22244  __cil_tmp16 = udev->portnum;
22245#line 3822
22246  port1 = (int )__cil_tmp16;
22247  }
22248  {
22249#line 3824
22250  __cil_tmp17 = udev->state;
22251#line 3824
22252  __cil_tmp18 = (unsigned int )__cil_tmp17;
22253#line 3824
22254  if (__cil_tmp18 == 0U) {
22255    {
22256#line 3826
22257    __cil_tmp19 = & udev->dev;
22258#line 3826
22259    __cil_tmp20 = (struct device  const  *)__cil_tmp19;
22260#line 3826
22261    __cil_tmp21 = udev->state;
22262#line 3826
22263    __cil_tmp22 = (unsigned int )__cil_tmp21;
22264#line 3826
22265    dev_printk("<7>", __cil_tmp20, "device reset not allowed in state %d\n", __cil_tmp22);
22266    }
22267#line 3828
22268    return (-22);
22269  } else {
22270    {
22271#line 3824
22272    __cil_tmp23 = udev->state;
22273#line 3824
22274    __cil_tmp24 = (unsigned int )__cil_tmp23;
22275#line 3824
22276    if (__cil_tmp24 == 8U) {
22277      {
22278#line 3826
22279      __cil_tmp25 = & udev->dev;
22280#line 3826
22281      __cil_tmp26 = (struct device  const  *)__cil_tmp25;
22282#line 3826
22283      __cil_tmp27 = udev->state;
22284#line 3826
22285      __cil_tmp28 = (unsigned int )__cil_tmp27;
22286#line 3826
22287      dev_printk("<7>", __cil_tmp26, "device reset not allowed in state %d\n", __cil_tmp28);
22288      }
22289#line 3828
22290      return (-22);
22291    } else {
22292
22293    }
22294    }
22295  }
22296  }
22297  {
22298#line 3831
22299  __cil_tmp29 = (struct usb_device *)0;
22300#line 3831
22301  __cil_tmp30 = (unsigned long )__cil_tmp29;
22302#line 3831
22303  __cil_tmp31 = (unsigned long )parent_hdev;
22304#line 3831
22305  if (__cil_tmp31 == __cil_tmp30) {
22306    {
22307#line 3833
22308    __cil_tmp32 = & udev->dev;
22309#line 3833
22310    __cil_tmp33 = (struct device  const  *)__cil_tmp32;
22311#line 3833
22312    dev_printk("<7>", __cil_tmp33, "%s for root hub!\n", "usb_reset_and_verify_device");
22313    }
22314#line 3834
22315    return (-21);
22316  } else {
22317
22318  }
22319  }
22320  {
22321#line 3836
22322  parent_hub = hdev_to_hub(parent_hdev);
22323#line 3838
22324  __cil_tmp34 = (unsigned int )port1;
22325#line 3838
22326  __cil_tmp35 = & parent_hub->busy_bits;
22327#line 3838
22328  __cil_tmp36 = (unsigned long volatile   *)__cil_tmp35;
22329#line 3838
22330  set_bit(__cil_tmp34, __cil_tmp36);
22331#line 3839
22332  i = 0;
22333  }
22334#line 3839
22335  goto ldv_26387;
22336  ldv_26386: 
22337  {
22338#line 3843
22339  usb_ep0_reinit(udev);
22340#line 3844
22341  ret = hub_port_init(parent_hub, udev, port1, i);
22342  }
22343#line 3845
22344  if (ret >= 0) {
22345#line 3846
22346    goto ldv_26385;
22347  } else
22348#line 3845
22349  if (ret == -107) {
22350#line 3846
22351    goto ldv_26385;
22352  } else
22353#line 3845
22354  if (ret == -19) {
22355#line 3846
22356    goto ldv_26385;
22357  } else {
22358
22359  }
22360#line 3839
22361  i = i + 1;
22362  ldv_26387: ;
22363  {
22364#line 3839
22365  __cil_tmp37 = use_both_schemes + 1;
22366#line 3839
22367  __cil_tmp38 = __cil_tmp37 * 2;
22368#line 3839
22369  if (__cil_tmp38 > i) {
22370#line 3840
22371    goto ldv_26386;
22372  } else {
22373#line 3842
22374    goto ldv_26385;
22375  }
22376  }
22377  ldv_26385: 
22378  {
22379#line 3848
22380  __cil_tmp39 = & parent_hub->busy_bits;
22381#line 3848
22382  __cil_tmp40 = (unsigned long volatile   *)__cil_tmp39;
22383#line 3848
22384  clear_bit(port1, __cil_tmp40);
22385  }
22386#line 3850
22387  if (ret < 0) {
22388#line 3851
22389    goto re_enumerate;
22390  } else {
22391
22392  }
22393  {
22394#line 3854
22395  tmp___0 = descriptors_changed(udev, & descriptor);
22396  }
22397#line 3854
22398  if (tmp___0 != 0) {
22399    {
22400#line 3855
22401    __cil_tmp41 = & udev->dev;
22402#line 3855
22403    __cil_tmp42 = (struct device  const  *)__cil_tmp41;
22404#line 3855
22405    _dev_info(__cil_tmp42, "device firmware changed\n");
22406#line 3856
22407    udev->descriptor = descriptor;
22408    }
22409#line 3857
22410    goto re_enumerate;
22411  } else {
22412
22413  }
22414  {
22415#line 3861
22416  __cil_tmp43 = (struct usb_host_config *)0;
22417#line 3861
22418  __cil_tmp44 = (unsigned long )__cil_tmp43;
22419#line 3861
22420  __cil_tmp45 = udev->actconfig;
22421#line 3861
22422  __cil_tmp46 = (unsigned long )__cil_tmp45;
22423#line 3861
22424  if (__cil_tmp46 == __cil_tmp44) {
22425#line 3862
22426    goto done;
22427  } else {
22428
22429  }
22430  }
22431  {
22432#line 3864
22433  __cil_tmp47 = hcd->bandwidth_mutex;
22434#line 3864
22435  mutex_lock_nested(__cil_tmp47, 0U);
22436#line 3865
22437  __cil_tmp48 = udev->actconfig;
22438#line 3865
22439  __cil_tmp49 = (struct usb_host_interface *)0;
22440#line 3865
22441  __cil_tmp50 = (struct usb_host_interface *)0;
22442#line 3865
22443  ret = usb_hcd_alloc_bandwidth(udev, __cil_tmp48, __cil_tmp49, __cil_tmp50);
22444  }
22445#line 3866
22446  if (ret < 0) {
22447    {
22448#line 3867
22449    __cil_tmp51 = & udev->dev;
22450#line 3867
22451    __cil_tmp52 = (struct device  const  *)__cil_tmp51;
22452#line 3867
22453    dev_warn(__cil_tmp52, "Busted HC?  Not enough HCD resources for old configuration.\n");
22454#line 3870
22455    __cil_tmp53 = hcd->bandwidth_mutex;
22456#line 3870
22457    mutex_unlock(__cil_tmp53);
22458    }
22459#line 3871
22460    goto re_enumerate;
22461  } else {
22462
22463  }
22464  {
22465#line 3873
22466  tmp___1 = __create_pipe(udev, 0U);
22467#line 3873
22468  __cil_tmp54 = tmp___1 | 2147483648U;
22469#line 3873
22470  __cil_tmp55 = (__u8 )9;
22471#line 3873
22472  __cil_tmp56 = (__u8 )0;
22473#line 3873
22474  __cil_tmp57 = udev->actconfig;
22475#line 3873
22476  __cil_tmp58 = __cil_tmp57->desc.bConfigurationValue;
22477#line 3873
22478  __cil_tmp59 = (int )__cil_tmp58;
22479#line 3873
22480  __cil_tmp60 = (__u16 )__cil_tmp59;
22481#line 3873
22482  __cil_tmp61 = (__u16 )0;
22483#line 3873
22484  __cil_tmp62 = (void *)0;
22485#line 3873
22486  __cil_tmp63 = (__u16 )0;
22487#line 3873
22488  ret = usb_control_msg(udev, __cil_tmp54, __cil_tmp55, __cil_tmp56, __cil_tmp60,
22489                        __cil_tmp61, __cil_tmp62, __cil_tmp63, 5000);
22490  }
22491#line 3877
22492  if (ret < 0) {
22493    {
22494#line 3878
22495    __cil_tmp64 = & udev->dev;
22496#line 3878
22497    __cil_tmp65 = (struct device  const  *)__cil_tmp64;
22498#line 3878
22499    __cil_tmp66 = udev->actconfig;
22500#line 3878
22501    __cil_tmp67 = __cil_tmp66->desc.bConfigurationValue;
22502#line 3878
22503    __cil_tmp68 = (int )__cil_tmp67;
22504#line 3878
22505    dev_err(__cil_tmp65, "can\'t restore configuration #%d (error=%d)\n", __cil_tmp68,
22506            ret);
22507#line 3881
22508    __cil_tmp69 = hcd->bandwidth_mutex;
22509#line 3881
22510    mutex_unlock(__cil_tmp69);
22511    }
22512#line 3882
22513    goto re_enumerate;
22514  } else {
22515
22516  }
22517  {
22518#line 3884
22519  __cil_tmp70 = hcd->bandwidth_mutex;
22520#line 3884
22521  mutex_unlock(__cil_tmp70);
22522#line 3885
22523  __cil_tmp71 = (enum usb_device_state )7;
22524#line 3885
22525  usb_set_device_state(udev, __cil_tmp71);
22526#line 3893
22527  i = 0;
22528  }
22529#line 3893
22530  goto ldv_26394;
22531  ldv_26393: 
22532#line 3894
22533  config = udev->actconfig;
22534#line 3895
22535  intf = config->interface[i];
22536#line 3898
22537  __cil_tmp72 = intf->cur_altsetting;
22538#line 3898
22539  desc = & __cil_tmp72->desc;
22540  {
22541#line 3899
22542  __cil_tmp73 = desc->bAlternateSetting;
22543#line 3899
22544  __cil_tmp74 = (unsigned int )__cil_tmp73;
22545#line 3899
22546  if (__cil_tmp74 == 0U) {
22547    {
22548#line 3900
22549    __cil_tmp75 = (bool )1;
22550#line 3900
22551    usb_disable_interface(udev, intf, __cil_tmp75);
22552#line 3901
22553    __cil_tmp76 = (bool )1;
22554#line 3901
22555    usb_enable_interface(udev, intf, __cil_tmp76);
22556#line 3902
22557    ret = 0;
22558    }
22559  } else {
22560    {
22561#line 3908
22562    intf->resetting_device = (unsigned char)1;
22563#line 3909
22564    __cil_tmp77 = desc->bInterfaceNumber;
22565#line 3909
22566    __cil_tmp78 = (int )__cil_tmp77;
22567#line 3909
22568    __cil_tmp79 = desc->bAlternateSetting;
22569#line 3909
22570    __cil_tmp80 = (int )__cil_tmp79;
22571#line 3909
22572    ret = usb_set_interface(udev, __cil_tmp78, __cil_tmp80);
22573#line 3911
22574    intf->resetting_device = (unsigned char)0;
22575    }
22576  }
22577  }
22578#line 3913
22579  if (ret < 0) {
22580    {
22581#line 3914
22582    __cil_tmp81 = & udev->dev;
22583#line 3914
22584    __cil_tmp82 = (struct device  const  *)__cil_tmp81;
22585#line 3914
22586    __cil_tmp83 = desc->bInterfaceNumber;
22587#line 3914
22588    __cil_tmp84 = (int )__cil_tmp83;
22589#line 3914
22590    __cil_tmp85 = desc->bAlternateSetting;
22591#line 3914
22592    __cil_tmp86 = (int )__cil_tmp85;
22593#line 3914
22594    dev_err(__cil_tmp82, "failed to restore interface %d altsetting %d (error=%d)\n",
22595            __cil_tmp84, __cil_tmp86, ret);
22596    }
22597#line 3919
22598    goto re_enumerate;
22599  } else {
22600
22601  }
22602#line 3893
22603  i = i + 1;
22604  ldv_26394: ;
22605  {
22606#line 3893
22607  __cil_tmp87 = udev->actconfig;
22608#line 3893
22609  __cil_tmp88 = __cil_tmp87->desc.bNumInterfaces;
22610#line 3893
22611  __cil_tmp89 = (int )__cil_tmp88;
22612#line 3893
22613  if (__cil_tmp89 > i) {
22614#line 3894
22615    goto ldv_26393;
22616  } else {
22617#line 3896
22618    goto ldv_26395;
22619  }
22620  }
22621  ldv_26395: ;
22622  done: ;
22623#line 3924
22624  return (0);
22625  re_enumerate: 
22626  {
22627#line 3927
22628  hub_port_logical_disconnect(parent_hub, port1);
22629  }
22630#line 3928
22631  return (-19);
22632}
22633}
22634#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"
22635int usb_reset_device(struct usb_device *udev ) 
22636{ int ret ;
22637  int i ;
22638  struct usb_host_config *config ;
22639  struct usb_interface *cintf ;
22640  struct usb_driver *drv ;
22641  int unbind ;
22642  struct device_driver  const  *__mptr ;
22643  struct usb_interface *cintf___0 ;
22644  struct usb_driver *drv___0 ;
22645  int rebind ;
22646  struct device_driver  const  *__mptr___0 ;
22647  enum usb_device_state __cil_tmp13 ;
22648  unsigned int __cil_tmp14 ;
22649  struct device *__cil_tmp15 ;
22650  struct device  const  *__cil_tmp16 ;
22651  enum usb_device_state __cil_tmp17 ;
22652  unsigned int __cil_tmp18 ;
22653  enum usb_device_state __cil_tmp19 ;
22654  unsigned int __cil_tmp20 ;
22655  struct device *__cil_tmp21 ;
22656  struct device  const  *__cil_tmp22 ;
22657  enum usb_device_state __cil_tmp23 ;
22658  unsigned int __cil_tmp24 ;
22659  struct usb_host_config *__cil_tmp25 ;
22660  unsigned long __cil_tmp26 ;
22661  unsigned long __cil_tmp27 ;
22662  struct device_driver *__cil_tmp28 ;
22663  unsigned long __cil_tmp29 ;
22664  struct device_driver *__cil_tmp30 ;
22665  unsigned long __cil_tmp31 ;
22666  struct device_driver *__cil_tmp32 ;
22667  struct usb_driver *__cil_tmp33 ;
22668  int (*__cil_tmp34)(struct usb_interface * ) ;
22669  unsigned long __cil_tmp35 ;
22670  int (*__cil_tmp36)(struct usb_interface * ) ;
22671  unsigned long __cil_tmp37 ;
22672  int (*__cil_tmp38)(struct usb_interface * ) ;
22673  unsigned long __cil_tmp39 ;
22674  int (*__cil_tmp40)(struct usb_interface * ) ;
22675  unsigned long __cil_tmp41 ;
22676  int (*__cil_tmp42)(struct usb_interface * ) ;
22677  enum usb_interface_condition __cil_tmp43 ;
22678  unsigned int __cil_tmp44 ;
22679  __u8 __cil_tmp45 ;
22680  int __cil_tmp46 ;
22681  struct usb_host_config *__cil_tmp47 ;
22682  unsigned long __cil_tmp48 ;
22683  unsigned long __cil_tmp49 ;
22684  __u8 __cil_tmp50 ;
22685  int __cil_tmp51 ;
22686  unsigned char __cil_tmp52 ;
22687  struct device_driver *__cil_tmp53 ;
22688  unsigned long __cil_tmp54 ;
22689  struct device_driver *__cil_tmp55 ;
22690  unsigned long __cil_tmp56 ;
22691  struct device_driver *__cil_tmp57 ;
22692  struct usb_driver *__cil_tmp58 ;
22693  int (*__cil_tmp59)(struct usb_interface * ) ;
22694  unsigned long __cil_tmp60 ;
22695  int (*__cil_tmp61)(struct usb_interface * ) ;
22696  unsigned long __cil_tmp62 ;
22697  int (*__cil_tmp63)(struct usb_interface * ) ;
22698  enum usb_interface_condition __cil_tmp64 ;
22699  unsigned int __cil_tmp65 ;
22700
22701  {
22702#line 3955
22703  config = udev->actconfig;
22704  {
22705#line 3957
22706  __cil_tmp13 = udev->state;
22707#line 3957
22708  __cil_tmp14 = (unsigned int )__cil_tmp13;
22709#line 3957
22710  if (__cil_tmp14 == 0U) {
22711    {
22712#line 3959
22713    __cil_tmp15 = & udev->dev;
22714#line 3959
22715    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
22716#line 3959
22717    __cil_tmp17 = udev->state;
22718#line 3959
22719    __cil_tmp18 = (unsigned int )__cil_tmp17;
22720#line 3959
22721    dev_printk("<7>", __cil_tmp16, "device reset not allowed in state %d\n", __cil_tmp18);
22722    }
22723#line 3961
22724    return (-22);
22725  } else {
22726    {
22727#line 3957
22728    __cil_tmp19 = udev->state;
22729#line 3957
22730    __cil_tmp20 = (unsigned int )__cil_tmp19;
22731#line 3957
22732    if (__cil_tmp20 == 8U) {
22733      {
22734#line 3959
22735      __cil_tmp21 = & udev->dev;
22736#line 3959
22737      __cil_tmp22 = (struct device  const  *)__cil_tmp21;
22738#line 3959
22739      __cil_tmp23 = udev->state;
22740#line 3959
22741      __cil_tmp24 = (unsigned int )__cil_tmp23;
22742#line 3959
22743      dev_printk("<7>", __cil_tmp22, "device reset not allowed in state %d\n", __cil_tmp24);
22744      }
22745#line 3961
22746      return (-22);
22747    } else {
22748
22749    }
22750    }
22751  }
22752  }
22753  {
22754#line 3965
22755  usb_autoresume_device(udev);
22756  }
22757  {
22758#line 3967
22759  __cil_tmp25 = (struct usb_host_config *)0;
22760#line 3967
22761  __cil_tmp26 = (unsigned long )__cil_tmp25;
22762#line 3967
22763  __cil_tmp27 = (unsigned long )config;
22764#line 3967
22765  if (__cil_tmp27 != __cil_tmp26) {
22766#line 3968
22767    i = 0;
22768#line 3968
22769    goto ldv_26408;
22770    ldv_26407: 
22771#line 3969
22772    cintf = config->interface[i];
22773#line 3971
22774    unbind = 0;
22775    {
22776#line 3973
22777    __cil_tmp28 = (struct device_driver *)0;
22778#line 3973
22779    __cil_tmp29 = (unsigned long )__cil_tmp28;
22780#line 3973
22781    __cil_tmp30 = cintf->dev.driver;
22782#line 3973
22783    __cil_tmp31 = (unsigned long )__cil_tmp30;
22784#line 3973
22785    if (__cil_tmp31 != __cil_tmp29) {
22786#line 3974
22787      __cil_tmp32 = cintf->dev.driver;
22788#line 3974
22789      __mptr = (struct device_driver  const  *)__cil_tmp32;
22790#line 3974
22791      __cil_tmp33 = (struct usb_driver *)__mptr;
22792#line 3974
22793      drv = __cil_tmp33 + 1152921504606846808UL;
22794      {
22795#line 3975
22796      __cil_tmp34 = (int (*)(struct usb_interface * ))0;
22797#line 3975
22798      __cil_tmp35 = (unsigned long )__cil_tmp34;
22799#line 3975
22800      __cil_tmp36 = drv->pre_reset;
22801#line 3975
22802      __cil_tmp37 = (unsigned long )__cil_tmp36;
22803#line 3975
22804      if (__cil_tmp37 != __cil_tmp35) {
22805        {
22806#line 3975
22807        __cil_tmp38 = (int (*)(struct usb_interface * ))0;
22808#line 3975
22809        __cil_tmp39 = (unsigned long )__cil_tmp38;
22810#line 3975
22811        __cil_tmp40 = drv->post_reset;
22812#line 3975
22813        __cil_tmp41 = (unsigned long )__cil_tmp40;
22814#line 3975
22815        if (__cil_tmp41 != __cil_tmp39) {
22816          {
22817#line 3976
22818          __cil_tmp42 = drv->pre_reset;
22819#line 3976
22820          unbind = (*__cil_tmp42)(cintf);
22821          }
22822        } else {
22823#line 3975
22824          goto _L;
22825        }
22826        }
22827      } else {
22828        _L: 
22829        {
22830#line 3977
22831        __cil_tmp43 = cintf->condition;
22832#line 3977
22833        __cil_tmp44 = (unsigned int )__cil_tmp43;
22834#line 3977
22835        if (__cil_tmp44 == 2U) {
22836#line 3979
22837          unbind = 1;
22838        } else {
22839
22840        }
22841        }
22842      }
22843      }
22844#line 3980
22845      if (unbind != 0) {
22846        {
22847#line 3981
22848        usb_forced_unbind_intf(cintf);
22849        }
22850      } else {
22851
22852      }
22853    } else {
22854
22855    }
22856    }
22857#line 3968
22858    i = i + 1;
22859    ldv_26408: ;
22860    {
22861#line 3968
22862    __cil_tmp45 = config->desc.bNumInterfaces;
22863#line 3968
22864    __cil_tmp46 = (int )__cil_tmp45;
22865#line 3968
22866    if (__cil_tmp46 > i) {
22867#line 3969
22868      goto ldv_26407;
22869    } else {
22870#line 3971
22871      goto ldv_26409;
22872    }
22873    }
22874    ldv_26409: ;
22875  } else {
22876
22877  }
22878  }
22879  {
22880#line 3986
22881  ret = usb_reset_and_verify_device(udev);
22882  }
22883  {
22884#line 3988
22885  __cil_tmp47 = (struct usb_host_config *)0;
22886#line 3988
22887  __cil_tmp48 = (unsigned long )__cil_tmp47;
22888#line 3988
22889  __cil_tmp49 = (unsigned long )config;
22890#line 3988
22891  if (__cil_tmp49 != __cil_tmp48) {
22892#line 3989
22893    __cil_tmp50 = config->desc.bNumInterfaces;
22894#line 3989
22895    __cil_tmp51 = (int )__cil_tmp50;
22896#line 3989
22897    i = __cil_tmp51 + -1;
22898#line 3989
22899    goto ldv_26416;
22900    ldv_26415: 
22901#line 3990
22902    cintf___0 = config->interface[i];
22903#line 3992
22904    __cil_tmp52 = cintf___0->needs_binding;
22905#line 3992
22906    rebind = (int )__cil_tmp52;
22907#line 3994
22908    if (rebind == 0) {
22909      {
22910#line 3994
22911      __cil_tmp53 = (struct device_driver *)0;
22912#line 3994
22913      __cil_tmp54 = (unsigned long )__cil_tmp53;
22914#line 3994
22915      __cil_tmp55 = cintf___0->dev.driver;
22916#line 3994
22917      __cil_tmp56 = (unsigned long )__cil_tmp55;
22918#line 3994
22919      if (__cil_tmp56 != __cil_tmp54) {
22920#line 3995
22921        __cil_tmp57 = cintf___0->dev.driver;
22922#line 3995
22923        __mptr___0 = (struct device_driver  const  *)__cil_tmp57;
22924#line 3995
22925        __cil_tmp58 = (struct usb_driver *)__mptr___0;
22926#line 3995
22927        drv___0 = __cil_tmp58 + 1152921504606846808UL;
22928        {
22929#line 3996
22930        __cil_tmp59 = (int (*)(struct usb_interface * ))0;
22931#line 3996
22932        __cil_tmp60 = (unsigned long )__cil_tmp59;
22933#line 3996
22934        __cil_tmp61 = drv___0->post_reset;
22935#line 3996
22936        __cil_tmp62 = (unsigned long )__cil_tmp61;
22937#line 3996
22938        if (__cil_tmp62 != __cil_tmp60) {
22939          {
22940#line 3997
22941          __cil_tmp63 = drv___0->post_reset;
22942#line 3997
22943          rebind = (*__cil_tmp63)(cintf___0);
22944          }
22945        } else {
22946          {
22947#line 3998
22948          __cil_tmp64 = cintf___0->condition;
22949#line 3998
22950          __cil_tmp65 = (unsigned int )__cil_tmp64;
22951#line 3998
22952          if (__cil_tmp65 == 2U) {
22953#line 4000
22954            rebind = 1;
22955          } else {
22956
22957          }
22958          }
22959        }
22960        }
22961      } else {
22962
22963      }
22964      }
22965    } else {
22966
22967    }
22968#line 4002
22969    if (ret == 0) {
22970#line 4002
22971      if (rebind != 0) {
22972        {
22973#line 4003
22974        usb_rebind_intf(cintf___0);
22975        }
22976      } else {
22977
22978      }
22979    } else {
22980
22981    }
22982#line 3989
22983    i = i - 1;
22984    ldv_26416: ;
22985#line 3989
22986    if (i >= 0) {
22987#line 3990
22988      goto ldv_26415;
22989    } else {
22990#line 3992
22991      goto ldv_26417;
22992    }
22993    ldv_26417: ;
22994  } else {
22995
22996  }
22997  }
22998  {
22999#line 4007
23000  usb_autosuspend_device(udev);
23001  }
23002#line 4008
23003  return (ret);
23004}
23005}
23006#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"
23007void usb_queue_reset_device(struct usb_interface *iface ) 
23008{ struct work_struct *__cil_tmp2 ;
23009
23010  {
23011  {
23012#line 4051
23013  __cil_tmp2 = & iface->reset_ws;
23014#line 4051
23015  schedule_work(__cil_tmp2);
23016  }
23017#line 4052
23018  return;
23019}
23020}
23021#line 4074
23022extern void ldv_check_return_value(int  ) ;
23023#line 60 "include/linux/list.h"
23024__inline static void list_add(struct list_head *new , struct list_head *head ) 
23025{ struct list_head *__cil_tmp3 ;
23026
23027  {
23028  {
23029#line 62
23030  __cil_tmp3 = head->next;
23031#line 62
23032  __list_add(new, head, __cil_tmp3);
23033  }
23034#line 63
23035  return;
23036}
23037}
23038#line 47 "include/linux/byteorder/little_endian.h"
23039__inline static __u64 __le64_to_cpup(__le64 const   *p ) 
23040{ __le64 __cil_tmp2 ;
23041
23042  {
23043  {
23044#line 49
23045  __cil_tmp2 = *p;
23046#line 49
23047  return ((__u64 )__cil_tmp2);
23048  }
23049}
23050}
23051#line 125 "include/linux/kernel.h"
23052extern void __might_sleep(char const   * , int  , int  ) ;
23053#line 307
23054extern int sscanf(char const   * , char const   *  , ...) ;
23055#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"
23056extern unsigned long __phys_addr(unsigned long  ) ;
23057#line 349 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt_types.h"
23058extern struct pv_irq_ops pv_irq_ops ;
23059#line 55 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/string_64.h"
23060extern void *memset(void * , int  , size_t  ) ;
23061#line 851 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
23062__inline static unsigned long arch_local_save_flags(void) 
23063{ unsigned long __ret ;
23064  unsigned long __edi ;
23065  unsigned long __esi ;
23066  unsigned long __edx ;
23067  unsigned long __ecx ;
23068  unsigned long __eax ;
23069  long tmp ;
23070  void *__cil_tmp8 ;
23071  unsigned long __cil_tmp9 ;
23072  unsigned long __cil_tmp10 ;
23073  int __cil_tmp11 ;
23074  long __cil_tmp12 ;
23075
23076  {
23077  {
23078#line 853
23079  __edi = __edi;
23080#line 853
23081  __esi = __esi;
23082#line 853
23083  __edx = __edx;
23084#line 853
23085  __ecx = __ecx;
23086#line 853
23087  __eax = __eax;
23088#line 853
23089  __cil_tmp8 = (void *)0;
23090#line 853
23091  __cil_tmp9 = (unsigned long )__cil_tmp8;
23092#line 853
23093  __cil_tmp10 = (unsigned long )pv_irq_ops.save_fl.func;
23094#line 853
23095  __cil_tmp11 = __cil_tmp10 == __cil_tmp9;
23096#line 853
23097  __cil_tmp12 = (long )__cil_tmp11;
23098#line 853
23099  tmp = __builtin_expect(__cil_tmp12, 0L);
23100  }
23101#line 853
23102  if (tmp != 0L) {
23103#line 853
23104    __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"),
23105                         "i" (853), "i" (12UL));
23106    ldv_4705: ;
23107#line 853
23108    goto ldv_4705;
23109  } else {
23110
23111  }
23112#line 853
23113  __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),
23114                       [paravirt_opptr] "i" (& pv_irq_ops.save_fl.func), [paravirt_clobber] "i" (1): "memory",
23115                       "cc");
23116#line 853
23117  __ret = __eax;
23118#line 853
23119  return (__ret);
23120}
23121}
23122#line 856 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
23123__inline static void arch_local_irq_restore(unsigned long f ) 
23124{ unsigned long __edi ;
23125  unsigned long __esi ;
23126  unsigned long __edx ;
23127  unsigned long __ecx ;
23128  unsigned long __eax ;
23129  long tmp ;
23130  void *__cil_tmp8 ;
23131  unsigned long __cil_tmp9 ;
23132  unsigned long __cil_tmp10 ;
23133  int __cil_tmp11 ;
23134  long __cil_tmp12 ;
23135
23136  {
23137  {
23138#line 858
23139  __edi = __edi;
23140#line 858
23141  __esi = __esi;
23142#line 858
23143  __edx = __edx;
23144#line 858
23145  __ecx = __ecx;
23146#line 858
23147  __eax = __eax;
23148#line 858
23149  __cil_tmp8 = (void *)0;
23150#line 858
23151  __cil_tmp9 = (unsigned long )__cil_tmp8;
23152#line 858
23153  __cil_tmp10 = (unsigned long )pv_irq_ops.restore_fl.func;
23154#line 858
23155  __cil_tmp11 = __cil_tmp10 == __cil_tmp9;
23156#line 858
23157  __cil_tmp12 = (long )__cil_tmp11;
23158#line 858
23159  tmp = __builtin_expect(__cil_tmp12, 0L);
23160  }
23161#line 858
23162  if (tmp != 0L) {
23163#line 858
23164    __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"),
23165                         "i" (858), "i" (12UL));
23166    ldv_4715: ;
23167#line 858
23168    goto ldv_4715;
23169  } else {
23170
23171  }
23172#line 858
23173  __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),
23174                       [paravirt_opptr] "i" (& pv_irq_ops.restore_fl.func), [paravirt_clobber] "i" (1),
23175                       "D" (f): "memory", "cc");
23176#line 860
23177  return;
23178}
23179}
23180#line 861 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
23181__inline static void arch_local_irq_disable(void) 
23182{ unsigned long __edi ;
23183  unsigned long __esi ;
23184  unsigned long __edx ;
23185  unsigned long __ecx ;
23186  unsigned long __eax ;
23187  long tmp ;
23188  void *__cil_tmp7 ;
23189  unsigned long __cil_tmp8 ;
23190  unsigned long __cil_tmp9 ;
23191  int __cil_tmp10 ;
23192  long __cil_tmp11 ;
23193
23194  {
23195  {
23196#line 863
23197  __edi = __edi;
23198#line 863
23199  __esi = __esi;
23200#line 863
23201  __edx = __edx;
23202#line 863
23203  __ecx = __ecx;
23204#line 863
23205  __eax = __eax;
23206#line 863
23207  __cil_tmp7 = (void *)0;
23208#line 863
23209  __cil_tmp8 = (unsigned long )__cil_tmp7;
23210#line 863
23211  __cil_tmp9 = (unsigned long )pv_irq_ops.irq_disable.func;
23212#line 863
23213  __cil_tmp10 = __cil_tmp9 == __cil_tmp8;
23214#line 863
23215  __cil_tmp11 = (long )__cil_tmp10;
23216#line 863
23217  tmp = __builtin_expect(__cil_tmp11, 0L);
23218  }
23219#line 863
23220  if (tmp != 0L) {
23221#line 863
23222    __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"),
23223                         "i" (863), "i" (12UL));
23224    ldv_4724: ;
23225#line 863
23226    goto ldv_4724;
23227  } else {
23228
23229  }
23230#line 863
23231  __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),
23232                       [paravirt_opptr] "i" (& pv_irq_ops.irq_disable.func), [paravirt_clobber] "i" (1): "memory",
23233                       "cc");
23234#line 865
23235  return;
23236}
23237}
23238#line 871 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
23239__inline static unsigned long arch_local_irq_save(void) 
23240{ unsigned long f ;
23241
23242  {
23243  {
23244#line 875
23245  f = arch_local_save_flags();
23246#line 876
23247  arch_local_irq_disable();
23248  }
23249#line 877
23250  return (f);
23251}
23252}
23253#line 154 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/irqflags.h"
23254__inline static int arch_irqs_disabled_flags(unsigned long flags ) 
23255{ unsigned long __cil_tmp2 ;
23256
23257  {
23258  {
23259#line 156
23260  __cil_tmp2 = flags & 512UL;
23261#line 156
23262  return (__cil_tmp2 == 0UL);
23263  }
23264}
23265}
23266#line 20 "include/linux/irqflags.h"
23267extern void trace_hardirqs_on(void) ;
23268#line 21
23269extern void trace_hardirqs_off(void) ;
23270#line 23 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
23271__inline static int atomic_read(atomic_t const   *v ) 
23272{ int const   *__cil_tmp2 ;
23273  int volatile   *__cil_tmp3 ;
23274  int volatile   __cil_tmp4 ;
23275
23276  {
23277  {
23278#line 25
23279  __cil_tmp2 = & v->counter;
23280#line 25
23281  __cil_tmp3 = (int volatile   *)__cil_tmp2;
23282#line 25
23283  __cil_tmp4 = *__cil_tmp3;
23284#line 25
23285  return ((int )__cil_tmp4);
23286  }
23287}
23288}
23289#line 105 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
23290__inline static void atomic_dec(atomic_t *v ) 
23291{ 
23292
23293  {
23294#line 107
23295  __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; decl %0": "+m" (v->counter));
23296#line 109
23297  return;
23298}
23299}
23300#line 22 "include/linux/spinlock_api_smp.h"
23301extern void _raw_spin_lock(raw_spinlock_t * ) ;
23302#line 39
23303extern void _raw_spin_unlock(raw_spinlock_t * ) ;
23304#line 283 "include/linux/spinlock.h"
23305__inline static void spin_lock(spinlock_t *lock ) 
23306{ struct raw_spinlock *__cil_tmp2 ;
23307
23308  {
23309  {
23310#line 285
23311  __cil_tmp2 = & lock->ldv_6060.rlock;
23312#line 285
23313  _raw_spin_lock(__cil_tmp2);
23314  }
23315#line 286
23316  return;
23317}
23318}
23319#line 323 "include/linux/spinlock.h"
23320__inline static void spin_unlock(spinlock_t *lock ) 
23321{ struct raw_spinlock *__cil_tmp2 ;
23322
23323  {
23324  {
23325#line 325
23326  __cil_tmp2 = & lock->ldv_6060.rlock;
23327#line 325
23328  _raw_spin_unlock(__cil_tmp2);
23329  }
23330#line 326
23331  return;
23332}
23333}
23334#line 210 "include/linux/timer.h"
23335extern int del_timer(struct timer_list * ) ;
23336#line 211
23337extern int mod_timer(struct timer_list * , unsigned long  ) ;
23338#line 280
23339extern int del_timer_sync(struct timer_list * ) ;
23340#line 349 "include/linux/workqueue.h"
23341extern int queue_work(struct workqueue_struct * , struct work_struct * ) ;
23342#line 157 "include/linux/sysfs.h"
23343extern int sysfs_create_group(struct kobject * , struct attribute_group  const  * ) ;
23344#line 161
23345extern void sysfs_remove_group(struct kobject * , struct attribute_group  const  * ) ;
23346#line 80 "include/linux/kobject.h"
23347__inline static char const   *kobject_name(struct kobject  const  *kobj ) 
23348{ char const   *__cil_tmp2 ;
23349
23350  {
23351  {
23352#line 82
23353  __cil_tmp2 = kobj->name;
23354#line 82
23355  return ((char const   *)__cil_tmp2);
23356  }
23357}
23358}
23359#line 48 "include/linux/utsname.h"
23360extern struct uts_namespace init_uts_ns ;
23361#line 88 "include/linux/utsname.h"
23362__inline static struct new_utsname *init_utsname(void) 
23363{ 
23364
23365  {
23366#line 90
23367  return (& init_uts_ns.name);
23368}
23369}
23370#line 720 "include/linux/mm.h"
23371__inline static void *lowmem_page_address(struct page *page ) 
23372{ long __cil_tmp2 ;
23373  long __cil_tmp3 ;
23374  long __cil_tmp4 ;
23375  unsigned long long __cil_tmp5 ;
23376  unsigned long long __cil_tmp6 ;
23377  unsigned long __cil_tmp7 ;
23378  unsigned long __cil_tmp8 ;
23379
23380  {
23381  {
23382#line 722
23383  __cil_tmp2 = (long )page;
23384#line 722
23385  __cil_tmp3 = __cil_tmp2 + 24189255811072L;
23386#line 722
23387  __cil_tmp4 = __cil_tmp3 / 56L;
23388#line 722
23389  __cil_tmp5 = (unsigned long long )__cil_tmp4;
23390#line 722
23391  __cil_tmp6 = __cil_tmp5 << 12;
23392#line 722
23393  __cil_tmp7 = (unsigned long )__cil_tmp6;
23394#line 722
23395  __cil_tmp8 = __cil_tmp7 + 1152789563211513856UL;
23396#line 722
23397  return ((void *)__cil_tmp8);
23398  }
23399}
23400}
23401#line 65 "include/linux/pm_wakeup.h"
23402__inline static bool device_can_wakeup(struct device *dev ) 
23403{ unsigned char __cil_tmp2 ;
23404  int __cil_tmp3 ;
23405  int __cil_tmp4 ;
23406
23407  {
23408  {
23409#line 67
23410  __cil_tmp2 = dev->power.can_wakeup;
23411#line 67
23412  __cil_tmp3 = (int )__cil_tmp2;
23413#line 67
23414  __cil_tmp4 = __cil_tmp3 != 0;
23415#line 67
23416  return ((bool )__cil_tmp4);
23417  }
23418}
23419}
23420#line 70 "include/linux/pm_wakeup.h"
23421__inline static bool device_may_wakeup(struct device *dev ) 
23422{ int tmp ;
23423  unsigned char *__cil_tmp3 ;
23424  unsigned char *__cil_tmp4 ;
23425  unsigned char __cil_tmp5 ;
23426  unsigned int __cil_tmp6 ;
23427  struct wakeup_source *__cil_tmp7 ;
23428  unsigned long __cil_tmp8 ;
23429  struct wakeup_source *__cil_tmp9 ;
23430  unsigned long __cil_tmp10 ;
23431
23432  {
23433  {
23434#line 72
23435  __cil_tmp3 = (unsigned char *)dev;
23436#line 72
23437  __cil_tmp4 = __cil_tmp3 + 292UL;
23438#line 72
23439  __cil_tmp5 = *__cil_tmp4;
23440#line 72
23441  __cil_tmp6 = (unsigned int )__cil_tmp5;
23442#line 72
23443  if (__cil_tmp6 != 0U) {
23444    {
23445#line 72
23446    __cil_tmp7 = (struct wakeup_source *)0;
23447#line 72
23448    __cil_tmp8 = (unsigned long )__cil_tmp7;
23449#line 72
23450    __cil_tmp9 = dev->power.wakeup;
23451#line 72
23452    __cil_tmp10 = (unsigned long )__cil_tmp9;
23453#line 72
23454    if (__cil_tmp10 != __cil_tmp8) {
23455#line 72
23456      tmp = 1;
23457    } else {
23458#line 72
23459      tmp = 0;
23460    }
23461    }
23462  } else {
23463#line 72
23464    tmp = 0;
23465  }
23466  }
23467#line 72
23468  return ((bool )tmp);
23469}
23470}
23471#line 86
23472extern int device_set_wakeup_enable(struct device * , bool  ) ;
23473#line 608 "include/linux/device.h"
23474__inline static char const   *dev_name(struct device  const  *dev ) 
23475{ char const   *tmp ;
23476  char const   *__cil_tmp3 ;
23477  unsigned long __cil_tmp4 ;
23478  char const   *__cil_tmp5 ;
23479  unsigned long __cil_tmp6 ;
23480  char const   *__cil_tmp7 ;
23481  struct kobject  const  *__cil_tmp8 ;
23482
23483  {
23484  {
23485#line 611
23486  __cil_tmp3 = (char const   * const  )0;
23487#line 611
23488  __cil_tmp4 = (unsigned long )__cil_tmp3;
23489#line 611
23490  __cil_tmp5 = dev->init_name;
23491#line 611
23492  __cil_tmp6 = (unsigned long )__cil_tmp5;
23493#line 611
23494  if (__cil_tmp6 != __cil_tmp4) {
23495    {
23496#line 612
23497    __cil_tmp7 = dev->init_name;
23498#line 612
23499    return ((char const   *)__cil_tmp7);
23500    }
23501  } else {
23502
23503  }
23504  }
23505  {
23506#line 614
23507  __cil_tmp8 = & dev->kobj;
23508#line 614
23509  tmp = kobject_name(__cil_tmp8);
23510  }
23511#line 614
23512  return (tmp);
23513}
23514}
23515#line 93 "include/linux/scatterlist.h"
23516__inline static struct page *sg_page(struct scatterlist *sg ) 
23517{ long tmp ;
23518  long tmp___0 ;
23519  unsigned long __cil_tmp4 ;
23520  int __cil_tmp5 ;
23521  long __cil_tmp6 ;
23522  unsigned long __cil_tmp7 ;
23523  int __cil_tmp8 ;
23524  long __cil_tmp9 ;
23525  long __cil_tmp10 ;
23526  unsigned long __cil_tmp11 ;
23527  unsigned long __cil_tmp12 ;
23528
23529  {
23530  {
23531#line 96
23532  __cil_tmp4 = sg->sg_magic;
23533#line 96
23534  __cil_tmp5 = __cil_tmp4 != 2271560481UL;
23535#line 96
23536  __cil_tmp6 = (long )__cil_tmp5;
23537#line 96
23538  tmp = __builtin_expect(__cil_tmp6, 0L);
23539  }
23540#line 96
23541  if (tmp != 0L) {
23542#line 96
23543    __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"),
23544                         "i" (96), "i" (12UL));
23545    ldv_20377: ;
23546#line 96
23547    goto ldv_20377;
23548  } else {
23549
23550  }
23551  {
23552#line 97
23553  __cil_tmp7 = sg->page_link;
23554#line 97
23555  __cil_tmp8 = (int )__cil_tmp7;
23556#line 97
23557  __cil_tmp9 = (long )__cil_tmp8;
23558#line 97
23559  __cil_tmp10 = __cil_tmp9 & 1L;
23560#line 97
23561  tmp___0 = __builtin_expect(__cil_tmp10, 0L);
23562  }
23563#line 97
23564  if (tmp___0 != 0L) {
23565#line 97
23566    __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"),
23567                         "i" (97), "i" (12UL));
23568    ldv_20378: ;
23569#line 97
23570    goto ldv_20378;
23571  } else {
23572
23573  }
23574  {
23575#line 99
23576  __cil_tmp11 = sg->page_link;
23577#line 99
23578  __cil_tmp12 = __cil_tmp11 & 1152921504606846972UL;
23579#line 99
23580  return ((struct page *)__cil_tmp12);
23581  }
23582}
23583}
23584#line 197 "include/linux/scatterlist.h"
23585__inline static void *sg_virt(struct scatterlist *sg ) 
23586{ struct page *tmp ;
23587  void *tmp___0 ;
23588  unsigned int __cil_tmp4 ;
23589  unsigned long __cil_tmp5 ;
23590
23591  {
23592  {
23593#line 199
23594  tmp = sg_page(sg);
23595#line 199
23596  tmp___0 = lowmem_page_address(tmp);
23597  }
23598  {
23599#line 199
23600  __cil_tmp4 = sg->offset;
23601#line 199
23602  __cil_tmp5 = (unsigned long )__cil_tmp4;
23603#line 199
23604  return (tmp___0 + __cil_tmp5);
23605  }
23606}
23607}
23608#line 202
23609extern struct scatterlist *sg_next(struct scatterlist * ) ;
23610#line 80 "include/linux/dma-mapping.h"
23611__inline static int valid_dma_direction(int dma_direction ) 
23612{ int tmp ;
23613
23614  {
23615#line 82
23616  if (dma_direction == 0) {
23617#line 82
23618    tmp = 1;
23619  } else
23620#line 82
23621  if (dma_direction == 1) {
23622#line 82
23623    tmp = 1;
23624  } else
23625#line 82
23626  if (dma_direction == 2) {
23627#line 82
23628    tmp = 1;
23629  } else {
23630#line 82
23631    tmp = 0;
23632  }
23633#line 82
23634  return (tmp);
23635}
23636}
23637#line 131 "include/linux/kmemcheck.h"
23638__inline static void kmemcheck_mark_initialized(void *address , unsigned int n ) 
23639{ 
23640
23641  {
23642#line 133
23643  return;
23644}
23645}
23646#line 37 "include/linux/dma-debug.h"
23647extern void debug_dma_map_page(struct device * , struct page * , size_t  , size_t  ,
23648                               int  , dma_addr_t  , bool  ) ;
23649#line 42
23650extern void debug_dma_unmap_page(struct device * , dma_addr_t  , size_t  , int  ,
23651                                 bool  ) ;
23652#line 45
23653extern void debug_dma_map_sg(struct device * , struct scatterlist * , int  , int  ,
23654                             int  ) ;
23655#line 48
23656extern void debug_dma_unmap_sg(struct device * , struct scatterlist * , int  , int  ) ;
23657#line 29 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
23658extern struct dma_map_ops *dma_ops ;
23659#line 31 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
23660__inline static struct dma_map_ops *get_dma_ops(struct device *dev ) 
23661{ long tmp ;
23662  struct device *__cil_tmp3 ;
23663  unsigned long __cil_tmp4 ;
23664  unsigned long __cil_tmp5 ;
23665  int __cil_tmp6 ;
23666  long __cil_tmp7 ;
23667  struct dma_map_ops *__cil_tmp8 ;
23668  unsigned long __cil_tmp9 ;
23669  struct dma_map_ops *__cil_tmp10 ;
23670  unsigned long __cil_tmp11 ;
23671
23672  {
23673  {
23674#line 36
23675  __cil_tmp3 = (struct device *)0;
23676#line 36
23677  __cil_tmp4 = (unsigned long )__cil_tmp3;
23678#line 36
23679  __cil_tmp5 = (unsigned long )dev;
23680#line 36
23681  __cil_tmp6 = __cil_tmp5 == __cil_tmp4;
23682#line 36
23683  __cil_tmp7 = (long )__cil_tmp6;
23684#line 36
23685  tmp = __builtin_expect(__cil_tmp7, 0L);
23686  }
23687#line 36
23688  if (tmp != 0L) {
23689#line 37
23690    return (dma_ops);
23691  } else {
23692    {
23693#line 36
23694    __cil_tmp8 = (struct dma_map_ops *)0;
23695#line 36
23696    __cil_tmp9 = (unsigned long )__cil_tmp8;
23697#line 36
23698    __cil_tmp10 = dev->archdata.dma_ops;
23699#line 36
23700    __cil_tmp11 = (unsigned long )__cil_tmp10;
23701#line 36
23702    if (__cil_tmp11 == __cil_tmp9) {
23703#line 37
23704      return (dma_ops);
23705    } else {
23706#line 39
23707      return (dev->archdata.dma_ops);
23708    }
23709    }
23710  }
23711}
23712}
23713#line 9 "include/asm-generic/dma-mapping-common.h"
23714__inline static dma_addr_t dma_map_single_attrs(struct device *dev , void *ptr , size_t size ,
23715                                                enum dma_data_direction dir , struct dma_attrs *attrs ) 
23716{ struct dma_map_ops *ops ;
23717  struct dma_map_ops *tmp ;
23718  dma_addr_t addr ;
23719  int tmp___0 ;
23720  long tmp___1 ;
23721  unsigned long tmp___2 ;
23722  unsigned long tmp___3 ;
23723  unsigned int __cil_tmp13 ;
23724  int __cil_tmp14 ;
23725  int __cil_tmp15 ;
23726  long __cil_tmp16 ;
23727  unsigned long __cil_tmp17 ;
23728  dma_addr_t (*__cil_tmp18)(struct device * , struct page * , unsigned long  , size_t  ,
23729                            enum dma_data_direction  , struct dma_attrs * ) ;
23730  unsigned long __cil_tmp19 ;
23731  unsigned long __cil_tmp20 ;
23732  struct page *__cil_tmp21 ;
23733  unsigned long __cil_tmp22 ;
23734  unsigned long __cil_tmp23 ;
23735  unsigned long __cil_tmp24 ;
23736  unsigned long __cil_tmp25 ;
23737  unsigned long __cil_tmp26 ;
23738  struct page *__cil_tmp27 ;
23739  unsigned long __cil_tmp28 ;
23740  unsigned long __cil_tmp29 ;
23741  int __cil_tmp30 ;
23742  bool __cil_tmp31 ;
23743
23744  {
23745  {
23746#line 14
23747  tmp = get_dma_ops(dev);
23748#line 14
23749  ops = tmp;
23750#line 17
23751  __cil_tmp13 = (unsigned int )size;
23752#line 17
23753  kmemcheck_mark_initialized(ptr, __cil_tmp13);
23754#line 18
23755  __cil_tmp14 = (int )dir;
23756#line 18
23757  tmp___0 = valid_dma_direction(__cil_tmp14);
23758#line 18
23759  __cil_tmp15 = tmp___0 == 0;
23760#line 18
23761  __cil_tmp16 = (long )__cil_tmp15;
23762#line 18
23763  tmp___1 = __builtin_expect(__cil_tmp16, 0L);
23764  }
23765#line 18
23766  if (tmp___1 != 0L) {
23767#line 18
23768    __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"),
23769                         "i" (18), "i" (12UL));
23770    ldv_20812: ;
23771#line 18
23772    goto ldv_20812;
23773  } else {
23774
23775  }
23776  {
23777#line 19
23778  __cil_tmp17 = (unsigned long )ptr;
23779#line 19
23780  tmp___2 = __phys_addr(__cil_tmp17);
23781#line 19
23782  __cil_tmp18 = ops->map_page;
23783#line 19
23784  __cil_tmp19 = tmp___2 >> 12;
23785#line 19
23786  __cil_tmp20 = 1152897315351035904UL + __cil_tmp19;
23787#line 19
23788  __cil_tmp21 = (struct page *)__cil_tmp20;
23789#line 19
23790  __cil_tmp22 = (unsigned long )ptr;
23791#line 19
23792  __cil_tmp23 = __cil_tmp22 & 4095UL;
23793#line 19
23794  addr = (*__cil_tmp18)(dev, __cil_tmp21, __cil_tmp23, size, dir, attrs);
23795#line 22
23796  __cil_tmp24 = (unsigned long )ptr;
23797#line 22
23798  tmp___3 = __phys_addr(__cil_tmp24);
23799#line 22
23800  __cil_tmp25 = tmp___3 >> 12;
23801#line 22
23802  __cil_tmp26 = 1152897315351035904UL + __cil_tmp25;
23803#line 22
23804  __cil_tmp27 = (struct page *)__cil_tmp26;
23805#line 22
23806  __cil_tmp28 = (unsigned long )ptr;
23807#line 22
23808  __cil_tmp29 = __cil_tmp28 & 4095UL;
23809#line 22
23810  __cil_tmp30 = (int )dir;
23811#line 22
23812  __cil_tmp31 = (bool )1;
23813#line 22
23814  debug_dma_map_page(dev, __cil_tmp27, __cil_tmp29, size, __cil_tmp30, addr, __cil_tmp31);
23815  }
23816#line 25
23817  return (addr);
23818}
23819}
23820#line 28 "include/asm-generic/dma-mapping-common.h"
23821__inline static void dma_unmap_single_attrs(struct device *dev , dma_addr_t addr ,
23822                                            size_t size , enum dma_data_direction dir ,
23823                                            struct dma_attrs *attrs ) 
23824{ struct dma_map_ops *ops ;
23825  struct dma_map_ops *tmp ;
23826  int tmp___0 ;
23827  long tmp___1 ;
23828  int __cil_tmp10 ;
23829  int __cil_tmp11 ;
23830  long __cil_tmp12 ;
23831  void (*__cil_tmp13)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
23832                      struct dma_attrs * ) ;
23833  unsigned long __cil_tmp14 ;
23834  void (*__cil_tmp15)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
23835                      struct dma_attrs * ) ;
23836  unsigned long __cil_tmp16 ;
23837  void (*__cil_tmp17)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
23838                      struct dma_attrs * ) ;
23839  int __cil_tmp18 ;
23840  bool __cil_tmp19 ;
23841
23842  {
23843  {
23844#line 33
23845  tmp = get_dma_ops(dev);
23846#line 33
23847  ops = tmp;
23848#line 35
23849  __cil_tmp10 = (int )dir;
23850#line 35
23851  tmp___0 = valid_dma_direction(__cil_tmp10);
23852#line 35
23853  __cil_tmp11 = tmp___0 == 0;
23854#line 35
23855  __cil_tmp12 = (long )__cil_tmp11;
23856#line 35
23857  tmp___1 = __builtin_expect(__cil_tmp12, 0L);
23858  }
23859#line 35
23860  if (tmp___1 != 0L) {
23861#line 35
23862    __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"),
23863                         "i" (35), "i" (12UL));
23864    ldv_20821: ;
23865#line 35
23866    goto ldv_20821;
23867  } else {
23868
23869  }
23870  {
23871#line 36
23872  __cil_tmp13 = (void (*)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
23873                          struct dma_attrs * ))0;
23874#line 36
23875  __cil_tmp14 = (unsigned long )__cil_tmp13;
23876#line 36
23877  __cil_tmp15 = ops->unmap_page;
23878#line 36
23879  __cil_tmp16 = (unsigned long )__cil_tmp15;
23880#line 36
23881  if (__cil_tmp16 != __cil_tmp14) {
23882    {
23883#line 37
23884    __cil_tmp17 = ops->unmap_page;
23885#line 37
23886    (*__cil_tmp17)(dev, addr, size, dir, attrs);
23887    }
23888  } else {
23889
23890  }
23891  }
23892  {
23893#line 38
23894  __cil_tmp18 = (int )dir;
23895#line 38
23896  __cil_tmp19 = (bool )1;
23897#line 38
23898  debug_dma_unmap_page(dev, addr, size, __cil_tmp18, __cil_tmp19);
23899  }
23900#line 39
23901  return;
23902}
23903}
23904#line 41 "include/asm-generic/dma-mapping-common.h"
23905__inline static int dma_map_sg_attrs(struct device *dev , struct scatterlist *sg ,
23906                                     int nents , enum dma_data_direction dir , struct dma_attrs *attrs ) 
23907{ struct dma_map_ops *ops ;
23908  struct dma_map_ops *tmp ;
23909  int i ;
23910  int ents ;
23911  struct scatterlist *s ;
23912  void *tmp___0 ;
23913  int tmp___1 ;
23914  long tmp___2 ;
23915  unsigned int __cil_tmp14 ;
23916  int __cil_tmp15 ;
23917  int __cil_tmp16 ;
23918  long __cil_tmp17 ;
23919  int (*__cil_tmp18)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
23920                     struct dma_attrs * ) ;
23921  int __cil_tmp19 ;
23922
23923  {
23924  {
23925#line 45
23926  tmp = get_dma_ops(dev);
23927#line 45
23928  ops = tmp;
23929#line 49
23930  i = 0;
23931#line 49
23932  s = sg;
23933  }
23934#line 49
23935  goto ldv_20834;
23936  ldv_20833: 
23937  {
23938#line 50
23939  tmp___0 = sg_virt(s);
23940#line 50
23941  __cil_tmp14 = s->length;
23942#line 50
23943  kmemcheck_mark_initialized(tmp___0, __cil_tmp14);
23944#line 49
23945  i = i + 1;
23946#line 49
23947  s = sg_next(s);
23948  }
23949  ldv_20834: ;
23950#line 49
23951  if (i < nents) {
23952#line 50
23953    goto ldv_20833;
23954  } else {
23955#line 52
23956    goto ldv_20835;
23957  }
23958  ldv_20835: 
23959  {
23960#line 51
23961  __cil_tmp15 = (int )dir;
23962#line 51
23963  tmp___1 = valid_dma_direction(__cil_tmp15);
23964#line 51
23965  __cil_tmp16 = tmp___1 == 0;
23966#line 51
23967  __cil_tmp17 = (long )__cil_tmp16;
23968#line 51
23969  tmp___2 = __builtin_expect(__cil_tmp17, 0L);
23970  }
23971#line 51
23972  if (tmp___2 != 0L) {
23973#line 51
23974    __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"),
23975                         "i" (51), "i" (12UL));
23976    ldv_20836: ;
23977#line 51
23978    goto ldv_20836;
23979  } else {
23980
23981  }
23982  {
23983#line 52
23984  __cil_tmp18 = ops->map_sg;
23985#line 52
23986  ents = (*__cil_tmp18)(dev, sg, nents, dir, attrs);
23987#line 53
23988  __cil_tmp19 = (int )dir;
23989#line 53
23990  debug_dma_map_sg(dev, sg, nents, ents, __cil_tmp19);
23991  }
23992#line 55
23993  return (ents);
23994}
23995}
23996#line 58 "include/asm-generic/dma-mapping-common.h"
23997__inline static void dma_unmap_sg_attrs(struct device *dev , struct scatterlist *sg ,
23998                                        int nents , enum dma_data_direction dir ,
23999                                        struct dma_attrs *attrs ) 
24000{ struct dma_map_ops *ops ;
24001  struct dma_map_ops *tmp ;
24002  int tmp___0 ;
24003  long tmp___1 ;
24004  int __cil_tmp10 ;
24005  int __cil_tmp11 ;
24006  long __cil_tmp12 ;
24007  int __cil_tmp13 ;
24008  void (*__cil_tmp14)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
24009                      struct dma_attrs * ) ;
24010  unsigned long __cil_tmp15 ;
24011  void (*__cil_tmp16)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
24012                      struct dma_attrs * ) ;
24013  unsigned long __cil_tmp17 ;
24014  void (*__cil_tmp18)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
24015                      struct dma_attrs * ) ;
24016
24017  {
24018  {
24019#line 62
24020  tmp = get_dma_ops(dev);
24021#line 62
24022  ops = tmp;
24023#line 64
24024  __cil_tmp10 = (int )dir;
24025#line 64
24026  tmp___0 = valid_dma_direction(__cil_tmp10);
24027#line 64
24028  __cil_tmp11 = tmp___0 == 0;
24029#line 64
24030  __cil_tmp12 = (long )__cil_tmp11;
24031#line 64
24032  tmp___1 = __builtin_expect(__cil_tmp12, 0L);
24033  }
24034#line 64
24035  if (tmp___1 != 0L) {
24036#line 64
24037    __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"),
24038                         "i" (64), "i" (12UL));
24039    ldv_20845: ;
24040#line 64
24041    goto ldv_20845;
24042  } else {
24043
24044  }
24045  {
24046#line 65
24047  __cil_tmp13 = (int )dir;
24048#line 65
24049  debug_dma_unmap_sg(dev, sg, nents, __cil_tmp13);
24050  }
24051  {
24052#line 66
24053  __cil_tmp14 = (void (*)(struct device * , struct scatterlist * , int  , enum dma_data_direction  ,
24054                          struct dma_attrs * ))0;
24055#line 66
24056  __cil_tmp15 = (unsigned long )__cil_tmp14;
24057#line 66
24058  __cil_tmp16 = ops->unmap_sg;
24059#line 66
24060  __cil_tmp17 = (unsigned long )__cil_tmp16;
24061#line 66
24062  if (__cil_tmp17 != __cil_tmp15) {
24063    {
24064#line 67
24065    __cil_tmp18 = ops->unmap_sg;
24066#line 67
24067    (*__cil_tmp18)(dev, sg, nents, dir, attrs);
24068    }
24069  } else {
24070
24071  }
24072  }
24073#line 68
24074  return;
24075}
24076}
24077#line 70 "include/asm-generic/dma-mapping-common.h"
24078__inline static dma_addr_t dma_map_page(struct device *dev , struct page *page , size_t offset ,
24079                                        size_t size , enum dma_data_direction dir ) 
24080{ struct dma_map_ops *ops ;
24081  struct dma_map_ops *tmp ;
24082  dma_addr_t addr ;
24083  void *tmp___0 ;
24084  int tmp___1 ;
24085  long tmp___2 ;
24086  void *__cil_tmp12 ;
24087  unsigned int __cil_tmp13 ;
24088  int __cil_tmp14 ;
24089  int __cil_tmp15 ;
24090  long __cil_tmp16 ;
24091  dma_addr_t (*__cil_tmp17)(struct device * , struct page * , unsigned long  , size_t  ,
24092                            enum dma_data_direction  , struct dma_attrs * ) ;
24093  struct dma_attrs *__cil_tmp18 ;
24094  int __cil_tmp19 ;
24095  bool __cil_tmp20 ;
24096
24097  {
24098  {
24099#line 74
24100  tmp = get_dma_ops(dev);
24101#line 74
24102  ops = tmp;
24103#line 77
24104  tmp___0 = lowmem_page_address(page);
24105#line 77
24106  __cil_tmp12 = tmp___0 + offset;
24107#line 77
24108  __cil_tmp13 = (unsigned int )size;
24109#line 77
24110  kmemcheck_mark_initialized(__cil_tmp12, __cil_tmp13);
24111#line 78
24112  __cil_tmp14 = (int )dir;
24113#line 78
24114  tmp___1 = valid_dma_direction(__cil_tmp14);
24115#line 78
24116  __cil_tmp15 = tmp___1 == 0;
24117#line 78
24118  __cil_tmp16 = (long )__cil_tmp15;
24119#line 78
24120  tmp___2 = __builtin_expect(__cil_tmp16, 0L);
24121  }
24122#line 78
24123  if (tmp___2 != 0L) {
24124#line 78
24125    __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"),
24126                         "i" (78), "i" (12UL));
24127    ldv_20855: ;
24128#line 78
24129    goto ldv_20855;
24130  } else {
24131
24132  }
24133  {
24134#line 79
24135  __cil_tmp17 = ops->map_page;
24136#line 79
24137  __cil_tmp18 = (struct dma_attrs *)0;
24138#line 79
24139  addr = (*__cil_tmp17)(dev, page, offset, size, dir, __cil_tmp18);
24140#line 80
24141  __cil_tmp19 = (int )dir;
24142#line 80
24143  __cil_tmp20 = (bool )0;
24144#line 80
24145  debug_dma_map_page(dev, page, offset, size, __cil_tmp19, addr, __cil_tmp20);
24146  }
24147#line 82
24148  return (addr);
24149}
24150}
24151#line 85 "include/asm-generic/dma-mapping-common.h"
24152__inline static void dma_unmap_page(struct device *dev , dma_addr_t addr , size_t size ,
24153                                    enum dma_data_direction dir ) 
24154{ struct dma_map_ops *ops ;
24155  struct dma_map_ops *tmp ;
24156  int tmp___0 ;
24157  long tmp___1 ;
24158  int __cil_tmp9 ;
24159  int __cil_tmp10 ;
24160  long __cil_tmp11 ;
24161  void (*__cil_tmp12)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
24162                      struct dma_attrs * ) ;
24163  unsigned long __cil_tmp13 ;
24164  void (*__cil_tmp14)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
24165                      struct dma_attrs * ) ;
24166  unsigned long __cil_tmp15 ;
24167  void (*__cil_tmp16)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
24168                      struct dma_attrs * ) ;
24169  struct dma_attrs *__cil_tmp17 ;
24170  int __cil_tmp18 ;
24171  bool __cil_tmp19 ;
24172
24173  {
24174  {
24175#line 88
24176  tmp = get_dma_ops(dev);
24177#line 88
24178  ops = tmp;
24179#line 90
24180  __cil_tmp9 = (int )dir;
24181#line 90
24182  tmp___0 = valid_dma_direction(__cil_tmp9);
24183#line 90
24184  __cil_tmp10 = tmp___0 == 0;
24185#line 90
24186  __cil_tmp11 = (long )__cil_tmp10;
24187#line 90
24188  tmp___1 = __builtin_expect(__cil_tmp11, 0L);
24189  }
24190#line 90
24191  if (tmp___1 != 0L) {
24192#line 90
24193    __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"),
24194                         "i" (90), "i" (12UL));
24195    ldv_20863: ;
24196#line 90
24197    goto ldv_20863;
24198  } else {
24199
24200  }
24201  {
24202#line 91
24203  __cil_tmp12 = (void (*)(struct device * , dma_addr_t  , size_t  , enum dma_data_direction  ,
24204                          struct dma_attrs * ))0;
24205#line 91
24206  __cil_tmp13 = (unsigned long )__cil_tmp12;
24207#line 91
24208  __cil_tmp14 = ops->unmap_page;
24209#line 91
24210  __cil_tmp15 = (unsigned long )__cil_tmp14;
24211#line 91
24212  if (__cil_tmp15 != __cil_tmp13) {
24213    {
24214#line 92
24215    __cil_tmp16 = ops->unmap_page;
24216#line 92
24217    __cil_tmp17 = (struct dma_attrs *)0;
24218#line 92
24219    (*__cil_tmp16)(dev, addr, size, dir, __cil_tmp17);
24220    }
24221  } else {
24222
24223  }
24224  }
24225  {
24226#line 93
24227  __cil_tmp18 = (int )dir;
24228#line 93
24229  __cil_tmp19 = (bool )0;
24230#line 93
24231  debug_dma_unmap_page(dev, addr, size, __cil_tmp18, __cil_tmp19);
24232  }
24233#line 94
24234  return;
24235}
24236}
24237#line 46 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
24238__inline static int dma_mapping_error(struct device *dev , dma_addr_t dma_addr ) 
24239{ struct dma_map_ops *ops ;
24240  struct dma_map_ops *tmp ;
24241  int tmp___0 ;
24242  int (*__cil_tmp6)(struct device * , dma_addr_t  ) ;
24243  unsigned long __cil_tmp7 ;
24244  int (*__cil_tmp8)(struct device * , dma_addr_t  ) ;
24245  unsigned long __cil_tmp9 ;
24246  int (*__cil_tmp10)(struct device * , dma_addr_t  ) ;
24247
24248  {
24249  {
24250#line 48
24251  tmp = get_dma_ops(dev);
24252#line 48
24253  ops = tmp;
24254  }
24255  {
24256#line 49
24257  __cil_tmp6 = (int (*)(struct device * , dma_addr_t  ))0;
24258#line 49
24259  __cil_tmp7 = (unsigned long )__cil_tmp6;
24260#line 49
24261  __cil_tmp8 = ops->mapping_error;
24262#line 49
24263  __cil_tmp9 = (unsigned long )__cil_tmp8;
24264#line 49
24265  if (__cil_tmp9 != __cil_tmp7) {
24266    {
24267#line 50
24268    __cil_tmp10 = ops->mapping_error;
24269#line 50
24270    tmp___0 = (*__cil_tmp10)(dev, dma_addr);
24271    }
24272#line 50
24273    return (tmp___0);
24274  } else {
24275
24276  }
24277  }
24278#line 52
24279  return (dma_addr == 0ULL);
24280}
24281}
24282#line 17 "include/linux/unaligned/access_ok.h"
24283__inline static u64 get_unaligned_le64(void const   *p ) 
24284{ __u64 tmp ;
24285  __le64 const   *__cil_tmp3 ;
24286
24287  {
24288  {
24289#line 19
24290  __cil_tmp3 = (__le64 const   *)p;
24291#line 19
24292  tmp = __le64_to_cpup(__cil_tmp3);
24293  }
24294#line 19
24295  return (tmp);
24296}
24297}
24298#line 37 "include/linux/unaligned/access_ok.h"
24299__inline static void put_unaligned_le16(u16 val , void *p ) 
24300{ __le16 *__cil_tmp3 ;
24301
24302  {
24303#line 39
24304  __cil_tmp3 = (__le16 *)p;
24305#line 39
24306  *__cil_tmp3 = val;
24307#line 40
24308  return;
24309}
24310}
24311#line 42 "include/linux/unaligned/access_ok.h"
24312__inline static void put_unaligned_le32(u32 val , void *p ) 
24313{ __le32 *__cil_tmp3 ;
24314
24315  {
24316#line 44
24317  __cil_tmp3 = (__le32 *)p;
24318#line 44
24319  *__cil_tmp3 = val;
24320#line 45
24321  return;
24322}
24323}
24324#line 47 "include/linux/unaligned/access_ok.h"
24325__inline static void put_unaligned_le64(u64 val , void *p ) 
24326{ __le64 *__cil_tmp3 ;
24327
24328  {
24329#line 49
24330  __cil_tmp3 = (__le64 *)p;
24331#line 49
24332  *__cil_tmp3 = val;
24333#line 50
24334  return;
24335}
24336}
24337#line 8 "include/linux/unaligned/generic.h"
24338extern void __bad_unaligned_access_size(void) ;
24339#line 138 "include/linux/platform_device.h"
24340__inline static void *platform_get_drvdata(struct platform_device  const  *pdev ) 
24341{ void *tmp ;
24342  struct device  const  *__cil_tmp3 ;
24343
24344  {
24345  {
24346#line 140
24347  __cil_tmp3 = & pdev->dev;
24348#line 140
24349  tmp = dev_get_drvdata(__cil_tmp3);
24350  }
24351#line 140
24352  return (tmp);
24353}
24354}
24355#line 401 "include/linux/usb/ch9.h"
24356__inline static int usb_endpoint_num(struct usb_endpoint_descriptor  const  *epd ) 
24357{ __u8 __cil_tmp2 ;
24358  int __cil_tmp3 ;
24359
24360  {
24361  {
24362#line 403
24363  __cil_tmp2 = epd->bEndpointAddress;
24364#line 403
24365  __cil_tmp3 = (int )__cil_tmp2;
24366#line 403
24367  return (__cil_tmp3 & 15);
24368  }
24369}
24370}
24371#line 413 "include/linux/usb/ch9.h"
24372__inline static int usb_endpoint_type(struct usb_endpoint_descriptor  const  *epd ) 
24373{ __u8 __cil_tmp2 ;
24374  int __cil_tmp3 ;
24375
24376  {
24377  {
24378#line 415
24379  __cil_tmp2 = epd->bmAttributes;
24380#line 415
24381  __cil_tmp3 = (int )__cil_tmp2;
24382#line 415
24383  return (__cil_tmp3 & 3);
24384  }
24385}
24386}
24387#line 435 "include/linux/usb/ch9.h"
24388__inline static int usb_endpoint_dir_out(struct usb_endpoint_descriptor  const  *epd ) 
24389{ __u8 __cil_tmp2 ;
24390  signed char __cil_tmp3 ;
24391  int __cil_tmp4 ;
24392
24393  {
24394  {
24395#line 438
24396  __cil_tmp2 = epd->bEndpointAddress;
24397#line 438
24398  __cil_tmp3 = (signed char )__cil_tmp2;
24399#line 438
24400  __cil_tmp4 = (int )__cil_tmp3;
24401#line 438
24402  return (__cil_tmp4 >= 0);
24403  }
24404}
24405}
24406#line 447 "include/linux/usb/ch9.h"
24407__inline static int usb_endpoint_xfer_bulk(struct usb_endpoint_descriptor  const  *epd ) 
24408{ __u8 __cil_tmp2 ;
24409  int __cil_tmp3 ;
24410  int __cil_tmp4 ;
24411
24412  {
24413  {
24414#line 450
24415  __cil_tmp2 = epd->bmAttributes;
24416#line 450
24417  __cil_tmp3 = (int )__cil_tmp2;
24418#line 450
24419  __cil_tmp4 = __cil_tmp3 & 3;
24420#line 450
24421  return (__cil_tmp4 == 2);
24422  }
24423}
24424}
24425#line 460 "include/linux/usb/ch9.h"
24426__inline static int usb_endpoint_xfer_control(struct usb_endpoint_descriptor  const  *epd ) 
24427{ __u8 __cil_tmp2 ;
24428  int __cil_tmp3 ;
24429  int __cil_tmp4 ;
24430
24431  {
24432  {
24433#line 463
24434  __cil_tmp2 = epd->bmAttributes;
24435#line 463
24436  __cil_tmp3 = (int )__cil_tmp2;
24437#line 463
24438  __cil_tmp4 = __cil_tmp3 & 3;
24439#line 463
24440  return (__cil_tmp4 == 0);
24441  }
24442}
24443}
24444#line 124 "include/linux/interrupt.h"
24445extern int request_threaded_irq(unsigned int  , irqreturn_t (*)(int  , void * ) ,
24446                                irqreturn_t (*)(int  , void * ) , unsigned long  ,
24447                                char const   * , void * ) ;
24448#line 129 "include/linux/interrupt.h"
24449__inline static int request_irq(unsigned int irq , irqreturn_t (*handler)(int  , void * ) ,
24450                                unsigned long flags , char const   *name , void *dev ) 
24451{ int tmp ;
24452  irqreturn_t (*__cil_tmp7)(int  , void * ) ;
24453
24454  {
24455  {
24456#line 132
24457  __cil_tmp7 = (irqreturn_t (*)(int  , void * ))0;
24458#line 132
24459  tmp = request_threaded_irq(irq, handler, __cil_tmp7, flags, name, dev);
24460  }
24461#line 132
24462  return (tmp);
24463}
24464}
24465#line 170
24466extern void free_irq(unsigned int  , void * ) ;
24467#line 27 "include/linux/pm_runtime.h"
24468extern struct workqueue_struct *pm_wq ;
24469#line 566 "include/linux/usb.h"
24470int usb_alloc_streams(struct usb_interface *interface , struct usb_host_endpoint **eps ,
24471                      unsigned int num_eps , unsigned int num_streams , gfp_t mem_flags ) ;
24472#line 571
24473void usb_free_streams(struct usb_interface *interface , struct usb_host_endpoint **eps ,
24474                      unsigned int num_eps , gfp_t mem_flags ) ;
24475#line 1335
24476struct urb *usb_get_urb(struct urb *urb ) ;
24477#line 1346
24478void usb_unanchor_urb(struct urb *urb ) ;
24479#line 1360 "include/linux/usb.h"
24480__inline static int usb_urb_dir_in(struct urb *urb ) 
24481{ unsigned int __cil_tmp2 ;
24482  unsigned int __cil_tmp3 ;
24483
24484  {
24485  {
24486#line 1362
24487  __cil_tmp2 = urb->transfer_flags;
24488#line 1362
24489  __cil_tmp3 = __cil_tmp2 & 512U;
24490#line 1362
24491  return (__cil_tmp3 != 0U);
24492  }
24493}
24494}
24495#line 348 "include/linux/usb/hcd.h"
24496int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd , struct urb *urb ) ;
24497#line 349
24498int usb_hcd_check_unlink_urb(struct usb_hcd *hcd , struct urb *urb , int status ) ;
24499#line 351
24500void usb_hcd_unlink_urb_from_ep(struct usb_hcd *hcd , struct urb *urb ) ;
24501#line 353
24502int usb_hcd_submit_urb(struct urb *urb , gfp_t mem_flags ) ;
24503#line 354
24504int usb_hcd_unlink_urb(struct urb *urb , int status ) ;
24505#line 355
24506void usb_hcd_giveback_urb(struct usb_hcd *hcd , struct urb *urb , int status ) ;
24507#line 357
24508int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd , struct urb *urb , gfp_t mem_flags ) ;
24509#line 359
24510void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *hcd , struct urb *urb ) ;
24511#line 360
24512void usb_hcd_unmap_urb_for_dma(struct usb_hcd *hcd , struct urb *urb ) ;
24513#line 361
24514void usb_hcd_flush_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) ;
24515#line 363
24516void usb_hcd_disable_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) ;
24517#line 365
24518void usb_hcd_reset_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) ;
24519#line 374
24520struct usb_hcd *usb_create_hcd(struct hc_driver  const  *driver , struct device *dev ,
24521                               char const   *bus_name ) ;
24522#line 376
24523struct usb_hcd *usb_create_shared_hcd(struct hc_driver  const  *driver , struct device *dev ,
24524                                      char const   *bus_name , struct usb_hcd *primary_hcd ) ;
24525#line 381
24526int usb_hcd_is_primary_hcd(struct usb_hcd *hcd ) ;
24527#line 382
24528int usb_add_hcd(struct usb_hcd *hcd , unsigned int irqnum , unsigned long irqflags ) ;
24529#line 384
24530void usb_remove_hcd(struct usb_hcd *hcd ) ;
24531#line 387
24532void usb_hcd_platform_shutdown(struct platform_device *dev ) ;
24533#line 403
24534int hcd_buffer_create(struct usb_hcd *hcd ) ;
24535#line 404
24536void hcd_buffer_destroy(struct usb_hcd *hcd ) ;
24537#line 412
24538irqreturn_t usb_hcd_irq(int irq , void *__hcd ) ;
24539#line 414
24540void usb_hc_died(struct usb_hcd *hcd ) ;
24541#line 415
24542void usb_hcd_poll_rh_status(struct usb_hcd *hcd ) ;
24543#line 548
24544long usb_calc_bus_time(int speed , int is_input , int isoc , int bytecount ) ;
24545#line 560
24546struct list_head usb_bus_list ;
24547#line 561
24548struct mutex usb_bus_list_lock ;
24549#line 562
24550wait_queue_head_t usb_kill_urb_queue ;
24551#line 571
24552int hcd_bus_suspend(struct usb_device *rhdev , pm_message_t msg ) ;
24553#line 572
24554int hcd_bus_resume(struct usb_device *rhdev , pm_message_t msg ) ;
24555#line 576
24556void usb_hcd_resume_root_hub(struct usb_hcd *hcd ) ;
24557#line 618 "include/linux/usb/hcd.h"
24558struct usb_mon_operations *mon_ops  ;
24559#line 620 "include/linux/usb/hcd.h"
24560__inline static void usbmon_urb_submit(struct usb_bus *bus , struct urb *urb ) 
24561{ int __cil_tmp3 ;
24562  void (*__cil_tmp4)(struct usb_bus * , struct urb * ) ;
24563
24564  {
24565  {
24566#line 622
24567  __cil_tmp3 = bus->monitored;
24568#line 622
24569  if (__cil_tmp3 != 0) {
24570    {
24571#line 623
24572    __cil_tmp4 = mon_ops->urb_submit;
24573#line 623
24574    (*__cil_tmp4)(bus, urb);
24575    }
24576  } else {
24577
24578  }
24579  }
24580#line 624
24581  return;
24582}
24583}
24584#line 626 "include/linux/usb/hcd.h"
24585__inline static void usbmon_urb_submit_error(struct usb_bus *bus , struct urb *urb ,
24586                                             int error ) 
24587{ int __cil_tmp4 ;
24588  void (*__cil_tmp5)(struct usb_bus * , struct urb * , int  ) ;
24589
24590  {
24591  {
24592#line 629
24593  __cil_tmp4 = bus->monitored;
24594#line 629
24595  if (__cil_tmp4 != 0) {
24596    {
24597#line 630
24598    __cil_tmp5 = mon_ops->urb_submit_error;
24599#line 630
24600    (*__cil_tmp5)(bus, urb, error);
24601    }
24602  } else {
24603
24604  }
24605  }
24606#line 631
24607  return;
24608}
24609}
24610#line 633 "include/linux/usb/hcd.h"
24611__inline static void usbmon_urb_complete(struct usb_bus *bus , struct urb *urb , int status ) 
24612{ int __cil_tmp4 ;
24613  void (*__cil_tmp5)(struct usb_bus * , struct urb * , int  ) ;
24614
24615  {
24616  {
24617#line 636
24618  __cil_tmp4 = bus->monitored;
24619#line 636
24620  if (__cil_tmp4 != 0) {
24621    {
24622#line 637
24623    __cil_tmp5 = mon_ops->urb_complete;
24624#line 637
24625    (*__cil_tmp5)(bus, urb, status);
24626    }
24627  } else {
24628
24629  }
24630  }
24631#line 638
24632  return;
24633}
24634}
24635#line 640
24636int usb_mon_register(struct usb_mon_operations *ops ) ;
24637#line 641
24638void usb_mon_deregister(void) ;
24639#line 670 "include/linux/usb/hcd.h"
24640unsigned long usb_hcds_loaded  ;
24641#line 162 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
24642void usb_notify_add_bus(struct usb_bus *ubus ) ;
24643#line 163
24644void usb_notify_remove_bus(struct usb_bus *ubus ) ;
24645#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"
24646struct list_head usb_bus_list  =    {& usb_bus_list, & usb_bus_list};
24647#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"
24648static struct usb_busmap busmap  ;
24649#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"
24650struct mutex usb_bus_list_lock  =    {{1}, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24651                                                                            {(struct lock_class *)0,
24652                                                                             (struct lock_class *)0},
24653                                                                            "usb_bus_list_lock.wait_lock",
24654                                                                            0, 0UL}}}},
24655    {& usb_bus_list_lock.wait_list, & usb_bus_list_lock.wait_list}, (struct task_struct *)0,
24656    (char const   *)0, (void *)(& usb_bus_list_lock), {(struct lock_class_key *)0,
24657                                                       {(struct lock_class *)0, (struct lock_class *)0},
24658                                                       "usb_bus_list_lock", 0, 0UL}};
24659#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"
24660static spinlock_t hcd_root_hub_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24661                                                                      {(struct lock_class *)0,
24662                                                                       (struct lock_class *)0},
24663                                                                      "hcd_root_hub_lock",
24664                                                                      0, 0UL}}}};
24665#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"
24666static spinlock_t hcd_urb_list_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24667                                                                      {(struct lock_class *)0,
24668                                                                       (struct lock_class *)0},
24669                                                                      "hcd_urb_list_lock",
24670                                                                      0, 0UL}}}};
24671#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"
24672static spinlock_t hcd_urb_unlink_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24673                                                                      {(struct lock_class *)0,
24674                                                                       (struct lock_class *)0},
24675                                                                      "hcd_urb_unlink_lock",
24676                                                                      0, 0UL}}}};
24677#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"
24678wait_queue_head_t usb_kill_urb_queue  =    {{{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
24679                                                                       {(struct lock_class *)0,
24680                                                                        (struct lock_class *)0},
24681                                                                       "usb_kill_urb_queue.lock",
24682                                                                       0, 0UL}}}},
24683    {& usb_kill_urb_queue.task_list, & usb_kill_urb_queue.task_list}};
24684#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"
24685__inline static int is_root_hub(struct usb_device *udev ) 
24686{ struct usb_device *__cil_tmp2 ;
24687  unsigned long __cil_tmp3 ;
24688  struct usb_device *__cil_tmp4 ;
24689  unsigned long __cil_tmp5 ;
24690
24691  {
24692  {
24693#line 124
24694  __cil_tmp2 = (struct usb_device *)0;
24695#line 124
24696  __cil_tmp3 = (unsigned long )__cil_tmp2;
24697#line 124
24698  __cil_tmp4 = udev->parent;
24699#line 124
24700  __cil_tmp5 = (unsigned long )__cil_tmp4;
24701#line 124
24702  return (__cil_tmp5 == __cil_tmp3);
24703  }
24704}
24705}
24706#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"
24707static u8 const   usb3_rh_dev_descriptor[18U]  = 
24708#line 139
24709  {      (u8 const   )18U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )3U, 
24710        (u8 const   )9U,      (u8 const   )0U,      (u8 const   )3U,      (u8 const   )9U, 
24711        (u8 const   )107U,      (u8 const   )29U,      (u8 const   )3U,      (u8 const   )0U, 
24712        (u8 const   )0U,      (u8 const   )3U,      (u8 const   )3U,      (u8 const   )2U, 
24713        (u8 const   )1U,      (u8 const   )1U};
24714#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"
24715static u8 const   usb2_rh_dev_descriptor[18U]  = 
24716#line 160
24717  {      (u8 const   )18U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )2U, 
24718        (u8 const   )9U,      (u8 const   )0U,      (u8 const   )0U,      (u8 const   )64U, 
24719        (u8 const   )107U,      (u8 const   )29U,      (u8 const   )2U,      (u8 const   )0U, 
24720        (u8 const   )0U,      (u8 const   )3U,      (u8 const   )3U,      (u8 const   )2U, 
24721        (u8 const   )1U,      (u8 const   )1U};
24722#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"
24723static u8 const   usb11_rh_dev_descriptor[18U]  = 
24724#line 183
24725  {      (u8 const   )18U,      (u8 const   )1U,      (u8 const   )16U,      (u8 const   )1U, 
24726        (u8 const   )9U,      (u8 const   )0U,      (u8 const   )0U,      (u8 const   )64U, 
24727        (u8 const   )107U,      (u8 const   )29U,      (u8 const   )1U,      (u8 const   )0U, 
24728        (u8 const   )0U,      (u8 const   )3U,      (u8 const   )3U,      (u8 const   )2U, 
24729        (u8 const   )1U,      (u8 const   )1U};
24730#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"
24731static u8 const   fs_rh_config_descriptor[25U]  = 
24732#line 208
24733  {      (u8 const   )9U,      (u8 const   )2U,      (u8 const   )25U,      (u8 const   )0U, 
24734        (u8 const   )1U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )192U, 
24735        (u8 const   )0U,      (u8 const   )9U,      (u8 const   )4U,      (u8 const   )0U, 
24736        (u8 const   )0U,      (u8 const   )1U,      (u8 const   )9U,      (u8 const   )0U, 
24737        (u8 const   )0U,      (u8 const   )0U,      (u8 const   )7U,      (u8 const   )5U, 
24738        (u8 const   )129U,      (u8 const   )3U,      (u8 const   )2U,      (u8 const   )0U, 
24739        (u8 const   )255U};
24740#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"
24741static u8 const   hs_rh_config_descriptor[25U]  = 
24742#line 255
24743  {      (u8 const   )9U,      (u8 const   )2U,      (u8 const   )25U,      (u8 const   )0U, 
24744        (u8 const   )1U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )192U, 
24745        (u8 const   )0U,      (u8 const   )9U,      (u8 const   )4U,      (u8 const   )0U, 
24746        (u8 const   )0U,      (u8 const   )1U,      (u8 const   )9U,      (u8 const   )0U, 
24747        (u8 const   )0U,      (u8 const   )0U,      (u8 const   )7U,      (u8 const   )5U, 
24748        (u8 const   )129U,      (u8 const   )3U,      (u8 const   )4U,      (u8 const   )0U, 
24749        (u8 const   )12U};
24750#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"
24751static u8 const   ss_rh_config_descriptor[31U]  = 
24752#line 304
24753  {      (u8 const   )9U,      (u8 const   )2U,      (u8 const   )31U,      (u8 const   )0U, 
24754        (u8 const   )1U,      (u8 const   )1U,      (u8 const   )0U,      (u8 const   )192U, 
24755        (u8 const   )0U,      (u8 const   )9U,      (u8 const   )4U,      (u8 const   )0U, 
24756        (u8 const   )0U,      (u8 const   )1U,      (u8 const   )9U,      (u8 const   )0U, 
24757        (u8 const   )0U,      (u8 const   )0U,      (u8 const   )7U,      (u8 const   )5U, 
24758        (u8 const   )129U,      (u8 const   )3U,      (u8 const   )4U,      (u8 const   )0U, 
24759        (u8 const   )12U,      (u8 const   )6U,      (u8 const   )48U,      (u8 const   )0U, 
24760        (u8 const   )0U,      (u8 const   )2U,      (u8 const   )0U};
24761#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"
24762static unsigned int ascii2desc(char const   *s , u8 *buf , unsigned int len ) 
24763{ unsigned int n ;
24764  unsigned int t ;
24765  size_t tmp ;
24766  u8 *tmp___0 ;
24767  unsigned int tmp___1 ;
24768  u8 *tmp___2 ;
24769  char const   *tmp___3 ;
24770  unsigned int tmp___4 ;
24771  size_t __cil_tmp12 ;
24772  unsigned int __cil_tmp13 ;
24773  unsigned int __cil_tmp14 ;
24774  char __cil_tmp15 ;
24775  unsigned char __cil_tmp16 ;
24776
24777  {
24778  {
24779#line 365
24780  tmp = strlen(s);
24781#line 365
24782  __cil_tmp12 = tmp + 1UL;
24783#line 365
24784  __cil_tmp13 = (unsigned int )__cil_tmp12;
24785#line 365
24786  t = __cil_tmp13 * 2U;
24787  }
24788#line 367
24789  if (t > 254U) {
24790#line 368
24791    t = 254U;
24792  } else {
24793
24794  }
24795#line 369
24796  if (len > t) {
24797#line 370
24798    len = t;
24799  } else {
24800
24801  }
24802#line 372
24803  t = t + 768U;
24804#line 374
24805  n = len;
24806#line 375
24807  goto ldv_27663;
24808  ldv_27662: 
24809#line 376
24810  tmp___0 = buf;
24811#line 376
24812  buf = buf + 1;
24813#line 376
24814  *tmp___0 = (u8 )t;
24815#line 377
24816  tmp___1 = n;
24817#line 377
24818  n = n - 1U;
24819#line 377
24820  if (tmp___1 == 0U) {
24821#line 378
24822    goto ldv_27661;
24823  } else {
24824
24825  }
24826#line 379
24827  tmp___2 = buf;
24828#line 379
24829  buf = buf + 1;
24830#line 379
24831  __cil_tmp14 = t >> 8;
24832#line 379
24833  *tmp___2 = (u8 )__cil_tmp14;
24834#line 380
24835  tmp___3 = s;
24836#line 380
24837  s = s + 1;
24838#line 380
24839  __cil_tmp15 = *tmp___3;
24840#line 380
24841  __cil_tmp16 = (unsigned char )__cil_tmp15;
24842#line 380
24843  t = (unsigned int )__cil_tmp16;
24844  ldv_27663: 
24845#line 375
24846  tmp___4 = n;
24847#line 375
24848  n = n - 1U;
24849#line 375
24850  if (tmp___4 != 0U) {
24851#line 376
24852    goto ldv_27662;
24853  } else {
24854#line 378
24855    goto ldv_27661;
24856  }
24857  ldv_27661: ;
24858#line 382
24859  return (len);
24860}
24861}
24862#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"
24863static unsigned int rh_string(int id , struct usb_hcd  const  *hcd , u8 *data , unsigned int len ) 
24864{ char buf[100U] ;
24865  char const   *s ;
24866  char langids[4U] ;
24867  size_t __len ;
24868  void *__ret ;
24869  struct new_utsname *tmp ;
24870  struct new_utsname *tmp___0 ;
24871  unsigned int tmp___1 ;
24872  void *__cil_tmp13 ;
24873  void const   *__cil_tmp14 ;
24874  char const   *__cil_tmp15 ;
24875  char const   *__cil_tmp16 ;
24876  char *__cil_tmp17 ;
24877  char (*__cil_tmp18)[65U] ;
24878  char *__cil_tmp19 ;
24879  char (*__cil_tmp20)[65U] ;
24880  char *__cil_tmp21 ;
24881  struct hc_driver  const  *__cil_tmp22 ;
24882  char const   *__cil_tmp23 ;
24883
24884  {
24885#line 402
24886  langids[0] = (char)4;
24887#line 402
24888  langids[1] = (char)3;
24889#line 402
24890  langids[2] = (char)9;
24891#line 402
24892  langids[3] = (char)4;
24893#line 406
24894  if (id == 0) {
24895#line 406
24896    goto case_0;
24897  } else
24898#line 413
24899  if (id == 1) {
24900#line 413
24901    goto case_1;
24902  } else
24903#line 417
24904  if (id == 2) {
24905#line 417
24906    goto case_2;
24907  } else
24908#line 421
24909  if (id == 3) {
24910#line 421
24911    goto case_3;
24912  } else {
24913#line 427
24914    goto switch_default;
24915#line 405
24916    if (0) {
24917      case_0: ;
24918#line 409
24919      if (len > 4U) {
24920#line 410
24921        len = 4U;
24922      } else {
24923
24924      }
24925      {
24926#line 411
24927      __len = (size_t )len;
24928#line 411
24929      __cil_tmp13 = (void *)data;
24930#line 411
24931      __cil_tmp14 = (void const   *)(& langids);
24932#line 411
24933      __ret = __builtin_memcpy(__cil_tmp13, __cil_tmp14, __len);
24934      }
24935#line 412
24936      return (len);
24937      case_1: 
24938#line 415
24939      __cil_tmp15 = hcd->self.bus_name;
24940#line 415
24941      s = (char const   *)__cil_tmp15;
24942#line 416
24943      goto ldv_27678;
24944      case_2: 
24945#line 419
24946      __cil_tmp16 = hcd->product_desc;
24947#line 419
24948      s = (char const   *)__cil_tmp16;
24949#line 420
24950      goto ldv_27678;
24951      case_3: 
24952      {
24953#line 423
24954      tmp = init_utsname();
24955#line 423
24956      tmp___0 = init_utsname();
24957#line 423
24958      __cil_tmp17 = (char *)(& buf);
24959#line 423
24960      __cil_tmp18 = & tmp___0->sysname;
24961#line 423
24962      __cil_tmp19 = (char *)__cil_tmp18;
24963#line 423
24964      __cil_tmp20 = & tmp->release;
24965#line 423
24966      __cil_tmp21 = (char *)__cil_tmp20;
24967#line 423
24968      __cil_tmp22 = hcd->driver;
24969#line 423
24970      __cil_tmp23 = __cil_tmp22->description;
24971#line 423
24972      snprintf(__cil_tmp17, 100UL, "%s %s %s", __cil_tmp19, __cil_tmp21, __cil_tmp23);
24973#line 425
24974      s = (char const   *)(& buf);
24975      }
24976#line 426
24977      goto ldv_27678;
24978      switch_default: ;
24979#line 429
24980      return (0U);
24981    } else {
24982
24983    }
24984  }
24985  ldv_27678: 
24986  {
24987#line 432
24988  tmp___1 = ascii2desc(s, data, len);
24989  }
24990#line 432
24991  return (tmp___1);
24992}
24993}
24994#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"
24995static int rh_call_control(struct usb_hcd *hcd , struct urb *urb ) 
24996{ struct usb_ctrlrequest *cmd ;
24997  u16 typeReq ;
24998  u16 wValue ;
24999  u16 wIndex ;
25000  u16 wLength ;
25001  u8 *ubuf ;
25002  u8 tbuf[15U] ;
25003  u8 const   *bufp ;
25004  unsigned int len ;
25005  int status ;
25006  u8 patch_wakeup ;
25007  u8 patch_protocol ;
25008  bool tmp ;
25009  bool tmp___0 ;
25010  bool tmp___1 ;
25011  size_t __len ;
25012  void *__ret ;
25013  void *__cil_tmp20 ;
25014  unsigned char *__cil_tmp21 ;
25015  __u8 __cil_tmp22 ;
25016  short __cil_tmp23 ;
25017  int __cil_tmp24 ;
25018  __u8 __cil_tmp25 ;
25019  int __cil_tmp26 ;
25020  int __cil_tmp27 ;
25021  short __cil_tmp28 ;
25022  int __cil_tmp29 ;
25023  int __cil_tmp30 ;
25024  u32 __cil_tmp31 ;
25025  u32 __cil_tmp32 ;
25026  int __cil_tmp33 ;
25027  int __cil_tmp34 ;
25028  int __cil_tmp35 ;
25029  int __cil_tmp36 ;
25030  int __cil_tmp37 ;
25031  int __cil_tmp38 ;
25032  int __cil_tmp39 ;
25033  int __cil_tmp40 ;
25034  int __cil_tmp41 ;
25035  int __cil_tmp42 ;
25036  int __cil_tmp43 ;
25037  int __cil_tmp44 ;
25038  struct usb_device *__cil_tmp45 ;
25039  struct device *__cil_tmp46 ;
25040  int __cil_tmp47 ;
25041  int __cil_tmp48 ;
25042  signed char __cil_tmp49 ;
25043  int __cil_tmp50 ;
25044  int __cil_tmp51 ;
25045  unsigned int __cil_tmp52 ;
25046  struct usb_device *__cil_tmp53 ;
25047  struct device *__cil_tmp54 ;
25048  bool __cil_tmp55 ;
25049  struct usb_device *__cil_tmp56 ;
25050  struct device *__cil_tmp57 ;
25051  unsigned int __cil_tmp58 ;
25052  struct usb_device *__cil_tmp59 ;
25053  struct device *__cil_tmp60 ;
25054  bool __cil_tmp61 ;
25055  int __cil_tmp62 ;
25056  int __cil_tmp63 ;
25057  int __cil_tmp64 ;
25058  int __cil_tmp65 ;
25059  int __cil_tmp66 ;
25060  int __cil_tmp67 ;
25061  int __cil_tmp68 ;
25062  int __cil_tmp69 ;
25063  int __cil_tmp70 ;
25064  unsigned char *__cil_tmp71 ;
25065  unsigned char *__cil_tmp72 ;
25066  unsigned char __cil_tmp73 ;
25067  unsigned int __cil_tmp74 ;
25068  int __cil_tmp75 ;
25069  int __cil_tmp76 ;
25070  int __cil_tmp77 ;
25071  struct usb_device *__cil_tmp78 ;
25072  struct device *__cil_tmp79 ;
25073  int __cil_tmp80 ;
25074  int __cil_tmp81 ;
25075  int __cil_tmp82 ;
25076  int __cil_tmp83 ;
25077  struct usb_hcd  const  *__cil_tmp84 ;
25078  unsigned int __cil_tmp85 ;
25079  struct device *__cil_tmp86 ;
25080  struct device  const  *__cil_tmp87 ;
25081  int __cil_tmp88 ;
25082  struct device *__cil_tmp89 ;
25083  struct device  const  *__cil_tmp90 ;
25084  int __cil_tmp91 ;
25085  int __cil_tmp92 ;
25086  int __cil_tmp93 ;
25087  struct hc_driver  const  *__cil_tmp94 ;
25088  int (*__cil_tmp95)(struct usb_hcd * , u16  , u16  , u16  , char * , u16  ) ;
25089  int __cil_tmp96 ;
25090  u16 __cil_tmp97 ;
25091  int __cil_tmp98 ;
25092  u16 __cil_tmp99 ;
25093  int __cil_tmp100 ;
25094  u16 __cil_tmp101 ;
25095  char *__cil_tmp102 ;
25096  int __cil_tmp103 ;
25097  u16 __cil_tmp104 ;
25098  struct device *__cil_tmp105 ;
25099  struct device  const  *__cil_tmp106 ;
25100  int __cil_tmp107 ;
25101  int __cil_tmp108 ;
25102  int __cil_tmp109 ;
25103  int __cil_tmp110 ;
25104  u32 __cil_tmp111 ;
25105  void *__cil_tmp112 ;
25106  void const   *__cil_tmp113 ;
25107  unsigned int __cil_tmp114 ;
25108  struct usb_config_descriptor *__cil_tmp115 ;
25109  struct usb_config_descriptor *__cil_tmp116 ;
25110  __u8 __cil_tmp117 ;
25111  unsigned int __cil_tmp118 ;
25112  unsigned int __cil_tmp119 ;
25113  unsigned int __cil_tmp120 ;
25114  struct usb_device_descriptor *__cil_tmp121 ;
25115
25116  {
25117  {
25118#line 441
25119  __cil_tmp20 = urb->transfer_buffer;
25120#line 441
25121  ubuf = (u8 *)__cil_tmp20;
25122#line 444
25123  bufp = (u8 const   *)(& tbuf);
25124#line 445
25125  len = 0U;
25126#line 447
25127  patch_wakeup = (u8 )0U;
25128#line 448
25129  patch_protocol = (u8 )0U;
25130#line 450
25131  __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",
25132                450, 0);
25133#line 452
25134  spin_lock_irq(& hcd_root_hub_lock);
25135#line 453
25136  status = usb_hcd_link_urb_to_ep(hcd, urb);
25137#line 454
25138  spin_unlock_irq(& hcd_root_hub_lock);
25139  }
25140#line 455
25141  if (status != 0) {
25142#line 456
25143    return (status);
25144  } else {
25145
25146  }
25147#line 457
25148  urb->hcpriv = (void *)hcd;
25149#line 459
25150  __cil_tmp21 = urb->setup_packet;
25151#line 459
25152  cmd = (struct usb_ctrlrequest *)__cil_tmp21;
25153#line 460
25154  __cil_tmp22 = cmd->bRequest;
25155#line 460
25156  __cil_tmp23 = (short )__cil_tmp22;
25157#line 460
25158  __cil_tmp24 = (int )__cil_tmp23;
25159#line 460
25160  __cil_tmp25 = cmd->bRequestType;
25161#line 460
25162  __cil_tmp26 = (int )__cil_tmp25;
25163#line 460
25164  __cil_tmp27 = __cil_tmp26 << 8;
25165#line 460
25166  __cil_tmp28 = (short )__cil_tmp27;
25167#line 460
25168  __cil_tmp29 = (int )__cil_tmp28;
25169#line 460
25170  __cil_tmp30 = __cil_tmp29 | __cil_tmp24;
25171#line 460
25172  typeReq = (u16 )__cil_tmp30;
25173#line 461
25174  wValue = cmd->wValue;
25175#line 462
25176  wIndex = cmd->wIndex;
25177#line 463
25178  wLength = cmd->wLength;
25179  {
25180#line 465
25181  __cil_tmp31 = urb->transfer_buffer_length;
25182#line 465
25183  __cil_tmp32 = (u32 )wLength;
25184#line 465
25185  if (__cil_tmp32 > __cil_tmp31) {
25186#line 466
25187    goto error;
25188  } else {
25189
25190  }
25191  }
25192#line 468
25193  urb->actual_length = 0U;
25194  {
25195#line 489
25196  __cil_tmp33 = (int )typeReq;
25197#line 489
25198  if (__cil_tmp33 == 32768) {
25199#line 489
25200    goto case_32768;
25201  } else {
25202    {
25203#line 496
25204    __cil_tmp34 = (int )typeReq;
25205#line 496
25206    if (__cil_tmp34 == 1) {
25207#line 496
25208      goto case_1;
25209    } else {
25210      {
25211#line 502
25212      __cil_tmp35 = (int )typeReq;
25213#line 502
25214      if (__cil_tmp35 == 3) {
25215#line 502
25216        goto case_3;
25217      } else {
25218        {
25219#line 509
25220        __cil_tmp36 = (int )typeReq;
25221#line 509
25222        if (__cil_tmp36 == 32776) {
25223#line 509
25224          goto case_32776;
25225        } else {
25226          {
25227#line 513
25228          __cil_tmp37 = (int )typeReq;
25229#line 513
25230          if (__cil_tmp37 == 9) {
25231#line 513
25232            goto case_9;
25233          } else {
25234            {
25235#line 515
25236            __cil_tmp38 = (int )typeReq;
25237#line 515
25238            if (__cil_tmp38 == 32774) {
25239#line 515
25240              goto case_32774;
25241            } else {
25242              {
25243#line 566
25244              __cil_tmp39 = (int )typeReq;
25245#line 566
25246              if (__cil_tmp39 == 32778) {
25247#line 566
25248                goto case_32778;
25249              } else {
25250                {
25251#line 570
25252                __cil_tmp40 = (int )typeReq;
25253#line 570
25254                if (__cil_tmp40 == 11) {
25255#line 570
25256                  goto case_11;
25257                } else {
25258                  {
25259#line 572
25260                  __cil_tmp41 = (int )typeReq;
25261#line 572
25262                  if (__cil_tmp41 == 5) {
25263#line 572
25264                    goto case_5;
25265                  } else {
25266                    {
25267#line 582
25268                    __cil_tmp42 = (int )typeReq;
25269#line 582
25270                    if (__cil_tmp42 == 33024) {
25271#line 582
25272                      goto case_33024;
25273                    } else {
25274                      {
25275#line 588
25276                      __cil_tmp43 = (int )typeReq;
25277#line 588
25278                      if (__cil_tmp43 == 257) {
25279#line 588
25280                        goto case_257;
25281                      } else {
25282                        {
25283#line 589
25284                        __cil_tmp44 = (int )typeReq;
25285#line 589
25286                        if (__cil_tmp44 == 259) {
25287#line 589
25288                          goto case_259;
25289                        } else {
25290#line 595
25291                          goto switch_default___2;
25292#line 469
25293                          if (0) {
25294                            case_32768: 
25295                            {
25296#line 490
25297                            __cil_tmp45 = hcd->self.root_hub;
25298#line 490
25299                            __cil_tmp46 = & __cil_tmp45->dev;
25300#line 490
25301                            tmp = device_may_wakeup(__cil_tmp46);
25302#line 490
25303                            __cil_tmp47 = (int )tmp;
25304#line 490
25305                            __cil_tmp48 = __cil_tmp47 << 1;
25306#line 490
25307                            __cil_tmp49 = (signed char )__cil_tmp48;
25308#line 490
25309                            __cil_tmp50 = (int )__cil_tmp49;
25310#line 490
25311                            __cil_tmp51 = __cil_tmp50 | 1;
25312#line 490
25313                            tbuf[0] = (u8 )__cil_tmp51;
25314#line 493
25315                            tbuf[1] = (u8 )0U;
25316#line 494
25317                            len = 2U;
25318                            }
25319#line 495
25320                            goto ldv_27700;
25321                            case_1: ;
25322                            {
25323#line 497
25324                            __cil_tmp52 = (unsigned int )wValue;
25325#line 497
25326                            if (__cil_tmp52 == 1U) {
25327                              {
25328#line 498
25329                              __cil_tmp53 = hcd->self.root_hub;
25330#line 498
25331                              __cil_tmp54 = & __cil_tmp53->dev;
25332#line 498
25333                              __cil_tmp55 = (bool )0;
25334#line 498
25335                              device_set_wakeup_enable(__cil_tmp54, __cil_tmp55);
25336                              }
25337                            } else {
25338#line 500
25339                              goto error;
25340                            }
25341                            }
25342#line 501
25343                            goto ldv_27700;
25344                            case_3: 
25345                            {
25346#line 503
25347                            __cil_tmp56 = hcd->self.root_hub;
25348#line 503
25349                            __cil_tmp57 = & __cil_tmp56->dev;
25350#line 503
25351                            tmp___0 = device_can_wakeup(__cil_tmp57);
25352                            }
25353#line 503
25354                            if ((int )tmp___0) {
25355                              {
25356#line 503
25357                              __cil_tmp58 = (unsigned int )wValue;
25358#line 503
25359                              if (__cil_tmp58 == 1U) {
25360                                {
25361#line 505
25362                                __cil_tmp59 = hcd->self.root_hub;
25363#line 505
25364                                __cil_tmp60 = & __cil_tmp59->dev;
25365#line 505
25366                                __cil_tmp61 = (bool )1;
25367#line 505
25368                                device_set_wakeup_enable(__cil_tmp60, __cil_tmp61);
25369                                }
25370                              } else {
25371#line 507
25372                                goto error;
25373                              }
25374                              }
25375                            } else {
25376#line 507
25377                              goto error;
25378                            }
25379#line 508
25380                            goto ldv_27700;
25381                            case_32776: 
25382#line 510
25383                            tbuf[0] = (u8 )1U;
25384#line 511
25385                            len = 1U;
25386                            case_9: ;
25387#line 514
25388                            goto ldv_27700;
25389                            case_32774: ;
25390                            {
25391#line 517
25392                            __cil_tmp62 = (int )wValue;
25393#line 517
25394                            __cil_tmp63 = __cil_tmp62 & 65280;
25395#line 517
25396                            if (__cil_tmp63 == 256) {
25397#line 517
25398                              goto case_256;
25399                            } else {
25400                              {
25401#line 535
25402                              __cil_tmp64 = (int )wValue;
25403#line 535
25404                              __cil_tmp65 = __cil_tmp64 & 65280;
25405#line 535
25406                              if (__cil_tmp65 == 512) {
25407#line 535
25408                                goto case_512;
25409                              } else {
25410                                {
25411#line 555
25412                                __cil_tmp66 = (int )wValue;
25413#line 555
25414                                __cil_tmp67 = __cil_tmp66 & 65280;
25415#line 555
25416                                if (__cil_tmp67 == 768) {
25417#line 555
25418                                  goto case_768;
25419                                } else {
25420#line 562
25421                                  goto switch_default___1;
25422#line 516
25423                                  if (0) {
25424                                    case_256: ;
25425                                    {
25426#line 519
25427                                    __cil_tmp68 = hcd->speed;
25428#line 519
25429                                    if (__cil_tmp68 == 64) {
25430#line 519
25431                                      goto case_64;
25432                                    } else {
25433                                      {
25434#line 522
25435                                      __cil_tmp69 = hcd->speed;
25436#line 522
25437                                      if (__cil_tmp69 == 32) {
25438#line 522
25439                                        goto case_32;
25440                                      } else {
25441                                        {
25442#line 525
25443                                        __cil_tmp70 = hcd->speed;
25444#line 525
25445                                        if (__cil_tmp70 == 16) {
25446#line 525
25447                                          goto case_16;
25448                                        } else {
25449#line 528
25450                                          goto switch_default;
25451#line 518
25452                                          if (0) {
25453                                            case_64: 
25454#line 520
25455                                            bufp = (u8 const   *)(& usb3_rh_dev_descriptor);
25456#line 521
25457                                            goto ldv_27708;
25458                                            case_32: 
25459#line 523
25460                                            bufp = (u8 const   *)(& usb2_rh_dev_descriptor);
25461#line 524
25462                                            goto ldv_27708;
25463                                            case_16: 
25464#line 526
25465                                            bufp = (u8 const   *)(& usb11_rh_dev_descriptor);
25466#line 527
25467                                            goto ldv_27708;
25468                                            switch_default: ;
25469#line 529
25470                                            goto error;
25471                                          } else {
25472
25473                                          }
25474                                        }
25475                                        }
25476                                      }
25477                                      }
25478                                    }
25479                                    }
25480                                    ldv_27708: 
25481#line 531
25482                                    len = 18U;
25483                                    {
25484#line 532
25485                                    __cil_tmp71 = (unsigned char *)hcd;
25486#line 532
25487                                    __cil_tmp72 = __cil_tmp71 + 408UL;
25488#line 532
25489                                    __cil_tmp73 = *__cil_tmp72;
25490#line 532
25491                                    __cil_tmp74 = (unsigned int )__cil_tmp73;
25492#line 532
25493                                    if (__cil_tmp74 != 0U) {
25494#line 533
25495                                      patch_protocol = (u8 )1U;
25496                                    } else {
25497
25498                                    }
25499                                    }
25500#line 534
25501                                    goto ldv_27712;
25502                                    case_512: ;
25503                                    {
25504#line 537
25505                                    __cil_tmp75 = hcd->speed;
25506#line 537
25507                                    if (__cil_tmp75 == 64) {
25508#line 537
25509                                      goto case_64___0;
25510                                    } else {
25511                                      {
25512#line 541
25513                                      __cil_tmp76 = hcd->speed;
25514#line 541
25515                                      if (__cil_tmp76 == 32) {
25516#line 541
25517                                        goto case_32___0;
25518                                      } else {
25519                                        {
25520#line 545
25521                                        __cil_tmp77 = hcd->speed;
25522#line 545
25523                                        if (__cil_tmp77 == 16) {
25524#line 545
25525                                          goto case_16___0;
25526                                        } else {
25527#line 549
25528                                          goto switch_default___0;
25529#line 536
25530                                          if (0) {
25531                                            case_64___0: 
25532#line 538
25533                                            bufp = (u8 const   *)(& ss_rh_config_descriptor);
25534#line 539
25535                                            len = 31U;
25536#line 540
25537                                            goto ldv_27715;
25538                                            case_32___0: 
25539#line 542
25540                                            bufp = (u8 const   *)(& hs_rh_config_descriptor);
25541#line 543
25542                                            len = 25U;
25543#line 544
25544                                            goto ldv_27715;
25545                                            case_16___0: 
25546#line 546
25547                                            bufp = (u8 const   *)(& fs_rh_config_descriptor);
25548#line 547
25549                                            len = 25U;
25550#line 548
25551                                            goto ldv_27715;
25552                                            switch_default___0: ;
25553#line 550
25554                                            goto error;
25555                                          } else {
25556
25557                                          }
25558                                        }
25559                                        }
25560                                      }
25561                                      }
25562                                    }
25563                                    }
25564                                    ldv_27715: 
25565                                    {
25566#line 552
25567                                    __cil_tmp78 = hcd->self.root_hub;
25568#line 552
25569                                    __cil_tmp79 = & __cil_tmp78->dev;
25570#line 552
25571                                    tmp___1 = device_can_wakeup(__cil_tmp79);
25572                                    }
25573#line 552
25574                                    if ((int )tmp___1) {
25575#line 553
25576                                      patch_wakeup = (u8 )1U;
25577                                    } else {
25578
25579                                    }
25580#line 554
25581                                    goto ldv_27712;
25582                                    case_768: ;
25583                                    {
25584#line 556
25585                                    __cil_tmp80 = (int )wValue;
25586#line 556
25587                                    __cil_tmp81 = __cil_tmp80 & 255;
25588#line 556
25589                                    if (__cil_tmp81 <= 3) {
25590                                      {
25591#line 557
25592                                      __cil_tmp82 = (int )wValue;
25593#line 557
25594                                      __cil_tmp83 = __cil_tmp82 & 255;
25595#line 557
25596                                      __cil_tmp84 = (struct usb_hcd  const  *)hcd;
25597#line 557
25598                                      __cil_tmp85 = (unsigned int )wLength;
25599#line 557
25600                                      urb->actual_length = rh_string(__cil_tmp83,
25601                                                                     __cil_tmp84,
25602                                                                     ubuf, __cil_tmp85);
25603                                      }
25604                                    } else {
25605#line 560
25606                                      goto error;
25607                                    }
25608                                    }
25609#line 561
25610                                    goto ldv_27712;
25611                                    switch_default___1: ;
25612#line 563
25613                                    goto error;
25614                                  } else {
25615
25616                                  }
25617                                }
25618                                }
25619                              }
25620                              }
25621                            }
25622                            }
25623                            ldv_27712: ;
25624#line 565
25625                            goto ldv_27700;
25626                            case_32778: 
25627#line 567
25628                            tbuf[0] = (u8 )0U;
25629#line 568
25630                            len = 1U;
25631                            case_11: ;
25632#line 571
25633                            goto ldv_27700;
25634                            case_5: 
25635                            {
25636#line 574
25637                            __cil_tmp86 = hcd->self.controller;
25638#line 574
25639                            __cil_tmp87 = (struct device  const  *)__cil_tmp86;
25640#line 574
25641                            __cil_tmp88 = (int )wValue;
25642#line 574
25643                            dev_printk("<7>", __cil_tmp87, "root hub device address %d\n",
25644                                       __cil_tmp88);
25645                            }
25646#line 576
25647                            goto ldv_27700;
25648                            case_33024: 
25649#line 584
25650                            tbuf[0] = (u8 )0U;
25651#line 585
25652                            tbuf[1] = (u8 )0U;
25653#line 586
25654                            len = 2U;
25655                            case_257: ;
25656                            case_259: 
25657                            {
25658#line 590
25659                            __cil_tmp89 = hcd->self.controller;
25660#line 590
25661                            __cil_tmp90 = (struct device  const  *)__cil_tmp89;
25662#line 590
25663                            dev_printk("<7>", __cil_tmp90, "no endpoint features yet\n");
25664                            }
25665#line 591
25666                            goto ldv_27700;
25667                            switch_default___2: ;
25668                            {
25669#line 598
25670                            __cil_tmp91 = (int )typeReq;
25671#line 598
25672                            if (__cil_tmp91 == 40960) {
25673#line 598
25674                              goto case_40960;
25675                            } else {
25676                              {
25677#line 599
25678                              __cil_tmp92 = (int )typeReq;
25679#line 599
25680                              if (__cil_tmp92 == 41728) {
25681#line 599
25682                                goto case_41728;
25683                              } else {
25684                                {
25685#line 602
25686                                __cil_tmp93 = (int )typeReq;
25687#line 602
25688                                if (__cil_tmp93 == 40966) {
25689#line 602
25690                                  goto case_40966;
25691                                } else
25692#line 597
25693                                if (0) {
25694                                  case_40960: ;
25695                                  case_41728: 
25696#line 600
25697                                  len = 4U;
25698#line 601
25699                                  goto ldv_27730;
25700                                  case_40966: 
25701#line 603
25702                                  len = 15U;
25703#line 604
25704                                  goto ldv_27730;
25705                                } else {
25706
25707                                }
25708                                }
25709                              }
25710                              }
25711                            }
25712                            }
25713                            ldv_27730: 
25714                            {
25715#line 606
25716                            __cil_tmp94 = hcd->driver;
25717#line 606
25718                            __cil_tmp95 = __cil_tmp94->hub_control;
25719#line 606
25720                            __cil_tmp96 = (int )typeReq;
25721#line 606
25722                            __cil_tmp97 = (u16 )__cil_tmp96;
25723#line 606
25724                            __cil_tmp98 = (int )wValue;
25725#line 606
25726                            __cil_tmp99 = (u16 )__cil_tmp98;
25727#line 606
25728                            __cil_tmp100 = (int )wIndex;
25729#line 606
25730                            __cil_tmp101 = (u16 )__cil_tmp100;
25731#line 606
25732                            __cil_tmp102 = (char *)(& tbuf);
25733#line 606
25734                            __cil_tmp103 = (int )wLength;
25735#line 606
25736                            __cil_tmp104 = (u16 )__cil_tmp103;
25737#line 606
25738                            status = (*__cil_tmp95)(hcd, __cil_tmp97, __cil_tmp99,
25739                                                    __cil_tmp101, __cil_tmp102, __cil_tmp104);
25740                            }
25741#line 609
25742                            goto ldv_27700;
25743                            error: 
25744#line 612
25745                            status = -32;
25746                          } else {
25747
25748                          }
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  ldv_27700: ;
25774#line 615
25775  if (status != 0) {
25776#line 616
25777    len = 0U;
25778#line 617
25779    if (status != -32) {
25780      {
25781#line 618
25782      __cil_tmp105 = hcd->self.controller;
25783#line 618
25784      __cil_tmp106 = (struct device  const  *)__cil_tmp105;
25785#line 618
25786      __cil_tmp107 = (int )typeReq;
25787#line 618
25788      __cil_tmp108 = (int )wValue;
25789#line 618
25790      __cil_tmp109 = (int )wIndex;
25791#line 618
25792      __cil_tmp110 = (int )wLength;
25793#line 618
25794      dev_printk("<7>", __cil_tmp106, "CTRL: TypeReq=0x%x val=0x%x idx=0x%x len=%d ==> %d\n",
25795                 __cil_tmp107, __cil_tmp108, __cil_tmp109, __cil_tmp110, status);
25796      }
25797    } else {
25798
25799    }
25800  } else {
25801
25802  }
25803#line 625
25804  if (len != 0U) {
25805    {
25806#line 626
25807    __cil_tmp111 = urb->transfer_buffer_length;
25808#line 626
25809    if (__cil_tmp111 < len) {
25810#line 627
25811      len = urb->transfer_buffer_length;
25812    } else {
25813
25814    }
25815    }
25816    {
25817#line 628
25818    urb->actual_length = len;
25819#line 630
25820    __len = (size_t )len;
25821#line 630
25822    __cil_tmp112 = (void *)ubuf;
25823#line 630
25824    __cil_tmp113 = (void const   *)bufp;
25825#line 630
25826    __ret = __builtin_memcpy(__cil_tmp112, __cil_tmp113, __len);
25827    }
25828    {
25829#line 633
25830    __cil_tmp114 = (unsigned int )patch_wakeup;
25831#line 633
25832    if (__cil_tmp114 != 0U) {
25833#line 633
25834      if (len > 7U) {
25835#line 637
25836        __cil_tmp115 = (struct usb_config_descriptor *)ubuf;
25837#line 637
25838        __cil_tmp116 = (struct usb_config_descriptor *)ubuf;
25839#line 637
25840        __cil_tmp117 = __cil_tmp116->bmAttributes;
25841#line 637
25842        __cil_tmp118 = (unsigned int )__cil_tmp117;
25843#line 637
25844        __cil_tmp119 = __cil_tmp118 | 32U;
25845#line 637
25846        __cil_tmp115->bmAttributes = (__u8 )__cil_tmp119;
25847      } else {
25848
25849      }
25850    } else {
25851
25852    }
25853    }
25854    {
25855#line 640
25856    __cil_tmp120 = (unsigned int )patch_protocol;
25857#line 640
25858    if (__cil_tmp120 != 0U) {
25859#line 640
25860      if (len > 6U) {
25861#line 643
25862        __cil_tmp121 = (struct usb_device_descriptor *)ubuf;
25863#line 643
25864        __cil_tmp121->bDeviceProtocol = (__u8 )1U;
25865      } else {
25866
25867      }
25868    } else {
25869
25870    }
25871    }
25872  } else {
25873
25874  }
25875  {
25876#line 648
25877  spin_lock_irq(& hcd_root_hub_lock);
25878#line 649
25879  usb_hcd_unlink_urb_from_ep(hcd, urb);
25880#line 655
25881  spin_unlock(& hcd_root_hub_lock);
25882#line 656
25883  usb_hcd_giveback_urb(hcd, urb, status);
25884#line 657
25885  spin_lock(& hcd_root_hub_lock);
25886#line 659
25887  spin_unlock_irq(& hcd_root_hub_lock);
25888  }
25889#line 660
25890  return (0);
25891}
25892}
25893#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"
25894void usb_hcd_poll_rh_status(struct usb_hcd *hcd ) 
25895{ struct urb *urb ;
25896  int length ;
25897  unsigned long flags ;
25898  char buffer[6U] ;
25899  long tmp ;
25900  raw_spinlock_t *tmp___0 ;
25901  size_t __len ;
25902  void *__ret ;
25903  int tmp___1 ;
25904  int tmp___2 ;
25905  unsigned char *__cil_tmp12 ;
25906  unsigned char *__cil_tmp13 ;
25907  unsigned char __cil_tmp14 ;
25908  unsigned int __cil_tmp15 ;
25909  int __cil_tmp16 ;
25910  long __cil_tmp17 ;
25911  unsigned char *__cil_tmp18 ;
25912  unsigned char *__cil_tmp19 ;
25913  unsigned char __cil_tmp20 ;
25914  unsigned int __cil_tmp21 ;
25915  struct urb *__cil_tmp22 ;
25916  unsigned long __cil_tmp23 ;
25917  struct urb *__cil_tmp24 ;
25918  unsigned long __cil_tmp25 ;
25919  struct hc_driver  const  *__cil_tmp26 ;
25920  int (*__cil_tmp27)(struct usb_hcd * , char * ) ;
25921  char *__cil_tmp28 ;
25922  struct urb *__cil_tmp29 ;
25923  unsigned long __cil_tmp30 ;
25924  unsigned long __cil_tmp31 ;
25925  unsigned long *__cil_tmp32 ;
25926  unsigned long volatile   *__cil_tmp33 ;
25927  void *__cil_tmp34 ;
25928  void const   *__cil_tmp35 ;
25929  unsigned long *__cil_tmp36 ;
25930  unsigned long volatile   *__cil_tmp37 ;
25931  unsigned char *__cil_tmp38 ;
25932  unsigned char *__cil_tmp39 ;
25933  unsigned char __cil_tmp40 ;
25934  unsigned int __cil_tmp41 ;
25935  unsigned long __cil_tmp42 ;
25936  unsigned long __cil_tmp43 ;
25937  struct urb *__cil_tmp44 ;
25938  unsigned long __cil_tmp45 ;
25939  struct urb *__cil_tmp46 ;
25940  unsigned long __cil_tmp47 ;
25941  struct timer_list *__cil_tmp48 ;
25942  unsigned long __cil_tmp49 ;
25943  unsigned long __cil_tmp50 ;
25944  unsigned long __cil_tmp51 ;
25945  unsigned long __cil_tmp52 ;
25946
25947  {
25948  {
25949#line 680
25950  __cil_tmp12 = (unsigned char *)hcd;
25951#line 680
25952  __cil_tmp13 = __cil_tmp12 + 408UL;
25953#line 680
25954  __cil_tmp14 = *__cil_tmp13;
25955#line 680
25956  __cil_tmp15 = (unsigned int )__cil_tmp14;
25957#line 680
25958  __cil_tmp16 = __cil_tmp15 == 0U;
25959#line 680
25960  __cil_tmp17 = (long )__cil_tmp16;
25961#line 680
25962  tmp = __builtin_expect(__cil_tmp17, 0L);
25963  }
25964#line 680
25965  if (tmp != 0L) {
25966#line 681
25967    return;
25968  } else {
25969
25970  }
25971  {
25972#line 682
25973  __cil_tmp18 = (unsigned char *)hcd;
25974#line 682
25975  __cil_tmp19 = __cil_tmp18 + 408UL;
25976#line 682
25977  __cil_tmp20 = *__cil_tmp19;
25978#line 682
25979  __cil_tmp21 = (unsigned int )__cil_tmp20;
25980#line 682
25981  if (__cil_tmp21 == 0U) {
25982    {
25983#line 682
25984    __cil_tmp22 = (struct urb *)0;
25985#line 682
25986    __cil_tmp23 = (unsigned long )__cil_tmp22;
25987#line 682
25988    __cil_tmp24 = hcd->status_urb;
25989#line 682
25990    __cil_tmp25 = (unsigned long )__cil_tmp24;
25991#line 682
25992    if (__cil_tmp25 == __cil_tmp23) {
25993#line 683
25994      return;
25995    } else {
25996
25997    }
25998    }
25999  } else {
26000
26001  }
26002  }
26003  {
26004#line 685
26005  __cil_tmp26 = hcd->driver;
26006#line 685
26007  __cil_tmp27 = __cil_tmp26->hub_status_data;
26008#line 685
26009  __cil_tmp28 = (char *)(& buffer);
26010#line 685
26011  length = (*__cil_tmp27)(hcd, __cil_tmp28);
26012  }
26013#line 686
26014  if (length > 0) {
26015    {
26016#line 689
26017    tmp___0 = spinlock_check(& hcd_root_hub_lock);
26018#line 689
26019    flags = _raw_spin_lock_irqsave(tmp___0);
26020#line 690
26021    urb = hcd->status_urb;
26022    }
26023    {
26024#line 691
26025    __cil_tmp29 = (struct urb *)0;
26026#line 691
26027    __cil_tmp30 = (unsigned long )__cil_tmp29;
26028#line 691
26029    __cil_tmp31 = (unsigned long )urb;
26030#line 691
26031    if (__cil_tmp31 != __cil_tmp30) {
26032      {
26033#line 692
26034      __cil_tmp32 = & hcd->flags;
26035#line 692
26036      __cil_tmp33 = (unsigned long volatile   *)__cil_tmp32;
26037#line 692
26038      clear_bit(3, __cil_tmp33);
26039#line 693
26040      hcd->status_urb = (struct urb *)0;
26041#line 694
26042      urb->actual_length = (u32 )length;
26043#line 695
26044      __len = (size_t )length;
26045#line 695
26046      __cil_tmp34 = urb->transfer_buffer;
26047#line 695
26048      __cil_tmp35 = (void const   *)(& buffer);
26049#line 695
26050      __ret = __builtin_memcpy(__cil_tmp34, __cil_tmp35, __len);
26051#line 697
26052      usb_hcd_unlink_urb_from_ep(hcd, urb);
26053#line 698
26054      spin_unlock(& hcd_root_hub_lock);
26055#line 699
26056      usb_hcd_giveback_urb(hcd, urb, 0);
26057#line 700
26058      spin_lock(& hcd_root_hub_lock);
26059      }
26060    } else {
26061      {
26062#line 702
26063      length = 0;
26064#line 703
26065      __cil_tmp36 = & hcd->flags;
26066#line 703
26067      __cil_tmp37 = (unsigned long volatile   *)__cil_tmp36;
26068#line 703
26069      set_bit(3U, __cil_tmp37);
26070      }
26071    }
26072    }
26073    {
26074#line 705
26075    spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
26076    }
26077  } else {
26078
26079  }
26080  {
26081#line 712
26082  __cil_tmp38 = (unsigned char *)hcd;
26083#line 712
26084  __cil_tmp39 = __cil_tmp38 + 408UL;
26085#line 712
26086  __cil_tmp40 = *__cil_tmp39;
26087#line 712
26088  __cil_tmp41 = (unsigned int )__cil_tmp40;
26089#line 712
26090  if (__cil_tmp41 != 0U) {
26091#line 712
26092    __cil_tmp42 = hcd->flags;
26093#line 712
26094    __cil_tmp43 = __cil_tmp42 & 4UL;
26095#line 712
26096    tmp___2 = __cil_tmp43 != 0UL;
26097  } else {
26098#line 712
26099    if (length == 0) {
26100      {
26101#line 712
26102      __cil_tmp44 = (struct urb *)0;
26103#line 712
26104      __cil_tmp45 = (unsigned long )__cil_tmp44;
26105#line 712
26106      __cil_tmp46 = hcd->status_urb;
26107#line 712
26108      __cil_tmp47 = (unsigned long )__cil_tmp46;
26109#line 712
26110      if (__cil_tmp47 != __cil_tmp45) {
26111#line 712
26112        tmp___1 = 1;
26113      } else {
26114#line 712
26115        tmp___1 = 0;
26116      }
26117      }
26118    } else {
26119#line 712
26120      tmp___1 = 0;
26121    }
26122#line 712
26123    tmp___2 = tmp___1 != 0;
26124  }
26125  }
26126#line 712
26127  if (tmp___2) {
26128    {
26129#line 714
26130    __cil_tmp48 = & hcd->rh_timer;
26131#line 714
26132    __cil_tmp49 = (unsigned long )jiffies;
26133#line 714
26134    __cil_tmp50 = __cil_tmp49 / 62UL;
26135#line 714
26136    __cil_tmp51 = __cil_tmp50 + 1UL;
26137#line 714
26138    __cil_tmp52 = __cil_tmp51 * 62UL;
26139#line 714
26140    mod_timer(__cil_tmp48, __cil_tmp52);
26141    }
26142  } else {
26143
26144  }
26145#line 715
26146  return;
26147}
26148}
26149#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"
26150static void rh_timer_func(unsigned long _hcd ) 
26151{ struct usb_hcd *__cil_tmp2 ;
26152
26153  {
26154  {
26155#line 721
26156  __cil_tmp2 = (struct usb_hcd *)_hcd;
26157#line 721
26158  usb_hcd_poll_rh_status(__cil_tmp2);
26159  }
26160#line 722
26161  return;
26162}
26163}
26164#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"
26165static int rh_queue_status(struct usb_hcd *hcd , struct urb *urb ) 
26166{ int retval ;
26167  unsigned long flags ;
26168  unsigned int len ;
26169  raw_spinlock_t *tmp ;
26170  struct usb_device *__cil_tmp7 ;
26171  int __cil_tmp8 ;
26172  int __cil_tmp9 ;
26173  int __cil_tmp10 ;
26174  struct urb *__cil_tmp11 ;
26175  unsigned long __cil_tmp12 ;
26176  struct urb *__cil_tmp13 ;
26177  unsigned long __cil_tmp14 ;
26178  struct device *__cil_tmp15 ;
26179  struct device  const  *__cil_tmp16 ;
26180  u32 __cil_tmp17 ;
26181  struct device *__cil_tmp18 ;
26182  struct device  const  *__cil_tmp19 ;
26183  unsigned char *__cil_tmp20 ;
26184  unsigned char *__cil_tmp21 ;
26185  unsigned char __cil_tmp22 ;
26186  unsigned int __cil_tmp23 ;
26187  struct timer_list *__cil_tmp24 ;
26188  unsigned long __cil_tmp25 ;
26189  unsigned long __cil_tmp26 ;
26190  unsigned long __cil_tmp27 ;
26191  unsigned long __cil_tmp28 ;
26192  unsigned long __cil_tmp29 ;
26193  unsigned long __cil_tmp30 ;
26194  struct timer_list *__cil_tmp31 ;
26195  unsigned long __cil_tmp32 ;
26196
26197  {
26198  {
26199#line 730
26200  __cil_tmp7 = urb->dev;
26201#line 730
26202  __cil_tmp8 = __cil_tmp7->maxchild;
26203#line 730
26204  __cil_tmp9 = __cil_tmp8 / 8;
26205#line 730
26206  __cil_tmp10 = __cil_tmp9 + 1;
26207#line 730
26208  len = (unsigned int )__cil_tmp10;
26209#line 732
26210  tmp = spinlock_check(& hcd_root_hub_lock);
26211#line 732
26212  flags = _raw_spin_lock_irqsave(tmp);
26213  }
26214  {
26215#line 733
26216  __cil_tmp11 = (struct urb *)0;
26217#line 733
26218  __cil_tmp12 = (unsigned long )__cil_tmp11;
26219#line 733
26220  __cil_tmp13 = hcd->status_urb;
26221#line 733
26222  __cil_tmp14 = (unsigned long )__cil_tmp13;
26223#line 733
26224  if (__cil_tmp14 != __cil_tmp12) {
26225    {
26226#line 734
26227    __cil_tmp15 = hcd->self.controller;
26228#line 734
26229    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
26230#line 734
26231    dev_printk("<7>", __cil_tmp16, "not queuing rh status urb\n");
26232#line 735
26233    retval = -22;
26234    }
26235#line 736
26236    goto done;
26237  } else {
26238    {
26239#line 733
26240    __cil_tmp17 = urb->transfer_buffer_length;
26241#line 733
26242    if (__cil_tmp17 < len) {
26243      {
26244#line 734
26245      __cil_tmp18 = hcd->self.controller;
26246#line 734
26247      __cil_tmp19 = (struct device  const  *)__cil_tmp18;
26248#line 734
26249      dev_printk("<7>", __cil_tmp19, "not queuing rh status urb\n");
26250#line 735
26251      retval = -22;
26252      }
26253#line 736
26254      goto done;
26255    } else {
26256
26257    }
26258    }
26259  }
26260  }
26261  {
26262#line 739
26263  retval = usb_hcd_link_urb_to_ep(hcd, urb);
26264  }
26265#line 740
26266  if (retval != 0) {
26267#line 741
26268    goto done;
26269  } else {
26270
26271  }
26272#line 743
26273  hcd->status_urb = urb;
26274#line 744
26275  urb->hcpriv = (void *)hcd;
26276  {
26277#line 745
26278  __cil_tmp20 = (unsigned char *)hcd;
26279#line 745
26280  __cil_tmp21 = __cil_tmp20 + 408UL;
26281#line 745
26282  __cil_tmp22 = *__cil_tmp21;
26283#line 745
26284  __cil_tmp23 = (unsigned int )__cil_tmp22;
26285#line 745
26286  if (__cil_tmp23 == 0U) {
26287    {
26288#line 746
26289    __cil_tmp24 = & hcd->rh_timer;
26290#line 746
26291    __cil_tmp25 = (unsigned long )jiffies;
26292#line 746
26293    __cil_tmp26 = __cil_tmp25 / 62UL;
26294#line 746
26295    __cil_tmp27 = __cil_tmp26 + 1UL;
26296#line 746
26297    __cil_tmp28 = __cil_tmp27 * 62UL;
26298#line 746
26299    mod_timer(__cil_tmp24, __cil_tmp28);
26300    }
26301  } else {
26302    {
26303#line 749
26304    __cil_tmp29 = hcd->flags;
26305#line 749
26306    __cil_tmp30 = __cil_tmp29 & 8UL;
26307#line 749
26308    if (__cil_tmp30 != 0UL) {
26309      {
26310#line 750
26311      __cil_tmp31 = & hcd->rh_timer;
26312#line 750
26313      __cil_tmp32 = (unsigned long )jiffies;
26314#line 750
26315      mod_timer(__cil_tmp31, __cil_tmp32);
26316      }
26317    } else {
26318
26319    }
26320    }
26321  }
26322  }
26323#line 751
26324  retval = 0;
26325  done: 
26326  {
26327#line 753
26328  spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
26329  }
26330#line 754
26331  return (retval);
26332}
26333}
26334#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"
26335static int rh_urb_enqueue(struct usb_hcd *hcd , struct urb *urb ) 
26336{ int tmp ;
26337  int tmp___0 ;
26338  int tmp___1 ;
26339  int tmp___2 ;
26340  struct usb_host_endpoint *__cil_tmp7 ;
26341  struct usb_endpoint_descriptor *__cil_tmp8 ;
26342  struct usb_endpoint_descriptor  const  *__cil_tmp9 ;
26343  struct usb_host_endpoint *__cil_tmp10 ;
26344  struct usb_endpoint_descriptor *__cil_tmp11 ;
26345  struct usb_endpoint_descriptor  const  *__cil_tmp12 ;
26346
26347  {
26348  {
26349#line 759
26350  __cil_tmp7 = urb->ep;
26351#line 759
26352  __cil_tmp8 = & __cil_tmp7->desc;
26353#line 759
26354  __cil_tmp9 = (struct usb_endpoint_descriptor  const  *)__cil_tmp8;
26355#line 759
26356  tmp___0 = usb_endpoint_xfer_int(__cil_tmp9);
26357  }
26358#line 759
26359  if (tmp___0 != 0) {
26360    {
26361#line 760
26362    tmp = rh_queue_status(hcd, urb);
26363    }
26364#line 760
26365    return (tmp);
26366  } else {
26367
26368  }
26369  {
26370#line 761
26371  __cil_tmp10 = urb->ep;
26372#line 761
26373  __cil_tmp11 = & __cil_tmp10->desc;
26374#line 761
26375  __cil_tmp12 = (struct usb_endpoint_descriptor  const  *)__cil_tmp11;
26376#line 761
26377  tmp___2 = usb_endpoint_xfer_control(__cil_tmp12);
26378  }
26379#line 761
26380  if (tmp___2 != 0) {
26381    {
26382#line 762
26383    tmp___1 = rh_call_control(hcd, urb);
26384    }
26385#line 762
26386    return (tmp___1);
26387  } else {
26388
26389  }
26390#line 763
26391  return (-22);
26392}
26393}
26394#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"
26395static int usb_rh_urb_dequeue(struct usb_hcd *hcd , struct urb *urb , int status ) 
26396{ unsigned long flags ;
26397  int rc ;
26398  raw_spinlock_t *tmp ;
26399  int tmp___0 ;
26400  struct usb_host_endpoint *__cil_tmp8 ;
26401  struct usb_endpoint_descriptor *__cil_tmp9 ;
26402  struct usb_endpoint_descriptor  const  *__cil_tmp10 ;
26403  unsigned char *__cil_tmp11 ;
26404  unsigned char *__cil_tmp12 ;
26405  unsigned char __cil_tmp13 ;
26406  unsigned int __cil_tmp14 ;
26407  struct timer_list *__cil_tmp15 ;
26408  unsigned long __cil_tmp16 ;
26409  struct urb *__cil_tmp17 ;
26410  unsigned long __cil_tmp18 ;
26411
26412  {
26413  {
26414#line 776
26415  tmp = spinlock_check(& hcd_root_hub_lock);
26416#line 776
26417  flags = _raw_spin_lock_irqsave(tmp);
26418#line 777
26419  rc = usb_hcd_check_unlink_urb(hcd, urb, status);
26420  }
26421#line 778
26422  if (rc != 0) {
26423#line 779
26424    goto done;
26425  } else {
26426
26427  }
26428  {
26429#line 781
26430  __cil_tmp8 = urb->ep;
26431#line 781
26432  __cil_tmp9 = & __cil_tmp8->desc;
26433#line 781
26434  __cil_tmp10 = (struct usb_endpoint_descriptor  const  *)__cil_tmp9;
26435#line 781
26436  tmp___0 = usb_endpoint_num(__cil_tmp10);
26437  }
26438#line 781
26439  if (tmp___0 == 0) {
26440
26441  } else {
26442    {
26443#line 785
26444    __cil_tmp11 = (unsigned char *)hcd;
26445#line 785
26446    __cil_tmp12 = __cil_tmp11 + 408UL;
26447#line 785
26448    __cil_tmp13 = *__cil_tmp12;
26449#line 785
26450    __cil_tmp14 = (unsigned int )__cil_tmp13;
26451#line 785
26452    if (__cil_tmp14 == 0U) {
26453      {
26454#line 786
26455      __cil_tmp15 = & hcd->rh_timer;
26456#line 786
26457      del_timer(__cil_tmp15);
26458      }
26459    } else {
26460
26461    }
26462    }
26463    {
26464#line 787
26465    __cil_tmp16 = (unsigned long )urb;
26466#line 787
26467    __cil_tmp17 = hcd->status_urb;
26468#line 787
26469    __cil_tmp18 = (unsigned long )__cil_tmp17;
26470#line 787
26471    if (__cil_tmp18 == __cil_tmp16) {
26472      {
26473#line 788
26474      hcd->status_urb = (struct urb *)0;
26475#line 789
26476      usb_hcd_unlink_urb_from_ep(hcd, urb);
26477#line 791
26478      spin_unlock(& hcd_root_hub_lock);
26479#line 792
26480      usb_hcd_giveback_urb(hcd, urb, status);
26481#line 793
26482      spin_lock(& hcd_root_hub_lock);
26483      }
26484    } else {
26485
26486    }
26487    }
26488  }
26489  done: 
26490  {
26491#line 797
26492  spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
26493  }
26494#line 798
26495  return (rc);
26496}
26497}
26498#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"
26499static ssize_t usb_host_authorized_default_show(struct device *dev , struct device_attribute *attr ,
26500                                                char *buf ) 
26501{ struct usb_device *rh_usb_dev ;
26502  struct device  const  *__mptr ;
26503  struct usb_bus *usb_bus ;
26504  struct usb_hcd *usb_hcd ;
26505  int tmp ;
26506  struct usb_device *__cil_tmp9 ;
26507  struct usb_bus *__cil_tmp10 ;
26508  unsigned long __cil_tmp11 ;
26509  unsigned long __cil_tmp12 ;
26510  unsigned char __cil_tmp13 ;
26511  int __cil_tmp14 ;
26512
26513  {
26514#line 810
26515  __mptr = (struct device  const  *)dev;
26516#line 810
26517  __cil_tmp9 = (struct usb_device *)__mptr;
26518#line 810
26519  rh_usb_dev = __cil_tmp9 + 1152921504606846840UL;
26520#line 811
26521  usb_bus = rh_usb_dev->bus;
26522  {
26523#line 814
26524  __cil_tmp10 = (struct usb_bus *)0;
26525#line 814
26526  __cil_tmp11 = (unsigned long )__cil_tmp10;
26527#line 814
26528  __cil_tmp12 = (unsigned long )usb_bus;
26529#line 814
26530  if (__cil_tmp12 == __cil_tmp11) {
26531#line 815
26532    return (-19L);
26533  } else {
26534
26535  }
26536  }
26537  {
26538#line 816
26539  usb_hcd = bus_to_hcd(usb_bus);
26540#line 817
26541  __cil_tmp13 = usb_hcd->authorized_default;
26542#line 817
26543  __cil_tmp14 = (int )__cil_tmp13;
26544#line 817
26545  tmp = snprintf(buf, 4096UL, "%u\n", __cil_tmp14);
26546  }
26547#line 817
26548  return ((ssize_t )tmp);
26549}
26550}
26551#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"
26552static ssize_t usb_host_authorized_default_store(struct device *dev , struct device_attribute *attr ,
26553                                                 char const   *buf , size_t size ) 
26554{ ssize_t result ;
26555  unsigned int val ;
26556  struct usb_device *rh_usb_dev ;
26557  struct device  const  *__mptr ;
26558  struct usb_bus *usb_bus ;
26559  struct usb_hcd *usb_hcd ;
26560  int tmp ;
26561  struct usb_device *__cil_tmp12 ;
26562  struct usb_bus *__cil_tmp13 ;
26563  unsigned long __cil_tmp14 ;
26564  unsigned long __cil_tmp15 ;
26565  int __cil_tmp16 ;
26566
26567  {
26568#line 826
26569  __mptr = (struct device  const  *)dev;
26570#line 826
26571  __cil_tmp12 = (struct usb_device *)__mptr;
26572#line 826
26573  rh_usb_dev = __cil_tmp12 + 1152921504606846840UL;
26574#line 827
26575  usb_bus = rh_usb_dev->bus;
26576  {
26577#line 830
26578  __cil_tmp13 = (struct usb_bus *)0;
26579#line 830
26580  __cil_tmp14 = (unsigned long )__cil_tmp13;
26581#line 830
26582  __cil_tmp15 = (unsigned long )usb_bus;
26583#line 830
26584  if (__cil_tmp15 == __cil_tmp14) {
26585#line 831
26586    return (-19L);
26587  } else {
26588
26589  }
26590  }
26591  {
26592#line 832
26593  usb_hcd = bus_to_hcd(usb_bus);
26594#line 833
26595  tmp = sscanf(buf, "%u\n", & val);
26596#line 833
26597  result = (ssize_t )tmp;
26598  }
26599#line 834
26600  if (result == 1L) {
26601#line 835
26602    __cil_tmp16 = val != 0U;
26603#line 835
26604    usb_hcd->authorized_default = (unsigned char )__cil_tmp16;
26605#line 836
26606    result = (ssize_t )size;
26607  } else {
26608#line 839
26609    result = -22L;
26610  }
26611#line 840
26612  return (result);
26613}
26614}
26615#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"
26616static struct device_attribute dev_attr_authorized_default  =    {{"authorized_default", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
26617                                                               {(char)0}, {(char)0},
26618                                                               {(char)0}, {(char)0},
26619                                                               {(char)0}, {(char)0}}}},
26620    & usb_host_authorized_default_show, & usb_host_authorized_default_store};
26621#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"
26622static struct attribute *usb_bus_attrs[2U]  = {      & dev_attr_authorized_default.attr,      (struct attribute *)0};
26623#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"
26624static struct attribute_group usb_bus_attr_group  =    {(char const   *)0, (mode_t (*)(struct kobject * , struct attribute * , int  ))0,
26625    (struct attribute **)(& usb_bus_attrs)};
26626#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"
26627static void usb_bus_init(struct usb_bus *bus ) 
26628{ struct usb_devmap *__cil_tmp2 ;
26629  void *__cil_tmp3 ;
26630  struct list_head *__cil_tmp4 ;
26631
26632  {
26633  {
26634#line 872
26635  __cil_tmp2 = & bus->devmap;
26636#line 872
26637  __cil_tmp3 = (void *)__cil_tmp2;
26638#line 872
26639  memset(__cil_tmp3, 0, 16UL);
26640#line 874
26641  bus->devnum_next = 1;
26642#line 876
26643  bus->root_hub = (struct usb_device *)0;
26644#line 877
26645  bus->busnum = -1;
26646#line 878
26647  bus->bandwidth_allocated = 0;
26648#line 879
26649  bus->bandwidth_int_reqs = 0;
26650#line 880
26651  bus->bandwidth_isoc_reqs = 0;
26652#line 882
26653  __cil_tmp4 = & bus->bus_list;
26654#line 882
26655  INIT_LIST_HEAD(__cil_tmp4);
26656  }
26657#line 883
26658  return;
26659}
26660}
26661#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"
26662static int usb_register_bus(struct usb_bus *bus ) 
26663{ int result ;
26664  int busnum ;
26665  unsigned long tmp ;
26666  unsigned long (*__cil_tmp5)[1U] ;
26667  unsigned long const   *__cil_tmp6 ;
26668  unsigned int __cil_tmp7 ;
26669  unsigned long (*__cil_tmp8)[1U] ;
26670  unsigned long volatile   *__cil_tmp9 ;
26671  struct list_head *__cil_tmp10 ;
26672  struct device *__cil_tmp11 ;
26673  struct device  const  *__cil_tmp12 ;
26674  int __cil_tmp13 ;
26675
26676  {
26677  {
26678#line 897
26679  result = -7;
26680#line 900
26681  mutex_lock_nested(& usb_bus_list_lock, 0U);
26682#line 901
26683  __cil_tmp5 = & busmap.busmap;
26684#line 901
26685  __cil_tmp6 = (unsigned long const   *)__cil_tmp5;
26686#line 901
26687  tmp = find_next_zero_bit(__cil_tmp6, 64UL, 1UL);
26688#line 901
26689  busnum = (int )tmp;
26690  }
26691#line 902
26692  if (busnum > 63) {
26693    {
26694#line 903
26695    printk("<3>%s: too many buses\n", usbcore_name);
26696    }
26697#line 904
26698    goto error_find_busnum;
26699  } else {
26700
26701  }
26702  {
26703#line 906
26704  __cil_tmp7 = (unsigned int )busnum;
26705#line 906
26706  __cil_tmp8 = & busmap.busmap;
26707#line 906
26708  __cil_tmp9 = (unsigned long volatile   *)__cil_tmp8;
26709#line 906
26710  set_bit(__cil_tmp7, __cil_tmp9);
26711#line 907
26712  bus->busnum = busnum;
26713#line 910
26714  __cil_tmp10 = & bus->bus_list;
26715#line 910
26716  list_add(__cil_tmp10, & usb_bus_list);
26717#line 911
26718  mutex_unlock(& usb_bus_list_lock);
26719#line 913
26720  usb_notify_add_bus(bus);
26721#line 915
26722  __cil_tmp11 = bus->controller;
26723#line 915
26724  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
26725#line 915
26726  __cil_tmp13 = bus->busnum;
26727#line 915
26728  _dev_info(__cil_tmp12, "new USB bus registered, assigned bus number %d\n", __cil_tmp13);
26729  }
26730#line 917
26731  return (0);
26732  error_find_busnum: 
26733  {
26734#line 920
26735  mutex_unlock(& usb_bus_list_lock);
26736  }
26737#line 921
26738  return (result);
26739}
26740}
26741#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"
26742static void usb_deregister_bus(struct usb_bus *bus ) 
26743{ struct device *__cil_tmp2 ;
26744  struct device  const  *__cil_tmp3 ;
26745  int __cil_tmp4 ;
26746  struct list_head *__cil_tmp5 ;
26747  int __cil_tmp6 ;
26748  unsigned long (*__cil_tmp7)[1U] ;
26749  unsigned long volatile   *__cil_tmp8 ;
26750
26751  {
26752  {
26753#line 934
26754  __cil_tmp2 = bus->controller;
26755#line 934
26756  __cil_tmp3 = (struct device  const  *)__cil_tmp2;
26757#line 934
26758  __cil_tmp4 = bus->busnum;
26759#line 934
26760  _dev_info(__cil_tmp3, "USB bus %d deregistered\n", __cil_tmp4);
26761#line 941
26762  mutex_lock_nested(& usb_bus_list_lock, 0U);
26763#line 942
26764  __cil_tmp5 = & bus->bus_list;
26765#line 942
26766  list_del(__cil_tmp5);
26767#line 943
26768  mutex_unlock(& usb_bus_list_lock);
26769#line 945
26770  usb_notify_remove_bus(bus);
26771#line 947
26772  __cil_tmp6 = bus->busnum;
26773#line 947
26774  __cil_tmp7 = & busmap.busmap;
26775#line 947
26776  __cil_tmp8 = (unsigned long volatile   *)__cil_tmp7;
26777#line 947
26778  clear_bit(__cil_tmp6, __cil_tmp8);
26779  }
26780#line 948
26781  return;
26782}
26783}
26784#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"
26785static int register_root_hub(struct usb_hcd *hcd ) 
26786{ struct device *parent_dev ;
26787  struct usb_device *usb_dev ;
26788  int devnum ;
26789  int retval ;
26790  char const   *tmp ;
26791  int tmp___0 ;
26792  char const   *tmp___1 ;
26793  struct usb_bus *__cil_tmp9 ;
26794  struct usb_bus *__cil_tmp10 ;
26795  unsigned long (*__cil_tmp11)[2U] ;
26796  void *__cil_tmp12 ;
26797  unsigned int __cil_tmp13 ;
26798  struct usb_bus *__cil_tmp14 ;
26799  unsigned long (*__cil_tmp15)[2U] ;
26800  unsigned long volatile   *__cil_tmp16 ;
26801  enum usb_device_state __cil_tmp17 ;
26802  struct device *__cil_tmp18 ;
26803  struct device  const  *__cil_tmp19 ;
26804  struct device  const  *__cil_tmp20 ;
26805  struct device *__cil_tmp21 ;
26806  struct device  const  *__cil_tmp22 ;
26807  struct device  const  *__cil_tmp23 ;
26808  unsigned long __cil_tmp24 ;
26809  unsigned long __cil_tmp25 ;
26810
26811  {
26812  {
26813#line 961
26814  parent_dev = hcd->self.controller;
26815#line 962
26816  usb_dev = hcd->self.root_hub;
26817#line 963
26818  devnum = 1;
26819#line 966
26820  usb_dev->devnum = devnum;
26821#line 967
26822  __cil_tmp9 = usb_dev->bus;
26823#line 967
26824  __cil_tmp9->devnum_next = devnum + 1;
26825#line 968
26826  __cil_tmp10 = usb_dev->bus;
26827#line 968
26828  __cil_tmp11 = & __cil_tmp10->devmap.devicemap;
26829#line 968
26830  __cil_tmp12 = (void *)__cil_tmp11;
26831#line 968
26832  memset(__cil_tmp12, 0, 16UL);
26833#line 970
26834  __cil_tmp13 = (unsigned int )devnum;
26835#line 970
26836  __cil_tmp14 = usb_dev->bus;
26837#line 970
26838  __cil_tmp15 = & __cil_tmp14->devmap.devicemap;
26839#line 970
26840  __cil_tmp16 = (unsigned long volatile   *)__cil_tmp15;
26841#line 970
26842  set_bit(__cil_tmp13, __cil_tmp16);
26843#line 971
26844  __cil_tmp17 = (enum usb_device_state )6;
26845#line 971
26846  usb_set_device_state(usb_dev, __cil_tmp17);
26847#line 973
26848  mutex_lock_nested(& usb_bus_list_lock, 0U);
26849#line 975
26850  usb_dev->ep0.desc.wMaxPacketSize = (__le16 )64U;
26851#line 976
26852  retval = usb_get_device_descriptor(usb_dev, 18U);
26853  }
26854#line 977
26855  if (retval != 18) {
26856    {
26857#line 978
26858    mutex_unlock(& usb_bus_list_lock);
26859#line 979
26860    __cil_tmp18 = & usb_dev->dev;
26861#line 979
26862    __cil_tmp19 = (struct device  const  *)__cil_tmp18;
26863#line 979
26864    tmp = dev_name(__cil_tmp19);
26865#line 979
26866    __cil_tmp20 = (struct device  const  *)parent_dev;
26867#line 979
26868    dev_printk("<7>", __cil_tmp20, "can\'t read %s device descriptor %d\n", tmp, retval);
26869    }
26870#line 981
26871    if (retval < 0) {
26872#line 981
26873      tmp___0 = retval;
26874    } else {
26875#line 981
26876      tmp___0 = -90;
26877    }
26878#line 981
26879    return (tmp___0);
26880  } else {
26881
26882  }
26883  {
26884#line 984
26885  retval = usb_new_device(usb_dev);
26886  }
26887#line 985
26888  if (retval != 0) {
26889    {
26890#line 986
26891    __cil_tmp21 = & usb_dev->dev;
26892#line 986
26893    __cil_tmp22 = (struct device  const  *)__cil_tmp21;
26894#line 986
26895    tmp___1 = dev_name(__cil_tmp22);
26896#line 986
26897    __cil_tmp23 = (struct device  const  *)parent_dev;
26898#line 986
26899    dev_err(__cil_tmp23, "can\'t register root hub for %s, %d\n", tmp___1, retval);
26900    }
26901  } else {
26902
26903  }
26904  {
26905#line 989
26906  mutex_unlock(& usb_bus_list_lock);
26907  }
26908#line 991
26909  if (retval == 0) {
26910    {
26911#line 992
26912    spin_lock_irq(& hcd_root_hub_lock);
26913#line 993
26914    hcd->rh_registered = (unsigned char)1;
26915#line 994
26916    spin_unlock_irq(& hcd_root_hub_lock);
26917    }
26918    {
26919#line 997
26920    __cil_tmp24 = hcd->flags;
26921#line 997
26922    __cil_tmp25 = __cil_tmp24 & 64UL;
26923#line 997
26924    if (__cil_tmp25 != 0UL) {
26925      {
26926#line 998
26927      usb_hc_died(hcd);
26928      }
26929    } else {
26930
26931    }
26932    }
26933  } else {
26934
26935  }
26936#line 1001
26937  return (retval);
26938}
26939}
26940#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"
26941long usb_calc_bus_time(int speed , int is_input , int isoc , int bytecount ) 
26942{ unsigned long tmp ;
26943  unsigned long tmp___0 ;
26944  int __cil_tmp7 ;
26945  int __cil_tmp8 ;
26946  long __cil_tmp9 ;
26947  long __cil_tmp10 ;
26948  long __cil_tmp11 ;
26949  long __cil_tmp12 ;
26950  unsigned long __cil_tmp13 ;
26951  int __cil_tmp14 ;
26952  int __cil_tmp15 ;
26953  long __cil_tmp16 ;
26954  long __cil_tmp17 ;
26955  long __cil_tmp18 ;
26956  long __cil_tmp19 ;
26957  unsigned long __cil_tmp20 ;
26958  int __cil_tmp21 ;
26959  int __cil_tmp22 ;
26960  long __cil_tmp23 ;
26961  long __cil_tmp24 ;
26962  long __cil_tmp25 ;
26963  long __cil_tmp26 ;
26964  unsigned long __cil_tmp27 ;
26965  int __cil_tmp28 ;
26966  int __cil_tmp29 ;
26967  long __cil_tmp30 ;
26968  long __cil_tmp31 ;
26969  long __cil_tmp32 ;
26970  long __cil_tmp33 ;
26971  unsigned long __cil_tmp34 ;
26972  int __cil_tmp35 ;
26973  int __cil_tmp36 ;
26974  int __cil_tmp37 ;
26975  unsigned long __cil_tmp38 ;
26976  unsigned long __cil_tmp39 ;
26977  unsigned long __cil_tmp40 ;
26978  unsigned long __cil_tmp41 ;
26979  int __cil_tmp42 ;
26980  int __cil_tmp43 ;
26981  int __cil_tmp44 ;
26982  unsigned long __cil_tmp45 ;
26983  unsigned long __cil_tmp46 ;
26984  unsigned long __cil_tmp47 ;
26985  unsigned long __cil_tmp48 ;
26986
26987  {
26988#line 1023
26989  if (speed == 1) {
26990#line 1023
26991    goto case_1;
26992  } else
26993#line 1031
26994  if (speed == 2) {
26995#line 1031
26996    goto case_2;
26997  } else
26998#line 1039
26999  if (speed == 3) {
27000#line 1039
27001    goto case_3;
27002  } else {
27003#line 1046
27004    goto switch_default;
27005#line 1022
27006    if (0) {
27007      case_1: ;
27008#line 1024
27009      if (is_input != 0) {
27010#line 1025
27011        __cil_tmp7 = bytecount * 56;
27012#line 1025
27013        __cil_tmp8 = __cil_tmp7 / 6;
27014#line 1025
27015        __cil_tmp9 = (long )__cil_tmp8;
27016#line 1025
27017        __cil_tmp10 = __cil_tmp9 * 676670L;
27018#line 1025
27019        __cil_tmp11 = __cil_tmp10 + 2097677L;
27020#line 1025
27021        __cil_tmp12 = __cil_tmp11 / 1000L;
27022#line 1025
27023        tmp = (unsigned long )__cil_tmp12;
27024        {
27025#line 1026
27026        __cil_tmp13 = tmp + 65726UL;
27027#line 1026
27028        return ((long )__cil_tmp13);
27029        }
27030      } else {
27031#line 1028
27032        __cil_tmp14 = bytecount * 56;
27033#line 1028
27034        __cil_tmp15 = __cil_tmp14 / 6;
27035#line 1028
27036        __cil_tmp16 = (long )__cil_tmp15;
27037#line 1028
27038        __cil_tmp17 = __cil_tmp16 * 667000L;
27039#line 1028
27040        __cil_tmp18 = __cil_tmp17 + 2067700L;
27041#line 1028
27042        __cil_tmp19 = __cil_tmp18 / 1000L;
27043#line 1028
27044        tmp = (unsigned long )__cil_tmp19;
27045        {
27046#line 1029
27047        __cil_tmp20 = tmp + 65773UL;
27048#line 1029
27049        return ((long )__cil_tmp20);
27050        }
27051      }
27052      case_2: ;
27053#line 1032
27054      if (isoc != 0) {
27055#line 1033
27056        __cil_tmp21 = bytecount * 56;
27057#line 1033
27058        __cil_tmp22 = __cil_tmp21 / 6;
27059#line 1033
27060        __cil_tmp23 = (long )__cil_tmp22;
27061#line 1033
27062        __cil_tmp24 = __cil_tmp23 * 83540L;
27063#line 1033
27064        __cil_tmp25 = __cil_tmp24 + 258974L;
27065#line 1033
27066        __cil_tmp26 = __cil_tmp25 / 1000L;
27067#line 1033
27068        tmp = (unsigned long )__cil_tmp26;
27069#line 1034
27070        if (is_input != 0) {
27071#line 1034
27072          tmp___0 = 8268UL;
27073        } else {
27074#line 1034
27075          tmp___0 = 7265UL;
27076        }
27077        {
27078#line 1034
27079        __cil_tmp27 = tmp___0 + tmp;
27080#line 1034
27081        return ((long )__cil_tmp27);
27082        }
27083      } else {
27084#line 1036
27085        __cil_tmp28 = bytecount * 56;
27086#line 1036
27087        __cil_tmp29 = __cil_tmp28 / 6;
27088#line 1036
27089        __cil_tmp30 = (long )__cil_tmp29;
27090#line 1036
27091        __cil_tmp31 = __cil_tmp30 * 83540L;
27092#line 1036
27093        __cil_tmp32 = __cil_tmp31 + 258974L;
27094#line 1036
27095        __cil_tmp33 = __cil_tmp32 / 1000L;
27096#line 1036
27097        tmp = (unsigned long )__cil_tmp33;
27098        {
27099#line 1037
27100        __cil_tmp34 = tmp + 10107UL;
27101#line 1037
27102        return ((long )__cil_tmp34);
27103        }
27104      }
27105      case_3: ;
27106#line 1041
27107      if (isoc != 0) {
27108#line 1042
27109        __cil_tmp35 = bytecount * 56;
27110#line 1042
27111        __cil_tmp36 = __cil_tmp35 / 6;
27112#line 1042
27113        __cil_tmp37 = __cil_tmp36 + 3;
27114#line 1042
27115        __cil_tmp38 = (unsigned long )__cil_tmp37;
27116#line 1042
27117        __cil_tmp39 = __cil_tmp38 * 2083UL;
27118#line 1042
27119        __cil_tmp40 = __cil_tmp39 + 633232UL;
27120#line 1042
27121        __cil_tmp41 = __cil_tmp40 / 1000UL;
27122#line 1042
27123        tmp = __cil_tmp41 + 5UL;
27124      } else {
27125#line 1044
27126        __cil_tmp42 = bytecount * 56;
27127#line 1044
27128        __cil_tmp43 = __cil_tmp42 / 6;
27129#line 1044
27130        __cil_tmp44 = __cil_tmp43 + 3;
27131#line 1044
27132        __cil_tmp45 = (unsigned long )__cil_tmp44;
27133#line 1044
27134        __cil_tmp46 = __cil_tmp45 * 2083UL;
27135#line 1044
27136        __cil_tmp47 = __cil_tmp46 + 916520UL;
27137#line 1044
27138        __cil_tmp48 = __cil_tmp47 / 1000UL;
27139#line 1044
27140        tmp = __cil_tmp48 + 5UL;
27141      }
27142#line 1045
27143      return ((long )tmp);
27144      switch_default: 
27145      {
27146#line 1047
27147      printk("<7>%s: bogus device speed!\n", usbcore_name);
27148      }
27149#line 1048
27150      return (-1L);
27151    } else {
27152
27153    }
27154  }
27155}
27156}
27157#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"
27158int usb_hcd_link_urb_to_ep(struct usb_hcd *hcd , struct urb *urb ) 
27159{ int rc ;
27160  int tmp ;
27161  long tmp___0 ;
27162  long tmp___1 ;
27163  long tmp___2 ;
27164  atomic_t *__cil_tmp8 ;
27165  atomic_t const   *__cil_tmp9 ;
27166  int __cil_tmp10 ;
27167  long __cil_tmp11 ;
27168  struct usb_host_endpoint *__cil_tmp12 ;
27169  int __cil_tmp13 ;
27170  int __cil_tmp14 ;
27171  long __cil_tmp15 ;
27172  struct usb_device *__cil_tmp16 ;
27173  unsigned char *__cil_tmp17 ;
27174  unsigned char *__cil_tmp18 ;
27175  unsigned char __cil_tmp19 ;
27176  unsigned int __cil_tmp20 ;
27177  int __cil_tmp21 ;
27178  long __cil_tmp22 ;
27179  unsigned long __cil_tmp23 ;
27180  unsigned long __cil_tmp24 ;
27181  struct list_head *__cil_tmp25 ;
27182  struct usb_host_endpoint *__cil_tmp26 ;
27183  struct list_head *__cil_tmp27 ;
27184
27185  {
27186  {
27187#line 1079
27188  rc = 0;
27189#line 1081
27190  spin_lock(& hcd_urb_list_lock);
27191#line 1084
27192  __cil_tmp8 = & urb->reject;
27193#line 1084
27194  __cil_tmp9 = (atomic_t const   *)__cil_tmp8;
27195#line 1084
27196  tmp = atomic_read(__cil_tmp9);
27197#line 1084
27198  __cil_tmp10 = tmp != 0;
27199#line 1084
27200  __cil_tmp11 = (long )__cil_tmp10;
27201#line 1084
27202  tmp___0 = __builtin_expect(__cil_tmp11, 0L);
27203  }
27204#line 1084
27205  if (tmp___0 != 0L) {
27206#line 1085
27207    rc = -1;
27208#line 1086
27209    goto done;
27210  } else {
27211
27212  }
27213  {
27214#line 1089
27215  __cil_tmp12 = urb->ep;
27216#line 1089
27217  __cil_tmp13 = __cil_tmp12->enabled;
27218#line 1089
27219  __cil_tmp14 = __cil_tmp13 == 0;
27220#line 1089
27221  __cil_tmp15 = (long )__cil_tmp14;
27222#line 1089
27223  tmp___1 = __builtin_expect(__cil_tmp15, 0L);
27224  }
27225#line 1089
27226  if (tmp___1 != 0L) {
27227#line 1090
27228    rc = -2;
27229#line 1091
27230    goto done;
27231  } else {
27232
27233  }
27234  {
27235#line 1094
27236  __cil_tmp16 = urb->dev;
27237#line 1094
27238  __cil_tmp17 = (unsigned char *)__cil_tmp16;
27239#line 1094
27240  __cil_tmp18 = __cil_tmp17 + 1556UL;
27241#line 1094
27242  __cil_tmp19 = *__cil_tmp18;
27243#line 1094
27244  __cil_tmp20 = (unsigned int )__cil_tmp19;
27245#line 1094
27246  __cil_tmp21 = __cil_tmp20 == 0U;
27247#line 1094
27248  __cil_tmp22 = (long )__cil_tmp21;
27249#line 1094
27250  tmp___2 = __builtin_expect(__cil_tmp22, 0L);
27251  }
27252#line 1094
27253  if (tmp___2 != 0L) {
27254#line 1095
27255    rc = -113;
27256#line 1096
27257    goto done;
27258  } else {
27259
27260  }
27261  {
27262#line 1103
27263  __cil_tmp23 = hcd->flags;
27264#line 1103
27265  __cil_tmp24 = __cil_tmp23 & 32UL;
27266#line 1103
27267  if (__cil_tmp24 != 0UL) {
27268    {
27269#line 1104
27270    urb->unlinked = 0;
27271#line 1105
27272    __cil_tmp25 = & urb->urb_list;
27273#line 1105
27274    __cil_tmp26 = urb->ep;
27275#line 1105
27276    __cil_tmp27 = & __cil_tmp26->urb_list;
27277#line 1105
27278    list_add_tail(__cil_tmp25, __cil_tmp27);
27279    }
27280  } else {
27281#line 1107
27282    rc = -108;
27283#line 1108
27284    goto done;
27285  }
27286  }
27287  done: 
27288  {
27289#line 1111
27290  spin_unlock(& hcd_urb_list_lock);
27291  }
27292#line 1112
27293  return (rc);
27294}
27295}
27296#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"
27297int usb_hcd_check_unlink_urb(struct usb_hcd *hcd , struct urb *urb , int status ) 
27298{ struct list_head *tmp ;
27299  int tmp___0 ;
27300  struct usb_host_endpoint *__cil_tmp6 ;
27301  unsigned long __cil_tmp7 ;
27302  struct list_head *__cil_tmp8 ;
27303  unsigned long __cil_tmp9 ;
27304  unsigned long __cil_tmp10 ;
27305  struct usb_host_endpoint *__cil_tmp11 ;
27306  struct list_head *__cil_tmp12 ;
27307  unsigned long __cil_tmp13 ;
27308  unsigned long __cil_tmp14 ;
27309  struct list_head *__cil_tmp15 ;
27310  unsigned long __cil_tmp16 ;
27311  int __cil_tmp17 ;
27312  unsigned long __cil_tmp18 ;
27313  unsigned long __cil_tmp19 ;
27314  struct usb_device *__cil_tmp20 ;
27315  struct device *__cil_tmp21 ;
27316  struct device  const  *__cil_tmp22 ;
27317  unsigned long *__cil_tmp23 ;
27318  unsigned long volatile   *__cil_tmp24 ;
27319  struct usb_hcd *__cil_tmp25 ;
27320  unsigned long __cil_tmp26 ;
27321  struct usb_hcd *__cil_tmp27 ;
27322  unsigned long __cil_tmp28 ;
27323  struct usb_hcd *__cil_tmp29 ;
27324  unsigned long *__cil_tmp30 ;
27325  unsigned long volatile   *__cil_tmp31 ;
27326
27327  {
27328#line 1141
27329  __cil_tmp6 = urb->ep;
27330#line 1141
27331  tmp = __cil_tmp6->urb_list.next;
27332#line 1141
27333  goto ldv_27869;
27334  ldv_27868: ;
27335  {
27336#line 1142
27337  __cil_tmp7 = (unsigned long )tmp;
27338#line 1142
27339  __cil_tmp8 = & urb->urb_list;
27340#line 1142
27341  __cil_tmp9 = (unsigned long )__cil_tmp8;
27342#line 1142
27343  if (__cil_tmp9 == __cil_tmp7) {
27344#line 1143
27345    goto ldv_27867;
27346  } else {
27347
27348  }
27349  }
27350#line 1141
27351  tmp = tmp->next;
27352  ldv_27869: ;
27353  {
27354#line 1141
27355  __cil_tmp10 = (unsigned long )tmp;
27356#line 1141
27357  __cil_tmp11 = urb->ep;
27358#line 1141
27359  __cil_tmp12 = & __cil_tmp11->urb_list;
27360#line 1141
27361  __cil_tmp13 = (unsigned long )__cil_tmp12;
27362#line 1141
27363  if (__cil_tmp13 != __cil_tmp10) {
27364#line 1142
27365    goto ldv_27868;
27366  } else {
27367#line 1144
27368    goto ldv_27867;
27369  }
27370  }
27371  ldv_27867: ;
27372  {
27373#line 1145
27374  __cil_tmp14 = (unsigned long )tmp;
27375#line 1145
27376  __cil_tmp15 = & urb->urb_list;
27377#line 1145
27378  __cil_tmp16 = (unsigned long )__cil_tmp15;
27379#line 1145
27380  if (__cil_tmp16 != __cil_tmp14) {
27381#line 1146
27382    return (-43);
27383  } else {
27384
27385  }
27386  }
27387  {
27388#line 1151
27389  __cil_tmp17 = urb->unlinked;
27390#line 1151
27391  if (__cil_tmp17 != 0) {
27392#line 1152
27393    return (-16);
27394  } else {
27395
27396  }
27397  }
27398#line 1153
27399  urb->unlinked = status;
27400  {
27401#line 1160
27402  __cil_tmp18 = hcd->flags;
27403#line 1160
27404  __cil_tmp19 = __cil_tmp18 & 2UL;
27405#line 1160
27406  if (__cil_tmp19 == 0UL) {
27407    {
27408#line 1160
27409    __cil_tmp20 = urb->dev;
27410#line 1160
27411    tmp___0 = is_root_hub(__cil_tmp20);
27412    }
27413#line 1160
27414    if (tmp___0 == 0) {
27415      {
27416#line 1161
27417      __cil_tmp21 = hcd->self.controller;
27418#line 1161
27419      __cil_tmp22 = (struct device  const  *)__cil_tmp21;
27420#line 1161
27421      dev_warn(__cil_tmp22, "Unlink after no-IRQ?  Controller is probably using the wrong IRQ.\n");
27422#line 1163
27423      __cil_tmp23 = & hcd->flags;
27424#line 1163
27425      __cil_tmp24 = (unsigned long volatile   *)__cil_tmp23;
27426#line 1163
27427      set_bit(1U, __cil_tmp24);
27428      }
27429      {
27430#line 1164
27431      __cil_tmp25 = (struct usb_hcd *)0;
27432#line 1164
27433      __cil_tmp26 = (unsigned long )__cil_tmp25;
27434#line 1164
27435      __cil_tmp27 = hcd->shared_hcd;
27436#line 1164
27437      __cil_tmp28 = (unsigned long )__cil_tmp27;
27438#line 1164
27439      if (__cil_tmp28 != __cil_tmp26) {
27440        {
27441#line 1165
27442        __cil_tmp29 = hcd->shared_hcd;
27443#line 1165
27444        __cil_tmp30 = & __cil_tmp29->flags;
27445#line 1165
27446        __cil_tmp31 = (unsigned long volatile   *)__cil_tmp30;
27447#line 1165
27448        set_bit(1U, __cil_tmp31);
27449        }
27450      } else {
27451
27452      }
27453      }
27454    } else {
27455
27456    }
27457  } else {
27458
27459  }
27460  }
27461#line 1168
27462  return (0);
27463}
27464}
27465#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"
27466void usb_hcd_unlink_urb_from_ep(struct usb_hcd *hcd , struct urb *urb ) 
27467{ struct list_head *__cil_tmp3 ;
27468
27469  {
27470  {
27471#line 1185
27472  spin_lock(& hcd_urb_list_lock);
27473#line 1186
27474  __cil_tmp3 = & urb->urb_list;
27475#line 1186
27476  list_del_init(__cil_tmp3);
27477#line 1187
27478  spin_unlock(& hcd_urb_list_lock);
27479  }
27480#line 1188
27481  return;
27482}
27483}
27484#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"
27485static int hcd_alloc_coherent(struct usb_bus *bus , gfp_t mem_flags , dma_addr_t *dma_handle ,
27486                              void **vaddr_handle , size_t size , enum dma_data_direction dir ) 
27487{ unsigned char *vaddr ;
27488  bool __warned ;
27489  int __ret_warn_once ;
27490  int __ret_warn_on ;
27491  long tmp ;
27492  long tmp___0 ;
27493  long tmp___1 ;
27494  void *tmp___2 ;
27495  void *__gu_p ;
27496  size_t __len ;
27497  void *__ret ;
27498  void *__cil_tmp18 ;
27499  unsigned long __cil_tmp19 ;
27500  void *__cil_tmp20 ;
27501  unsigned long __cil_tmp21 ;
27502  int __cil_tmp22 ;
27503  long __cil_tmp23 ;
27504  int __cil_tmp24 ;
27505  long __cil_tmp25 ;
27506  int __cil_tmp26 ;
27507  int __cil_tmp27 ;
27508  int __cil_tmp28 ;
27509  long __cil_tmp29 ;
27510  int __cil_tmp30 ;
27511  long __cil_tmp31 ;
27512  size_t __cil_tmp32 ;
27513  unsigned char *__cil_tmp33 ;
27514  unsigned long __cil_tmp34 ;
27515  unsigned long __cil_tmp35 ;
27516  unsigned char *__cil_tmp36 ;
27517  u8 *__cil_tmp37 ;
27518  void *__cil_tmp38 ;
27519  long __cil_tmp39 ;
27520  void *__cil_tmp40 ;
27521  long __cil_tmp41 ;
27522  unsigned short __cil_tmp42 ;
27523  int __cil_tmp43 ;
27524  u16 __cil_tmp44 ;
27525  void *__cil_tmp45 ;
27526  long __cil_tmp46 ;
27527  unsigned int __cil_tmp47 ;
27528  void *__cil_tmp48 ;
27529  unsigned long long __cil_tmp49 ;
27530  unsigned int __cil_tmp50 ;
27531  void *__cil_tmp51 ;
27532  void *__cil_tmp52 ;
27533  void const   *__cil_tmp53 ;
27534
27535  {
27536  {
27537#line 1230
27538  __cil_tmp18 = (void *)0;
27539#line 1230
27540  __cil_tmp19 = (unsigned long )__cil_tmp18;
27541#line 1230
27542  __cil_tmp20 = *vaddr_handle;
27543#line 1230
27544  __cil_tmp21 = (unsigned long )__cil_tmp20;
27545#line 1230
27546  if (__cil_tmp21 == __cil_tmp19) {
27547    {
27548#line 1231
27549    __ret_warn_once = 1;
27550#line 1231
27551    __cil_tmp22 = __ret_warn_once != 0;
27552#line 1231
27553    __cil_tmp23 = (long )__cil_tmp22;
27554#line 1231
27555    tmp___1 = __builtin_expect(__cil_tmp23, 0L);
27556    }
27557#line 1231
27558    if (tmp___1 != 0L) {
27559      {
27560#line 1231
27561      __ret_warn_on = ! __warned;
27562#line 1231
27563      __cil_tmp24 = __ret_warn_on != 0;
27564#line 1231
27565      __cil_tmp25 = (long )__cil_tmp24;
27566#line 1231
27567      tmp = __builtin_expect(__cil_tmp25, 0L);
27568      }
27569#line 1231
27570      if (tmp != 0L) {
27571        {
27572#line 1231
27573        __cil_tmp26 = (int const   )1231;
27574#line 1231
27575        __cil_tmp27 = (int )__cil_tmp26;
27576#line 1231
27577        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",
27578                           __cil_tmp27);
27579        }
27580      } else {
27581
27582      }
27583      {
27584#line 1231
27585      __cil_tmp28 = __ret_warn_on != 0;
27586#line 1231
27587      __cil_tmp29 = (long )__cil_tmp28;
27588#line 1231
27589      tmp___0 = __builtin_expect(__cil_tmp29, 0L);
27590      }
27591#line 1231
27592      if (tmp___0 != 0L) {
27593#line 1231
27594        __warned = (bool )1;
27595      } else {
27596
27597      }
27598    } else {
27599
27600    }
27601    {
27602#line 1231
27603    __cil_tmp30 = __ret_warn_once != 0;
27604#line 1231
27605    __cil_tmp31 = (long )__cil_tmp30;
27606#line 1231
27607    __builtin_expect(__cil_tmp31, 0L);
27608    }
27609#line 1232
27610    return (-14);
27611  } else {
27612
27613  }
27614  }
27615  {
27616#line 1235
27617  __cil_tmp32 = size + 8UL;
27618#line 1235
27619  tmp___2 = hcd_buffer_alloc(bus, __cil_tmp32, mem_flags, dma_handle);
27620#line 1235
27621  vaddr = (unsigned char *)tmp___2;
27622  }
27623  {
27624#line 1237
27625  __cil_tmp33 = (unsigned char *)0;
27626#line 1237
27627  __cil_tmp34 = (unsigned long )__cil_tmp33;
27628#line 1237
27629  __cil_tmp35 = (unsigned long )vaddr;
27630#line 1237
27631  if (__cil_tmp35 == __cil_tmp34) {
27632#line 1238
27633    return (-12);
27634  } else {
27635
27636  }
27637  }
27638#line 1248
27639  __cil_tmp36 = vaddr + size;
27640#line 1248
27641  __gu_p = (void *)__cil_tmp36;
27642#line 1248
27643  if (1) {
27644#line 1248
27645    goto case_8;
27646  } else {
27647#line 1248
27648    goto switch_default;
27649#line 1248
27650    if (0) {
27651#line 1248
27652      __cil_tmp37 = (u8 *)__gu_p;
27653#line 1248
27654      __cil_tmp38 = *vaddr_handle;
27655#line 1248
27656      __cil_tmp39 = (long )__cil_tmp38;
27657#line 1248
27658      *__cil_tmp37 = (unsigned char )__cil_tmp39;
27659#line 1248
27660      goto ldv_27905;
27661      {
27662#line 1248
27663      __cil_tmp40 = *vaddr_handle;
27664#line 1248
27665      __cil_tmp41 = (long )__cil_tmp40;
27666#line 1248
27667      __cil_tmp42 = (unsigned short )__cil_tmp41;
27668#line 1248
27669      __cil_tmp43 = (int )__cil_tmp42;
27670#line 1248
27671      __cil_tmp44 = (u16 )__cil_tmp43;
27672#line 1248
27673      put_unaligned_le16(__cil_tmp44, __gu_p);
27674      }
27675#line 1248
27676      goto ldv_27905;
27677      {
27678#line 1248
27679      __cil_tmp45 = *vaddr_handle;
27680#line 1248
27681      __cil_tmp46 = (long )__cil_tmp45;
27682#line 1248
27683      __cil_tmp47 = (unsigned int )__cil_tmp46;
27684#line 1248
27685      put_unaligned_le32(__cil_tmp47, __gu_p);
27686      }
27687#line 1248
27688      goto ldv_27905;
27689      case_8: 
27690      {
27691#line 1248
27692      __cil_tmp48 = *vaddr_handle;
27693#line 1248
27694      __cil_tmp49 = (unsigned long long )__cil_tmp48;
27695#line 1248
27696      put_unaligned_le64(__cil_tmp49, __gu_p);
27697      }
27698#line 1248
27699      goto ldv_27905;
27700      switch_default: 
27701      {
27702#line 1248
27703      __bad_unaligned_access_size();
27704      }
27705#line 1248
27706      goto ldv_27905;
27707    } else {
27708
27709    }
27710  }
27711  ldv_27905: ;
27712  {
27713#line 1251
27714  __cil_tmp50 = (unsigned int )dir;
27715#line 1251
27716  if (__cil_tmp50 == 1U) {
27717    {
27718#line 1252
27719    __len = size;
27720#line 1252
27721    __cil_tmp51 = (void *)vaddr;
27722#line 1252
27723    __cil_tmp52 = *vaddr_handle;
27724#line 1252
27725    __cil_tmp53 = (void const   *)__cil_tmp52;
27726#line 1252
27727    __ret = __builtin_memcpy(__cil_tmp51, __cil_tmp53, __len);
27728    }
27729  } else {
27730
27731  }
27732  }
27733#line 1254
27734  *vaddr_handle = (void *)vaddr;
27735#line 1255
27736  return (0);
27737}
27738}
27739#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"
27740static void hcd_free_coherent(struct usb_bus *bus , dma_addr_t *dma_handle , void **vaddr_handle ,
27741                              size_t size , enum dma_data_direction dir ) 
27742{ unsigned char *vaddr ;
27743  u64 tmp ;
27744  size_t __len ;
27745  void *__ret ;
27746  void *__cil_tmp10 ;
27747  unsigned char *__cil_tmp11 ;
27748  void const   *__cil_tmp12 ;
27749  unsigned int __cil_tmp13 ;
27750  void *__cil_tmp14 ;
27751  void *__cil_tmp15 ;
27752  void const   *__cil_tmp16 ;
27753  size_t __cil_tmp17 ;
27754  void *__cil_tmp18 ;
27755  dma_addr_t __cil_tmp19 ;
27756
27757  {
27758  {
27759#line 1262
27760  __cil_tmp10 = *vaddr_handle;
27761#line 1262
27762  vaddr = (unsigned char *)__cil_tmp10;
27763#line 1264
27764  __cil_tmp11 = vaddr + size;
27765#line 1264
27766  __cil_tmp12 = (void const   *)__cil_tmp11;
27767#line 1264
27768  tmp = get_unaligned_le64(__cil_tmp12);
27769#line 1264
27770  vaddr = (unsigned char *)tmp;
27771  }
27772  {
27773#line 1266
27774  __cil_tmp13 = (unsigned int )dir;
27775#line 1266
27776  if (__cil_tmp13 == 2U) {
27777    {
27778#line 1267
27779    __len = size;
27780#line 1267
27781    __cil_tmp14 = (void *)vaddr;
27782#line 1267
27783    __cil_tmp15 = *vaddr_handle;
27784#line 1267
27785    __cil_tmp16 = (void const   *)__cil_tmp15;
27786#line 1267
27787    __ret = __builtin_memcpy(__cil_tmp14, __cil_tmp16, __len);
27788    }
27789  } else {
27790
27791  }
27792  }
27793  {
27794#line 1269
27795  __cil_tmp17 = size + 8UL;
27796#line 1269
27797  __cil_tmp18 = *vaddr_handle;
27798#line 1269
27799  __cil_tmp19 = *dma_handle;
27800#line 1269
27801  hcd_buffer_free(bus, __cil_tmp17, __cil_tmp18, __cil_tmp19);
27802#line 1271
27803  *vaddr_handle = (void *)vaddr;
27804#line 1272
27805  *dma_handle = 0ULL;
27806  }
27807#line 1273
27808  return;
27809}
27810}
27811#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"
27812void usb_hcd_unmap_urb_setup_for_dma(struct usb_hcd *hcd , struct urb *urb ) 
27813{ unsigned int __cil_tmp3 ;
27814  unsigned int __cil_tmp4 ;
27815  struct device *__cil_tmp5 ;
27816  dma_addr_t __cil_tmp6 ;
27817  enum dma_data_direction __cil_tmp7 ;
27818  struct dma_attrs *__cil_tmp8 ;
27819  unsigned int __cil_tmp9 ;
27820  unsigned int __cil_tmp10 ;
27821  struct usb_device *__cil_tmp11 ;
27822  struct usb_bus *__cil_tmp12 ;
27823  dma_addr_t *__cil_tmp13 ;
27824  unsigned char **__cil_tmp14 ;
27825  void **__cil_tmp15 ;
27826  enum dma_data_direction __cil_tmp16 ;
27827  unsigned int __cil_tmp17 ;
27828
27829  {
27830  {
27831#line 1277
27832  __cil_tmp3 = urb->transfer_flags;
27833#line 1277
27834  __cil_tmp4 = __cil_tmp3 & 1048576U;
27835#line 1277
27836  if (__cil_tmp4 != 0U) {
27837    {
27838#line 1278
27839    __cil_tmp5 = hcd->self.controller;
27840#line 1278
27841    __cil_tmp6 = urb->setup_dma;
27842#line 1278
27843    __cil_tmp7 = (enum dma_data_direction )1;
27844#line 1278
27845    __cil_tmp8 = (struct dma_attrs *)0;
27846#line 1278
27847    dma_unmap_single_attrs(__cil_tmp5, __cil_tmp6, 8UL, __cil_tmp7, __cil_tmp8);
27848    }
27849  } else {
27850    {
27851#line 1282
27852    __cil_tmp9 = urb->transfer_flags;
27853#line 1282
27854    __cil_tmp10 = __cil_tmp9 & 2097152U;
27855#line 1282
27856    if (__cil_tmp10 != 0U) {
27857      {
27858#line 1283
27859      __cil_tmp11 = urb->dev;
27860#line 1283
27861      __cil_tmp12 = __cil_tmp11->bus;
27862#line 1283
27863      __cil_tmp13 = & urb->setup_dma;
27864#line 1283
27865      __cil_tmp14 = & urb->setup_packet;
27866#line 1283
27867      __cil_tmp15 = (void **)__cil_tmp14;
27868#line 1283
27869      __cil_tmp16 = (enum dma_data_direction )1;
27870#line 1283
27871      hcd_free_coherent(__cil_tmp12, __cil_tmp13, __cil_tmp15, 8UL, __cil_tmp16);
27872      }
27873    } else {
27874
27875    }
27876    }
27877  }
27878  }
27879#line 1290
27880  __cil_tmp17 = urb->transfer_flags;
27881#line 1290
27882  urb->transfer_flags = __cil_tmp17 & 4291821567U;
27883#line 1291
27884  return;
27885}
27886}
27887#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"
27888static void unmap_urb_for_dma(struct usb_hcd *hcd , struct urb *urb ) 
27889{ void (*__cil_tmp3)(struct usb_hcd * , struct urb * ) ;
27890  unsigned long __cil_tmp4 ;
27891  struct hc_driver  const  *__cil_tmp5 ;
27892  void (*__cil_tmp6)(struct usb_hcd * , struct urb * ) ;
27893  unsigned long __cil_tmp7 ;
27894  struct hc_driver  const  *__cil_tmp8 ;
27895  void (*__cil_tmp9)(struct usb_hcd * , struct urb * ) ;
27896
27897  {
27898  {
27899#line 1296
27900  __cil_tmp3 = (void (* const  )(struct usb_hcd * , struct urb * ))0;
27901#line 1296
27902  __cil_tmp4 = (unsigned long )__cil_tmp3;
27903#line 1296
27904  __cil_tmp5 = hcd->driver;
27905#line 1296
27906  __cil_tmp6 = __cil_tmp5->unmap_urb_for_dma;
27907#line 1296
27908  __cil_tmp7 = (unsigned long )__cil_tmp6;
27909#line 1296
27910  if (__cil_tmp7 != __cil_tmp4) {
27911    {
27912#line 1297
27913    __cil_tmp8 = hcd->driver;
27914#line 1297
27915    __cil_tmp9 = __cil_tmp8->unmap_urb_for_dma;
27916#line 1297
27917    (*__cil_tmp9)(hcd, urb);
27918    }
27919  } else {
27920    {
27921#line 1299
27922    usb_hcd_unmap_urb_for_dma(hcd, urb);
27923    }
27924  }
27925  }
27926#line 1300
27927  return;
27928}
27929}
27930#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"
27931void usb_hcd_unmap_urb_for_dma(struct usb_hcd *hcd , struct urb *urb ) 
27932{ enum dma_data_direction dir ;
27933  int tmp___0 ;
27934  unsigned int __cil_tmp5 ;
27935  unsigned int __cil_tmp6 ;
27936  struct device *__cil_tmp7 ;
27937  struct scatterlist *__cil_tmp8 ;
27938  int __cil_tmp9 ;
27939  struct dma_attrs *__cil_tmp10 ;
27940  unsigned int __cil_tmp11 ;
27941  unsigned int __cil_tmp12 ;
27942  struct device *__cil_tmp13 ;
27943  dma_addr_t __cil_tmp14 ;
27944  u32 __cil_tmp15 ;
27945  size_t __cil_tmp16 ;
27946  unsigned int __cil_tmp17 ;
27947  unsigned int __cil_tmp18 ;
27948  struct device *__cil_tmp19 ;
27949  dma_addr_t __cil_tmp20 ;
27950  u32 __cil_tmp21 ;
27951  size_t __cil_tmp22 ;
27952  struct dma_attrs *__cil_tmp23 ;
27953  unsigned int __cil_tmp24 ;
27954  unsigned int __cil_tmp25 ;
27955  struct usb_device *__cil_tmp26 ;
27956  struct usb_bus *__cil_tmp27 ;
27957  dma_addr_t *__cil_tmp28 ;
27958  void **__cil_tmp29 ;
27959  u32 __cil_tmp30 ;
27960  size_t __cil_tmp31 ;
27961  unsigned int __cil_tmp32 ;
27962
27963  {
27964  {
27965#line 1306
27966  usb_hcd_unmap_urb_setup_for_dma(hcd, urb);
27967#line 1308
27968  tmp___0 = usb_urb_dir_in(urb);
27969  }
27970#line 1308
27971  if (tmp___0 != 0) {
27972#line 1308
27973    dir = (enum dma_data_direction )2;
27974  } else {
27975#line 1308
27976    dir = (enum dma_data_direction )1;
27977  }
27978  {
27979#line 1309
27980  __cil_tmp5 = urb->transfer_flags;
27981#line 1309
27982  __cil_tmp6 = __cil_tmp5 & 262144U;
27983#line 1309
27984  if (__cil_tmp6 != 0U) {
27985    {
27986#line 1310
27987    __cil_tmp7 = hcd->self.controller;
27988#line 1310
27989    __cil_tmp8 = urb->sg;
27990#line 1310
27991    __cil_tmp9 = urb->num_sgs;
27992#line 1310
27993    __cil_tmp10 = (struct dma_attrs *)0;
27994#line 1310
27995    dma_unmap_sg_attrs(__cil_tmp7, __cil_tmp8, __cil_tmp9, dir, __cil_tmp10);
27996    }
27997  } else {
27998    {
27999#line 1314
28000    __cil_tmp11 = urb->transfer_flags;
28001#line 1314
28002    __cil_tmp12 = __cil_tmp11 & 131072U;
28003#line 1314
28004    if (__cil_tmp12 != 0U) {
28005      {
28006#line 1315
28007      __cil_tmp13 = hcd->self.controller;
28008#line 1315
28009      __cil_tmp14 = urb->transfer_dma;
28010#line 1315
28011      __cil_tmp15 = urb->transfer_buffer_length;
28012#line 1315
28013      __cil_tmp16 = (size_t )__cil_tmp15;
28014#line 1315
28015      dma_unmap_page(__cil_tmp13, __cil_tmp14, __cil_tmp16, dir);
28016      }
28017    } else {
28018      {
28019#line 1319
28020      __cil_tmp17 = urb->transfer_flags;
28021#line 1319
28022      __cil_tmp18 = __cil_tmp17 & 65536U;
28023#line 1319
28024      if (__cil_tmp18 != 0U) {
28025        {
28026#line 1320
28027        __cil_tmp19 = hcd->self.controller;
28028#line 1320
28029        __cil_tmp20 = urb->transfer_dma;
28030#line 1320
28031        __cil_tmp21 = urb->transfer_buffer_length;
28032#line 1320
28033        __cil_tmp22 = (size_t )__cil_tmp21;
28034#line 1320
28035        __cil_tmp23 = (struct dma_attrs *)0;
28036#line 1320
28037        dma_unmap_single_attrs(__cil_tmp19, __cil_tmp20, __cil_tmp22, dir, __cil_tmp23);
28038        }
28039      } else {
28040        {
28041#line 1324
28042        __cil_tmp24 = urb->transfer_flags;
28043#line 1324
28044        __cil_tmp25 = __cil_tmp24 & 524288U;
28045#line 1324
28046        if (__cil_tmp25 != 0U) {
28047          {
28048#line 1325
28049          __cil_tmp26 = urb->dev;
28050#line 1325
28051          __cil_tmp27 = __cil_tmp26->bus;
28052#line 1325
28053          __cil_tmp28 = & urb->transfer_dma;
28054#line 1325
28055          __cil_tmp29 = & urb->transfer_buffer;
28056#line 1325
28057          __cil_tmp30 = urb->transfer_buffer_length;
28058#line 1325
28059          __cil_tmp31 = (size_t )__cil_tmp30;
28060#line 1325
28061          hcd_free_coherent(__cil_tmp27, __cil_tmp28, __cil_tmp29, __cil_tmp31, dir);
28062          }
28063        } else {
28064
28065        }
28066        }
28067      }
28068      }
28069    }
28070    }
28071  }
28072  }
28073#line 1332
28074  __cil_tmp32 = urb->transfer_flags;
28075#line 1332
28076  urb->transfer_flags = __cil_tmp32 & 4293984255U;
28077#line 1333
28078  return;
28079}
28080}
28081#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"
28082static int map_urb_for_dma(struct usb_hcd *hcd , struct urb *urb , gfp_t mem_flags ) 
28083{ int tmp ;
28084  int tmp___0 ;
28085  int (*__cil_tmp6)(struct usb_hcd * , struct urb * , gfp_t  ) ;
28086  unsigned long __cil_tmp7 ;
28087  struct hc_driver  const  *__cil_tmp8 ;
28088  int (*__cil_tmp9)(struct usb_hcd * , struct urb * , gfp_t  ) ;
28089  unsigned long __cil_tmp10 ;
28090  struct hc_driver  const  *__cil_tmp11 ;
28091  int (*__cil_tmp12)(struct usb_hcd * , struct urb * , gfp_t  ) ;
28092
28093  {
28094  {
28095#line 1340
28096  __cil_tmp6 = (int (* const  )(struct usb_hcd * , struct urb * , gfp_t  ))0;
28097#line 1340
28098  __cil_tmp7 = (unsigned long )__cil_tmp6;
28099#line 1340
28100  __cil_tmp8 = hcd->driver;
28101#line 1340
28102  __cil_tmp9 = __cil_tmp8->map_urb_for_dma;
28103#line 1340
28104  __cil_tmp10 = (unsigned long )__cil_tmp9;
28105#line 1340
28106  if (__cil_tmp10 != __cil_tmp7) {
28107    {
28108#line 1341
28109    __cil_tmp11 = hcd->driver;
28110#line 1341
28111    __cil_tmp12 = __cil_tmp11->map_urb_for_dma;
28112#line 1341
28113    tmp = (*__cil_tmp12)(hcd, urb, mem_flags);
28114    }
28115#line 1341
28116    return (tmp);
28117  } else {
28118    {
28119#line 1343
28120    tmp___0 = usb_hcd_map_urb_for_dma(hcd, urb, mem_flags);
28121    }
28122#line 1343
28123    return (tmp___0);
28124  }
28125  }
28126}
28127}
28128#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"
28129int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd , struct urb *urb , gfp_t mem_flags ) 
28130{ enum dma_data_direction dir ;
28131  int ret ;
28132  int tmp ;
28133  int tmp___0 ;
28134  int tmp___2 ;
28135  int n ;
28136  int tmp___3 ;
28137  struct scatterlist *sg ;
28138  struct page *tmp___4 ;
28139  int tmp___5 ;
28140  int tmp___6 ;
28141  struct usb_host_endpoint *__cil_tmp15 ;
28142  struct usb_endpoint_descriptor *__cil_tmp16 ;
28143  struct usb_endpoint_descriptor  const  *__cil_tmp17 ;
28144  u8 __cil_tmp18 ;
28145  unsigned int __cil_tmp19 ;
28146  u8 __cil_tmp20 ;
28147  unsigned int __cil_tmp21 ;
28148  struct device *__cil_tmp22 ;
28149  unsigned char *__cil_tmp23 ;
28150  void *__cil_tmp24 ;
28151  enum dma_data_direction __cil_tmp25 ;
28152  struct dma_attrs *__cil_tmp26 ;
28153  struct device *__cil_tmp27 ;
28154  dma_addr_t __cil_tmp28 ;
28155  unsigned int __cil_tmp29 ;
28156  struct hc_driver  const  *__cil_tmp30 ;
28157  int __cil_tmp31 ;
28158  int __cil_tmp32 ;
28159  int __cil_tmp33 ;
28160  struct usb_device *__cil_tmp34 ;
28161  struct usb_bus *__cil_tmp35 ;
28162  dma_addr_t *__cil_tmp36 ;
28163  unsigned char **__cil_tmp37 ;
28164  void **__cil_tmp38 ;
28165  enum dma_data_direction __cil_tmp39 ;
28166  unsigned int __cil_tmp40 ;
28167  u32 __cil_tmp41 ;
28168  unsigned int __cil_tmp42 ;
28169  unsigned int __cil_tmp43 ;
28170  u8 __cil_tmp44 ;
28171  unsigned int __cil_tmp45 ;
28172  int __cil_tmp46 ;
28173  struct device *__cil_tmp47 ;
28174  struct scatterlist *__cil_tmp48 ;
28175  int __cil_tmp49 ;
28176  struct dma_attrs *__cil_tmp50 ;
28177  unsigned int __cil_tmp51 ;
28178  int __cil_tmp52 ;
28179  unsigned int __cil_tmp53 ;
28180  struct scatterlist *__cil_tmp54 ;
28181  unsigned long __cil_tmp55 ;
28182  struct scatterlist *__cil_tmp56 ;
28183  unsigned long __cil_tmp57 ;
28184  struct device *__cil_tmp58 ;
28185  unsigned int __cil_tmp59 ;
28186  size_t __cil_tmp60 ;
28187  u32 __cil_tmp61 ;
28188  size_t __cil_tmp62 ;
28189  struct device *__cil_tmp63 ;
28190  dma_addr_t __cil_tmp64 ;
28191  unsigned int __cil_tmp65 ;
28192  struct device *__cil_tmp66 ;
28193  void *__cil_tmp67 ;
28194  u32 __cil_tmp68 ;
28195  size_t __cil_tmp69 ;
28196  struct dma_attrs *__cil_tmp70 ;
28197  struct device *__cil_tmp71 ;
28198  dma_addr_t __cil_tmp72 ;
28199  unsigned int __cil_tmp73 ;
28200  struct hc_driver  const  *__cil_tmp74 ;
28201  int __cil_tmp75 ;
28202  int __cil_tmp76 ;
28203  int __cil_tmp77 ;
28204  struct usb_device *__cil_tmp78 ;
28205  struct usb_bus *__cil_tmp79 ;
28206  dma_addr_t *__cil_tmp80 ;
28207  void **__cil_tmp81 ;
28208  u32 __cil_tmp82 ;
28209  size_t __cil_tmp83 ;
28210  unsigned int __cil_tmp84 ;
28211  unsigned int __cil_tmp85 ;
28212  unsigned int __cil_tmp86 ;
28213
28214  {
28215  {
28216#line 1350
28217  ret = 0;
28218#line 1358
28219  __cil_tmp15 = urb->ep;
28220#line 1358
28221  __cil_tmp16 = & __cil_tmp15->desc;
28222#line 1358
28223  __cil_tmp17 = (struct usb_endpoint_descriptor  const  *)__cil_tmp16;
28224#line 1358
28225  tmp___0 = usb_endpoint_xfer_control(__cil_tmp17);
28226  }
28227#line 1358
28228  if (tmp___0 != 0) {
28229    {
28230#line 1359
28231    __cil_tmp18 = hcd->self.uses_pio_for_control;
28232#line 1359
28233    __cil_tmp19 = (unsigned int )__cil_tmp18;
28234#line 1359
28235    if (__cil_tmp19 != 0U) {
28236#line 1360
28237      return (ret);
28238    } else {
28239
28240    }
28241    }
28242    {
28243#line 1361
28244    __cil_tmp20 = hcd->self.uses_dma;
28245#line 1361
28246    __cil_tmp21 = (unsigned int )__cil_tmp20;
28247#line 1361
28248    if (__cil_tmp21 != 0U) {
28249      {
28250#line 1362
28251      __cil_tmp22 = hcd->self.controller;
28252#line 1362
28253      __cil_tmp23 = urb->setup_packet;
28254#line 1362
28255      __cil_tmp24 = (void *)__cil_tmp23;
28256#line 1362
28257      __cil_tmp25 = (enum dma_data_direction )1;
28258#line 1362
28259      __cil_tmp26 = (struct dma_attrs *)0;
28260#line 1362
28261      urb->setup_dma = dma_map_single_attrs(__cil_tmp22, __cil_tmp24, 8UL, __cil_tmp25,
28262                                            __cil_tmp26);
28263#line 1367
28264      __cil_tmp27 = hcd->self.controller;
28265#line 1367
28266      __cil_tmp28 = urb->setup_dma;
28267#line 1367
28268      tmp = dma_mapping_error(__cil_tmp27, __cil_tmp28);
28269      }
28270#line 1367
28271      if (tmp != 0) {
28272#line 1369
28273        return (-11);
28274      } else {
28275
28276      }
28277#line 1370
28278      __cil_tmp29 = urb->transfer_flags;
28279#line 1370
28280      urb->transfer_flags = __cil_tmp29 | 1048576U;
28281    } else {
28282      {
28283#line 1371
28284      __cil_tmp30 = hcd->driver;
28285#line 1371
28286      __cil_tmp31 = __cil_tmp30->flags;
28287#line 1371
28288      __cil_tmp32 = (int )__cil_tmp31;
28289#line 1371
28290      __cil_tmp33 = __cil_tmp32 & 2;
28291#line 1371
28292      if (__cil_tmp33 != 0) {
28293        {
28294#line 1372
28295        __cil_tmp34 = urb->dev;
28296#line 1372
28297        __cil_tmp35 = __cil_tmp34->bus;
28298#line 1372
28299        __cil_tmp36 = & urb->setup_dma;
28300#line 1372
28301        __cil_tmp37 = & urb->setup_packet;
28302#line 1372
28303        __cil_tmp38 = (void **)__cil_tmp37;
28304#line 1372
28305        __cil_tmp39 = (enum dma_data_direction )1;
28306#line 1372
28307        ret = hcd_alloc_coherent(__cil_tmp35, mem_flags, __cil_tmp36, __cil_tmp38,
28308                                 8UL, __cil_tmp39);
28309        }
28310#line 1378
28311        if (ret != 0) {
28312#line 1379
28313          return (ret);
28314        } else {
28315
28316        }
28317#line 1380
28318        __cil_tmp40 = urb->transfer_flags;
28319#line 1380
28320        urb->transfer_flags = __cil_tmp40 | 2097152U;
28321      } else {
28322
28323      }
28324      }
28325    }
28326    }
28327  } else {
28328
28329  }
28330  {
28331#line 1384
28332  tmp___2 = usb_urb_dir_in(urb);
28333  }
28334#line 1384
28335  if (tmp___2 != 0) {
28336#line 1384
28337    dir = (enum dma_data_direction )2;
28338  } else {
28339#line 1384
28340    dir = (enum dma_data_direction )1;
28341  }
28342  {
28343#line 1385
28344  __cil_tmp41 = urb->transfer_buffer_length;
28345#line 1385
28346  if (__cil_tmp41 != 0U) {
28347    {
28348#line 1385
28349    __cil_tmp42 = urb->transfer_flags;
28350#line 1385
28351    __cil_tmp43 = __cil_tmp42 & 4U;
28352#line 1385
28353    if (__cil_tmp43 == 0U) {
28354      {
28355#line 1387
28356      __cil_tmp44 = hcd->self.uses_dma;
28357#line 1387
28358      __cil_tmp45 = (unsigned int )__cil_tmp44;
28359#line 1387
28360      if (__cil_tmp45 != 0U) {
28361        {
28362#line 1388
28363        __cil_tmp46 = urb->num_sgs;
28364#line 1388
28365        if (__cil_tmp46 != 0) {
28366          {
28367#line 1389
28368          __cil_tmp47 = hcd->self.controller;
28369#line 1389
28370          __cil_tmp48 = urb->sg;
28371#line 1389
28372          __cil_tmp49 = urb->num_sgs;
28373#line 1389
28374          __cil_tmp50 = (struct dma_attrs *)0;
28375#line 1389
28376          tmp___3 = dma_map_sg_attrs(__cil_tmp47, __cil_tmp48, __cil_tmp49, dir, __cil_tmp50);
28377#line 1389
28378          n = tmp___3;
28379          }
28380#line 1394
28381          if (n <= 0) {
28382#line 1395
28383            ret = -11;
28384          } else {
28385#line 1397
28386            __cil_tmp51 = urb->transfer_flags;
28387#line 1397
28388            urb->transfer_flags = __cil_tmp51 | 262144U;
28389          }
28390          {
28391#line 1398
28392          __cil_tmp52 = urb->num_sgs;
28393#line 1398
28394          if (__cil_tmp52 != n) {
28395#line 1399
28396            urb->num_sgs = n;
28397#line 1400
28398            __cil_tmp53 = urb->transfer_flags;
28399#line 1400
28400            urb->transfer_flags = __cil_tmp53 | 4194304U;
28401          } else {
28402
28403          }
28404          }
28405        } else {
28406          {
28407#line 1403
28408          __cil_tmp54 = (struct scatterlist *)0;
28409#line 1403
28410          __cil_tmp55 = (unsigned long )__cil_tmp54;
28411#line 1403
28412          __cil_tmp56 = urb->sg;
28413#line 1403
28414          __cil_tmp57 = (unsigned long )__cil_tmp56;
28415#line 1403
28416          if (__cil_tmp57 != __cil_tmp55) {
28417            {
28418#line 1404
28419            sg = urb->sg;
28420#line 1405
28421            tmp___4 = sg_page(sg);
28422#line 1405
28423            __cil_tmp58 = hcd->self.controller;
28424#line 1405
28425            __cil_tmp59 = sg->offset;
28426#line 1405
28427            __cil_tmp60 = (size_t )__cil_tmp59;
28428#line 1405
28429            __cil_tmp61 = urb->transfer_buffer_length;
28430#line 1405
28431            __cil_tmp62 = (size_t )__cil_tmp61;
28432#line 1405
28433            urb->transfer_dma = dma_map_page(__cil_tmp58, tmp___4, __cil_tmp60, __cil_tmp62,
28434                                             dir);
28435#line 1411
28436            __cil_tmp63 = hcd->self.controller;
28437#line 1411
28438            __cil_tmp64 = urb->transfer_dma;
28439#line 1411
28440            tmp___5 = dma_mapping_error(__cil_tmp63, __cil_tmp64);
28441            }
28442#line 1411
28443            if (tmp___5 != 0) {
28444#line 1413
28445              ret = -11;
28446            } else {
28447#line 1415
28448              __cil_tmp65 = urb->transfer_flags;
28449#line 1415
28450              urb->transfer_flags = __cil_tmp65 | 131072U;
28451            }
28452          } else {
28453            {
28454#line 1417
28455            __cil_tmp66 = hcd->self.controller;
28456#line 1417
28457            __cil_tmp67 = urb->transfer_buffer;
28458#line 1417
28459            __cil_tmp68 = urb->transfer_buffer_length;
28460#line 1417
28461            __cil_tmp69 = (size_t )__cil_tmp68;
28462#line 1417
28463            __cil_tmp70 = (struct dma_attrs *)0;
28464#line 1417
28465            urb->transfer_dma = dma_map_single_attrs(__cil_tmp66, __cil_tmp67, __cil_tmp69,
28466                                                     dir, __cil_tmp70);
28467#line 1422
28468            __cil_tmp71 = hcd->self.controller;
28469#line 1422
28470            __cil_tmp72 = urb->transfer_dma;
28471#line 1422
28472            tmp___6 = dma_mapping_error(__cil_tmp71, __cil_tmp72);
28473            }
28474#line 1422
28475            if (tmp___6 != 0) {
28476#line 1424
28477              ret = -11;
28478            } else {
28479#line 1426
28480              __cil_tmp73 = urb->transfer_flags;
28481#line 1426
28482              urb->transfer_flags = __cil_tmp73 | 65536U;
28483            }
28484          }
28485          }
28486        }
28487        }
28488      } else {
28489        {
28490#line 1428
28491        __cil_tmp74 = hcd->driver;
28492#line 1428
28493        __cil_tmp75 = __cil_tmp74->flags;
28494#line 1428
28495        __cil_tmp76 = (int )__cil_tmp75;
28496#line 1428
28497        __cil_tmp77 = __cil_tmp76 & 2;
28498#line 1428
28499        if (__cil_tmp77 != 0) {
28500          {
28501#line 1429
28502          __cil_tmp78 = urb->dev;
28503#line 1429
28504          __cil_tmp79 = __cil_tmp78->bus;
28505#line 1429
28506          __cil_tmp80 = & urb->transfer_dma;
28507#line 1429
28508          __cil_tmp81 = & urb->transfer_buffer;
28509#line 1429
28510          __cil_tmp82 = urb->transfer_buffer_length;
28511#line 1429
28512          __cil_tmp83 = (size_t )__cil_tmp82;
28513#line 1429
28514          ret = hcd_alloc_coherent(__cil_tmp79, mem_flags, __cil_tmp80, __cil_tmp81,
28515                                   __cil_tmp83, dir);
28516          }
28517#line 1435
28518          if (ret == 0) {
28519#line 1436
28520            __cil_tmp84 = urb->transfer_flags;
28521#line 1436
28522            urb->transfer_flags = __cil_tmp84 | 524288U;
28523          } else {
28524
28525          }
28526        } else {
28527
28528        }
28529        }
28530      }
28531      }
28532#line 1438
28533      if (ret != 0) {
28534        {
28535#line 1438
28536        __cil_tmp85 = urb->transfer_flags;
28537#line 1438
28538        __cil_tmp86 = __cil_tmp85 & 3145728U;
28539#line 1438
28540        if (__cil_tmp86 != 0U) {
28541          {
28542#line 1440
28543          usb_hcd_unmap_urb_for_dma(hcd, urb);
28544          }
28545        } else {
28546
28547        }
28548        }
28549      } else {
28550
28551      }
28552    } else {
28553
28554    }
28555    }
28556  } else {
28557
28558  }
28559  }
28560#line 1442
28561  return (ret);
28562}
28563}
28564#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"
28565int usb_hcd_submit_urb(struct urb *urb , gfp_t mem_flags ) 
28566{ int status ;
28567  struct usb_hcd *hcd ;
28568  struct usb_hcd *tmp ;
28569  long tmp___0 ;
28570  long tmp___1 ;
28571  int tmp___2 ;
28572  int tmp___3 ;
28573  long tmp___4 ;
28574  struct usb_device *__cil_tmp11 ;
28575  struct usb_bus *__cil_tmp12 ;
28576  atomic_t *__cil_tmp13 ;
28577  struct usb_device *__cil_tmp14 ;
28578  atomic_t *__cil_tmp15 ;
28579  struct usb_bus *__cil_tmp16 ;
28580  struct usb_device *__cil_tmp17 ;
28581  int __cil_tmp18 ;
28582  long __cil_tmp19 ;
28583  struct hc_driver  const  *__cil_tmp20 ;
28584  int (*__cil_tmp21)(struct usb_hcd * , struct urb * , gfp_t  ) ;
28585  int __cil_tmp22 ;
28586  long __cil_tmp23 ;
28587  int __cil_tmp24 ;
28588  long __cil_tmp25 ;
28589  struct usb_bus *__cil_tmp26 ;
28590  struct list_head *__cil_tmp27 ;
28591  atomic_t *__cil_tmp28 ;
28592  struct usb_device *__cil_tmp29 ;
28593  atomic_t *__cil_tmp30 ;
28594  atomic_t *__cil_tmp31 ;
28595  atomic_t const   *__cil_tmp32 ;
28596  void *__cil_tmp33 ;
28597
28598  {
28599  {
28600#line 1456
28601  __cil_tmp11 = urb->dev;
28602#line 1456
28603  __cil_tmp12 = __cil_tmp11->bus;
28604#line 1456
28605  tmp = bus_to_hcd(__cil_tmp12);
28606#line 1456
28607  hcd = tmp;
28608#line 1462
28609  usb_get_urb(urb);
28610#line 1463
28611  __cil_tmp13 = & urb->use_count;
28612#line 1463
28613  atomic_inc(__cil_tmp13);
28614#line 1464
28615  __cil_tmp14 = urb->dev;
28616#line 1464
28617  __cil_tmp15 = & __cil_tmp14->urbnum;
28618#line 1464
28619  atomic_inc(__cil_tmp15);
28620#line 1465
28621  __cil_tmp16 = & hcd->self;
28622#line 1465
28623  usbmon_urb_submit(__cil_tmp16, urb);
28624#line 1475
28625  __cil_tmp17 = urb->dev;
28626#line 1475
28627  tmp___2 = is_root_hub(__cil_tmp17);
28628  }
28629#line 1475
28630  if (tmp___2 != 0) {
28631    {
28632#line 1476
28633    status = rh_urb_enqueue(hcd, urb);
28634    }
28635  } else {
28636    {
28637#line 1478
28638    status = map_urb_for_dma(hcd, urb, mem_flags);
28639#line 1479
28640    __cil_tmp18 = status == 0;
28641#line 1479
28642    __cil_tmp19 = (long )__cil_tmp18;
28643#line 1479
28644    tmp___1 = __builtin_expect(__cil_tmp19, 1L);
28645    }
28646#line 1479
28647    if (tmp___1 != 0L) {
28648      {
28649#line 1480
28650      __cil_tmp20 = hcd->driver;
28651#line 1480
28652      __cil_tmp21 = __cil_tmp20->urb_enqueue;
28653#line 1480
28654      status = (*__cil_tmp21)(hcd, urb, mem_flags);
28655#line 1481
28656      __cil_tmp22 = status != 0;
28657#line 1481
28658      __cil_tmp23 = (long )__cil_tmp22;
28659#line 1481
28660      tmp___0 = __builtin_expect(__cil_tmp23, 0L);
28661      }
28662#line 1481
28663      if (tmp___0 != 0L) {
28664        {
28665#line 1482
28666        unmap_urb_for_dma(hcd, urb);
28667        }
28668      } else {
28669
28670      }
28671    } else {
28672
28673    }
28674  }
28675  {
28676#line 1486
28677  __cil_tmp24 = status != 0;
28678#line 1486
28679  __cil_tmp25 = (long )__cil_tmp24;
28680#line 1486
28681  tmp___4 = __builtin_expect(__cil_tmp25, 0L);
28682  }
28683#line 1486
28684  if (tmp___4 != 0L) {
28685    {
28686#line 1487
28687    __cil_tmp26 = & hcd->self;
28688#line 1487
28689    usbmon_urb_submit_error(__cil_tmp26, urb, status);
28690#line 1488
28691    urb->hcpriv = (void *)0;
28692#line 1489
28693    __cil_tmp27 = & urb->urb_list;
28694#line 1489
28695    INIT_LIST_HEAD(__cil_tmp27);
28696#line 1490
28697    __cil_tmp28 = & urb->use_count;
28698#line 1490
28699    atomic_dec(__cil_tmp28);
28700#line 1491
28701    __cil_tmp29 = urb->dev;
28702#line 1491
28703    __cil_tmp30 = & __cil_tmp29->urbnum;
28704#line 1491
28705    atomic_dec(__cil_tmp30);
28706#line 1492
28707    __cil_tmp31 = & urb->reject;
28708#line 1492
28709    __cil_tmp32 = (atomic_t const   *)__cil_tmp31;
28710#line 1492
28711    tmp___3 = atomic_read(__cil_tmp32);
28712    }
28713#line 1492
28714    if (tmp___3 != 0) {
28715      {
28716#line 1493
28717      __cil_tmp33 = (void *)0;
28718#line 1493
28719      __wake_up(& usb_kill_urb_queue, 3U, 1, __cil_tmp33);
28720      }
28721    } else {
28722
28723    }
28724    {
28725#line 1494
28726    usb_free_urb(urb);
28727    }
28728  } else {
28729
28730  }
28731#line 1496
28732  return (status);
28733}
28734}
28735#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"
28736static int unlink1(struct usb_hcd *hcd , struct urb *urb , int status ) 
28737{ int value ;
28738  int tmp ;
28739  struct usb_device *__cil_tmp6 ;
28740  struct hc_driver  const  *__cil_tmp7 ;
28741  int (*__cil_tmp8)(struct usb_hcd * , struct urb * , int  ) ;
28742
28743  {
28744  {
28745#line 1510
28746  __cil_tmp6 = urb->dev;
28747#line 1510
28748  tmp = is_root_hub(__cil_tmp6);
28749  }
28750#line 1510
28751  if (tmp != 0) {
28752    {
28753#line 1511
28754    value = usb_rh_urb_dequeue(hcd, urb, status);
28755    }
28756  } else {
28757    {
28758#line 1517
28759    __cil_tmp7 = hcd->driver;
28760#line 1517
28761    __cil_tmp8 = __cil_tmp7->urb_dequeue;
28762#line 1517
28763    value = (*__cil_tmp8)(hcd, urb, status);
28764    }
28765  }
28766#line 1519
28767  return (value);
28768}
28769}
28770#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"
28771int usb_hcd_unlink_urb(struct urb *urb , int status ) 
28772{ struct usb_hcd *hcd ;
28773  int retval ;
28774  unsigned long flags ;
28775  raw_spinlock_t *tmp ;
28776  int tmp___0 ;
28777  atomic_t *__cil_tmp8 ;
28778  atomic_t const   *__cil_tmp9 ;
28779  struct usb_device *__cil_tmp10 ;
28780  struct usb_device *__cil_tmp11 ;
28781  struct usb_bus *__cil_tmp12 ;
28782  struct usb_device *__cil_tmp13 ;
28783  struct usb_device *__cil_tmp14 ;
28784  struct device *__cil_tmp15 ;
28785  struct device  const  *__cil_tmp16 ;
28786
28787  {
28788  {
28789#line 1531
28790  retval = -43;
28791#line 1539
28792  tmp = spinlock_check(& hcd_urb_unlink_lock);
28793#line 1539
28794  flags = _raw_spin_lock_irqsave(tmp);
28795#line 1540
28796  __cil_tmp8 = & urb->use_count;
28797#line 1540
28798  __cil_tmp9 = (atomic_t const   *)__cil_tmp8;
28799#line 1540
28800  tmp___0 = atomic_read(__cil_tmp9);
28801  }
28802#line 1540
28803  if (tmp___0 > 0) {
28804    {
28805#line 1541
28806    retval = 0;
28807#line 1542
28808    __cil_tmp10 = urb->dev;
28809#line 1542
28810    usb_get_dev(__cil_tmp10);
28811    }
28812  } else {
28813
28814  }
28815  {
28816#line 1544
28817  spin_unlock_irqrestore(& hcd_urb_unlink_lock, flags);
28818  }
28819#line 1545
28820  if (retval == 0) {
28821    {
28822#line 1546
28823    __cil_tmp11 = urb->dev;
28824#line 1546
28825    __cil_tmp12 = __cil_tmp11->bus;
28826#line 1546
28827    hcd = bus_to_hcd(__cil_tmp12);
28828#line 1547
28829    retval = unlink1(hcd, urb, status);
28830#line 1548
28831    __cil_tmp13 = urb->dev;
28832#line 1548
28833    usb_put_dev(__cil_tmp13);
28834    }
28835  } else {
28836
28837  }
28838#line 1551
28839  if (retval == 0) {
28840#line 1552
28841    retval = -115;
28842  } else
28843#line 1553
28844  if (retval != -43) {
28845#line 1553
28846    if (retval != -16) {
28847      {
28848#line 1554
28849      __cil_tmp14 = urb->dev;
28850#line 1554
28851      __cil_tmp15 = & __cil_tmp14->dev;
28852#line 1554
28853      __cil_tmp16 = (struct device  const  *)__cil_tmp15;
28854#line 1554
28855      dev_printk("<7>", __cil_tmp16, "hcd_unlink_urb %p fail %d\n", urb, retval);
28856      }
28857    } else {
28858
28859    }
28860  } else {
28861
28862  }
28863#line 1556
28864  return (retval);
28865}
28866}
28867#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"
28868void usb_hcd_giveback_urb(struct usb_hcd *hcd , struct urb *urb , int status ) 
28869{ long tmp ;
28870  long tmp___0 ;
28871  int tmp___1 ;
28872  long tmp___2 ;
28873  long tmp___3 ;
28874  int tmp___4 ;
28875  long tmp___5 ;
28876  int __cil_tmp11 ;
28877  int __cil_tmp12 ;
28878  long __cil_tmp13 ;
28879  unsigned int __cil_tmp14 ;
28880  int __cil_tmp15 ;
28881  long __cil_tmp16 ;
28882  long __cil_tmp17 ;
28883  u32 __cil_tmp18 ;
28884  u32 __cil_tmp19 ;
28885  int __cil_tmp20 ;
28886  long __cil_tmp21 ;
28887  int __cil_tmp22 ;
28888  long __cil_tmp23 ;
28889  struct usb_bus *__cil_tmp24 ;
28890  void (*__cil_tmp25)(struct urb * ) ;
28891  atomic_t *__cil_tmp26 ;
28892  atomic_t *__cil_tmp27 ;
28893  atomic_t const   *__cil_tmp28 ;
28894  int __cil_tmp29 ;
28895  long __cil_tmp30 ;
28896  void *__cil_tmp31 ;
28897
28898  {
28899  {
28900#line 1580
28901  urb->hcpriv = (void *)0;
28902#line 1581
28903  __cil_tmp11 = urb->unlinked;
28904#line 1581
28905  __cil_tmp12 = __cil_tmp11 != 0;
28906#line 1581
28907  __cil_tmp13 = (long )__cil_tmp12;
28908#line 1581
28909  tmp___3 = __builtin_expect(__cil_tmp13, 0L);
28910  }
28911#line 1581
28912  if (tmp___3 != 0L) {
28913#line 1582
28914    status = urb->unlinked;
28915  } else {
28916    {
28917#line 1583
28918    __cil_tmp14 = urb->transfer_flags;
28919#line 1583
28920    __cil_tmp15 = (int )__cil_tmp14;
28921#line 1583
28922    __cil_tmp16 = (long )__cil_tmp15;
28923#line 1583
28924    __cil_tmp17 = __cil_tmp16 & 1L;
28925#line 1583
28926    tmp = __builtin_expect(__cil_tmp17, 0L);
28927    }
28928#line 1583
28929    if (tmp != 0L) {
28930      {
28931#line 1583
28932      __cil_tmp18 = urb->transfer_buffer_length;
28933#line 1583
28934      __cil_tmp19 = urb->actual_length;
28935#line 1583
28936      __cil_tmp20 = __cil_tmp19 < __cil_tmp18;
28937#line 1583
28938      __cil_tmp21 = (long )__cil_tmp20;
28939#line 1583
28940      tmp___0 = __builtin_expect(__cil_tmp21, 0L);
28941      }
28942#line 1583
28943      if (tmp___0 != 0L) {
28944#line 1583
28945        tmp___1 = 1;
28946      } else {
28947#line 1583
28948        tmp___1 = 0;
28949      }
28950    } else {
28951#line 1583
28952      tmp___1 = 0;
28953    }
28954#line 1583
28955    if (tmp___1 != 0) {
28956      {
28957#line 1583
28958      __cil_tmp22 = status == 0;
28959#line 1583
28960      __cil_tmp23 = (long )__cil_tmp22;
28961#line 1583
28962      tmp___2 = __builtin_expect(__cil_tmp23, 0L);
28963      }
28964#line 1583
28965      if (tmp___2 != 0L) {
28966#line 1586
28967        status = -121;
28968      } else {
28969
28970      }
28971    } else {
28972
28973    }
28974  }
28975  {
28976#line 1588
28977  unmap_urb_for_dma(hcd, urb);
28978#line 1589
28979  __cil_tmp24 = & hcd->self;
28980#line 1589
28981  usbmon_urb_complete(__cil_tmp24, urb, status);
28982#line 1590
28983  usb_unanchor_urb(urb);
28984#line 1593
28985  urb->status = status;
28986#line 1594
28987  __cil_tmp25 = urb->complete;
28988#line 1594
28989  (*__cil_tmp25)(urb);
28990#line 1595
28991  __cil_tmp26 = & urb->use_count;
28992#line 1595
28993  atomic_dec(__cil_tmp26);
28994#line 1596
28995  __cil_tmp27 = & urb->reject;
28996#line 1596
28997  __cil_tmp28 = (atomic_t const   *)__cil_tmp27;
28998#line 1596
28999  tmp___4 = atomic_read(__cil_tmp28);
29000#line 1596
29001  __cil_tmp29 = tmp___4 != 0;
29002#line 1596
29003  __cil_tmp30 = (long )__cil_tmp29;
29004#line 1596
29005  tmp___5 = __builtin_expect(__cil_tmp30, 0L);
29006  }
29007#line 1596
29008  if (tmp___5 != 0L) {
29009    {
29010#line 1597
29011    __cil_tmp31 = (void *)0;
29012#line 1597
29013    __wake_up(& usb_kill_urb_queue, 3U, 1, __cil_tmp31);
29014    }
29015  } else {
29016
29017  }
29018  {
29019#line 1598
29020  usb_free_urb(urb);
29021  }
29022#line 1599
29023  return;
29024}
29025}
29026#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"
29027void usb_hcd_flush_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) 
29028{ struct usb_hcd *hcd ;
29029  struct urb *urb ;
29030  struct list_head  const  *__mptr ;
29031  int is_in ;
29032  char *s ;
29033  int tmp ;
29034  char *tmp___0 ;
29035  int tmp___1 ;
29036  struct list_head  const  *__mptr___0 ;
29037  struct list_head  const  *__mptr___1 ;
29038  int tmp___2 ;
29039  int tmp___3 ;
29040  struct usb_host_endpoint *__cil_tmp15 ;
29041  unsigned long __cil_tmp16 ;
29042  unsigned long __cil_tmp17 ;
29043  struct usb_bus *__cil_tmp18 ;
29044  struct list_head *__cil_tmp19 ;
29045  struct urb *__cil_tmp20 ;
29046  int __cil_tmp21 ;
29047  struct usb_endpoint_descriptor *__cil_tmp22 ;
29048  struct usb_endpoint_descriptor  const  *__cil_tmp23 ;
29049  struct usb_endpoint_descriptor *__cil_tmp24 ;
29050  struct usb_endpoint_descriptor  const  *__cil_tmp25 ;
29051  struct device *__cil_tmp26 ;
29052  struct device  const  *__cil_tmp27 ;
29053  struct list_head *__cil_tmp28 ;
29054  struct urb *__cil_tmp29 ;
29055  struct list_head *__cil_tmp30 ;
29056  unsigned long __cil_tmp31 ;
29057  struct list_head *__cil_tmp32 ;
29058  unsigned long __cil_tmp33 ;
29059  struct list_head *__cil_tmp34 ;
29060  struct list_head  const  *__cil_tmp35 ;
29061  struct list_head *__cil_tmp36 ;
29062  struct urb *__cil_tmp37 ;
29063  struct urb *__cil_tmp38 ;
29064  unsigned long __cil_tmp39 ;
29065  unsigned long __cil_tmp40 ;
29066  struct list_head *__cil_tmp41 ;
29067  struct list_head  const  *__cil_tmp42 ;
29068
29069  {
29070  {
29071#line 1614
29072  __cil_tmp15 = (struct usb_host_endpoint *)0;
29073#line 1614
29074  __cil_tmp16 = (unsigned long )__cil_tmp15;
29075#line 1614
29076  __cil_tmp17 = (unsigned long )ep;
29077#line 1614
29078  if (__cil_tmp17 == __cil_tmp16) {
29079#line 1615
29080    return;
29081  } else {
29082
29083  }
29084  }
29085  {
29086#line 1616
29087  __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",
29088                1616, 0);
29089#line 1617
29090  __cil_tmp18 = udev->bus;
29091#line 1617
29092  hcd = bus_to_hcd(__cil_tmp18);
29093#line 1620
29094  spin_lock_irq(& hcd_urb_list_lock);
29095  }
29096  rescan: 
29097#line 1622
29098  __cil_tmp19 = ep->urb_list.next;
29099#line 1622
29100  __mptr = (struct list_head  const  *)__cil_tmp19;
29101#line 1622
29102  __cil_tmp20 = (struct urb *)__mptr;
29103#line 1622
29104  urb = __cil_tmp20 + 1152921504606846944UL;
29105#line 1622
29106  goto ldv_28029;
29107  ldv_28028: ;
29108  {
29109#line 1625
29110  __cil_tmp21 = urb->unlinked;
29111#line 1625
29112  if (__cil_tmp21 != 0) {
29113#line 1626
29114    goto ldv_28020;
29115  } else {
29116
29117  }
29118  }
29119  {
29120#line 1627
29121  usb_get_urb(urb);
29122#line 1628
29123  is_in = usb_urb_dir_in(urb);
29124#line 1629
29125  spin_unlock(& hcd_urb_list_lock);
29126#line 1632
29127  unlink1(hcd, urb, -108);
29128#line 1633
29129  __cil_tmp22 = & ep->desc;
29130#line 1633
29131  __cil_tmp23 = (struct usb_endpoint_descriptor  const  *)__cil_tmp22;
29132#line 1633
29133  tmp = usb_endpoint_type(__cil_tmp23);
29134  }
29135#line 1633
29136  if (tmp == 0) {
29137#line 1633
29138    goto case_0;
29139  } else
29140#line 1633
29141  if (tmp == 2) {
29142#line 1633
29143    goto case_2;
29144  } else
29145#line 1633
29146  if (tmp == 3) {
29147#line 1633
29148    goto case_3;
29149  } else {
29150#line 1633
29151    goto switch_default;
29152#line 1633
29153    if (0) {
29154      case_0: 
29155#line 1633
29156      s = (char *)"";
29157#line 1633
29158      goto ldv_28023;
29159      case_2: 
29160#line 1633
29161      s = (char *)"-bulk";
29162#line 1633
29163      goto ldv_28023;
29164      case_3: 
29165#line 1633
29166      s = (char *)"-intr";
29167#line 1633
29168      goto ldv_28023;
29169      switch_default: 
29170#line 1633
29171      s = (char *)"-iso";
29172#line 1633
29173      goto ldv_28023;
29174    } else {
29175
29176    }
29177  }
29178  ldv_28023: ;
29179#line 1633
29180  if (is_in != 0) {
29181#line 1633
29182    tmp___0 = (char *)"in";
29183  } else {
29184#line 1633
29185    tmp___0 = (char *)"out";
29186  }
29187  {
29188#line 1633
29189  __cil_tmp24 = & ep->desc;
29190#line 1633
29191  __cil_tmp25 = (struct usb_endpoint_descriptor  const  *)__cil_tmp24;
29192#line 1633
29193  tmp___1 = usb_endpoint_num(__cil_tmp25);
29194#line 1633
29195  __cil_tmp26 = hcd->self.controller;
29196#line 1633
29197  __cil_tmp27 = (struct device  const  *)__cil_tmp26;
29198#line 1633
29199  dev_printk("<7>", __cil_tmp27, "shutdown urb %p ep%d%s%s\n", urb, tmp___1, tmp___0,
29200             s);
29201#line 1651
29202  usb_free_urb(urb);
29203#line 1654
29204  spin_lock(& hcd_urb_list_lock);
29205  }
29206#line 1655
29207  goto rescan;
29208  ldv_28020: 
29209#line 1622
29210  __cil_tmp28 = urb->urb_list.next;
29211#line 1622
29212  __mptr___0 = (struct list_head  const  *)__cil_tmp28;
29213#line 1622
29214  __cil_tmp29 = (struct urb *)__mptr___0;
29215#line 1622
29216  urb = __cil_tmp29 + 1152921504606846944UL;
29217  ldv_28029: ;
29218  {
29219#line 1622
29220  __cil_tmp30 = & ep->urb_list;
29221#line 1622
29222  __cil_tmp31 = (unsigned long )__cil_tmp30;
29223#line 1622
29224  __cil_tmp32 = & urb->urb_list;
29225#line 1622
29226  __cil_tmp33 = (unsigned long )__cil_tmp32;
29227#line 1622
29228  if (__cil_tmp33 != __cil_tmp31) {
29229#line 1623
29230    goto ldv_28028;
29231  } else {
29232#line 1625
29233    goto ldv_28030;
29234  }
29235  }
29236  ldv_28030: 
29237  {
29238#line 1657
29239  spin_unlock_irq(& hcd_urb_list_lock);
29240  }
29241#line 1660
29242  goto ldv_28034;
29243  ldv_28033: 
29244  {
29245#line 1661
29246  spin_lock_irq(& hcd_urb_list_lock);
29247#line 1664
29248  urb = (struct urb *)0;
29249#line 1665
29250  __cil_tmp34 = & ep->urb_list;
29251#line 1665
29252  __cil_tmp35 = (struct list_head  const  *)__cil_tmp34;
29253#line 1665
29254  tmp___2 = list_empty(__cil_tmp35);
29255  }
29256#line 1665
29257  if (tmp___2 == 0) {
29258    {
29259#line 1666
29260    __cil_tmp36 = ep->urb_list.prev;
29261#line 1666
29262    __mptr___1 = (struct list_head  const  *)__cil_tmp36;
29263#line 1666
29264    __cil_tmp37 = (struct urb *)__mptr___1;
29265#line 1666
29266    urb = __cil_tmp37 + 1152921504606846944UL;
29267#line 1668
29268    usb_get_urb(urb);
29269    }
29270  } else {
29271
29272  }
29273  {
29274#line 1670
29275  spin_unlock_irq(& hcd_urb_list_lock);
29276  }
29277  {
29278#line 1672
29279  __cil_tmp38 = (struct urb *)0;
29280#line 1672
29281  __cil_tmp39 = (unsigned long )__cil_tmp38;
29282#line 1672
29283  __cil_tmp40 = (unsigned long )urb;
29284#line 1672
29285  if (__cil_tmp40 != __cil_tmp39) {
29286    {
29287#line 1673
29288    usb_kill_urb(urb);
29289#line 1674
29290    usb_free_urb(urb);
29291    }
29292  } else {
29293
29294  }
29295  }
29296  ldv_28034: 
29297  {
29298#line 1660
29299  __cil_tmp41 = & ep->urb_list;
29300#line 1660
29301  __cil_tmp42 = (struct list_head  const  *)__cil_tmp41;
29302#line 1660
29303  tmp___3 = list_empty(__cil_tmp42);
29304  }
29305#line 1660
29306  if (tmp___3 == 0) {
29307#line 1661
29308    goto ldv_28033;
29309  } else {
29310#line 1663
29311    goto ldv_28035;
29312  }
29313  ldv_28035: ;
29314#line 1665
29315  return;
29316}
29317}
29318#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"
29319int usb_hcd_alloc_bandwidth(struct usb_device *udev , struct usb_host_config *new_config ,
29320                            struct usb_host_interface *cur_alt , struct usb_host_interface *new_alt ) 
29321{ int num_intfs ;
29322  int i ;
29323  int j ;
29324  struct usb_host_interface *alt ;
29325  int ret ;
29326  struct usb_hcd *hcd ;
29327  struct usb_host_endpoint *ep ;
29328  struct usb_host_interface *first_alt ;
29329  int iface_num ;
29330  struct usb_interface *iface ;
29331  struct usb_interface *tmp ;
29332  struct usb_bus *__cil_tmp16 ;
29333  int (*__cil_tmp17)(struct usb_hcd * , struct usb_device * ) ;
29334  unsigned long __cil_tmp18 ;
29335  struct hc_driver  const  *__cil_tmp19 ;
29336  int (*__cil_tmp20)(struct usb_hcd * , struct usb_device * ) ;
29337  unsigned long __cil_tmp21 ;
29338  struct usb_host_config *__cil_tmp22 ;
29339  unsigned long __cil_tmp23 ;
29340  unsigned long __cil_tmp24 ;
29341  struct usb_host_interface *__cil_tmp25 ;
29342  unsigned long __cil_tmp26 ;
29343  unsigned long __cil_tmp27 ;
29344  struct usb_host_endpoint *__cil_tmp28 ;
29345  unsigned long __cil_tmp29 ;
29346  unsigned long __cil_tmp30 ;
29347  struct hc_driver  const  *__cil_tmp31 ;
29348  int (*__cil_tmp32)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29349  struct usb_host_endpoint *__cil_tmp33 ;
29350  unsigned long __cil_tmp34 ;
29351  unsigned long __cil_tmp35 ;
29352  struct hc_driver  const  *__cil_tmp36 ;
29353  int (*__cil_tmp37)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29354  struct hc_driver  const  *__cil_tmp38 ;
29355  int (*__cil_tmp39)(struct usb_hcd * , struct usb_device * ) ;
29356  struct usb_host_config *__cil_tmp40 ;
29357  unsigned long __cil_tmp41 ;
29358  unsigned long __cil_tmp42 ;
29359  __u8 __cil_tmp43 ;
29360  struct usb_host_endpoint *__cil_tmp44 ;
29361  unsigned long __cil_tmp45 ;
29362  unsigned long __cil_tmp46 ;
29363  struct hc_driver  const  *__cil_tmp47 ;
29364  int (*__cil_tmp48)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29365  struct usb_host_endpoint *__cil_tmp49 ;
29366  unsigned long __cil_tmp50 ;
29367  unsigned long __cil_tmp51 ;
29368  struct hc_driver  const  *__cil_tmp52 ;
29369  int (*__cil_tmp53)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29370  struct usb_interface_cache *__cil_tmp54 ;
29371  struct usb_host_interface (*__cil_tmp55)[0U] ;
29372  __u8 __cil_tmp56 ;
29373  unsigned int __cil_tmp57 ;
29374  struct usb_host_interface *__cil_tmp58 ;
29375  unsigned long __cil_tmp59 ;
29376  unsigned long __cil_tmp60 ;
29377  struct hc_driver  const  *__cil_tmp61 ;
29378  int (*__cil_tmp62)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29379  unsigned long __cil_tmp63 ;
29380  struct usb_host_endpoint *__cil_tmp64 ;
29381  struct usb_host_endpoint *__cil_tmp65 ;
29382  __u8 __cil_tmp66 ;
29383  int __cil_tmp67 ;
29384  struct usb_host_interface *__cil_tmp68 ;
29385  unsigned long __cil_tmp69 ;
29386  unsigned long __cil_tmp70 ;
29387  struct usb_host_interface *__cil_tmp71 ;
29388  unsigned long __cil_tmp72 ;
29389  unsigned long __cil_tmp73 ;
29390  struct usb_device  const  *__cil_tmp74 ;
29391  __u8 __cil_tmp75 ;
29392  unsigned int __cil_tmp76 ;
29393  unsigned char *__cil_tmp77 ;
29394  unsigned char *__cil_tmp78 ;
29395  unsigned char __cil_tmp79 ;
29396  unsigned int __cil_tmp80 ;
29397  struct usb_interface  const  *__cil_tmp81 ;
29398  struct usb_host_interface *__cil_tmp82 ;
29399  unsigned long __cil_tmp83 ;
29400  unsigned long __cil_tmp84 ;
29401  struct hc_driver  const  *__cil_tmp85 ;
29402  int (*__cil_tmp86)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29403  unsigned long __cil_tmp87 ;
29404  struct usb_host_endpoint *__cil_tmp88 ;
29405  struct usb_host_endpoint *__cil_tmp89 ;
29406  __u8 __cil_tmp90 ;
29407  int __cil_tmp91 ;
29408  struct hc_driver  const  *__cil_tmp92 ;
29409  int (*__cil_tmp93)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint * ) ;
29410  unsigned long __cil_tmp94 ;
29411  struct usb_host_endpoint *__cil_tmp95 ;
29412  struct usb_host_endpoint *__cil_tmp96 ;
29413  __u8 __cil_tmp97 ;
29414  int __cil_tmp98 ;
29415  struct hc_driver  const  *__cil_tmp99 ;
29416  int (*__cil_tmp100)(struct usb_hcd * , struct usb_device * ) ;
29417  struct hc_driver  const  *__cil_tmp101 ;
29418  void (*__cil_tmp102)(struct usb_hcd * , struct usb_device * ) ;
29419
29420  {
29421  {
29422#line 1706
29423  alt = (struct usb_host_interface *)0;
29424#line 1707
29425  ret = 0;
29426#line 1711
29427  __cil_tmp16 = udev->bus;
29428#line 1711
29429  hcd = bus_to_hcd(__cil_tmp16);
29430  }
29431  {
29432#line 1712
29433  __cil_tmp17 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
29434#line 1712
29435  __cil_tmp18 = (unsigned long )__cil_tmp17;
29436#line 1712
29437  __cil_tmp19 = hcd->driver;
29438#line 1712
29439  __cil_tmp20 = __cil_tmp19->check_bandwidth;
29440#line 1712
29441  __cil_tmp21 = (unsigned long )__cil_tmp20;
29442#line 1712
29443  if (__cil_tmp21 == __cil_tmp18) {
29444#line 1713
29445    return (0);
29446  } else {
29447
29448  }
29449  }
29450  {
29451#line 1716
29452  __cil_tmp22 = (struct usb_host_config *)0;
29453#line 1716
29454  __cil_tmp23 = (unsigned long )__cil_tmp22;
29455#line 1716
29456  __cil_tmp24 = (unsigned long )new_config;
29457#line 1716
29458  if (__cil_tmp24 == __cil_tmp23) {
29459    {
29460#line 1716
29461    __cil_tmp25 = (struct usb_host_interface *)0;
29462#line 1716
29463    __cil_tmp26 = (unsigned long )__cil_tmp25;
29464#line 1716
29465    __cil_tmp27 = (unsigned long )cur_alt;
29466#line 1716
29467    if (__cil_tmp27 == __cil_tmp26) {
29468#line 1717
29469      i = 1;
29470#line 1717
29471      goto ldv_28050;
29472      ldv_28049: 
29473#line 1718
29474      ep = udev->ep_out[i];
29475      {
29476#line 1719
29477      __cil_tmp28 = (struct usb_host_endpoint *)0;
29478#line 1719
29479      __cil_tmp29 = (unsigned long )__cil_tmp28;
29480#line 1719
29481      __cil_tmp30 = (unsigned long )ep;
29482#line 1719
29483      if (__cil_tmp30 != __cil_tmp29) {
29484        {
29485#line 1720
29486        __cil_tmp31 = hcd->driver;
29487#line 1720
29488        __cil_tmp32 = __cil_tmp31->drop_endpoint;
29489#line 1720
29490        (*__cil_tmp32)(hcd, udev, ep);
29491        }
29492      } else {
29493
29494      }
29495      }
29496#line 1721
29497      ep = udev->ep_in[i];
29498      {
29499#line 1722
29500      __cil_tmp33 = (struct usb_host_endpoint *)0;
29501#line 1722
29502      __cil_tmp34 = (unsigned long )__cil_tmp33;
29503#line 1722
29504      __cil_tmp35 = (unsigned long )ep;
29505#line 1722
29506      if (__cil_tmp35 != __cil_tmp34) {
29507        {
29508#line 1723
29509        __cil_tmp36 = hcd->driver;
29510#line 1723
29511        __cil_tmp37 = __cil_tmp36->drop_endpoint;
29512#line 1723
29513        (*__cil_tmp37)(hcd, udev, ep);
29514        }
29515      } else {
29516
29517      }
29518      }
29519#line 1717
29520      i = i + 1;
29521      ldv_28050: ;
29522#line 1717
29523      if (i <= 15) {
29524#line 1718
29525        goto ldv_28049;
29526      } else {
29527#line 1720
29528        goto ldv_28051;
29529      }
29530      ldv_28051: 
29531      {
29532#line 1725
29533      __cil_tmp38 = hcd->driver;
29534#line 1725
29535      __cil_tmp39 = __cil_tmp38->check_bandwidth;
29536#line 1725
29537      (*__cil_tmp39)(hcd, udev);
29538      }
29539#line 1726
29540      return (0);
29541    } else {
29542
29543    }
29544    }
29545  } else {
29546
29547  }
29548  }
29549  {
29550#line 1733
29551  __cil_tmp40 = (struct usb_host_config *)0;
29552#line 1733
29553  __cil_tmp41 = (unsigned long )__cil_tmp40;
29554#line 1733
29555  __cil_tmp42 = (unsigned long )new_config;
29556#line 1733
29557  if (__cil_tmp42 != __cil_tmp41) {
29558#line 1734
29559    __cil_tmp43 = new_config->desc.bNumInterfaces;
29560#line 1734
29561    num_intfs = (int )__cil_tmp43;
29562#line 1738
29563    i = 1;
29564#line 1738
29565    goto ldv_28054;
29566    ldv_28053: 
29567#line 1739
29568    ep = udev->ep_out[i];
29569    {
29570#line 1740
29571    __cil_tmp44 = (struct usb_host_endpoint *)0;
29572#line 1740
29573    __cil_tmp45 = (unsigned long )__cil_tmp44;
29574#line 1740
29575    __cil_tmp46 = (unsigned long )ep;
29576#line 1740
29577    if (__cil_tmp46 != __cil_tmp45) {
29578      {
29579#line 1741
29580      __cil_tmp47 = hcd->driver;
29581#line 1741
29582      __cil_tmp48 = __cil_tmp47->drop_endpoint;
29583#line 1741
29584      ret = (*__cil_tmp48)(hcd, udev, ep);
29585      }
29586#line 1742
29587      if (ret < 0) {
29588#line 1743
29589        goto reset;
29590      } else {
29591
29592      }
29593    } else {
29594
29595    }
29596    }
29597#line 1745
29598    ep = udev->ep_in[i];
29599    {
29600#line 1746
29601    __cil_tmp49 = (struct usb_host_endpoint *)0;
29602#line 1746
29603    __cil_tmp50 = (unsigned long )__cil_tmp49;
29604#line 1746
29605    __cil_tmp51 = (unsigned long )ep;
29606#line 1746
29607    if (__cil_tmp51 != __cil_tmp50) {
29608      {
29609#line 1747
29610      __cil_tmp52 = hcd->driver;
29611#line 1747
29612      __cil_tmp53 = __cil_tmp52->drop_endpoint;
29613#line 1747
29614      ret = (*__cil_tmp53)(hcd, udev, ep);
29615      }
29616#line 1748
29617      if (ret < 0) {
29618#line 1749
29619        goto reset;
29620      } else {
29621
29622      }
29623    } else {
29624
29625    }
29626    }
29627#line 1738
29628    i = i + 1;
29629    ldv_28054: ;
29630#line 1738
29631    if (i <= 15) {
29632#line 1739
29633      goto ldv_28053;
29634    } else {
29635#line 1741
29636      goto ldv_28055;
29637    }
29638    ldv_28055: 
29639#line 1752
29640    i = 0;
29641#line 1752
29642    goto ldv_28062;
29643    ldv_28061: 
29644    {
29645#line 1756
29646    __cil_tmp54 = new_config->intf_cache[i];
29647#line 1756
29648    __cil_tmp55 = & __cil_tmp54->altsetting;
29649#line 1756
29650    first_alt = (struct usb_host_interface *)__cil_tmp55;
29651#line 1757
29652    __cil_tmp56 = first_alt->desc.bInterfaceNumber;
29653#line 1757
29654    iface_num = (int )__cil_tmp56;
29655#line 1759
29656    __cil_tmp57 = (unsigned int )iface_num;
29657#line 1759
29658    alt = usb_find_alt_setting(new_config, __cil_tmp57, 0U);
29659    }
29660    {
29661#line 1760
29662    __cil_tmp58 = (struct usb_host_interface *)0;
29663#line 1760
29664    __cil_tmp59 = (unsigned long )__cil_tmp58;
29665#line 1760
29666    __cil_tmp60 = (unsigned long )alt;
29667#line 1760
29668    if (__cil_tmp60 == __cil_tmp59) {
29669#line 1762
29670      alt = first_alt;
29671    } else {
29672
29673    }
29674    }
29675#line 1764
29676    j = 0;
29677#line 1764
29678    goto ldv_28059;
29679    ldv_28058: 
29680    {
29681#line 1765
29682    __cil_tmp61 = hcd->driver;
29683#line 1765
29684    __cil_tmp62 = __cil_tmp61->add_endpoint;
29685#line 1765
29686    __cil_tmp63 = (unsigned long )j;
29687#line 1765
29688    __cil_tmp64 = alt->endpoint;
29689#line 1765
29690    __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
29691#line 1765
29692    ret = (*__cil_tmp62)(hcd, udev, __cil_tmp65);
29693    }
29694#line 1766
29695    if (ret < 0) {
29696#line 1767
29697      goto reset;
29698    } else {
29699
29700    }
29701#line 1764
29702    j = j + 1;
29703    ldv_28059: ;
29704    {
29705#line 1764
29706    __cil_tmp66 = alt->desc.bNumEndpoints;
29707#line 1764
29708    __cil_tmp67 = (int )__cil_tmp66;
29709#line 1764
29710    if (__cil_tmp67 > j) {
29711#line 1765
29712      goto ldv_28058;
29713    } else {
29714#line 1767
29715      goto ldv_28060;
29716    }
29717    }
29718    ldv_28060: 
29719#line 1752
29720    i = i + 1;
29721    ldv_28062: ;
29722#line 1752
29723    if (i < num_intfs) {
29724#line 1753
29725      goto ldv_28061;
29726    } else {
29727#line 1755
29728      goto ldv_28063;
29729    }
29730    ldv_28063: ;
29731  } else {
29732
29733  }
29734  }
29735  {
29736#line 1771
29737  __cil_tmp68 = (struct usb_host_interface *)0;
29738#line 1771
29739  __cil_tmp69 = (unsigned long )__cil_tmp68;
29740#line 1771
29741  __cil_tmp70 = (unsigned long )cur_alt;
29742#line 1771
29743  if (__cil_tmp70 != __cil_tmp69) {
29744    {
29745#line 1771
29746    __cil_tmp71 = (struct usb_host_interface *)0;
29747#line 1771
29748    __cil_tmp72 = (unsigned long )__cil_tmp71;
29749#line 1771
29750    __cil_tmp73 = (unsigned long )new_alt;
29751#line 1771
29752    if (__cil_tmp73 != __cil_tmp72) {
29753      {
29754#line 1772
29755      __cil_tmp74 = (struct usb_device  const  *)udev;
29756#line 1772
29757      __cil_tmp75 = cur_alt->desc.bInterfaceNumber;
29758#line 1772
29759      __cil_tmp76 = (unsigned int )__cil_tmp75;
29760#line 1772
29761      tmp = usb_ifnum_to_if(__cil_tmp74, __cil_tmp76);
29762#line 1772
29763      iface = tmp;
29764      }
29765      {
29766#line 1775
29767      __cil_tmp77 = (unsigned char *)iface;
29768#line 1775
29769      __cil_tmp78 = __cil_tmp77 + 40UL;
29770#line 1775
29771      __cil_tmp79 = *__cil_tmp78;
29772#line 1775
29773      __cil_tmp80 = (unsigned int )__cil_tmp79;
29774#line 1775
29775      if (__cil_tmp80 != 0U) {
29776        {
29777#line 1785
29778        __cil_tmp81 = (struct usb_interface  const  *)iface;
29779#line 1785
29780        cur_alt = usb_altnum_to_altsetting(__cil_tmp81, 0U);
29781        }
29782        {
29783#line 1786
29784        __cil_tmp82 = (struct usb_host_interface *)0;
29785#line 1786
29786        __cil_tmp83 = (unsigned long )__cil_tmp82;
29787#line 1786
29788        __cil_tmp84 = (unsigned long )cur_alt;
29789#line 1786
29790        if (__cil_tmp84 == __cil_tmp83) {
29791#line 1787
29792          cur_alt = iface->altsetting;
29793        } else {
29794
29795        }
29796        }
29797      } else {
29798
29799      }
29800      }
29801#line 1791
29802      i = 0;
29803#line 1791
29804      goto ldv_28066;
29805      ldv_28065: 
29806      {
29807#line 1792
29808      __cil_tmp85 = hcd->driver;
29809#line 1792
29810      __cil_tmp86 = __cil_tmp85->drop_endpoint;
29811#line 1792
29812      __cil_tmp87 = (unsigned long )i;
29813#line 1792
29814      __cil_tmp88 = cur_alt->endpoint;
29815#line 1792
29816      __cil_tmp89 = __cil_tmp88 + __cil_tmp87;
29817#line 1792
29818      ret = (*__cil_tmp86)(hcd, udev, __cil_tmp89);
29819      }
29820#line 1794
29821      if (ret < 0) {
29822#line 1795
29823        goto reset;
29824      } else {
29825
29826      }
29827#line 1791
29828      i = i + 1;
29829      ldv_28066: ;
29830      {
29831#line 1791
29832      __cil_tmp90 = cur_alt->desc.bNumEndpoints;
29833#line 1791
29834      __cil_tmp91 = (int )__cil_tmp90;
29835#line 1791
29836      if (__cil_tmp91 > i) {
29837#line 1792
29838        goto ldv_28065;
29839      } else {
29840#line 1794
29841        goto ldv_28067;
29842      }
29843      }
29844      ldv_28067: 
29845#line 1798
29846      i = 0;
29847#line 1798
29848      goto ldv_28069;
29849      ldv_28068: 
29850      {
29851#line 1799
29852      __cil_tmp92 = hcd->driver;
29853#line 1799
29854      __cil_tmp93 = __cil_tmp92->add_endpoint;
29855#line 1799
29856      __cil_tmp94 = (unsigned long )i;
29857#line 1799
29858      __cil_tmp95 = new_alt->endpoint;
29859#line 1799
29860      __cil_tmp96 = __cil_tmp95 + __cil_tmp94;
29861#line 1799
29862      ret = (*__cil_tmp93)(hcd, udev, __cil_tmp96);
29863      }
29864#line 1801
29865      if (ret < 0) {
29866#line 1802
29867        goto reset;
29868      } else {
29869
29870      }
29871#line 1798
29872      i = i + 1;
29873      ldv_28069: ;
29874      {
29875#line 1798
29876      __cil_tmp97 = new_alt->desc.bNumEndpoints;
29877#line 1798
29878      __cil_tmp98 = (int )__cil_tmp97;
29879#line 1798
29880      if (__cil_tmp98 > i) {
29881#line 1799
29882        goto ldv_28068;
29883      } else {
29884#line 1801
29885        goto ldv_28070;
29886      }
29887      }
29888      ldv_28070: ;
29889    } else {
29890
29891    }
29892    }
29893  } else {
29894
29895  }
29896  }
29897  {
29898#line 1805
29899  __cil_tmp99 = hcd->driver;
29900#line 1805
29901  __cil_tmp100 = __cil_tmp99->check_bandwidth;
29902#line 1805
29903  ret = (*__cil_tmp100)(hcd, udev);
29904  }
29905  reset: ;
29906#line 1807
29907  if (ret < 0) {
29908    {
29909#line 1808
29910    __cil_tmp101 = hcd->driver;
29911#line 1808
29912    __cil_tmp102 = __cil_tmp101->reset_bandwidth;
29913#line 1808
29914    (*__cil_tmp102)(hcd, udev);
29915    }
29916  } else {
29917
29918  }
29919#line 1809
29920  return (ret);
29921}
29922}
29923#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"
29924void usb_hcd_disable_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) 
29925{ struct usb_hcd *hcd ;
29926  struct usb_bus *__cil_tmp4 ;
29927  void (*__cil_tmp5)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29928  unsigned long __cil_tmp6 ;
29929  struct hc_driver  const  *__cil_tmp7 ;
29930  void (*__cil_tmp8)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29931  unsigned long __cil_tmp9 ;
29932  struct hc_driver  const  *__cil_tmp10 ;
29933  void (*__cil_tmp11)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29934
29935  {
29936  {
29937#line 1825
29938  __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",
29939                1825, 0);
29940#line 1826
29941  __cil_tmp4 = udev->bus;
29942#line 1826
29943  hcd = bus_to_hcd(__cil_tmp4);
29944  }
29945  {
29946#line 1827
29947  __cil_tmp5 = (void (* const  )(struct usb_hcd * , struct usb_host_endpoint * ))0;
29948#line 1827
29949  __cil_tmp6 = (unsigned long )__cil_tmp5;
29950#line 1827
29951  __cil_tmp7 = hcd->driver;
29952#line 1827
29953  __cil_tmp8 = __cil_tmp7->endpoint_disable;
29954#line 1827
29955  __cil_tmp9 = (unsigned long )__cil_tmp8;
29956#line 1827
29957  if (__cil_tmp9 != __cil_tmp6) {
29958    {
29959#line 1828
29960    __cil_tmp10 = hcd->driver;
29961#line 1828
29962    __cil_tmp11 = __cil_tmp10->endpoint_disable;
29963#line 1828
29964    (*__cil_tmp11)(hcd, ep);
29965    }
29966  } else {
29967
29968  }
29969  }
29970#line 1829
29971  return;
29972}
29973}
29974#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"
29975void usb_hcd_reset_endpoint(struct usb_device *udev , struct usb_host_endpoint *ep ) 
29976{ struct usb_hcd *hcd ;
29977  struct usb_hcd *tmp ;
29978  int epnum ;
29979  int tmp___0 ;
29980  int is_out ;
29981  int tmp___1 ;
29982  int is_control ;
29983  int tmp___2 ;
29984  struct usb_bus *__cil_tmp11 ;
29985  void (*__cil_tmp12)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29986  unsigned long __cil_tmp13 ;
29987  struct hc_driver  const  *__cil_tmp14 ;
29988  void (*__cil_tmp15)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29989  unsigned long __cil_tmp16 ;
29990  struct hc_driver  const  *__cil_tmp17 ;
29991  void (*__cil_tmp18)(struct usb_hcd * , struct usb_host_endpoint * ) ;
29992  struct usb_endpoint_descriptor *__cil_tmp19 ;
29993  struct usb_endpoint_descriptor  const  *__cil_tmp20 ;
29994  struct usb_endpoint_descriptor *__cil_tmp21 ;
29995  struct usb_endpoint_descriptor  const  *__cil_tmp22 ;
29996  struct usb_endpoint_descriptor *__cil_tmp23 ;
29997  struct usb_endpoint_descriptor  const  *__cil_tmp24 ;
29998  int __cil_tmp25 ;
29999  int __cil_tmp26 ;
30000  unsigned int __cil_tmp27 ;
30001  unsigned int __cil_tmp28 ;
30002  int __cil_tmp29 ;
30003  int __cil_tmp30 ;
30004  unsigned int __cil_tmp31 ;
30005  unsigned int __cil_tmp32 ;
30006
30007  {
30008  {
30009#line 1842
30010  __cil_tmp11 = udev->bus;
30011#line 1842
30012  tmp = bus_to_hcd(__cil_tmp11);
30013#line 1842
30014  hcd = tmp;
30015  }
30016  {
30017#line 1844
30018  __cil_tmp12 = (void (* const  )(struct usb_hcd * , struct usb_host_endpoint * ))0;
30019#line 1844
30020  __cil_tmp13 = (unsigned long )__cil_tmp12;
30021#line 1844
30022  __cil_tmp14 = hcd->driver;
30023#line 1844
30024  __cil_tmp15 = __cil_tmp14->endpoint_reset;
30025#line 1844
30026  __cil_tmp16 = (unsigned long )__cil_tmp15;
30027#line 1844
30028  if (__cil_tmp16 != __cil_tmp13) {
30029    {
30030#line 1845
30031    __cil_tmp17 = hcd->driver;
30032#line 1845
30033    __cil_tmp18 = __cil_tmp17->endpoint_reset;
30034#line 1845
30035    (*__cil_tmp18)(hcd, ep);
30036    }
30037  } else {
30038    {
30039#line 1847
30040    __cil_tmp19 = & ep->desc;
30041#line 1847
30042    __cil_tmp20 = (struct usb_endpoint_descriptor  const  *)__cil_tmp19;
30043#line 1847
30044    tmp___0 = usb_endpoint_num(__cil_tmp20);
30045#line 1847
30046    epnum = tmp___0;
30047#line 1848
30048    __cil_tmp21 = & ep->desc;
30049#line 1848
30050    __cil_tmp22 = (struct usb_endpoint_descriptor  const  *)__cil_tmp21;
30051#line 1848
30052    tmp___1 = usb_endpoint_dir_out(__cil_tmp22);
30053#line 1848
30054    is_out = tmp___1;
30055#line 1849
30056    __cil_tmp23 = & ep->desc;
30057#line 1849
30058    __cil_tmp24 = (struct usb_endpoint_descriptor  const  *)__cil_tmp23;
30059#line 1849
30060    tmp___2 = usb_endpoint_xfer_control(__cil_tmp24);
30061#line 1849
30062    is_control = tmp___2;
30063#line 1851
30064    __cil_tmp25 = 1 << epnum;
30065#line 1851
30066    __cil_tmp26 = ~ __cil_tmp25;
30067#line 1851
30068    __cil_tmp27 = (unsigned int )__cil_tmp26;
30069#line 1851
30070    __cil_tmp28 = udev->toggle[is_out];
30071#line 1851
30072    udev->toggle[is_out] = __cil_tmp28 & __cil_tmp27;
30073    }
30074#line 1852
30075    if (is_control != 0) {
30076#line 1853
30077      __cil_tmp29 = 1 << epnum;
30078#line 1853
30079      __cil_tmp30 = ~ __cil_tmp29;
30080#line 1853
30081      __cil_tmp31 = (unsigned int )__cil_tmp30;
30082#line 1853
30083      __cil_tmp32 = udev->toggle[is_out == 0];
30084#line 1853
30085      udev->toggle[is_out == 0] = __cil_tmp32 & __cil_tmp31;
30086    } else {
30087
30088    }
30089  }
30090  }
30091#line 1855
30092  return;
30093}
30094}
30095#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"
30096int usb_alloc_streams(struct usb_interface *interface , struct usb_host_endpoint **eps ,
30097                      unsigned int num_eps , unsigned int num_streams , gfp_t mem_flags ) 
30098{ struct usb_hcd *hcd ;
30099  struct usb_device *dev ;
30100  int i ;
30101  int tmp ;
30102  int tmp___0 ;
30103  struct usb_bus *__cil_tmp11 ;
30104  int (*__cil_tmp12)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30105                     unsigned int  , unsigned int  , gfp_t  ) ;
30106  unsigned long __cil_tmp13 ;
30107  struct hc_driver  const  *__cil_tmp14 ;
30108  int (*__cil_tmp15)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30109                     unsigned int  , unsigned int  , gfp_t  ) ;
30110  unsigned long __cil_tmp16 ;
30111  int (*__cil_tmp17)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30112                     unsigned int  , gfp_t  ) ;
30113  unsigned long __cil_tmp18 ;
30114  struct hc_driver  const  *__cil_tmp19 ;
30115  int (*__cil_tmp20)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30116                     unsigned int  , gfp_t  ) ;
30117  unsigned long __cil_tmp21 ;
30118  enum usb_device_speed __cil_tmp22 ;
30119  unsigned int __cil_tmp23 ;
30120  unsigned long __cil_tmp24 ;
30121  struct usb_host_endpoint **__cil_tmp25 ;
30122  struct usb_host_endpoint *__cil_tmp26 ;
30123  struct usb_endpoint_descriptor *__cil_tmp27 ;
30124  struct usb_endpoint_descriptor  const  *__cil_tmp28 ;
30125  unsigned int __cil_tmp29 ;
30126  struct hc_driver  const  *__cil_tmp30 ;
30127  int (*__cil_tmp31)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30128                     unsigned int  , unsigned int  , gfp_t  ) ;
30129
30130  {
30131  {
30132#line 1877
30133  dev = interface_to_usbdev(interface);
30134#line 1878
30135  __cil_tmp11 = dev->bus;
30136#line 1878
30137  hcd = bus_to_hcd(__cil_tmp11);
30138  }
30139  {
30140#line 1879
30141  __cil_tmp12 = (int (* const  )(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30142                                 unsigned int  , unsigned int  , gfp_t  ))0;
30143#line 1879
30144  __cil_tmp13 = (unsigned long )__cil_tmp12;
30145#line 1879
30146  __cil_tmp14 = hcd->driver;
30147#line 1879
30148  __cil_tmp15 = __cil_tmp14->alloc_streams;
30149#line 1879
30150  __cil_tmp16 = (unsigned long )__cil_tmp15;
30151#line 1879
30152  if (__cil_tmp16 == __cil_tmp13) {
30153#line 1880
30154    return (-22);
30155  } else {
30156    {
30157#line 1879
30158    __cil_tmp17 = (int (* const  )(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30159                                   unsigned int  , gfp_t  ))0;
30160#line 1879
30161    __cil_tmp18 = (unsigned long )__cil_tmp17;
30162#line 1879
30163    __cil_tmp19 = hcd->driver;
30164#line 1879
30165    __cil_tmp20 = __cil_tmp19->free_streams;
30166#line 1879
30167    __cil_tmp21 = (unsigned long )__cil_tmp20;
30168#line 1879
30169    if (__cil_tmp21 == __cil_tmp18) {
30170#line 1880
30171      return (-22);
30172    } else {
30173
30174    }
30175    }
30176  }
30177  }
30178  {
30179#line 1881
30180  __cil_tmp22 = dev->speed;
30181#line 1881
30182  __cil_tmp23 = (unsigned int )__cil_tmp22;
30183#line 1881
30184  if (__cil_tmp23 != 5U) {
30185#line 1882
30186    return (-22);
30187  } else {
30188
30189  }
30190  }
30191#line 1885
30192  i = 0;
30193#line 1885
30194  goto ldv_28095;
30195  ldv_28094: 
30196  {
30197#line 1886
30198  __cil_tmp24 = (unsigned long )i;
30199#line 1886
30200  __cil_tmp25 = eps + __cil_tmp24;
30201#line 1886
30202  __cil_tmp26 = *__cil_tmp25;
30203#line 1886
30204  __cil_tmp27 = & __cil_tmp26->desc;
30205#line 1886
30206  __cil_tmp28 = (struct usb_endpoint_descriptor  const  *)__cil_tmp27;
30207#line 1886
30208  tmp = usb_endpoint_xfer_bulk(__cil_tmp28);
30209  }
30210#line 1886
30211  if (tmp == 0) {
30212#line 1887
30213    return (-22);
30214  } else {
30215
30216  }
30217#line 1885
30218  i = i + 1;
30219  ldv_28095: ;
30220  {
30221#line 1885
30222  __cil_tmp29 = (unsigned int )i;
30223#line 1885
30224  if (__cil_tmp29 < num_eps) {
30225#line 1886
30226    goto ldv_28094;
30227  } else {
30228#line 1888
30229    goto ldv_28096;
30230  }
30231  }
30232  ldv_28096: 
30233  {
30234#line 1889
30235  __cil_tmp30 = hcd->driver;
30236#line 1889
30237  __cil_tmp31 = __cil_tmp30->alloc_streams;
30238#line 1889
30239  tmp___0 = (*__cil_tmp31)(hcd, dev, eps, num_eps, num_streams, mem_flags);
30240  }
30241#line 1889
30242  return (tmp___0);
30243}
30244}
30245#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"
30246void usb_free_streams(struct usb_interface *interface , struct usb_host_endpoint **eps ,
30247                      unsigned int num_eps , gfp_t mem_flags ) 
30248{ struct usb_hcd *hcd ;
30249  struct usb_device *dev ;
30250  int i ;
30251  int tmp ;
30252  struct usb_bus *__cil_tmp9 ;
30253  enum usb_device_speed __cil_tmp10 ;
30254  unsigned int __cil_tmp11 ;
30255  struct usb_host_endpoint *__cil_tmp12 ;
30256  unsigned long __cil_tmp13 ;
30257  unsigned long __cil_tmp14 ;
30258  struct usb_host_endpoint **__cil_tmp15 ;
30259  struct usb_host_endpoint *__cil_tmp16 ;
30260  unsigned long __cil_tmp17 ;
30261  unsigned long __cil_tmp18 ;
30262  struct usb_host_endpoint **__cil_tmp19 ;
30263  struct usb_host_endpoint *__cil_tmp20 ;
30264  struct usb_endpoint_descriptor *__cil_tmp21 ;
30265  struct usb_endpoint_descriptor  const  *__cil_tmp22 ;
30266  unsigned int __cil_tmp23 ;
30267  struct hc_driver  const  *__cil_tmp24 ;
30268  int (*__cil_tmp25)(struct usb_hcd * , struct usb_device * , struct usb_host_endpoint ** ,
30269                     unsigned int  , gfp_t  ) ;
30270
30271  {
30272  {
30273#line 1912
30274  dev = interface_to_usbdev(interface);
30275#line 1913
30276  __cil_tmp9 = dev->bus;
30277#line 1913
30278  hcd = bus_to_hcd(__cil_tmp9);
30279  }
30280  {
30281#line 1914
30282  __cil_tmp10 = dev->speed;
30283#line 1914
30284  __cil_tmp11 = (unsigned int )__cil_tmp10;
30285#line 1914
30286  if (__cil_tmp11 != 5U) {
30287#line 1915
30288    return;
30289  } else {
30290
30291  }
30292  }
30293#line 1918
30294  i = 0;
30295#line 1918
30296  goto ldv_28117;
30297  ldv_28116: ;
30298  {
30299#line 1919
30300  __cil_tmp12 = (struct usb_host_endpoint *)0;
30301#line 1919
30302  __cil_tmp13 = (unsigned long )__cil_tmp12;
30303#line 1919
30304  __cil_tmp14 = (unsigned long )i;
30305#line 1919
30306  __cil_tmp15 = eps + __cil_tmp14;
30307#line 1919
30308  __cil_tmp16 = *__cil_tmp15;
30309#line 1919
30310  __cil_tmp17 = (unsigned long )__cil_tmp16;
30311#line 1919
30312  if (__cil_tmp17 == __cil_tmp13) {
30313#line 1920
30314    return;
30315  } else {
30316    {
30317#line 1919
30318    __cil_tmp18 = (unsigned long )i;
30319#line 1919
30320    __cil_tmp19 = eps + __cil_tmp18;
30321#line 1919
30322    __cil_tmp20 = *__cil_tmp19;
30323#line 1919
30324    __cil_tmp21 = & __cil_tmp20->desc;
30325#line 1919
30326    __cil_tmp22 = (struct usb_endpoint_descriptor  const  *)__cil_tmp21;
30327#line 1919
30328    tmp = usb_endpoint_xfer_bulk(__cil_tmp22);
30329    }
30330#line 1919
30331    if (tmp == 0) {
30332#line 1920
30333      return;
30334    } else {
30335
30336    }
30337  }
30338  }
30339#line 1918
30340  i = i + 1;
30341  ldv_28117: ;
30342  {
30343#line 1918
30344  __cil_tmp23 = (unsigned int )i;
30345#line 1918
30346  if (__cil_tmp23 < num_eps) {
30347#line 1919
30348    goto ldv_28116;
30349  } else {
30350#line 1921
30351    goto ldv_28118;
30352  }
30353  }
30354  ldv_28118: 
30355  {
30356#line 1922
30357  __cil_tmp24 = hcd->driver;
30358#line 1922
30359  __cil_tmp25 = __cil_tmp24->free_streams;
30360#line 1922
30361  (*__cil_tmp25)(hcd, dev, eps, num_eps, mem_flags);
30362  }
30363#line 1923
30364  return;
30365}
30366}
30367#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"
30368void usb_hcd_synchronize_unlinks(struct usb_device *udev ) 
30369{ 
30370
30371  {
30372  {
30373#line 1933
30374  spin_lock_irq(& hcd_urb_unlink_lock);
30375#line 1934
30376  spin_unlock_irq(& hcd_urb_unlink_lock);
30377  }
30378#line 1935
30379  return;
30380}
30381}
30382#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"
30383int usb_hcd_get_frame_number(struct usb_device *udev ) 
30384{ struct usb_hcd *hcd ;
30385  struct usb_hcd *tmp ;
30386  int tmp___0 ;
30387  struct usb_bus *__cil_tmp5 ;
30388  unsigned long __cil_tmp6 ;
30389  unsigned long __cil_tmp7 ;
30390  struct hc_driver  const  *__cil_tmp8 ;
30391  int (*__cil_tmp9)(struct usb_hcd * ) ;
30392
30393  {
30394  {
30395#line 1942
30396  __cil_tmp5 = udev->bus;
30397#line 1942
30398  tmp = bus_to_hcd(__cil_tmp5);
30399#line 1942
30400  hcd = tmp;
30401  }
30402  {
30403#line 1944
30404  __cil_tmp6 = hcd->flags;
30405#line 1944
30406  __cil_tmp7 = __cil_tmp6 & 32UL;
30407#line 1944
30408  if (__cil_tmp7 == 0UL) {
30409#line 1945
30410    return (-108);
30411  } else {
30412
30413  }
30414  }
30415  {
30416#line 1946
30417  __cil_tmp8 = hcd->driver;
30418#line 1946
30419  __cil_tmp9 = __cil_tmp8->get_frame_number;
30420#line 1946
30421  tmp___0 = (*__cil_tmp9)(hcd);
30422  }
30423#line 1946
30424  return (tmp___0);
30425}
30426}
30427#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"
30428int hcd_bus_suspend(struct usb_device *rhdev , pm_message_t msg ) 
30429{ struct usb_hcd *hcd ;
30430  struct usb_bus  const  *__mptr ;
30431  int status ;
30432  int old_state ;
30433  char *tmp ;
30434  struct usb_bus *__cil_tmp8 ;
30435  int __cil_tmp9 ;
30436  struct device *__cil_tmp10 ;
30437  struct device  const  *__cil_tmp11 ;
30438  char *__cil_tmp12 ;
30439  unsigned long __cil_tmp13 ;
30440  unsigned long __cil_tmp14 ;
30441  struct device *__cil_tmp15 ;
30442  struct device  const  *__cil_tmp16 ;
30443  char *__cil_tmp17 ;
30444  int (*__cil_tmp18)(struct usb_hcd * ) ;
30445  unsigned long __cil_tmp19 ;
30446  struct hc_driver  const  *__cil_tmp20 ;
30447  int (*__cil_tmp21)(struct usb_hcd * ) ;
30448  unsigned long __cil_tmp22 ;
30449  unsigned long *__cil_tmp23 ;
30450  unsigned long volatile   *__cil_tmp24 ;
30451  struct hc_driver  const  *__cil_tmp25 ;
30452  int (*__cil_tmp26)(struct usb_hcd * ) ;
30453  enum usb_device_state __cil_tmp27 ;
30454  unsigned long __cil_tmp28 ;
30455  unsigned long __cil_tmp29 ;
30456  unsigned long *__cil_tmp30 ;
30457  unsigned long volatile   *__cil_tmp31 ;
30458  struct device *__cil_tmp32 ;
30459  struct device  const  *__cil_tmp33 ;
30460  char *__cil_tmp34 ;
30461
30462  {
30463#line 1955
30464  __cil_tmp8 = rhdev->bus;
30465#line 1955
30466  __mptr = (struct usb_bus  const  *)__cil_tmp8;
30467#line 1955
30468  hcd = (struct usb_hcd *)__mptr;
30469#line 1957
30470  old_state = hcd->state;
30471  {
30472#line 1959
30473  __cil_tmp9 = msg.event & 1024;
30474#line 1959
30475  if (__cil_tmp9 != 0) {
30476#line 1959
30477    tmp = (char *)"auto-";
30478  } else {
30479#line 1959
30480    tmp = (char *)"";
30481  }
30482  }
30483  {
30484#line 1959
30485  __cil_tmp10 = & rhdev->dev;
30486#line 1959
30487  __cil_tmp11 = (struct device  const  *)__cil_tmp10;
30488#line 1959
30489  __cil_tmp12 = (char *)"suspend";
30490#line 1959
30491  dev_printk("<7>", __cil_tmp11, "bus %s%s\n", tmp, __cil_tmp12);
30492  }
30493  {
30494#line 1961
30495  __cil_tmp13 = hcd->flags;
30496#line 1961
30497  __cil_tmp14 = __cil_tmp13 & 64UL;
30498#line 1961
30499  if (__cil_tmp14 != 0UL) {
30500    {
30501#line 1962
30502    __cil_tmp15 = & rhdev->dev;
30503#line 1962
30504    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
30505#line 1962
30506    __cil_tmp17 = (char *)"suspend";
30507#line 1962
30508    dev_printk("<7>", __cil_tmp16, "skipped %s of dead bus\n", __cil_tmp17);
30509    }
30510#line 1963
30511    return (0);
30512  } else {
30513
30514  }
30515  }
30516  {
30517#line 1966
30518  __cil_tmp18 = (int (* const  )(struct usb_hcd * ))0;
30519#line 1966
30520  __cil_tmp19 = (unsigned long )__cil_tmp18;
30521#line 1966
30522  __cil_tmp20 = hcd->driver;
30523#line 1966
30524  __cil_tmp21 = __cil_tmp20->bus_suspend;
30525#line 1966
30526  __cil_tmp22 = (unsigned long )__cil_tmp21;
30527#line 1966
30528  if (__cil_tmp22 == __cil_tmp19) {
30529#line 1967
30530    status = -2;
30531  } else {
30532    {
30533#line 1969
30534    __cil_tmp23 = & hcd->flags;
30535#line 1969
30536    __cil_tmp24 = (unsigned long volatile   *)__cil_tmp23;
30537#line 1969
30538    clear_bit(5, __cil_tmp24);
30539#line 1970
30540    hcd->state = 133;
30541#line 1971
30542    __cil_tmp25 = hcd->driver;
30543#line 1971
30544    __cil_tmp26 = __cil_tmp25->bus_suspend;
30545#line 1971
30546    status = (*__cil_tmp26)(hcd);
30547    }
30548  }
30549  }
30550#line 1973
30551  if (status == 0) {
30552    {
30553#line 1974
30554    __cil_tmp27 = (enum usb_device_state )8;
30555#line 1974
30556    usb_set_device_state(rhdev, __cil_tmp27);
30557#line 1975
30558    hcd->state = 4;
30559    }
30560  } else {
30561    {
30562#line 1977
30563    spin_lock_irq(& hcd_root_hub_lock);
30564    }
30565    {
30566#line 1978
30567    __cil_tmp28 = hcd->flags;
30568#line 1978
30569    __cil_tmp29 = __cil_tmp28 & 64UL;
30570#line 1978
30571    if (__cil_tmp29 == 0UL) {
30572      {
30573#line 1979
30574      __cil_tmp30 = & hcd->flags;
30575#line 1979
30576      __cil_tmp31 = (unsigned long volatile   *)__cil_tmp30;
30577#line 1979
30578      set_bit(5U, __cil_tmp31);
30579#line 1980
30580      hcd->state = old_state;
30581      }
30582    } else {
30583
30584    }
30585    }
30586    {
30587#line 1982
30588    spin_unlock_irq(& hcd_root_hub_lock);
30589#line 1983
30590    __cil_tmp32 = & rhdev->dev;
30591#line 1983
30592    __cil_tmp33 = (struct device  const  *)__cil_tmp32;
30593#line 1983
30594    __cil_tmp34 = (char *)"suspend";
30595#line 1983
30596    dev_printk("<7>", __cil_tmp33, "bus %s fail, err %d\n", __cil_tmp34, status);
30597    }
30598  }
30599#line 1986
30600  return (status);
30601}
30602}
30603#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"
30604int hcd_bus_resume(struct usb_device *rhdev , pm_message_t msg ) 
30605{ struct usb_hcd *hcd ;
30606  struct usb_bus  const  *__mptr ;
30607  int status ;
30608  int old_state ;
30609  char *tmp ;
30610  int tmp___0 ;
30611  struct usb_bus *__cil_tmp9 ;
30612  int __cil_tmp10 ;
30613  struct device *__cil_tmp11 ;
30614  struct device  const  *__cil_tmp12 ;
30615  char *__cil_tmp13 ;
30616  unsigned long __cil_tmp14 ;
30617  unsigned long __cil_tmp15 ;
30618  struct device *__cil_tmp16 ;
30619  struct device  const  *__cil_tmp17 ;
30620  char *__cil_tmp18 ;
30621  int (*__cil_tmp19)(struct usb_hcd * ) ;
30622  unsigned long __cil_tmp20 ;
30623  struct hc_driver  const  *__cil_tmp21 ;
30624  int (*__cil_tmp22)(struct usb_hcd * ) ;
30625  unsigned long __cil_tmp23 ;
30626  unsigned long __cil_tmp24 ;
30627  unsigned long __cil_tmp25 ;
30628  struct hc_driver  const  *__cil_tmp26 ;
30629  int (*__cil_tmp27)(struct usb_hcd * ) ;
30630  unsigned long *__cil_tmp28 ;
30631  unsigned long volatile   *__cil_tmp29 ;
30632  unsigned long __cil_tmp30 ;
30633  unsigned long __cil_tmp31 ;
30634  struct usb_host_config *__cil_tmp32 ;
30635  unsigned long __cil_tmp33 ;
30636  struct usb_host_config *__cil_tmp34 ;
30637  unsigned long __cil_tmp35 ;
30638  enum usb_device_state __cil_tmp36 ;
30639  unsigned long *__cil_tmp37 ;
30640  unsigned long volatile   *__cil_tmp38 ;
30641  struct device *__cil_tmp39 ;
30642  struct device  const  *__cil_tmp40 ;
30643  char *__cil_tmp41 ;
30644
30645  {
30646#line 1991
30647  __cil_tmp9 = rhdev->bus;
30648#line 1991
30649  __mptr = (struct usb_bus  const  *)__cil_tmp9;
30650#line 1991
30651  hcd = (struct usb_hcd *)__mptr;
30652#line 1993
30653  old_state = hcd->state;
30654  {
30655#line 1995
30656  __cil_tmp10 = msg.event & 1024;
30657#line 1995
30658  if (__cil_tmp10 != 0) {
30659#line 1995
30660    tmp = (char *)"auto-";
30661  } else {
30662#line 1995
30663    tmp = (char *)"";
30664  }
30665  }
30666  {
30667#line 1995
30668  __cil_tmp11 = & rhdev->dev;
30669#line 1995
30670  __cil_tmp12 = (struct device  const  *)__cil_tmp11;
30671#line 1995
30672  __cil_tmp13 = (char *)"resume";
30673#line 1995
30674  dev_printk("<7>", __cil_tmp12, "usb %s%s\n", tmp, __cil_tmp13);
30675  }
30676  {
30677#line 1997
30678  __cil_tmp14 = hcd->flags;
30679#line 1997
30680  __cil_tmp15 = __cil_tmp14 & 64UL;
30681#line 1997
30682  if (__cil_tmp15 != 0UL) {
30683    {
30684#line 1998
30685    __cil_tmp16 = & rhdev->dev;
30686#line 1998
30687    __cil_tmp17 = (struct device  const  *)__cil_tmp16;
30688#line 1998
30689    __cil_tmp18 = (char *)"resume";
30690#line 1998
30691    dev_printk("<7>", __cil_tmp17, "skipped %s of dead bus\n", __cil_tmp18);
30692    }
30693#line 1999
30694    return (0);
30695  } else {
30696
30697  }
30698  }
30699  {
30700#line 2001
30701  __cil_tmp19 = (int (* const  )(struct usb_hcd * ))0;
30702#line 2001
30703  __cil_tmp20 = (unsigned long )__cil_tmp19;
30704#line 2001
30705  __cil_tmp21 = hcd->driver;
30706#line 2001
30707  __cil_tmp22 = __cil_tmp21->bus_resume;
30708#line 2001
30709  __cil_tmp23 = (unsigned long )__cil_tmp22;
30710#line 2001
30711  if (__cil_tmp23 == __cil_tmp20) {
30712#line 2002
30713    return (-2);
30714  } else {
30715
30716  }
30717  }
30718  {
30719#line 2003
30720  __cil_tmp24 = hcd->flags;
30721#line 2003
30722  __cil_tmp25 = __cil_tmp24 & 32UL;
30723#line 2003
30724  if (__cil_tmp25 != 0UL) {
30725#line 2004
30726    return (0);
30727  } else {
30728
30729  }
30730  }
30731  {
30732#line 2006
30733  hcd->state = 132;
30734#line 2007
30735  __cil_tmp26 = hcd->driver;
30736#line 2007
30737  __cil_tmp27 = __cil_tmp26->bus_resume;
30738#line 2007
30739  status = (*__cil_tmp27)(hcd);
30740#line 2008
30741  __cil_tmp28 = & hcd->flags;
30742#line 2008
30743  __cil_tmp29 = (unsigned long volatile   *)__cil_tmp28;
30744#line 2008
30745  clear_bit(4, __cil_tmp29);
30746  }
30747#line 2009
30748  if (status == 0) {
30749    {
30750#line 2011
30751    msleep(10U);
30752#line 2012
30753    spin_lock_irq(& hcd_root_hub_lock);
30754    }
30755    {
30756#line 2013
30757    __cil_tmp30 = hcd->flags;
30758#line 2013
30759    __cil_tmp31 = __cil_tmp30 & 64UL;
30760#line 2013
30761    if (__cil_tmp31 == 0UL) {
30762      {
30763#line 2014
30764      __cil_tmp32 = (struct usb_host_config *)0;
30765#line 2014
30766      __cil_tmp33 = (unsigned long )__cil_tmp32;
30767#line 2014
30768      __cil_tmp34 = rhdev->actconfig;
30769#line 2014
30770      __cil_tmp35 = (unsigned long )__cil_tmp34;
30771#line 2014
30772      if (__cil_tmp35 != __cil_tmp33) {
30773#line 2014
30774        tmp___0 = 7;
30775      } else {
30776#line 2014
30777        tmp___0 = 6;
30778      }
30779      }
30780      {
30781#line 2014
30782      __cil_tmp36 = (enum usb_device_state )tmp___0;
30783#line 2014
30784      usb_set_device_state(rhdev, __cil_tmp36);
30785#line 2017
30786      __cil_tmp37 = & hcd->flags;
30787#line 2017
30788      __cil_tmp38 = (unsigned long volatile   *)__cil_tmp37;
30789#line 2017
30790      set_bit(5U, __cil_tmp38);
30791#line 2018
30792      hcd->state = 1;
30793      }
30794    } else {
30795
30796    }
30797    }
30798    {
30799#line 2020
30800    spin_unlock_irq(& hcd_root_hub_lock);
30801    }
30802  } else {
30803    {
30804#line 2022
30805    hcd->state = old_state;
30806#line 2023
30807    __cil_tmp39 = & rhdev->dev;
30808#line 2023
30809    __cil_tmp40 = (struct device  const  *)__cil_tmp39;
30810#line 2023
30811    __cil_tmp41 = (char *)"resume";
30812#line 2023
30813    dev_printk("<7>", __cil_tmp40, "bus %s fail, err %d\n", __cil_tmp41, status);
30814    }
30815#line 2025
30816    if (status != -108) {
30817      {
30818#line 2026
30819      usb_hc_died(hcd);
30820      }
30821    } else {
30822
30823    }
30824  }
30825#line 2028
30826  return (status);
30827}
30828}
30829#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"
30830static void hcd_resume_work(struct work_struct *work ) 
30831{ struct usb_hcd *hcd ;
30832  struct work_struct  const  *__mptr ;
30833  struct usb_device *udev ;
30834  struct usb_hcd *__cil_tmp5 ;
30835  struct device *__cil_tmp6 ;
30836  struct device *__cil_tmp7 ;
30837
30838  {
30839  {
30840#line 2038
30841  __mptr = (struct work_struct  const  *)work;
30842#line 2038
30843  __cil_tmp5 = (struct usb_hcd *)__mptr;
30844#line 2038
30845  hcd = __cil_tmp5 + 1152921504606846664UL;
30846#line 2039
30847  udev = hcd->self.root_hub;
30848#line 2041
30849  __cil_tmp6 = & udev->dev;
30850#line 2041
30851  device_lock(__cil_tmp6);
30852#line 2042
30853  usb_remote_wakeup(udev);
30854#line 2043
30855  __cil_tmp7 = & udev->dev;
30856#line 2043
30857  device_unlock(__cil_tmp7);
30858  }
30859#line 2044
30860  return;
30861}
30862}
30863#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"
30864void usb_hcd_resume_root_hub(struct usb_hcd *hcd ) 
30865{ unsigned long flags ;
30866  raw_spinlock_t *tmp ;
30867  unsigned char *__cil_tmp4 ;
30868  unsigned char *__cil_tmp5 ;
30869  unsigned char __cil_tmp6 ;
30870  unsigned int __cil_tmp7 ;
30871  unsigned long *__cil_tmp8 ;
30872  unsigned long volatile   *__cil_tmp9 ;
30873  struct work_struct *__cil_tmp10 ;
30874
30875  {
30876  {
30877#line 2059
30878  tmp = spinlock_check(& hcd_root_hub_lock);
30879#line 2059
30880  flags = _raw_spin_lock_irqsave(tmp);
30881  }
30882  {
30883#line 2060
30884  __cil_tmp4 = (unsigned char *)hcd;
30885#line 2060
30886  __cil_tmp5 = __cil_tmp4 + 408UL;
30887#line 2060
30888  __cil_tmp6 = *__cil_tmp5;
30889#line 2060
30890  __cil_tmp7 = (unsigned int )__cil_tmp6;
30891#line 2060
30892  if (__cil_tmp7 != 0U) {
30893    {
30894#line 2061
30895    __cil_tmp8 = & hcd->flags;
30896#line 2061
30897    __cil_tmp9 = (unsigned long volatile   *)__cil_tmp8;
30898#line 2061
30899    set_bit(4U, __cil_tmp9);
30900#line 2062
30901    __cil_tmp10 = & hcd->wakeup_work;
30902#line 2062
30903    queue_work(pm_wq, __cil_tmp10);
30904    }
30905  } else {
30906
30907  }
30908  }
30909  {
30910#line 2064
30911  spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
30912  }
30913#line 2065
30914  return;
30915}
30916}
30917#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"
30918int usb_bus_start_enum(struct usb_bus *bus , unsigned int port_num ) 
30919{ struct usb_hcd *hcd ;
30920  int status ;
30921  struct usb_bus  const  *__mptr ;
30922  unsigned long tmp ;
30923  int (*__cil_tmp7)(struct usb_hcd * , unsigned int  ) ;
30924  unsigned long __cil_tmp8 ;
30925  struct hc_driver  const  *__cil_tmp9 ;
30926  int (*__cil_tmp10)(struct usb_hcd * , unsigned int  ) ;
30927  unsigned long __cil_tmp11 ;
30928  struct hc_driver  const  *__cil_tmp12 ;
30929  int (*__cil_tmp13)(struct usb_hcd * , unsigned int  ) ;
30930  unsigned int __cil_tmp14 ;
30931  unsigned int __cil_tmp15 ;
30932  struct timer_list *__cil_tmp16 ;
30933  unsigned long __cil_tmp17 ;
30934  unsigned long __cil_tmp18 ;
30935
30936  {
30937#line 2088
30938  status = -95;
30939#line 2094
30940  __mptr = (struct usb_bus  const  *)bus;
30941#line 2094
30942  hcd = (struct usb_hcd *)__mptr;
30943#line 2095
30944  if (port_num != 0U) {
30945    {
30946#line 2095
30947    __cil_tmp7 = (int (* const  )(struct usb_hcd * , unsigned int  ))0;
30948#line 2095
30949    __cil_tmp8 = (unsigned long )__cil_tmp7;
30950#line 2095
30951    __cil_tmp9 = hcd->driver;
30952#line 2095
30953    __cil_tmp10 = __cil_tmp9->start_port_reset;
30954#line 2095
30955    __cil_tmp11 = (unsigned long )__cil_tmp10;
30956#line 2095
30957    if (__cil_tmp11 != __cil_tmp8) {
30958      {
30959#line 2096
30960      __cil_tmp12 = hcd->driver;
30961#line 2096
30962      __cil_tmp13 = __cil_tmp12->start_port_reset;
30963#line 2096
30964      status = (*__cil_tmp13)(hcd, port_num);
30965      }
30966    } else {
30967
30968    }
30969    }
30970  } else {
30971
30972  }
30973#line 2101
30974  if (status == 0) {
30975    {
30976#line 2102
30977    __cil_tmp14 = (unsigned int const   )10U;
30978#line 2102
30979    __cil_tmp15 = (unsigned int )__cil_tmp14;
30980#line 2102
30981    tmp = msecs_to_jiffies(__cil_tmp15);
30982#line 2102
30983    __cil_tmp16 = & hcd->rh_timer;
30984#line 2102
30985    __cil_tmp17 = (unsigned long )jiffies;
30986#line 2102
30987    __cil_tmp18 = tmp + __cil_tmp17;
30988#line 2102
30989    mod_timer(__cil_tmp16, __cil_tmp18);
30990    }
30991  } else {
30992
30993  }
30994#line 2103
30995  return (status);
30996}
30997}
30998#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"
30999irqreturn_t usb_hcd_irq(int irq , void *__hcd ) 
31000{ struct usb_hcd *hcd ;
31001  unsigned long flags ;
31002  irqreturn_t rc ;
31003  irqreturn_t tmp ;
31004  long tmp___0 ;
31005  long tmp___1 ;
31006  int tmp___2 ;
31007  unsigned long __cil_tmp10 ;
31008  unsigned long __cil_tmp11 ;
31009  int __cil_tmp12 ;
31010  long __cil_tmp13 ;
31011  unsigned long __cil_tmp14 ;
31012  unsigned long __cil_tmp15 ;
31013  int __cil_tmp16 ;
31014  long __cil_tmp17 ;
31015  struct hc_driver  const  *__cil_tmp18 ;
31016  irqreturn_t (*__cil_tmp19)(struct usb_hcd * ) ;
31017  unsigned int __cil_tmp20 ;
31018  unsigned long *__cil_tmp21 ;
31019  unsigned long volatile   *__cil_tmp22 ;
31020  struct usb_hcd *__cil_tmp23 ;
31021  unsigned long __cil_tmp24 ;
31022  struct usb_hcd *__cil_tmp25 ;
31023  unsigned long __cil_tmp26 ;
31024  struct usb_hcd *__cil_tmp27 ;
31025  unsigned long *__cil_tmp28 ;
31026  unsigned long volatile   *__cil_tmp29 ;
31027
31028  {
31029  {
31030#line 2121
31031  hcd = (struct usb_hcd *)__hcd;
31032#line 2129
31033  flags = arch_local_irq_save();
31034#line 2129
31035  trace_hardirqs_off();
31036#line 2131
31037  __cil_tmp10 = hcd->flags;
31038#line 2131
31039  __cil_tmp11 = __cil_tmp10 & 64UL;
31040#line 2131
31041  __cil_tmp12 = __cil_tmp11 != 0UL;
31042#line 2131
31043  __cil_tmp13 = (long )__cil_tmp12;
31044#line 2131
31045  tmp___0 = __builtin_expect(__cil_tmp13, 0L);
31046  }
31047#line 2131
31048  if (tmp___0 != 0L) {
31049#line 2132
31050    rc = (irqreturn_t )0;
31051  } else {
31052    {
31053#line 2131
31054    __cil_tmp14 = hcd->flags;
31055#line 2131
31056    __cil_tmp15 = __cil_tmp14 & 1UL;
31057#line 2131
31058    __cil_tmp16 = __cil_tmp15 == 0UL;
31059#line 2131
31060    __cil_tmp17 = (long )__cil_tmp16;
31061#line 2131
31062    tmp___1 = __builtin_expect(__cil_tmp17, 0L);
31063    }
31064#line 2131
31065    if (tmp___1 != 0L) {
31066#line 2132
31067      rc = (irqreturn_t )0;
31068    } else {
31069      {
31070#line 2133
31071      __cil_tmp18 = hcd->driver;
31072#line 2133
31073      __cil_tmp19 = __cil_tmp18->irq;
31074#line 2133
31075      tmp = (*__cil_tmp19)(hcd);
31076      }
31077      {
31078#line 2133
31079      __cil_tmp20 = (unsigned int )tmp;
31080#line 2133
31081      if (__cil_tmp20 == 0U) {
31082#line 2134
31083        rc = (irqreturn_t )0;
31084      } else {
31085        {
31086#line 2136
31087        __cil_tmp21 = & hcd->flags;
31088#line 2136
31089        __cil_tmp22 = (unsigned long volatile   *)__cil_tmp21;
31090#line 2136
31091        set_bit(1U, __cil_tmp22);
31092        }
31093        {
31094#line 2137
31095        __cil_tmp23 = (struct usb_hcd *)0;
31096#line 2137
31097        __cil_tmp24 = (unsigned long )__cil_tmp23;
31098#line 2137
31099        __cil_tmp25 = hcd->shared_hcd;
31100#line 2137
31101        __cil_tmp26 = (unsigned long )__cil_tmp25;
31102#line 2137
31103        if (__cil_tmp26 != __cil_tmp24) {
31104          {
31105#line 2138
31106          __cil_tmp27 = hcd->shared_hcd;
31107#line 2138
31108          __cil_tmp28 = & __cil_tmp27->flags;
31109#line 2138
31110          __cil_tmp29 = (unsigned long volatile   *)__cil_tmp28;
31111#line 2138
31112          set_bit(1U, __cil_tmp29);
31113          }
31114        } else {
31115
31116        }
31117        }
31118#line 2139
31119        rc = (irqreturn_t )1;
31120      }
31121      }
31122    }
31123  }
31124  {
31125#line 2142
31126  tmp___2 = arch_irqs_disabled_flags(flags);
31127  }
31128#line 2142
31129  if (tmp___2 != 0) {
31130    {
31131#line 2142
31132    arch_local_irq_restore(flags);
31133#line 2142
31134    trace_hardirqs_off();
31135    }
31136  } else {
31137    {
31138#line 2142
31139    trace_hardirqs_on();
31140#line 2142
31141    arch_local_irq_restore(flags);
31142    }
31143  }
31144#line 2143
31145  return (rc);
31146}
31147}
31148#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"
31149void usb_hc_died(struct usb_hcd *hcd ) 
31150{ unsigned long flags ;
31151  raw_spinlock_t *tmp ;
31152  int tmp___0 ;
31153  struct device *__cil_tmp5 ;
31154  struct device  const  *__cil_tmp6 ;
31155  unsigned long *__cil_tmp7 ;
31156  unsigned long volatile   *__cil_tmp8 ;
31157  unsigned long *__cil_tmp9 ;
31158  unsigned long volatile   *__cil_tmp10 ;
31159  unsigned char *__cil_tmp11 ;
31160  unsigned char *__cil_tmp12 ;
31161  unsigned char __cil_tmp13 ;
31162  unsigned int __cil_tmp14 ;
31163  unsigned long *__cil_tmp15 ;
31164  unsigned long volatile   *__cil_tmp16 ;
31165  struct usb_device *__cil_tmp17 ;
31166  enum usb_device_state __cil_tmp18 ;
31167  struct usb_device *__cil_tmp19 ;
31168  struct usb_hcd *__cil_tmp20 ;
31169  unsigned long __cil_tmp21 ;
31170  struct usb_hcd *__cil_tmp22 ;
31171  unsigned long __cil_tmp23 ;
31172  unsigned char *__cil_tmp24 ;
31173  unsigned char *__cil_tmp25 ;
31174  unsigned char __cil_tmp26 ;
31175  unsigned int __cil_tmp27 ;
31176  unsigned long *__cil_tmp28 ;
31177  unsigned long volatile   *__cil_tmp29 ;
31178  struct usb_device *__cil_tmp30 ;
31179  enum usb_device_state __cil_tmp31 ;
31180  struct usb_device *__cil_tmp32 ;
31181
31182  {
31183  {
31184#line 2163
31185  __cil_tmp5 = hcd->self.controller;
31186#line 2163
31187  __cil_tmp6 = (struct device  const  *)__cil_tmp5;
31188#line 2163
31189  dev_err(__cil_tmp6, "HC died; cleaning up\n");
31190#line 2165
31191  tmp = spinlock_check(& hcd_root_hub_lock);
31192#line 2165
31193  flags = _raw_spin_lock_irqsave(tmp);
31194#line 2166
31195  __cil_tmp7 = & hcd->flags;
31196#line 2166
31197  __cil_tmp8 = (unsigned long volatile   *)__cil_tmp7;
31198#line 2166
31199  clear_bit(5, __cil_tmp8);
31200#line 2167
31201  __cil_tmp9 = & hcd->flags;
31202#line 2167
31203  __cil_tmp10 = (unsigned long volatile   *)__cil_tmp9;
31204#line 2167
31205  set_bit(6U, __cil_tmp10);
31206  }
31207  {
31208#line 2168
31209  __cil_tmp11 = (unsigned char *)hcd;
31210#line 2168
31211  __cil_tmp12 = __cil_tmp11 + 408UL;
31212#line 2168
31213  __cil_tmp13 = *__cil_tmp12;
31214#line 2168
31215  __cil_tmp14 = (unsigned int )__cil_tmp13;
31216#line 2168
31217  if (__cil_tmp14 != 0U) {
31218    {
31219#line 2169
31220    __cil_tmp15 = & hcd->flags;
31221#line 2169
31222    __cil_tmp16 = (unsigned long volatile   *)__cil_tmp15;
31223#line 2169
31224    clear_bit(2, __cil_tmp16);
31225#line 2172
31226    __cil_tmp17 = hcd->self.root_hub;
31227#line 2172
31228    __cil_tmp18 = (enum usb_device_state )0;
31229#line 2172
31230    usb_set_device_state(__cil_tmp17, __cil_tmp18);
31231#line 2174
31232    __cil_tmp19 = hcd->self.root_hub;
31233#line 2174
31234    usb_kick_khubd(__cil_tmp19);
31235    }
31236  } else {
31237
31238  }
31239  }
31240  {
31241#line 2176
31242  tmp___0 = usb_hcd_is_primary_hcd(hcd);
31243  }
31244#line 2176
31245  if (tmp___0 != 0) {
31246    {
31247#line 2176
31248    __cil_tmp20 = (struct usb_hcd *)0;
31249#line 2176
31250    __cil_tmp21 = (unsigned long )__cil_tmp20;
31251#line 2176
31252    __cil_tmp22 = hcd->shared_hcd;
31253#line 2176
31254    __cil_tmp23 = (unsigned long )__cil_tmp22;
31255#line 2176
31256    if (__cil_tmp23 != __cil_tmp21) {
31257#line 2177
31258      hcd = hcd->shared_hcd;
31259      {
31260#line 2178
31261      __cil_tmp24 = (unsigned char *)hcd;
31262#line 2178
31263      __cil_tmp25 = __cil_tmp24 + 408UL;
31264#line 2178
31265      __cil_tmp26 = *__cil_tmp25;
31266#line 2178
31267      __cil_tmp27 = (unsigned int )__cil_tmp26;
31268#line 2178
31269      if (__cil_tmp27 != 0U) {
31270        {
31271#line 2179
31272        __cil_tmp28 = & hcd->flags;
31273#line 2179
31274        __cil_tmp29 = (unsigned long volatile   *)__cil_tmp28;
31275#line 2179
31276        clear_bit(2, __cil_tmp29);
31277#line 2182
31278        __cil_tmp30 = hcd->self.root_hub;
31279#line 2182
31280        __cil_tmp31 = (enum usb_device_state )0;
31281#line 2182
31282        usb_set_device_state(__cil_tmp30, __cil_tmp31);
31283#line 2184
31284        __cil_tmp32 = hcd->self.root_hub;
31285#line 2184
31286        usb_kick_khubd(__cil_tmp32);
31287        }
31288      } else {
31289
31290      }
31291      }
31292    } else {
31293
31294    }
31295    }
31296  } else {
31297
31298  }
31299  {
31300#line 2187
31301  spin_unlock_irqrestore(& hcd_root_hub_lock, flags);
31302  }
31303#line 2188
31304  return;
31305}
31306}
31307#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"
31308struct usb_hcd *usb_create_shared_hcd(struct hc_driver  const  *driver , struct device *dev ,
31309                                      char const   *bus_name , struct usb_hcd *primary_hcd ) 
31310{ struct usb_hcd *hcd ;
31311  void *tmp ;
31312  void *tmp___0 ;
31313  struct lock_class_key __key ;
31314  struct lock_class_key __key___0 ;
31315  struct lock_class_key __key___1 ;
31316  atomic_long_t __constr_expr_0 ;
31317  size_t __cil_tmp12 ;
31318  unsigned long __cil_tmp13 ;
31319  unsigned long __cil_tmp14 ;
31320  struct usb_hcd *__cil_tmp15 ;
31321  unsigned long __cil_tmp16 ;
31322  unsigned long __cil_tmp17 ;
31323  struct device  const  *__cil_tmp18 ;
31324  struct usb_hcd *__cil_tmp19 ;
31325  unsigned long __cil_tmp20 ;
31326  unsigned long __cil_tmp21 ;
31327  struct mutex *__cil_tmp22 ;
31328  unsigned long __cil_tmp23 ;
31329  struct mutex *__cil_tmp24 ;
31330  unsigned long __cil_tmp25 ;
31331  void const   *__cil_tmp26 ;
31332  struct device  const  *__cil_tmp27 ;
31333  struct mutex *__cil_tmp28 ;
31334  void *__cil_tmp29 ;
31335  struct kref *__cil_tmp30 ;
31336  struct usb_bus *__cil_tmp31 ;
31337  u64 *__cil_tmp32 ;
31338  unsigned long __cil_tmp33 ;
31339  u64 *__cil_tmp34 ;
31340  unsigned long __cil_tmp35 ;
31341  int __cil_tmp36 ;
31342  struct timer_list *__cil_tmp37 ;
31343  struct work_struct *__cil_tmp38 ;
31344  struct lockdep_map *__cil_tmp39 ;
31345  struct list_head *__cil_tmp40 ;
31346  int __cil_tmp41 ;
31347  int __cil_tmp42 ;
31348  char const   *__cil_tmp43 ;
31349  unsigned long __cil_tmp44 ;
31350  char const   *__cil_tmp45 ;
31351  unsigned long __cil_tmp46 ;
31352  char const   *__cil_tmp47 ;
31353  char const   *__cil_tmp48 ;
31354
31355  {
31356  {
31357#line 2215
31358  __cil_tmp12 = driver->hcd_priv_size;
31359#line 2215
31360  __cil_tmp13 = (unsigned long )__cil_tmp12;
31361#line 2215
31362  __cil_tmp14 = __cil_tmp13 + 512UL;
31363#line 2215
31364  tmp = kzalloc(__cil_tmp14, 208U);
31365#line 2215
31366  hcd = (struct usb_hcd *)tmp;
31367  }
31368  {
31369#line 2216
31370  __cil_tmp15 = (struct usb_hcd *)0;
31371#line 2216
31372  __cil_tmp16 = (unsigned long )__cil_tmp15;
31373#line 2216
31374  __cil_tmp17 = (unsigned long )hcd;
31375#line 2216
31376  if (__cil_tmp17 == __cil_tmp16) {
31377    {
31378#line 2217
31379    __cil_tmp18 = (struct device  const  *)dev;
31380#line 2217
31381    dev_printk("<7>", __cil_tmp18, "hcd alloc failed\n");
31382    }
31383#line 2218
31384    return ((struct usb_hcd *)0);
31385  } else {
31386
31387  }
31388  }
31389  {
31390#line 2220
31391  __cil_tmp19 = (struct usb_hcd *)0;
31392#line 2220
31393  __cil_tmp20 = (unsigned long )__cil_tmp19;
31394#line 2220
31395  __cil_tmp21 = (unsigned long )primary_hcd;
31396#line 2220
31397  if (__cil_tmp21 == __cil_tmp20) {
31398    {
31399#line 2221
31400    tmp___0 = kmalloc(168UL, 208U);
31401#line 2221
31402    hcd->bandwidth_mutex = (struct mutex *)tmp___0;
31403    }
31404    {
31405#line 2223
31406    __cil_tmp22 = (struct mutex *)0;
31407#line 2223
31408    __cil_tmp23 = (unsigned long )__cil_tmp22;
31409#line 2223
31410    __cil_tmp24 = hcd->bandwidth_mutex;
31411#line 2223
31412    __cil_tmp25 = (unsigned long )__cil_tmp24;
31413#line 2223
31414    if (__cil_tmp25 == __cil_tmp23) {
31415      {
31416#line 2224
31417      __cil_tmp26 = (void const   *)hcd;
31418#line 2224
31419      kfree(__cil_tmp26);
31420#line 2225
31421      __cil_tmp27 = (struct device  const  *)dev;
31422#line 2225
31423      dev_printk("<7>", __cil_tmp27, "hcd bandwidth mutex alloc failed\n");
31424      }
31425#line 2226
31426      return ((struct usb_hcd *)0);
31427    } else {
31428
31429    }
31430    }
31431    {
31432#line 2228
31433    __cil_tmp28 = hcd->bandwidth_mutex;
31434#line 2228
31435    __mutex_init(__cil_tmp28, "hcd->bandwidth_mutex", & __key);
31436#line 2229
31437    __cil_tmp29 = (void *)hcd;
31438#line 2229
31439    dev_set_drvdata(dev, __cil_tmp29);
31440    }
31441  } else {
31442#line 2231
31443    hcd->bandwidth_mutex = primary_hcd->bandwidth_mutex;
31444#line 2232
31445    hcd->primary_hcd = primary_hcd;
31446#line 2233
31447    primary_hcd->primary_hcd = primary_hcd;
31448#line 2234
31449    hcd->shared_hcd = primary_hcd;
31450#line 2235
31451    primary_hcd->shared_hcd = hcd;
31452  }
31453  }
31454  {
31455#line 2238
31456  __cil_tmp30 = & hcd->kref;
31457#line 2238
31458  kref_init(__cil_tmp30);
31459#line 2240
31460  __cil_tmp31 = & hcd->self;
31461#line 2240
31462  usb_bus_init(__cil_tmp31);
31463#line 2241
31464  hcd->self.controller = dev;
31465#line 2242
31466  hcd->self.bus_name = bus_name;
31467#line 2243
31468  __cil_tmp32 = (u64 *)0;
31469#line 2243
31470  __cil_tmp33 = (unsigned long )__cil_tmp32;
31471#line 2243
31472  __cil_tmp34 = dev->dma_mask;
31473#line 2243
31474  __cil_tmp35 = (unsigned long )__cil_tmp34;
31475#line 2243
31476  __cil_tmp36 = __cil_tmp35 != __cil_tmp33;
31477#line 2243
31478  hcd->self.uses_dma = (u8 )__cil_tmp36;
31479#line 2245
31480  __cil_tmp37 = & hcd->rh_timer;
31481#line 2245
31482  init_timer_key(__cil_tmp37, "&hcd->rh_timer", & __key___0);
31483#line 2246
31484  hcd->rh_timer.function = & rh_timer_func;
31485#line 2247
31486  hcd->rh_timer.data = (unsigned long )hcd;
31487#line 2249
31488  __cil_tmp38 = & hcd->wakeup_work;
31489#line 2249
31490  __init_work(__cil_tmp38, 0);
31491#line 2249
31492  __constr_expr_0.counter = 2097664L;
31493#line 2249
31494  hcd->wakeup_work.data = __constr_expr_0;
31495#line 2249
31496  __cil_tmp39 = & hcd->wakeup_work.lockdep_map;
31497#line 2249
31498  lockdep_init_map(__cil_tmp39, "(&hcd->wakeup_work)", & __key___1, 0);
31499#line 2249
31500  __cil_tmp40 = & hcd->wakeup_work.entry;
31501#line 2249
31502  INIT_LIST_HEAD(__cil_tmp40);
31503#line 2249
31504  hcd->wakeup_work.func = & hcd_resume_work;
31505#line 2252
31506  hcd->driver = driver;
31507#line 2253
31508  __cil_tmp41 = driver->flags;
31509#line 2253
31510  __cil_tmp42 = (int )__cil_tmp41;
31511#line 2253
31512  hcd->speed = __cil_tmp42 & 112;
31513  }
31514  {
31515#line 2254
31516  __cil_tmp43 = (char const   * const  )0;
31517#line 2254
31518  __cil_tmp44 = (unsigned long )__cil_tmp43;
31519#line 2254
31520  __cil_tmp45 = driver->product_desc;
31521#line 2254
31522  __cil_tmp46 = (unsigned long )__cil_tmp45;
31523#line 2254
31524  if (__cil_tmp46 != __cil_tmp44) {
31525#line 2254
31526    __cil_tmp47 = driver->product_desc;
31527#line 2254
31528    hcd->product_desc = (char const   *)__cil_tmp47;
31529  } else {
31530#line 2254
31531    __cil_tmp48 = (char const   * const  )"USB Host Controller";
31532#line 2254
31533    hcd->product_desc = (char const   *)__cil_tmp48;
31534  }
31535  }
31536#line 2256
31537  return (hcd);
31538}
31539}
31540#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"
31541struct usb_hcd *usb_create_hcd(struct hc_driver  const  *driver , struct device *dev ,
31542                               char const   *bus_name ) 
31543{ struct usb_hcd *tmp ;
31544  struct usb_hcd *__cil_tmp5 ;
31545
31546  {
31547  {
31548#line 2276
31549  __cil_tmp5 = (struct usb_hcd *)0;
31550#line 2276
31551  tmp = usb_create_shared_hcd(driver, dev, bus_name, __cil_tmp5);
31552  }
31553#line 2276
31554  return (tmp);
31555}
31556}
31557#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"
31558static void hcd_release(struct kref *kref ) 
31559{ struct usb_hcd *hcd ;
31560  struct kref  const  *__mptr ;
31561  int tmp ;
31562  struct usb_hcd *__cil_tmp5 ;
31563  struct mutex *__cil_tmp6 ;
31564  void const   *__cil_tmp7 ;
31565  struct usb_hcd *__cil_tmp8 ;
31566  void const   *__cil_tmp9 ;
31567
31568  {
31569  {
31570#line 2292
31571  __mptr = (struct kref  const  *)kref;
31572#line 2292
31573  __cil_tmp5 = (struct usb_hcd *)__mptr;
31574#line 2292
31575  hcd = __cil_tmp5 + 1152921504606846848UL;
31576#line 2294
31577  tmp = usb_hcd_is_primary_hcd(hcd);
31578  }
31579#line 2294
31580  if (tmp != 0) {
31581    {
31582#line 2295
31583    __cil_tmp6 = hcd->bandwidth_mutex;
31584#line 2295
31585    __cil_tmp7 = (void const   *)__cil_tmp6;
31586#line 2295
31587    kfree(__cil_tmp7);
31588    }
31589  } else {
31590#line 2297
31591    __cil_tmp8 = hcd->shared_hcd;
31592#line 2297
31593    __cil_tmp8->shared_hcd = (struct usb_hcd *)0;
31594  }
31595  {
31596#line 2298
31597  __cil_tmp9 = (void const   *)hcd;
31598#line 2298
31599  kfree(__cil_tmp9);
31600  }
31601#line 2299
31602  return;
31603}
31604}
31605#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"
31606struct usb_hcd *usb_get_hcd(struct usb_hcd *hcd ) 
31607{ struct usb_hcd *__cil_tmp2 ;
31608  unsigned long __cil_tmp3 ;
31609  unsigned long __cil_tmp4 ;
31610  struct kref *__cil_tmp5 ;
31611
31612  {
31613  {
31614#line 2303
31615  __cil_tmp2 = (struct usb_hcd *)0;
31616#line 2303
31617  __cil_tmp3 = (unsigned long )__cil_tmp2;
31618#line 2303
31619  __cil_tmp4 = (unsigned long )hcd;
31620#line 2303
31621  if (__cil_tmp4 != __cil_tmp3) {
31622    {
31623#line 2304
31624    __cil_tmp5 = & hcd->kref;
31625#line 2304
31626    kref_get(__cil_tmp5);
31627    }
31628  } else {
31629
31630  }
31631  }
31632#line 2305
31633  return (hcd);
31634}
31635}
31636#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"
31637void usb_put_hcd(struct usb_hcd *hcd ) 
31638{ struct usb_hcd *__cil_tmp2 ;
31639  unsigned long __cil_tmp3 ;
31640  unsigned long __cil_tmp4 ;
31641  struct kref *__cil_tmp5 ;
31642
31643  {
31644  {
31645#line 2311
31646  __cil_tmp2 = (struct usb_hcd *)0;
31647#line 2311
31648  __cil_tmp3 = (unsigned long )__cil_tmp2;
31649#line 2311
31650  __cil_tmp4 = (unsigned long )hcd;
31651#line 2311
31652  if (__cil_tmp4 != __cil_tmp3) {
31653    {
31654#line 2312
31655    __cil_tmp5 = & hcd->kref;
31656#line 2312
31657    kref_put(__cil_tmp5, & hcd_release);
31658    }
31659  } else {
31660
31661  }
31662  }
31663#line 2313
31664  return;
31665}
31666}
31667#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"
31668int usb_hcd_is_primary_hcd(struct usb_hcd *hcd ) 
31669{ struct usb_hcd *__cil_tmp2 ;
31670  unsigned long __cil_tmp3 ;
31671  struct usb_hcd *__cil_tmp4 ;
31672  unsigned long __cil_tmp5 ;
31673  unsigned long __cil_tmp6 ;
31674  struct usb_hcd *__cil_tmp7 ;
31675  unsigned long __cil_tmp8 ;
31676
31677  {
31678  {
31679#line 2318
31680  __cil_tmp2 = (struct usb_hcd *)0;
31681#line 2318
31682  __cil_tmp3 = (unsigned long )__cil_tmp2;
31683#line 2318
31684  __cil_tmp4 = hcd->primary_hcd;
31685#line 2318
31686  __cil_tmp5 = (unsigned long )__cil_tmp4;
31687#line 2318
31688  if (__cil_tmp5 == __cil_tmp3) {
31689#line 2319
31690    return (1);
31691  } else {
31692
31693  }
31694  }
31695  {
31696#line 2320
31697  __cil_tmp6 = (unsigned long )hcd;
31698#line 2320
31699  __cil_tmp7 = hcd->primary_hcd;
31700#line 2320
31701  __cil_tmp8 = (unsigned long )__cil_tmp7;
31702#line 2320
31703  return (__cil_tmp8 == __cil_tmp6);
31704  }
31705}
31706}
31707#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"
31708static int usb_hcd_request_irqs(struct usb_hcd *hcd , unsigned int irqnum , unsigned long irqflags ) 
31709{ int retval ;
31710  char *tmp ;
31711  char *tmp___0 ;
31712  irqreturn_t (*__cil_tmp7)(struct usb_hcd * ) ;
31713  unsigned long __cil_tmp8 ;
31714  struct hc_driver  const  *__cil_tmp9 ;
31715  irqreturn_t (*__cil_tmp10)(struct usb_hcd * ) ;
31716  unsigned long __cil_tmp11 ;
31717  unsigned long __cil_tmp12 ;
31718  char (*__cil_tmp13)[24U] ;
31719  char *__cil_tmp14 ;
31720  struct hc_driver  const  *__cil_tmp15 ;
31721  char const   *__cil_tmp16 ;
31722  int __cil_tmp17 ;
31723  char (*__cil_tmp18)[24U] ;
31724  char const   *__cil_tmp19 ;
31725  void *__cil_tmp20 ;
31726  struct device *__cil_tmp21 ;
31727  struct device  const  *__cil_tmp22 ;
31728  struct hc_driver  const  *__cil_tmp23 ;
31729  int __cil_tmp24 ;
31730  int __cil_tmp25 ;
31731  struct device *__cil_tmp26 ;
31732  struct device  const  *__cil_tmp27 ;
31733  u64 __cil_tmp28 ;
31734  u64 __cil_tmp29 ;
31735  struct hc_driver  const  *__cil_tmp30 ;
31736  int __cil_tmp31 ;
31737  int __cil_tmp32 ;
31738  struct device *__cil_tmp33 ;
31739  struct device  const  *__cil_tmp34 ;
31740  u64 __cil_tmp35 ;
31741
31742  {
31743  {
31744#line 2329
31745  __cil_tmp7 = (irqreturn_t (* const  )(struct usb_hcd * ))0;
31746#line 2329
31747  __cil_tmp8 = (unsigned long )__cil_tmp7;
31748#line 2329
31749  __cil_tmp9 = hcd->driver;
31750#line 2329
31751  __cil_tmp10 = __cil_tmp9->irq;
31752#line 2329
31753  __cil_tmp11 = (unsigned long )__cil_tmp10;
31754#line 2329
31755  if (__cil_tmp11 != __cil_tmp8) {
31756    {
31757#line 2335
31758    __cil_tmp12 = irqflags & 128UL;
31759#line 2335
31760    if (__cil_tmp12 != 0UL) {
31761#line 2336
31762      irqflags = irqflags & 1152921504606846943UL;
31763    } else {
31764
31765    }
31766    }
31767    {
31768#line 2338
31769    __cil_tmp13 = & hcd->irq_descr;
31770#line 2338
31771    __cil_tmp14 = (char *)__cil_tmp13;
31772#line 2338
31773    __cil_tmp15 = hcd->driver;
31774#line 2338
31775    __cil_tmp16 = __cil_tmp15->description;
31776#line 2338
31777    __cil_tmp17 = hcd->self.busnum;
31778#line 2338
31779    snprintf(__cil_tmp14, 24UL, "%s:usb%d", __cil_tmp16, __cil_tmp17);
31780#line 2340
31781    __cil_tmp18 = & hcd->irq_descr;
31782#line 2340
31783    __cil_tmp19 = (char const   *)__cil_tmp18;
31784#line 2340
31785    __cil_tmp20 = (void *)hcd;
31786#line 2340
31787    retval = request_irq(irqnum, & usb_hcd_irq, irqflags, __cil_tmp19, __cil_tmp20);
31788    }
31789#line 2342
31790    if (retval != 0) {
31791      {
31792#line 2343
31793      __cil_tmp21 = hcd->self.controller;
31794#line 2343
31795      __cil_tmp22 = (struct device  const  *)__cil_tmp21;
31796#line 2343
31797      dev_err(__cil_tmp22, "request interrupt %d failed\n", irqnum);
31798      }
31799#line 2346
31800      return (retval);
31801    } else {
31802
31803    }
31804#line 2348
31805    hcd->irq = (int )irqnum;
31806    {
31807#line 2349
31808    __cil_tmp23 = hcd->driver;
31809#line 2349
31810    __cil_tmp24 = __cil_tmp23->flags;
31811#line 2349
31812    __cil_tmp25 = (int )__cil_tmp24;
31813#line 2349
31814    if (__cil_tmp25 & 1) {
31815#line 2349
31816      tmp = (char *)"io mem";
31817    } else {
31818#line 2349
31819      tmp = (char *)"io base";
31820    }
31821    }
31822    {
31823#line 2349
31824    __cil_tmp26 = hcd->self.controller;
31825#line 2349
31826    __cil_tmp27 = (struct device  const  *)__cil_tmp26;
31827#line 2349
31828    __cil_tmp28 = hcd->rsrc_start;
31829#line 2349
31830    _dev_info(__cil_tmp27, "irq %d, %s 0x%08llx\n", irqnum, tmp, __cil_tmp28);
31831    }
31832  } else {
31833#line 2354
31834    hcd->irq = -1;
31835    {
31836#line 2355
31837    __cil_tmp29 = hcd->rsrc_start;
31838#line 2355
31839    if (__cil_tmp29 != 0ULL) {
31840      {
31841#line 2356
31842      __cil_tmp30 = hcd->driver;
31843#line 2356
31844      __cil_tmp31 = __cil_tmp30->flags;
31845#line 2356
31846      __cil_tmp32 = (int )__cil_tmp31;
31847#line 2356
31848      if (__cil_tmp32 & 1) {
31849#line 2356
31850        tmp___0 = (char *)"io mem";
31851      } else {
31852#line 2356
31853        tmp___0 = (char *)"io base";
31854      }
31855      }
31856      {
31857#line 2356
31858      __cil_tmp33 = hcd->self.controller;
31859#line 2356
31860      __cil_tmp34 = (struct device  const  *)__cil_tmp33;
31861#line 2356
31862      __cil_tmp35 = hcd->rsrc_start;
31863#line 2356
31864      _dev_info(__cil_tmp34, "%s 0x%08llx\n", tmp___0, __cil_tmp35);
31865      }
31866    } else {
31867
31868    }
31869    }
31870  }
31871  }
31872#line 2361
31873  return (0);
31874}
31875}
31876#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"
31877int usb_add_hcd(struct usb_hcd *hcd , unsigned int irqnum , unsigned long irqflags ) 
31878{ int retval ;
31879  struct usb_device *rhdev ;
31880  bool tmp ;
31881  bool tmp___0 ;
31882  int tmp___1 ;
31883  unsigned int _min1 ;
31884  unsigned int _min2 ;
31885  unsigned int tmp___2 ;
31886  int tmp___3 ;
31887  struct device *__cil_tmp13 ;
31888  struct device  const  *__cil_tmp14 ;
31889  char const   *__cil_tmp15 ;
31890  unsigned char *__cil_tmp16 ;
31891  unsigned char *__cil_tmp17 ;
31892  unsigned char __cil_tmp18 ;
31893  unsigned int __cil_tmp19 ;
31894  int __cil_tmp20 ;
31895  unsigned long *__cil_tmp21 ;
31896  unsigned long volatile   *__cil_tmp22 ;
31897  struct device *__cil_tmp23 ;
31898  struct device  const  *__cil_tmp24 ;
31899  struct usb_bus *__cil_tmp25 ;
31900  struct usb_device *__cil_tmp26 ;
31901  struct usb_bus *__cil_tmp27 ;
31902  struct usb_device *__cil_tmp28 ;
31903  unsigned long __cil_tmp29 ;
31904  unsigned long __cil_tmp30 ;
31905  struct device *__cil_tmp31 ;
31906  struct device  const  *__cil_tmp32 ;
31907  int __cil_tmp33 ;
31908  int __cil_tmp34 ;
31909  int __cil_tmp35 ;
31910  struct device *__cil_tmp36 ;
31911  bool __cil_tmp37 ;
31912  unsigned long *__cil_tmp38 ;
31913  unsigned long volatile   *__cil_tmp39 ;
31914  int (*__cil_tmp40)(struct usb_hcd * ) ;
31915  unsigned long __cil_tmp41 ;
31916  struct hc_driver  const  *__cil_tmp42 ;
31917  int (*__cil_tmp43)(struct usb_hcd * ) ;
31918  unsigned long __cil_tmp44 ;
31919  struct hc_driver  const  *__cil_tmp45 ;
31920  int (*__cil_tmp46)(struct usb_hcd * ) ;
31921  struct device *__cil_tmp47 ;
31922  struct device  const  *__cil_tmp48 ;
31923  struct device *__cil_tmp49 ;
31924  struct usb_device *__cil_tmp50 ;
31925  struct device *__cil_tmp51 ;
31926  struct device *__cil_tmp52 ;
31927  struct device  const  *__cil_tmp53 ;
31928  struct hc_driver  const  *__cil_tmp54 ;
31929  int (*__cil_tmp55)(struct usb_hcd * ) ;
31930  struct device *__cil_tmp56 ;
31931  struct device  const  *__cil_tmp57 ;
31932  struct kobject *__cil_tmp58 ;
31933  struct attribute_group  const  *__cil_tmp59 ;
31934  unsigned char *__cil_tmp60 ;
31935  unsigned char *__cil_tmp61 ;
31936  unsigned char __cil_tmp62 ;
31937  unsigned int __cil_tmp63 ;
31938  unsigned long __cil_tmp64 ;
31939  unsigned long __cil_tmp65 ;
31940  unsigned long *__cil_tmp66 ;
31941  unsigned long volatile   *__cil_tmp67 ;
31942  int __cil_tmp68 ;
31943  struct work_struct *__cil_tmp69 ;
31944  unsigned long *__cil_tmp70 ;
31945  unsigned long volatile   *__cil_tmp71 ;
31946  struct timer_list *__cil_tmp72 ;
31947  struct hc_driver  const  *__cil_tmp73 ;
31948  void (*__cil_tmp74)(struct usb_hcd * ) ;
31949  unsigned long *__cil_tmp75 ;
31950  unsigned long volatile   *__cil_tmp76 ;
31951  struct timer_list *__cil_tmp77 ;
31952  int __cil_tmp78 ;
31953  void *__cil_tmp79 ;
31954  struct usb_device *__cil_tmp80 ;
31955  struct usb_bus *__cil_tmp81 ;
31956
31957  {
31958  {
31959#line 2380
31960  __cil_tmp13 = hcd->self.controller;
31961#line 2380
31962  __cil_tmp14 = (struct device  const  *)__cil_tmp13;
31963#line 2380
31964  __cil_tmp15 = hcd->product_desc;
31965#line 2380
31966  _dev_info(__cil_tmp14, "%s\n", __cil_tmp15);
31967#line 2382
31968  __cil_tmp16 = (unsigned char *)hcd;
31969#line 2382
31970  __cil_tmp17 = __cil_tmp16 + 408UL;
31971#line 2382
31972  __cil_tmp18 = *__cil_tmp17;
31973#line 2382
31974  __cil_tmp19 = (unsigned int )__cil_tmp18;
31975#line 2382
31976  __cil_tmp20 = __cil_tmp19 == 0U;
31977#line 2382
31978  hcd->authorized_default = (unsigned char )__cil_tmp20;
31979#line 2383
31980  __cil_tmp21 = & hcd->flags;
31981#line 2383
31982  __cil_tmp22 = (unsigned long volatile   *)__cil_tmp21;
31983#line 2383
31984  set_bit(0U, __cil_tmp22);
31985#line 2389
31986  retval = hcd_buffer_create(hcd);
31987  }
31988#line 2389
31989  if (retval != 0) {
31990    {
31991#line 2390
31992    __cil_tmp23 = hcd->self.controller;
31993#line 2390
31994    __cil_tmp24 = (struct device  const  *)__cil_tmp23;
31995#line 2390
31996    dev_printk("<7>", __cil_tmp24, "pool alloc failed\n");
31997    }
31998#line 2391
31999    return (retval);
32000  } else {
32001
32002  }
32003  {
32004#line 2394
32005  __cil_tmp25 = & hcd->self;
32006#line 2394
32007  retval = usb_register_bus(__cil_tmp25);
32008  }
32009#line 2394
32010  if (retval < 0) {
32011#line 2395
32012    goto err_register_bus;
32013  } else {
32014
32015  }
32016  {
32017#line 2397
32018  __cil_tmp26 = (struct usb_device *)0;
32019#line 2397
32020  __cil_tmp27 = & hcd->self;
32021#line 2397
32022  rhdev = usb_alloc_dev(__cil_tmp26, __cil_tmp27, 0U);
32023  }
32024  {
32025#line 2397
32026  __cil_tmp28 = (struct usb_device *)0;
32027#line 2397
32028  __cil_tmp29 = (unsigned long )__cil_tmp28;
32029#line 2397
32030  __cil_tmp30 = (unsigned long )rhdev;
32031#line 2397
32032  if (__cil_tmp30 == __cil_tmp29) {
32033    {
32034#line 2398
32035    __cil_tmp31 = hcd->self.controller;
32036#line 2398
32037    __cil_tmp32 = (struct device  const  *)__cil_tmp31;
32038#line 2398
32039    dev_err(__cil_tmp32, "unable to allocate root hub\n");
32040#line 2399
32041    retval = -12;
32042    }
32043#line 2400
32044    goto err_allocate_root_hub;
32045  } else {
32046
32047  }
32048  }
32049#line 2402
32050  hcd->self.root_hub = rhdev;
32051  {
32052#line 2405
32053  __cil_tmp33 = hcd->speed;
32054#line 2405
32055  if (__cil_tmp33 == 16) {
32056#line 2405
32057    goto case_16;
32058  } else {
32059    {
32060#line 2408
32061    __cil_tmp34 = hcd->speed;
32062#line 2408
32063    if (__cil_tmp34 == 32) {
32064#line 2408
32065      goto case_32;
32066    } else {
32067      {
32068#line 2411
32069      __cil_tmp35 = hcd->speed;
32070#line 2411
32071      if (__cil_tmp35 == 64) {
32072#line 2411
32073        goto case_64;
32074      } else {
32075#line 2414
32076        goto switch_default;
32077#line 2404
32078        if (0) {
32079          case_16: 
32080#line 2406
32081          rhdev->speed = (enum usb_device_speed )2;
32082#line 2407
32083          goto ldv_28310;
32084          case_32: 
32085#line 2409
32086          rhdev->speed = (enum usb_device_speed )3;
32087#line 2410
32088          goto ldv_28310;
32089          case_64: 
32090#line 2412
32091          rhdev->speed = (enum usb_device_speed )5;
32092#line 2413
32093          goto ldv_28310;
32094          switch_default: 
32095#line 2415
32096          retval = -22;
32097#line 2416
32098          goto err_set_rh_speed;
32099        } else {
32100
32101        }
32102      }
32103      }
32104    }
32105    }
32106  }
32107  }
32108  ldv_28310: 
32109  {
32110#line 2423
32111  __cil_tmp36 = & rhdev->dev;
32112#line 2423
32113  __cil_tmp37 = (bool )1;
32114#line 2423
32115  device_init_wakeup(__cil_tmp36, __cil_tmp37);
32116#line 2429
32117  __cil_tmp38 = & hcd->flags;
32118#line 2429
32119  __cil_tmp39 = (unsigned long volatile   *)__cil_tmp38;
32120#line 2429
32121  set_bit(5U, __cil_tmp39);
32122  }
32123  {
32124#line 2434
32125  __cil_tmp40 = (int (* const  )(struct usb_hcd * ))0;
32126#line 2434
32127  __cil_tmp41 = (unsigned long )__cil_tmp40;
32128#line 2434
32129  __cil_tmp42 = hcd->driver;
32130#line 2434
32131  __cil_tmp43 = __cil_tmp42->reset;
32132#line 2434
32133  __cil_tmp44 = (unsigned long )__cil_tmp43;
32134#line 2434
32135  if (__cil_tmp44 != __cil_tmp41) {
32136    {
32137#line 2434
32138    __cil_tmp45 = hcd->driver;
32139#line 2434
32140    __cil_tmp46 = __cil_tmp45->reset;
32141#line 2434
32142    retval = (*__cil_tmp46)(hcd);
32143    }
32144#line 2434
32145    if (retval < 0) {
32146      {
32147#line 2435
32148      __cil_tmp47 = hcd->self.controller;
32149#line 2435
32150      __cil_tmp48 = (struct device  const  *)__cil_tmp47;
32151#line 2435
32152      dev_err(__cil_tmp48, "can\'t setup\n");
32153      }
32154#line 2436
32155      goto err_hcd_driver_setup;
32156    } else {
32157
32158    }
32159  } else {
32160
32161  }
32162  }
32163  {
32164#line 2438
32165  hcd->rh_pollable = (unsigned char)1;
32166#line 2441
32167  __cil_tmp49 = hcd->self.controller;
32168#line 2441
32169  tmp = device_can_wakeup(__cil_tmp49);
32170  }
32171#line 2441
32172  if ((int )tmp) {
32173    {
32174#line 2441
32175    __cil_tmp50 = hcd->self.root_hub;
32176#line 2441
32177    __cil_tmp51 = & __cil_tmp50->dev;
32178#line 2441
32179    tmp___0 = device_can_wakeup(__cil_tmp51);
32180    }
32181#line 2441
32182    if ((int )tmp___0) {
32183      {
32184#line 2443
32185      __cil_tmp52 = hcd->self.controller;
32186#line 2443
32187      __cil_tmp53 = (struct device  const  *)__cil_tmp52;
32188#line 2443
32189      dev_printk("<7>", __cil_tmp53, "supports USB remote wakeup\n");
32190      }
32191    } else {
32192
32193    }
32194  } else {
32195
32196  }
32197  {
32198#line 2446
32199  tmp___1 = usb_hcd_is_primary_hcd(hcd);
32200  }
32201#line 2446
32202  if (tmp___1 != 0) {
32203    {
32204#line 2447
32205    retval = usb_hcd_request_irqs(hcd, irqnum, irqflags);
32206    }
32207#line 2448
32208    if (retval != 0) {
32209#line 2449
32210      goto err_request_irq;
32211    } else {
32212
32213    }
32214  } else {
32215
32216  }
32217  {
32218#line 2452
32219  hcd->state = 1;
32220#line 2453
32221  __cil_tmp54 = hcd->driver;
32222#line 2453
32223  __cil_tmp55 = __cil_tmp54->start;
32224#line 2453
32225  retval = (*__cil_tmp55)(hcd);
32226  }
32227#line 2454
32228  if (retval < 0) {
32229    {
32230#line 2455
32231    __cil_tmp56 = hcd->self.controller;
32232#line 2455
32233    __cil_tmp57 = (struct device  const  *)__cil_tmp56;
32234#line 2455
32235    dev_err(__cil_tmp57, "startup error %d\n", retval);
32236    }
32237#line 2456
32238    goto err_hcd_driver_start;
32239  } else {
32240
32241  }
32242#line 2460
32243  _min1 = 500U;
32244#line 2460
32245  _min2 = hcd->power_budget;
32246#line 2460
32247  if (_min1 < _min2) {
32248#line 2460
32249    tmp___2 = _min1;
32250  } else {
32251#line 2460
32252    tmp___2 = _min2;
32253  }
32254  {
32255#line 2460
32256  rhdev->bus_mA = (unsigned short )tmp___2;
32257#line 2461
32258  retval = register_root_hub(hcd);
32259  }
32260#line 2461
32261  if (retval != 0) {
32262#line 2462
32263    goto err_register_root_hub;
32264  } else {
32265
32266  }
32267  {
32268#line 2464
32269  __cil_tmp58 = & rhdev->dev.kobj;
32270#line 2464
32271  __cil_tmp59 = (struct attribute_group  const  *)(& usb_bus_attr_group);
32272#line 2464
32273  retval = sysfs_create_group(__cil_tmp58, __cil_tmp59);
32274  }
32275#line 2465
32276  if (retval < 0) {
32277    {
32278#line 2466
32279    printk("<3>Cannot register USB bus sysfs attributes: %d\n", retval);
32280    }
32281#line 2468
32282    goto error_create_attr_group;
32283  } else {
32284
32285  }
32286  {
32287#line 2470
32288  __cil_tmp60 = (unsigned char *)hcd;
32289#line 2470
32290  __cil_tmp61 = __cil_tmp60 + 408UL;
32291#line 2470
32292  __cil_tmp62 = *__cil_tmp61;
32293#line 2470
32294  __cil_tmp63 = (unsigned int )__cil_tmp62;
32295#line 2470
32296  if (__cil_tmp63 != 0U) {
32297    {
32298#line 2470
32299    __cil_tmp64 = hcd->flags;
32300#line 2470
32301    __cil_tmp65 = __cil_tmp64 & 4UL;
32302#line 2470
32303    if (__cil_tmp65 != 0UL) {
32304      {
32305#line 2471
32306      usb_hcd_poll_rh_status(hcd);
32307      }
32308    } else {
32309
32310    }
32311    }
32312  } else {
32313
32314  }
32315  }
32316#line 2472
32317  return (retval);
32318  error_create_attr_group: 
32319  {
32320#line 2475
32321  __cil_tmp66 = & hcd->flags;
32322#line 2475
32323  __cil_tmp67 = (unsigned long volatile   *)__cil_tmp66;
32324#line 2475
32325  clear_bit(5, __cil_tmp67);
32326  }
32327  {
32328#line 2476
32329  __cil_tmp68 = hcd->state;
32330#line 2476
32331  if (__cil_tmp68 & 1) {
32332#line 2477
32333    hcd->state = 133;
32334  } else {
32335
32336  }
32337  }
32338  {
32339#line 2478
32340  spin_lock_irq(& hcd_root_hub_lock);
32341#line 2479
32342  hcd->rh_registered = (unsigned char)0;
32343#line 2480
32344  spin_unlock_irq(& hcd_root_hub_lock);
32345#line 2483
32346  __cil_tmp69 = & hcd->wakeup_work;
32347#line 2483
32348  cancel_work_sync(__cil_tmp69);
32349#line 2485
32350  mutex_lock_nested(& usb_bus_list_lock, 0U);
32351#line 2486
32352  usb_disconnect(& rhdev);
32353#line 2487
32354  mutex_unlock(& usb_bus_list_lock);
32355  }
32356  err_register_root_hub: 
32357  {
32358#line 2489
32359  hcd->rh_pollable = (unsigned char)0;
32360#line 2490
32361  __cil_tmp70 = & hcd->flags;
32362#line 2490
32363  __cil_tmp71 = (unsigned long volatile   *)__cil_tmp70;
32364#line 2490
32365  clear_bit(2, __cil_tmp71);
32366#line 2491
32367  __cil_tmp72 = & hcd->rh_timer;
32368#line 2491
32369  del_timer_sync(__cil_tmp72);
32370#line 2492
32371  __cil_tmp73 = hcd->driver;
32372#line 2492
32373  __cil_tmp74 = __cil_tmp73->stop;
32374#line 2492
32375  (*__cil_tmp74)(hcd);
32376#line 2493
32377  hcd->state = 0;
32378#line 2494
32379  __cil_tmp75 = & hcd->flags;
32380#line 2494
32381  __cil_tmp76 = (unsigned long volatile   *)__cil_tmp75;
32382#line 2494
32383  clear_bit(2, __cil_tmp76);
32384#line 2495
32385  __cil_tmp77 = & hcd->rh_timer;
32386#line 2495
32387  del_timer_sync(__cil_tmp77);
32388  }
32389  err_hcd_driver_start: 
32390  {
32391#line 2497
32392  tmp___3 = usb_hcd_is_primary_hcd(hcd);
32393  }
32394#line 2497
32395  if (tmp___3 != 0) {
32396    {
32397#line 2497
32398    __cil_tmp78 = hcd->irq;
32399#line 2497
32400    if (__cil_tmp78 >= 0) {
32401      {
32402#line 2498
32403      __cil_tmp79 = (void *)hcd;
32404#line 2498
32405      free_irq(irqnum, __cil_tmp79);
32406      }
32407    } else {
32408
32409    }
32410    }
32411  } else {
32412
32413  }
32414  err_request_irq: ;
32415  err_hcd_driver_setup: ;
32416  err_set_rh_speed: 
32417  {
32418#line 2502
32419  __cil_tmp80 = hcd->self.root_hub;
32420#line 2502
32421  usb_put_dev(__cil_tmp80);
32422  }
32423  err_allocate_root_hub: 
32424  {
32425#line 2504
32426  __cil_tmp81 = & hcd->self;
32427#line 2504
32428  usb_deregister_bus(__cil_tmp81);
32429  }
32430  err_register_bus: 
32431  {
32432#line 2506
32433  hcd_buffer_destroy(hcd);
32434  }
32435#line 2507
32436  return (retval);
32437}
32438}
32439#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"
32440void usb_remove_hcd(struct usb_hcd *hcd ) 
32441{ struct usb_device *rhdev ;
32442  int tmp ;
32443  struct device *__cil_tmp4 ;
32444  struct device  const  *__cil_tmp5 ;
32445  int __cil_tmp6 ;
32446  struct kobject *__cil_tmp7 ;
32447  struct attribute_group  const  *__cil_tmp8 ;
32448  unsigned long *__cil_tmp9 ;
32449  unsigned long volatile   *__cil_tmp10 ;
32450  int __cil_tmp11 ;
32451  struct device *__cil_tmp12 ;
32452  struct device  const  *__cil_tmp13 ;
32453  struct work_struct *__cil_tmp14 ;
32454  unsigned long *__cil_tmp15 ;
32455  unsigned long volatile   *__cil_tmp16 ;
32456  struct timer_list *__cil_tmp17 ;
32457  struct hc_driver  const  *__cil_tmp18 ;
32458  void (*__cil_tmp19)(struct usb_hcd * ) ;
32459  unsigned long *__cil_tmp20 ;
32460  unsigned long volatile   *__cil_tmp21 ;
32461  struct timer_list *__cil_tmp22 ;
32462  int __cil_tmp23 ;
32463  int __cil_tmp24 ;
32464  unsigned int __cil_tmp25 ;
32465  void *__cil_tmp26 ;
32466  struct usb_device *__cil_tmp27 ;
32467  struct usb_bus *__cil_tmp28 ;
32468
32469  {
32470  {
32471#line 2521
32472  rhdev = hcd->self.root_hub;
32473#line 2523
32474  __cil_tmp4 = hcd->self.controller;
32475#line 2523
32476  __cil_tmp5 = (struct device  const  *)__cil_tmp4;
32477#line 2523
32478  __cil_tmp6 = hcd->state;
32479#line 2523
32480  _dev_info(__cil_tmp5, "remove, state %x\n", __cil_tmp6);
32481#line 2525
32482  usb_get_dev(rhdev);
32483#line 2526
32484  __cil_tmp7 = & rhdev->dev.kobj;
32485#line 2526
32486  __cil_tmp8 = (struct attribute_group  const  *)(& usb_bus_attr_group);
32487#line 2526
32488  sysfs_remove_group(__cil_tmp7, __cil_tmp8);
32489#line 2528
32490  __cil_tmp9 = & hcd->flags;
32491#line 2528
32492  __cil_tmp10 = (unsigned long volatile   *)__cil_tmp9;
32493#line 2528
32494  clear_bit(5, __cil_tmp10);
32495  }
32496  {
32497#line 2529
32498  __cil_tmp11 = hcd->state;
32499#line 2529
32500  if (__cil_tmp11 & 1) {
32501#line 2530
32502    hcd->state = 133;
32503  } else {
32504
32505  }
32506  }
32507  {
32508#line 2532
32509  __cil_tmp12 = hcd->self.controller;
32510#line 2532
32511  __cil_tmp13 = (struct device  const  *)__cil_tmp12;
32512#line 2532
32513  dev_printk("<7>", __cil_tmp13, "roothub graceful disconnect\n");
32514#line 2533
32515  spin_lock_irq(& hcd_root_hub_lock);
32516#line 2534
32517  hcd->rh_registered = (unsigned char)0;
32518#line 2535
32519  spin_unlock_irq(& hcd_root_hub_lock);
32520#line 2538
32521  __cil_tmp14 = & hcd->wakeup_work;
32522#line 2538
32523  cancel_work_sync(__cil_tmp14);
32524#line 2541
32525  mutex_lock_nested(& usb_bus_list_lock, 0U);
32526#line 2542
32527  usb_disconnect(& rhdev);
32528#line 2543
32529  mutex_unlock(& usb_bus_list_lock);
32530#line 2550
32531  hcd->rh_pollable = (unsigned char)0;
32532#line 2551
32533  __cil_tmp15 = & hcd->flags;
32534#line 2551
32535  __cil_tmp16 = (unsigned long volatile   *)__cil_tmp15;
32536#line 2551
32537  clear_bit(2, __cil_tmp16);
32538#line 2552
32539  __cil_tmp17 = & hcd->rh_timer;
32540#line 2552
32541  del_timer_sync(__cil_tmp17);
32542#line 2554
32543  __cil_tmp18 = hcd->driver;
32544#line 2554
32545  __cil_tmp19 = __cil_tmp18->stop;
32546#line 2554
32547  (*__cil_tmp19)(hcd);
32548#line 2555
32549  hcd->state = 0;
32550#line 2558
32551  __cil_tmp20 = & hcd->flags;
32552#line 2558
32553  __cil_tmp21 = (unsigned long volatile   *)__cil_tmp20;
32554#line 2558
32555  clear_bit(2, __cil_tmp21);
32556#line 2559
32557  __cil_tmp22 = & hcd->rh_timer;
32558#line 2559
32559  del_timer_sync(__cil_tmp22);
32560#line 2561
32561  tmp = usb_hcd_is_primary_hcd(hcd);
32562  }
32563#line 2561
32564  if (tmp != 0) {
32565    {
32566#line 2562
32567    __cil_tmp23 = hcd->irq;
32568#line 2562
32569    if (__cil_tmp23 >= 0) {
32570      {
32571#line 2563
32572      __cil_tmp24 = hcd->irq;
32573#line 2563
32574      __cil_tmp25 = (unsigned int )__cil_tmp24;
32575#line 2563
32576      __cil_tmp26 = (void *)hcd;
32577#line 2563
32578      free_irq(__cil_tmp25, __cil_tmp26);
32579      }
32580    } else {
32581
32582    }
32583    }
32584  } else {
32585
32586  }
32587  {
32588#line 2566
32589  __cil_tmp27 = hcd->self.root_hub;
32590#line 2566
32591  usb_put_dev(__cil_tmp27);
32592#line 2567
32593  __cil_tmp28 = & hcd->self;
32594#line 2567
32595  usb_deregister_bus(__cil_tmp28);
32596#line 2568
32597  hcd_buffer_destroy(hcd);
32598  }
32599#line 2569
32600  return;
32601}
32602}
32603#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"
32604void usb_hcd_platform_shutdown(struct platform_device *dev ) 
32605{ struct usb_hcd *hcd ;
32606  void *tmp ;
32607  struct platform_device  const  *__cil_tmp4 ;
32608  void (*__cil_tmp5)(struct usb_hcd * ) ;
32609  unsigned long __cil_tmp6 ;
32610  struct hc_driver  const  *__cil_tmp7 ;
32611  void (*__cil_tmp8)(struct usb_hcd * ) ;
32612  unsigned long __cil_tmp9 ;
32613  struct hc_driver  const  *__cil_tmp10 ;
32614  void (*__cil_tmp11)(struct usb_hcd * ) ;
32615
32616  {
32617  {
32618#line 2575
32619  __cil_tmp4 = (struct platform_device  const  *)dev;
32620#line 2575
32621  tmp = platform_get_drvdata(__cil_tmp4);
32622#line 2575
32623  hcd = (struct usb_hcd *)tmp;
32624  }
32625  {
32626#line 2577
32627  __cil_tmp5 = (void (* const  )(struct usb_hcd * ))0;
32628#line 2577
32629  __cil_tmp6 = (unsigned long )__cil_tmp5;
32630#line 2577
32631  __cil_tmp7 = hcd->driver;
32632#line 2577
32633  __cil_tmp8 = __cil_tmp7->shutdown;
32634#line 2577
32635  __cil_tmp9 = (unsigned long )__cil_tmp8;
32636#line 2577
32637  if (__cil_tmp9 != __cil_tmp6) {
32638    {
32639#line 2578
32640    __cil_tmp10 = hcd->driver;
32641#line 2578
32642    __cil_tmp11 = __cil_tmp10->shutdown;
32643#line 2578
32644    (*__cil_tmp11)(hcd);
32645    }
32646  } else {
32647
32648  }
32649  }
32650#line 2579
32651  return;
32652}
32653}
32654#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"
32655int usb_mon_register(struct usb_mon_operations *ops ) 
32656{ struct usb_mon_operations *__cil_tmp2 ;
32657  unsigned long __cil_tmp3 ;
32658  unsigned long __cil_tmp4 ;
32659
32660  {
32661  {
32662#line 2599
32663  __cil_tmp2 = (struct usb_mon_operations *)0;
32664#line 2599
32665  __cil_tmp3 = (unsigned long )__cil_tmp2;
32666#line 2599
32667  __cil_tmp4 = (unsigned long )mon_ops;
32668#line 2599
32669  if (__cil_tmp4 != __cil_tmp3) {
32670#line 2600
32671    return (-16);
32672  } else {
32673
32674  }
32675  }
32676#line 2602
32677  mon_ops = ops;
32678#line 2603
32679  __asm__  volatile   ("mfence": : : "memory");
32680#line 2604
32681  return (0);
32682}
32683}
32684#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"
32685void usb_mon_deregister(void) 
32686{ struct usb_mon_operations *__cil_tmp1 ;
32687  unsigned long __cil_tmp2 ;
32688  unsigned long __cil_tmp3 ;
32689
32690  {
32691  {
32692#line 2611
32693  __cil_tmp1 = (struct usb_mon_operations *)0;
32694#line 2611
32695  __cil_tmp2 = (unsigned long )__cil_tmp1;
32696#line 2611
32697  __cil_tmp3 = (unsigned long )mon_ops;
32698#line 2611
32699  if (__cil_tmp3 == __cil_tmp2) {
32700    {
32701#line 2612
32702    printk("<3>USB: monitor was not registered\n");
32703    }
32704#line 2613
32705    return;
32706  } else {
32707
32708  }
32709  }
32710#line 2615
32711  mon_ops = (struct usb_mon_operations *)0;
32712#line 2616
32713  __asm__  volatile   ("mfence": : : "memory");
32714#line 2617
32715  return;
32716}
32717}
32718#line 422 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
32719__inline static int fls(int x ) 
32720{ int r ;
32721
32722  {
32723#line 426
32724  __asm__  ("bsrl %1,%0\n\tcmovzl %2,%0": "=&r" (r): "rm" (x), "rm" (-1));
32725#line 435
32726  return (r + 1);
32727}
32728}
32729#line 32 "include/linux/log2.h"
32730__inline static int __ilog2_u32(u32 n ) 
32731{ int tmp ;
32732  int __cil_tmp3 ;
32733
32734  {
32735  {
32736#line 34
32737  __cil_tmp3 = (int )n;
32738#line 34
32739  tmp = fls(__cil_tmp3);
32740  }
32741#line 34
32742  return (tmp + -1);
32743}
32744}
32745#line 357 "include/linux/sched.h"
32746extern long schedule_timeout(long  ) ;
32747#line 1331 "include/linux/usb.h"
32748void usb_init_urb(struct urb *urb ) ;
32749#line 1337
32750int usb_unlink_urb(struct urb *urb ) ;
32751#line 1339
32752void usb_poison_urb(struct urb *urb ) ;
32753#line 1340
32754void usb_unpoison_urb(struct urb *urb ) ;
32755#line 1341
32756void usb_kill_anchored_urbs(struct usb_anchor *anchor ) ;
32757#line 1342
32758void usb_poison_anchored_urbs(struct usb_anchor *anchor ) ;
32759#line 1343
32760void usb_unpoison_anchored_urbs(struct usb_anchor *anchor ) ;
32761#line 1344
32762void usb_unlink_anchored_urbs(struct usb_anchor *anchor ) ;
32763#line 1345
32764void usb_anchor_urb(struct urb *urb , struct usb_anchor *anchor ) ;
32765#line 1347
32766int usb_wait_anchor_empty_timeout(struct usb_anchor *anchor , unsigned int timeout ) ;
32767#line 1349
32768struct urb *usb_get_from_anchor(struct usb_anchor *anchor ) ;
32769#line 1350
32770void usb_scuttle_anchored_urbs(struct usb_anchor *anchor ) ;
32771#line 1351
32772int usb_anchor_empty(struct usb_anchor *anchor ) ;
32773#line 1551 "include/linux/usb.h"
32774__inline static struct usb_host_endpoint *usb_pipe_endpoint(struct usb_device *dev ,
32775                                                            unsigned int pipe ) 
32776{ struct usb_host_endpoint **eps ;
32777  unsigned int __cil_tmp4 ;
32778  struct usb_host_endpoint *(*__cil_tmp5)[16U] ;
32779  struct usb_host_endpoint *(*__cil_tmp6)[16U] ;
32780  unsigned int __cil_tmp7 ;
32781  unsigned long __cil_tmp8 ;
32782  unsigned long __cil_tmp9 ;
32783  struct usb_host_endpoint **__cil_tmp10 ;
32784
32785  {
32786  {
32787#line 1554
32788  __cil_tmp4 = pipe & 128U;
32789#line 1554
32790  if (__cil_tmp4 != 0U) {
32791#line 1554
32792    __cil_tmp5 = & dev->ep_in;
32793#line 1554
32794    eps = (struct usb_host_endpoint **)__cil_tmp5;
32795  } else {
32796#line 1554
32797    __cil_tmp6 = & dev->ep_out;
32798#line 1554
32799    eps = (struct usb_host_endpoint **)__cil_tmp6;
32800  }
32801  }
32802  {
32803#line 1555
32804  __cil_tmp7 = pipe >> 15;
32805#line 1555
32806  __cil_tmp8 = (unsigned long )__cil_tmp7;
32807#line 1555
32808  __cil_tmp9 = __cil_tmp8 & 15UL;
32809#line 1555
32810  __cil_tmp10 = eps + __cil_tmp9;
32811#line 1555
32812  return (*__cil_tmp10);
32813  }
32814}
32815}
32816#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"
32817static void urb_destroy(struct kref *kref ) 
32818{ struct urb *urb ;
32819  struct kref  const  *__mptr ;
32820  unsigned int __cil_tmp4 ;
32821  unsigned int __cil_tmp5 ;
32822  void *__cil_tmp6 ;
32823  void const   *__cil_tmp7 ;
32824  void const   *__cil_tmp8 ;
32825
32826  {
32827#line 23
32828  __mptr = (struct kref  const  *)kref;
32829#line 23
32830  urb = (struct urb *)__mptr;
32831  {
32832#line 25
32833  __cil_tmp4 = urb->transfer_flags;
32834#line 25
32835  __cil_tmp5 = __cil_tmp4 & 256U;
32836#line 25
32837  if (__cil_tmp5 != 0U) {
32838    {
32839#line 26
32840    __cil_tmp6 = urb->transfer_buffer;
32841#line 26
32842    __cil_tmp7 = (void const   *)__cil_tmp6;
32843#line 26
32844    kfree(__cil_tmp7);
32845    }
32846  } else {
32847
32848  }
32849  }
32850  {
32851#line 28
32852  __cil_tmp8 = (void const   *)urb;
32853#line 28
32854  kfree(__cil_tmp8);
32855  }
32856#line 29
32857  return;
32858}
32859}
32860#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"
32861void usb_init_urb(struct urb *urb ) 
32862{ struct urb *__cil_tmp2 ;
32863  unsigned long __cil_tmp3 ;
32864  unsigned long __cil_tmp4 ;
32865  void *__cil_tmp5 ;
32866  struct kref *__cil_tmp6 ;
32867  struct list_head *__cil_tmp7 ;
32868
32869  {
32870  {
32871#line 47
32872  __cil_tmp2 = (struct urb *)0;
32873#line 47
32874  __cil_tmp3 = (unsigned long )__cil_tmp2;
32875#line 47
32876  __cil_tmp4 = (unsigned long )urb;
32877#line 47
32878  if (__cil_tmp4 != __cil_tmp3) {
32879    {
32880#line 48
32881    __cil_tmp5 = (void *)urb;
32882#line 48
32883    memset(__cil_tmp5, 0, 192UL);
32884#line 49
32885    __cil_tmp6 = & urb->kref;
32886#line 49
32887    kref_init(__cil_tmp6);
32888#line 50
32889    __cil_tmp7 = & urb->anchor_list;
32890#line 50
32891    INIT_LIST_HEAD(__cil_tmp7);
32892    }
32893  } else {
32894
32895  }
32896  }
32897#line 52
32898  return;
32899}
32900}
32901#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"
32902struct urb *usb_alloc_urb(int iso_packets , gfp_t mem_flags ) 
32903{ struct urb *urb ;
32904  void *tmp ;
32905  unsigned long __cil_tmp5 ;
32906  unsigned long __cil_tmp6 ;
32907  unsigned long __cil_tmp7 ;
32908  struct urb *__cil_tmp8 ;
32909  unsigned long __cil_tmp9 ;
32910  unsigned long __cil_tmp10 ;
32911
32912  {
32913  {
32914#line 75
32915  __cil_tmp5 = (unsigned long )iso_packets;
32916#line 75
32917  __cil_tmp6 = __cil_tmp5 + 12UL;
32918#line 75
32919  __cil_tmp7 = __cil_tmp6 * 16UL;
32920#line 75
32921  tmp = kmalloc(__cil_tmp7, mem_flags);
32922#line 75
32923  urb = (struct urb *)tmp;
32924  }
32925  {
32926#line 78
32927  __cil_tmp8 = (struct urb *)0;
32928#line 78
32929  __cil_tmp9 = (unsigned long )__cil_tmp8;
32930#line 78
32931  __cil_tmp10 = (unsigned long )urb;
32932#line 78
32933  if (__cil_tmp10 == __cil_tmp9) {
32934    {
32935#line 79
32936    printk("<3>alloc_urb: kmalloc failed\n");
32937    }
32938#line 80
32939    return ((struct urb *)0);
32940  } else {
32941
32942  }
32943  }
32944  {
32945#line 82
32946  usb_init_urb(urb);
32947  }
32948#line 83
32949  return (urb);
32950}
32951}
32952#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"
32953void usb_free_urb(struct urb *urb ) 
32954{ struct urb *__cil_tmp2 ;
32955  unsigned long __cil_tmp3 ;
32956  unsigned long __cil_tmp4 ;
32957  struct kref *__cil_tmp5 ;
32958
32959  {
32960  {
32961#line 99
32962  __cil_tmp2 = (struct urb *)0;
32963#line 99
32964  __cil_tmp3 = (unsigned long )__cil_tmp2;
32965#line 99
32966  __cil_tmp4 = (unsigned long )urb;
32967#line 99
32968  if (__cil_tmp4 != __cil_tmp3) {
32969    {
32970#line 100
32971    __cil_tmp5 = & urb->kref;
32972#line 100
32973    kref_put(__cil_tmp5, & urb_destroy);
32974    }
32975  } else {
32976
32977  }
32978  }
32979#line 101
32980  return;
32981}
32982}
32983#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"
32984struct urb *usb_get_urb(struct urb *urb ) 
32985{ struct urb *__cil_tmp2 ;
32986  unsigned long __cil_tmp3 ;
32987  unsigned long __cil_tmp4 ;
32988  struct kref *__cil_tmp5 ;
32989
32990  {
32991  {
32992#line 116
32993  __cil_tmp2 = (struct urb *)0;
32994#line 116
32995  __cil_tmp3 = (unsigned long )__cil_tmp2;
32996#line 116
32997  __cil_tmp4 = (unsigned long )urb;
32998#line 116
32999  if (__cil_tmp4 != __cil_tmp3) {
33000    {
33001#line 117
33002    __cil_tmp5 = & urb->kref;
33003#line 117
33004    kref_get(__cil_tmp5);
33005    }
33006  } else {
33007
33008  }
33009  }
33010#line 118
33011  return (urb);
33012}
33013}
33014#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"
33015void usb_anchor_urb(struct urb *urb , struct usb_anchor *anchor ) 
33016{ unsigned long flags ;
33017  raw_spinlock_t *tmp ;
33018  long tmp___0 ;
33019  spinlock_t *__cil_tmp6 ;
33020  struct list_head *__cil_tmp7 ;
33021  struct list_head *__cil_tmp8 ;
33022  unsigned char *__cil_tmp9 ;
33023  unsigned char *__cil_tmp10 ;
33024  unsigned char __cil_tmp11 ;
33025  long __cil_tmp12 ;
33026  long __cil_tmp13 ;
33027  atomic_t *__cil_tmp14 ;
33028  spinlock_t *__cil_tmp15 ;
33029
33030  {
33031  {
33032#line 134
33033  __cil_tmp6 = & anchor->lock;
33034#line 134
33035  tmp = spinlock_check(__cil_tmp6);
33036#line 134
33037  flags = _raw_spin_lock_irqsave(tmp);
33038#line 135
33039  usb_get_urb(urb);
33040#line 136
33041  __cil_tmp7 = & urb->anchor_list;
33042#line 136
33043  __cil_tmp8 = & anchor->urb_list;
33044#line 136
33045  list_add_tail(__cil_tmp7, __cil_tmp8);
33046#line 137
33047  urb->anchor = anchor;
33048#line 139
33049  __cil_tmp9 = (unsigned char *)anchor;
33050#line 139
33051  __cil_tmp10 = __cil_tmp9 + 176UL;
33052#line 139
33053  __cil_tmp11 = *__cil_tmp10;
33054#line 139
33055  __cil_tmp12 = (long )__cil_tmp11;
33056#line 139
33057  __cil_tmp13 = __cil_tmp12 & 1L;
33058#line 139
33059  tmp___0 = __builtin_expect(__cil_tmp13, 0L);
33060  }
33061#line 139
33062  if (tmp___0 != 0L) {
33063    {
33064#line 140
33065    __cil_tmp14 = & urb->reject;
33066#line 140
33067    atomic_inc(__cil_tmp14);
33068    }
33069  } else {
33070
33071  }
33072  {
33073#line 143
33074  __cil_tmp15 = & anchor->lock;
33075#line 143
33076  spin_unlock_irqrestore(__cil_tmp15, flags);
33077  }
33078#line 144
33079  return;
33080}
33081}
33082#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"
33083static void __usb_unanchor_urb(struct urb *urb , struct usb_anchor *anchor ) 
33084{ int tmp ;
33085  struct list_head *__cil_tmp4 ;
33086  struct list_head *__cil_tmp5 ;
33087  struct list_head  const  *__cil_tmp6 ;
33088  wait_queue_head_t *__cil_tmp7 ;
33089  void *__cil_tmp8 ;
33090
33091  {
33092  {
33093#line 150
33094  urb->anchor = (struct usb_anchor *)0;
33095#line 151
33096  __cil_tmp4 = & urb->anchor_list;
33097#line 151
33098  list_del(__cil_tmp4);
33099#line 152
33100  usb_free_urb(urb);
33101#line 153
33102  __cil_tmp5 = & anchor->urb_list;
33103#line 153
33104  __cil_tmp6 = (struct list_head  const  *)__cil_tmp5;
33105#line 153
33106  tmp = list_empty(__cil_tmp6);
33107  }
33108#line 153
33109  if (tmp != 0) {
33110    {
33111#line 154
33112    __cil_tmp7 = & anchor->wait;
33113#line 154
33114    __cil_tmp8 = (void *)0;
33115#line 154
33116    __wake_up(__cil_tmp7, 3U, 1, __cil_tmp8);
33117    }
33118  } else {
33119
33120  }
33121#line 155
33122  return;
33123}
33124}
33125#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"
33126void usb_unanchor_urb(struct urb *urb ) 
33127{ unsigned long flags ;
33128  struct usb_anchor *anchor ;
33129  raw_spinlock_t *tmp ;
33130  long tmp___0 ;
33131  struct urb *__cil_tmp6 ;
33132  unsigned long __cil_tmp7 ;
33133  unsigned long __cil_tmp8 ;
33134  struct usb_anchor *__cil_tmp9 ;
33135  unsigned long __cil_tmp10 ;
33136  unsigned long __cil_tmp11 ;
33137  spinlock_t *__cil_tmp12 ;
33138  unsigned long __cil_tmp13 ;
33139  struct usb_anchor *__cil_tmp14 ;
33140  unsigned long __cil_tmp15 ;
33141  int __cil_tmp16 ;
33142  long __cil_tmp17 ;
33143  spinlock_t *__cil_tmp18 ;
33144
33145  {
33146  {
33147#line 168
33148  __cil_tmp6 = (struct urb *)0;
33149#line 168
33150  __cil_tmp7 = (unsigned long )__cil_tmp6;
33151#line 168
33152  __cil_tmp8 = (unsigned long )urb;
33153#line 168
33154  if (__cil_tmp8 == __cil_tmp7) {
33155#line 169
33156    return;
33157  } else {
33158
33159  }
33160  }
33161#line 171
33162  anchor = urb->anchor;
33163  {
33164#line 172
33165  __cil_tmp9 = (struct usb_anchor *)0;
33166#line 172
33167  __cil_tmp10 = (unsigned long )__cil_tmp9;
33168#line 172
33169  __cil_tmp11 = (unsigned long )anchor;
33170#line 172
33171  if (__cil_tmp11 == __cil_tmp10) {
33172#line 173
33173    return;
33174  } else {
33175
33176  }
33177  }
33178  {
33179#line 175
33180  __cil_tmp12 = & anchor->lock;
33181#line 175
33182  tmp = spinlock_check(__cil_tmp12);
33183#line 175
33184  flags = _raw_spin_lock_irqsave(tmp);
33185#line 181
33186  __cil_tmp13 = (unsigned long )anchor;
33187#line 181
33188  __cil_tmp14 = urb->anchor;
33189#line 181
33190  __cil_tmp15 = (unsigned long )__cil_tmp14;
33191#line 181
33192  __cil_tmp16 = __cil_tmp15 == __cil_tmp13;
33193#line 181
33194  __cil_tmp17 = (long )__cil_tmp16;
33195#line 181
33196  tmp___0 = __builtin_expect(__cil_tmp17, 1L);
33197  }
33198#line 181
33199  if (tmp___0 != 0L) {
33200    {
33201#line 182
33202    __usb_unanchor_urb(urb, anchor);
33203    }
33204  } else {
33205
33206  }
33207  {
33208#line 183
33209  __cil_tmp18 = & anchor->lock;
33210#line 183
33211  spin_unlock_irqrestore(__cil_tmp18, flags);
33212  }
33213#line 184
33214  return;
33215}
33216}
33217#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"
33218int usb_submit_urb(struct urb *urb , gfp_t mem_flags ) 
33219{ int xfertype ;
33220  int max ;
33221  struct usb_device *dev ;
33222  struct usb_host_endpoint *ep ;
33223  int is_out ;
33224  struct usb_ctrlrequest *setup ;
33225  int tmp ;
33226  unsigned int tmp___0 ;
33227  char *tmp___1 ;
33228  int tmp___2 ;
33229  int n ;
33230  int len ;
33231  int burst ;
33232  int mult ;
33233  int mult___0 ;
33234  unsigned int orig_flags ;
33235  unsigned int allowed ;
33236  int pipetypes[4U] ;
33237  int _min1 ;
33238  int _min2 ;
33239  int tmp___3 ;
33240  int tmp___4 ;
33241  int tmp___5 ;
33242  struct urb *__cil_tmp26 ;
33243  unsigned long __cil_tmp27 ;
33244  unsigned long __cil_tmp28 ;
33245  void *__cil_tmp29 ;
33246  unsigned long __cil_tmp30 ;
33247  void *__cil_tmp31 ;
33248  unsigned long __cil_tmp32 ;
33249  void (*__cil_tmp33)(struct urb * ) ;
33250  unsigned long __cil_tmp34 ;
33251  void (*__cil_tmp35)(struct urb * ) ;
33252  unsigned long __cil_tmp36 ;
33253  struct usb_device *__cil_tmp37 ;
33254  unsigned long __cil_tmp38 ;
33255  unsigned long __cil_tmp39 ;
33256  enum usb_device_state __cil_tmp40 ;
33257  unsigned int __cil_tmp41 ;
33258  unsigned int __cil_tmp42 ;
33259  struct usb_host_endpoint *__cil_tmp43 ;
33260  unsigned long __cil_tmp44 ;
33261  unsigned long __cil_tmp45 ;
33262  struct usb_endpoint_descriptor *__cil_tmp46 ;
33263  struct usb_endpoint_descriptor  const  *__cil_tmp47 ;
33264  unsigned char *__cil_tmp48 ;
33265  struct usb_ctrlrequest *__cil_tmp49 ;
33266  unsigned long __cil_tmp50 ;
33267  unsigned long __cil_tmp51 ;
33268  __u8 __cil_tmp52 ;
33269  signed char __cil_tmp53 ;
33270  int __cil_tmp54 ;
33271  __le16 __cil_tmp55 ;
33272  unsigned int __cil_tmp56 ;
33273  struct usb_endpoint_descriptor *__cil_tmp57 ;
33274  struct usb_endpoint_descriptor  const  *__cil_tmp58 ;
33275  unsigned int __cil_tmp59 ;
33276  unsigned int __cil_tmp60 ;
33277  enum usb_device_state __cil_tmp61 ;
33278  unsigned int __cil_tmp62 ;
33279  __le16 __cil_tmp63 ;
33280  struct usb_endpoint_descriptor *__cil_tmp64 ;
33281  struct usb_endpoint_descriptor  const  *__cil_tmp65 ;
33282  struct device *__cil_tmp66 ;
33283  struct device  const  *__cil_tmp67 ;
33284  enum usb_device_speed __cil_tmp68 ;
33285  unsigned int __cil_tmp69 ;
33286  __u8 __cil_tmp70 ;
33287  int __cil_tmp71 ;
33288  __u8 __cil_tmp72 ;
33289  int __cil_tmp73 ;
33290  int __cil_tmp74 ;
33291  enum usb_device_speed __cil_tmp75 ;
33292  unsigned int __cil_tmp76 ;
33293  int __cil_tmp77 ;
33294  int __cil_tmp78 ;
33295  int __cil_tmp79 ;
33296  unsigned int __cil_tmp80 ;
33297  int __cil_tmp81 ;
33298  u32 __cil_tmp82 ;
33299  int __cil_tmp83 ;
33300  unsigned int __cil_tmp84 ;
33301  unsigned int __cil_tmp85 ;
33302  unsigned int __cil_tmp86 ;
33303  struct device *__cil_tmp87 ;
33304  struct device  const  *__cil_tmp88 ;
33305  unsigned int __cil_tmp89 ;
33306  unsigned int __cil_tmp90 ;
33307  unsigned int __cil_tmp91 ;
33308  unsigned int __cil_tmp92 ;
33309  struct device *__cil_tmp93 ;
33310  struct device  const  *__cil_tmp94 ;
33311  unsigned int __cil_tmp95 ;
33312  enum usb_device_speed __cil_tmp96 ;
33313  unsigned int __cil_tmp97 ;
33314  int __cil_tmp98 ;
33315  int __cil_tmp99 ;
33316  int __cil_tmp100 ;
33317  enum usb_device_speed __cil_tmp101 ;
33318  unsigned int __cil_tmp102 ;
33319  int __cil_tmp103 ;
33320  enum usb_device_speed __cil_tmp104 ;
33321  unsigned int __cil_tmp105 ;
33322  int __cil_tmp106 ;
33323  enum usb_device_speed __cil_tmp107 ;
33324  unsigned int __cil_tmp108 ;
33325  int __cil_tmp109 ;
33326  enum usb_device_speed __cil_tmp110 ;
33327  unsigned int __cil_tmp111 ;
33328  int __cil_tmp112 ;
33329  enum usb_device_speed __cil_tmp113 ;
33330  unsigned int __cil_tmp114 ;
33331  int __cil_tmp115 ;
33332  int __cil_tmp116 ;
33333  int __cil_tmp117 ;
33334  int __cil_tmp118 ;
33335  int __cil_tmp119 ;
33336  int __cil_tmp120 ;
33337  enum usb_device_speed __cil_tmp121 ;
33338  unsigned int __cil_tmp122 ;
33339  int __cil_tmp123 ;
33340  u32 __cil_tmp124 ;
33341
33342  {
33343  {
33344#line 315
33345  __cil_tmp26 = (struct urb *)0;
33346#line 315
33347  __cil_tmp27 = (unsigned long )__cil_tmp26;
33348#line 315
33349  __cil_tmp28 = (unsigned long )urb;
33350#line 315
33351  if (__cil_tmp28 == __cil_tmp27) {
33352#line 316
33353    return (-22);
33354  } else {
33355    {
33356#line 315
33357    __cil_tmp29 = (void *)0;
33358#line 315
33359    __cil_tmp30 = (unsigned long )__cil_tmp29;
33360#line 315
33361    __cil_tmp31 = urb->hcpriv;
33362#line 315
33363    __cil_tmp32 = (unsigned long )__cil_tmp31;
33364#line 315
33365    if (__cil_tmp32 != __cil_tmp30) {
33366#line 316
33367      return (-22);
33368    } else {
33369      {
33370#line 315
33371      __cil_tmp33 = (void (*)(struct urb * ))0;
33372#line 315
33373      __cil_tmp34 = (unsigned long )__cil_tmp33;
33374#line 315
33375      __cil_tmp35 = urb->complete;
33376#line 315
33377      __cil_tmp36 = (unsigned long )__cil_tmp35;
33378#line 315
33379      if (__cil_tmp36 == __cil_tmp34) {
33380#line 316
33381        return (-22);
33382      } else {
33383
33384      }
33385      }
33386    }
33387    }
33388  }
33389  }
33390#line 317
33391  dev = urb->dev;
33392  {
33393#line 318
33394  __cil_tmp37 = (struct usb_device *)0;
33395#line 318
33396  __cil_tmp38 = (unsigned long )__cil_tmp37;
33397#line 318
33398  __cil_tmp39 = (unsigned long )dev;
33399#line 318
33400  if (__cil_tmp39 == __cil_tmp38) {
33401#line 319
33402    return (-19);
33403  } else {
33404    {
33405#line 318
33406    __cil_tmp40 = dev->state;
33407#line 318
33408    __cil_tmp41 = (unsigned int )__cil_tmp40;
33409#line 318
33410    if (__cil_tmp41 <= 3U) {
33411#line 319
33412      return (-19);
33413    } else {
33414
33415    }
33416    }
33417  }
33418  }
33419  {
33420#line 325
33421  __cil_tmp42 = urb->pipe;
33422#line 325
33423  ep = usb_pipe_endpoint(dev, __cil_tmp42);
33424  }
33425  {
33426#line 326
33427  __cil_tmp43 = (struct usb_host_endpoint *)0;
33428#line 326
33429  __cil_tmp44 = (unsigned long )__cil_tmp43;
33430#line 326
33431  __cil_tmp45 = (unsigned long )ep;
33432#line 326
33433  if (__cil_tmp45 == __cil_tmp44) {
33434#line 327
33435    return (-2);
33436  } else {
33437
33438  }
33439  }
33440  {
33441#line 329
33442  urb->ep = ep;
33443#line 330
33444  urb->status = -115;
33445#line 331
33446  urb->actual_length = 0U;
33447#line 336
33448  __cil_tmp46 = & ep->desc;
33449#line 336
33450  __cil_tmp47 = (struct usb_endpoint_descriptor  const  *)__cil_tmp46;
33451#line 336
33452  xfertype = usb_endpoint_type(__cil_tmp47);
33453  }
33454#line 337
33455  if (xfertype == 0) {
33456#line 338
33457    __cil_tmp48 = urb->setup_packet;
33458#line 338
33459    setup = (struct usb_ctrlrequest *)__cil_tmp48;
33460    {
33461#line 341
33462    __cil_tmp49 = (struct usb_ctrlrequest *)0;
33463#line 341
33464    __cil_tmp50 = (unsigned long )__cil_tmp49;
33465#line 341
33466    __cil_tmp51 = (unsigned long )setup;
33467#line 341
33468    if (__cil_tmp51 == __cil_tmp50) {
33469#line 342
33470      return (-8);
33471    } else {
33472
33473    }
33474    }
33475    {
33476#line 343
33477    __cil_tmp52 = setup->bRequestType;
33478#line 343
33479    __cil_tmp53 = (signed char )__cil_tmp52;
33480#line 343
33481    __cil_tmp54 = (int )__cil_tmp53;
33482#line 343
33483    if (__cil_tmp54 >= 0) {
33484#line 343
33485      tmp = 1;
33486    } else {
33487      {
33488#line 343
33489      __cil_tmp55 = setup->wLength;
33490#line 343
33491      __cil_tmp56 = (unsigned int )__cil_tmp55;
33492#line 343
33493      if (__cil_tmp56 == 0U) {
33494#line 343
33495        tmp = 1;
33496      } else {
33497#line 343
33498        tmp = 0;
33499      }
33500      }
33501    }
33502    }
33503#line 343
33504    is_out = tmp;
33505  } else {
33506    {
33507#line 346
33508    __cil_tmp57 = & ep->desc;
33509#line 346
33510    __cil_tmp58 = (struct usb_endpoint_descriptor  const  *)__cil_tmp57;
33511#line 346
33512    is_out = usb_endpoint_dir_out(__cil_tmp58);
33513    }
33514  }
33515#line 350
33516  __cil_tmp59 = urb->transfer_flags;
33517#line 350
33518  urb->transfer_flags = __cil_tmp59 & 4286643711U;
33519#line 354
33520  if (is_out != 0) {
33521#line 354
33522    tmp___0 = 0U;
33523  } else {
33524#line 354
33525    tmp___0 = 512U;
33526  }
33527#line 354
33528  __cil_tmp60 = urb->transfer_flags;
33529#line 354
33530  urb->transfer_flags = __cil_tmp60 | tmp___0;
33531#line 356
33532  if (xfertype != 0) {
33533    {
33534#line 356
33535    __cil_tmp61 = dev->state;
33536#line 356
33537    __cil_tmp62 = (unsigned int )__cil_tmp61;
33538#line 356
33539    if (__cil_tmp62 <= 6U) {
33540#line 358
33541      return (-19);
33542    } else {
33543
33544    }
33545    }
33546  } else {
33547
33548  }
33549#line 360
33550  __cil_tmp63 = ep->desc.wMaxPacketSize;
33551#line 360
33552  max = (int )__cil_tmp63;
33553#line 361
33554  if (max <= 0) {
33555#line 362
33556    if (is_out != 0) {
33557#line 362
33558      tmp___1 = (char *)"out";
33559    } else {
33560#line 362
33561      tmp___1 = (char *)"in";
33562    }
33563    {
33564#line 362
33565    __cil_tmp64 = & ep->desc;
33566#line 362
33567    __cil_tmp65 = (struct usb_endpoint_descriptor  const  *)__cil_tmp64;
33568#line 362
33569    tmp___2 = usb_endpoint_num(__cil_tmp65);
33570#line 362
33571    __cil_tmp66 = & dev->dev;
33572#line 362
33573    __cil_tmp67 = (struct device  const  *)__cil_tmp66;
33574#line 362
33575    dev_printk("<7>", __cil_tmp67, "bogus endpoint ep%d%s in %s (bad maxpacket %d)\n",
33576               tmp___2, tmp___1, "usb_submit_urb", max);
33577    }
33578#line 366
33579    return (-90);
33580  } else {
33581
33582  }
33583#line 373
33584  if (xfertype == 1) {
33585    {
33586#line 379
33587    __cil_tmp68 = dev->speed;
33588#line 379
33589    __cil_tmp69 = (unsigned int )__cil_tmp68;
33590#line 379
33591    if (__cil_tmp69 == 5U) {
33592#line 380
33593      __cil_tmp70 = ep->ss_ep_comp.bMaxBurst;
33594#line 380
33595      __cil_tmp71 = (int )__cil_tmp70;
33596#line 380
33597      burst = __cil_tmp71 + 1;
33598#line 381
33599      __cil_tmp72 = ep->ss_ep_comp.bmAttributes;
33600#line 381
33601      __cil_tmp73 = (int )__cil_tmp72;
33602#line 381
33603      __cil_tmp74 = __cil_tmp73 & 3;
33604#line 381
33605      mult = __cil_tmp74 + 1;
33606#line 382
33607      max = max * burst;
33608#line 383
33609      max = max * mult;
33610    } else {
33611
33612    }
33613    }
33614    {
33615#line 387
33616    __cil_tmp75 = dev->speed;
33617#line 387
33618    __cil_tmp76 = (unsigned int )__cil_tmp75;
33619#line 387
33620    if (__cil_tmp76 == 3U) {
33621#line 388
33622      __cil_tmp77 = max >> 11;
33623#line 388
33624      __cil_tmp78 = __cil_tmp77 & 3;
33625#line 388
33626      mult___0 = __cil_tmp78 + 1;
33627#line 389
33628      max = max & 2047;
33629#line 390
33630      max = max * mult___0;
33631    } else {
33632
33633    }
33634    }
33635    {
33636#line 393
33637    __cil_tmp79 = urb->number_of_packets;
33638#line 393
33639    if (__cil_tmp79 <= 0) {
33640#line 394
33641      return (-22);
33642    } else {
33643
33644    }
33645    }
33646#line 395
33647    n = 0;
33648#line 395
33649    goto ldv_24166;
33650    ldv_24165: 
33651#line 396
33652    __cil_tmp80 = urb->iso_frame_desc[n].length;
33653#line 396
33654    len = (int )__cil_tmp80;
33655#line 397
33656    if (len < 0) {
33657#line 398
33658      return (-90);
33659    } else
33660#line 397
33661    if (len > max) {
33662#line 398
33663      return (-90);
33664    } else {
33665
33666    }
33667#line 399
33668    urb->iso_frame_desc[n].status = -18;
33669#line 400
33670    urb->iso_frame_desc[n].actual_length = 0U;
33671#line 395
33672    n = n + 1;
33673    ldv_24166: ;
33674    {
33675#line 395
33676    __cil_tmp81 = urb->number_of_packets;
33677#line 395
33678    if (__cil_tmp81 > n) {
33679#line 396
33680      goto ldv_24165;
33681    } else {
33682#line 398
33683      goto ldv_24167;
33684    }
33685    }
33686    ldv_24167: ;
33687  } else {
33688
33689  }
33690  {
33691#line 405
33692  __cil_tmp82 = urb->transfer_buffer_length;
33693#line 405
33694  __cil_tmp83 = (int )__cil_tmp82;
33695#line 405
33696  if (__cil_tmp83 < 0) {
33697#line 406
33698    return (-90);
33699  } else {
33700
33701  }
33702  }
33703#line 413
33704  orig_flags = urb->transfer_flags;
33705#line 415
33706  pipetypes[0] = 2;
33707#line 415
33708  pipetypes[1] = 0;
33709#line 415
33710  pipetypes[2] = 3;
33711#line 415
33712  pipetypes[3] = 1;
33713  {
33714#line 420
33715  __cil_tmp84 = (unsigned int )pipetypes[xfertype];
33716#line 420
33717  __cil_tmp85 = urb->pipe;
33718#line 420
33719  __cil_tmp86 = __cil_tmp85 >> 30;
33720#line 420
33721  if (__cil_tmp86 != __cil_tmp84) {
33722    {
33723#line 421
33724    __cil_tmp87 = & dev->dev;
33725#line 421
33726    __cil_tmp88 = (struct device  const  *)__cil_tmp87;
33727#line 421
33728    __cil_tmp89 = urb->pipe;
33729#line 421
33730    __cil_tmp90 = __cil_tmp89 >> 30;
33731#line 421
33732    dev_err(__cil_tmp88, "BOGUS urb xfer, pipe %x != type %x\n", __cil_tmp90, pipetypes[xfertype]);
33733    }
33734#line 423
33735    return (-32);
33736  } else {
33737
33738  }
33739  }
33740#line 427
33741  allowed = 900U;
33742#line 430
33743  if (xfertype == 2) {
33744#line 430
33745    goto case_2;
33746  } else
33747#line 434
33748  if (xfertype == 0) {
33749#line 434
33750    goto case_0;
33751  } else
33752#line 441
33753  if (xfertype == 1) {
33754#line 441
33755    goto case_1;
33756  } else {
33757#line 437
33758    goto switch_default;
33759#line 429
33760    if (0) {
33761      case_2: ;
33762#line 431
33763      if (is_out != 0) {
33764#line 432
33765        allowed = allowed | 64U;
33766      } else {
33767
33768      }
33769      case_0: 
33770#line 435
33771      allowed = allowed | 32U;
33772      switch_default: ;
33773#line 438
33774      if (is_out == 0) {
33775#line 439
33776        allowed = allowed | 1U;
33777      } else {
33778
33779      }
33780#line 440
33781      goto ldv_24174;
33782      case_1: 
33783#line 442
33784      allowed = allowed | 2U;
33785#line 443
33786      goto ldv_24174;
33787    } else {
33788
33789    }
33790  }
33791  ldv_24174: 
33792#line 445
33793  __cil_tmp91 = urb->transfer_flags;
33794#line 445
33795  urb->transfer_flags = __cil_tmp91 & allowed;
33796  {
33797#line 448
33798  __cil_tmp92 = urb->transfer_flags;
33799#line 448
33800  if (__cil_tmp92 != orig_flags) {
33801    {
33802#line 449
33803    __cil_tmp93 = & dev->dev;
33804#line 449
33805    __cil_tmp94 = (struct device  const  *)__cil_tmp93;
33806#line 449
33807    __cil_tmp95 = urb->transfer_flags;
33808#line 449
33809    dev_err(__cil_tmp94, "BOGUS urb flags, %x --> %x\n", orig_flags, __cil_tmp95);
33810    }
33811#line 451
33812    return (-22);
33813  } else {
33814
33815  }
33816  }
33817#line 464
33818  if (xfertype == 1) {
33819#line 464
33820    goto case_1___0;
33821  } else
33822#line 465
33823  if (xfertype == 3) {
33824#line 465
33825    goto case_3;
33826  } else
33827#line 463
33828  if (0) {
33829    case_1___0: ;
33830    case_3: ;
33831    {
33832#line 468
33833    __cil_tmp96 = dev->speed;
33834#line 468
33835    __cil_tmp97 = (unsigned int )__cil_tmp96;
33836#line 468
33837    __cil_tmp98 = (int )__cil_tmp97;
33838#line 468
33839    if (__cil_tmp98 == 4) {
33840#line 468
33841      goto case_4;
33842    } else {
33843#line 472
33844      goto switch_default___0;
33845#line 467
33846      if (0) {
33847        case_4: ;
33848        {
33849#line 469
33850        __cil_tmp99 = urb->interval;
33851#line 469
33852        if (__cil_tmp99 <= 5) {
33853#line 470
33854          return (-22);
33855        } else {
33856
33857        }
33858        }
33859#line 471
33860        goto ldv_24179;
33861        switch_default___0: ;
33862        {
33863#line 473
33864        __cil_tmp100 = urb->interval;
33865#line 473
33866        if (__cil_tmp100 <= 0) {
33867#line 474
33868          return (-22);
33869        } else {
33870
33871        }
33872        }
33873#line 475
33874        goto ldv_24179;
33875      } else {
33876
33877      }
33878    }
33879    }
33880    ldv_24179: ;
33881    {
33882#line 479
33883    __cil_tmp101 = dev->speed;
33884#line 479
33885    __cil_tmp102 = (unsigned int )__cil_tmp101;
33886#line 479
33887    __cil_tmp103 = (int )__cil_tmp102;
33888#line 479
33889    if (__cil_tmp103 == 5) {
33890#line 479
33891      goto case_5;
33892    } else {
33893      {
33894#line 485
33895      __cil_tmp104 = dev->speed;
33896#line 485
33897      __cil_tmp105 = (unsigned int )__cil_tmp104;
33898#line 485
33899      __cil_tmp106 = (int )__cil_tmp105;
33900#line 485
33901      if (__cil_tmp106 == 4) {
33902#line 485
33903        goto case_4___0;
33904      } else {
33905        {
33906#line 489
33907        __cil_tmp107 = dev->speed;
33908#line 489
33909        __cil_tmp108 = (unsigned int )__cil_tmp107;
33910#line 489
33911        __cil_tmp109 = (int )__cil_tmp108;
33912#line 489
33913        if (__cil_tmp109 == 3) {
33914#line 489
33915          goto case_3___0;
33916        } else {
33917          {
33918#line 495
33919          __cil_tmp110 = dev->speed;
33920#line 495
33921          __cil_tmp111 = (unsigned int )__cil_tmp110;
33922#line 495
33923          __cil_tmp112 = (int )__cil_tmp111;
33924#line 495
33925          if (__cil_tmp112 == 2) {
33926#line 495
33927            goto case_2___0;
33928          } else {
33929            {
33930#line 496
33931            __cil_tmp113 = dev->speed;
33932#line 496
33933            __cil_tmp114 = (unsigned int )__cil_tmp113;
33934#line 496
33935            __cil_tmp115 = (int )__cil_tmp114;
33936#line 496
33937            if (__cil_tmp115 == 1) {
33938#line 496
33939              goto case_1___1;
33940            } else {
33941#line 509
33942              goto switch_default___1;
33943#line 478
33944              if (0) {
33945                case_5: ;
33946                {
33947#line 481
33948                __cil_tmp116 = urb->interval;
33949#line 481
33950                if (__cil_tmp116 > 32768) {
33951#line 482
33952                  return (-22);
33953                } else {
33954
33955                }
33956                }
33957#line 483
33958                max = 32768;
33959#line 484
33960                goto ldv_24182;
33961                case_4___0: ;
33962                {
33963#line 486
33964                __cil_tmp117 = urb->interval;
33965#line 486
33966                if (__cil_tmp117 > 16) {
33967#line 487
33968                  return (-22);
33969                } else {
33970
33971                }
33972                }
33973#line 488
33974                goto ldv_24182;
33975                case_3___0: ;
33976                {
33977#line 491
33978                __cil_tmp118 = urb->interval;
33979#line 491
33980                if (__cil_tmp118 > 8192) {
33981#line 492
33982                  urb->interval = 8192;
33983                } else {
33984
33985                }
33986                }
33987#line 493
33988                max = 8192;
33989#line 494
33990                goto ldv_24182;
33991                case_2___0: ;
33992                case_1___1: ;
33993#line 497
33994                if (xfertype == 3) {
33995                  {
33996#line 498
33997                  __cil_tmp119 = urb->interval;
33998#line 498
33999                  if (__cil_tmp119 > 255) {
34000#line 499
34001                    return (-22);
34002                  } else {
34003
34004                  }
34005                  }
34006#line 501
34007                  max = 128;
34008                } else {
34009                  {
34010#line 503
34011                  __cil_tmp120 = urb->interval;
34012#line 503
34013                  if (__cil_tmp120 > 1024) {
34014#line 504
34015                    urb->interval = 1024;
34016                  } else {
34017
34018                  }
34019                  }
34020#line 506
34021                  max = 1024;
34022                }
34023#line 508
34024                goto ldv_24182;
34025                switch_default___1: ;
34026#line 510
34027                return (-22);
34028              } else {
34029
34030              }
34031            }
34032            }
34033          }
34034          }
34035        }
34036        }
34037      }
34038      }
34039    }
34040    }
34041    ldv_24182: ;
34042    {
34043#line 512
34044    __cil_tmp121 = dev->speed;
34045#line 512
34046    __cil_tmp122 = (unsigned int )__cil_tmp121;
34047#line 512
34048    if (__cil_tmp122 != 4U) {
34049      {
34050#line 514
34051      _min1 = max;
34052#line 514
34053      __cil_tmp123 = urb->interval;
34054#line 514
34055      __cil_tmp124 = (u32 )__cil_tmp123;
34056#line 514
34057      tmp___3 = __ilog2_u32(__cil_tmp124);
34058#line 514
34059      _min2 = 1 << tmp___3;
34060      }
34061#line 514
34062      if (_min1 < _min2) {
34063#line 514
34064        tmp___4 = _min1;
34065      } else {
34066#line 514
34067        tmp___4 = _min2;
34068      }
34069#line 514
34070      urb->interval = tmp___4;
34071    } else {
34072
34073    }
34074    }
34075  } else {
34076
34077  }
34078  {
34079#line 518
34080  tmp___5 = usb_hcd_submit_urb(urb, mem_flags);
34081  }
34082#line 518
34083  return (tmp___5);
34084}
34085}
34086#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"
34087int usb_unlink_urb(struct urb *urb ) 
34088{ int tmp ;
34089  struct urb *__cil_tmp3 ;
34090  unsigned long __cil_tmp4 ;
34091  unsigned long __cil_tmp5 ;
34092  struct usb_device *__cil_tmp6 ;
34093  unsigned long __cil_tmp7 ;
34094  struct usb_device *__cil_tmp8 ;
34095  unsigned long __cil_tmp9 ;
34096  struct usb_host_endpoint *__cil_tmp10 ;
34097  unsigned long __cil_tmp11 ;
34098  struct usb_host_endpoint *__cil_tmp12 ;
34099  unsigned long __cil_tmp13 ;
34100
34101  {
34102  {
34103#line 589
34104  __cil_tmp3 = (struct urb *)0;
34105#line 589
34106  __cil_tmp4 = (unsigned long )__cil_tmp3;
34107#line 589
34108  __cil_tmp5 = (unsigned long )urb;
34109#line 589
34110  if (__cil_tmp5 == __cil_tmp4) {
34111#line 590
34112    return (-22);
34113  } else {
34114
34115  }
34116  }
34117  {
34118#line 591
34119  __cil_tmp6 = (struct usb_device *)0;
34120#line 591
34121  __cil_tmp7 = (unsigned long )__cil_tmp6;
34122#line 591
34123  __cil_tmp8 = urb->dev;
34124#line 591
34125  __cil_tmp9 = (unsigned long )__cil_tmp8;
34126#line 591
34127  if (__cil_tmp9 == __cil_tmp7) {
34128#line 592
34129    return (-19);
34130  } else {
34131
34132  }
34133  }
34134  {
34135#line 593
34136  __cil_tmp10 = (struct usb_host_endpoint *)0;
34137#line 593
34138  __cil_tmp11 = (unsigned long )__cil_tmp10;
34139#line 593
34140  __cil_tmp12 = urb->ep;
34141#line 593
34142  __cil_tmp13 = (unsigned long )__cil_tmp12;
34143#line 593
34144  if (__cil_tmp13 == __cil_tmp11) {
34145#line 594
34146    return (-43);
34147  } else {
34148
34149  }
34150  }
34151  {
34152#line 595
34153  tmp = usb_hcd_unlink_urb(urb, -104);
34154  }
34155#line 595
34156  return (tmp);
34157}
34158}
34159#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"
34160void usb_kill_urb(struct urb *urb ) 
34161{ int tmp ;
34162  wait_queue_t __wait ;
34163  struct task_struct *tmp___0 ;
34164  int tmp___1 ;
34165  struct urb *__cil_tmp6 ;
34166  unsigned long __cil_tmp7 ;
34167  unsigned long __cil_tmp8 ;
34168  struct usb_device *__cil_tmp9 ;
34169  unsigned long __cil_tmp10 ;
34170  struct usb_device *__cil_tmp11 ;
34171  unsigned long __cil_tmp12 ;
34172  struct usb_host_endpoint *__cil_tmp13 ;
34173  unsigned long __cil_tmp14 ;
34174  struct usb_host_endpoint *__cil_tmp15 ;
34175  unsigned long __cil_tmp16 ;
34176  atomic_t *__cil_tmp17 ;
34177  atomic_t *__cil_tmp18 ;
34178  atomic_t const   *__cil_tmp19 ;
34179  atomic_t *__cil_tmp20 ;
34180  atomic_t const   *__cil_tmp21 ;
34181  atomic_t *__cil_tmp22 ;
34182
34183  {
34184  {
34185#line 624
34186  __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",
34187                624, 0);
34188  }
34189  {
34190#line 625
34191  __cil_tmp6 = (struct urb *)0;
34192#line 625
34193  __cil_tmp7 = (unsigned long )__cil_tmp6;
34194#line 625
34195  __cil_tmp8 = (unsigned long )urb;
34196#line 625
34197  if (__cil_tmp8 == __cil_tmp7) {
34198#line 626
34199    return;
34200  } else {
34201    {
34202#line 625
34203    __cil_tmp9 = (struct usb_device *)0;
34204#line 625
34205    __cil_tmp10 = (unsigned long )__cil_tmp9;
34206#line 625
34207    __cil_tmp11 = urb->dev;
34208#line 625
34209    __cil_tmp12 = (unsigned long )__cil_tmp11;
34210#line 625
34211    if (__cil_tmp12 == __cil_tmp10) {
34212#line 626
34213      return;
34214    } else {
34215      {
34216#line 625
34217      __cil_tmp13 = (struct usb_host_endpoint *)0;
34218#line 625
34219      __cil_tmp14 = (unsigned long )__cil_tmp13;
34220#line 625
34221      __cil_tmp15 = urb->ep;
34222#line 625
34223      __cil_tmp16 = (unsigned long )__cil_tmp15;
34224#line 625
34225      if (__cil_tmp16 == __cil_tmp14) {
34226#line 626
34227        return;
34228      } else {
34229
34230      }
34231      }
34232    }
34233    }
34234  }
34235  }
34236  {
34237#line 627
34238  __cil_tmp17 = & urb->reject;
34239#line 627
34240  atomic_inc(__cil_tmp17);
34241#line 629
34242  usb_hcd_unlink_urb(urb, -2);
34243#line 630
34244  __cil_tmp18 = & urb->use_count;
34245#line 630
34246  __cil_tmp19 = (atomic_t const   *)__cil_tmp18;
34247#line 630
34248  tmp = atomic_read(__cil_tmp19);
34249  }
34250#line 630
34251  if (tmp == 0) {
34252#line 630
34253    goto ldv_24210;
34254  } else {
34255
34256  }
34257  {
34258#line 630
34259  tmp___0 = get_current();
34260#line 630
34261  __wait.flags = 0U;
34262#line 630
34263  __wait.private = (void *)tmp___0;
34264#line 630
34265  __wait.func = & autoremove_wake_function;
34266#line 630
34267  __wait.task_list.next = & __wait.task_list;
34268#line 630
34269  __wait.task_list.prev = & __wait.task_list;
34270  }
34271  ldv_24213: 
34272  {
34273#line 630
34274  prepare_to_wait(& usb_kill_urb_queue, & __wait, 2);
34275#line 630
34276  __cil_tmp20 = & urb->use_count;
34277#line 630
34278  __cil_tmp21 = (atomic_t const   *)__cil_tmp20;
34279#line 630
34280  tmp___1 = atomic_read(__cil_tmp21);
34281  }
34282#line 630
34283  if (tmp___1 == 0) {
34284#line 630
34285    goto ldv_24212;
34286  } else {
34287
34288  }
34289  {
34290#line 630
34291  schedule();
34292  }
34293#line 630
34294  goto ldv_24213;
34295  ldv_24212: 
34296  {
34297#line 630
34298  finish_wait(& usb_kill_urb_queue, & __wait);
34299  }
34300  ldv_24210: 
34301  {
34302#line 632
34303  __cil_tmp22 = & urb->reject;
34304#line 632
34305  atomic_dec(__cil_tmp22);
34306  }
34307#line 633
34308  return;
34309}
34310}
34311#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"
34312void usb_poison_urb(struct urb *urb ) 
34313{ int tmp ;
34314  wait_queue_t __wait ;
34315  struct task_struct *tmp___0 ;
34316  int tmp___1 ;
34317  struct urb *__cil_tmp6 ;
34318  unsigned long __cil_tmp7 ;
34319  unsigned long __cil_tmp8 ;
34320  struct usb_device *__cil_tmp9 ;
34321  unsigned long __cil_tmp10 ;
34322  struct usb_device *__cil_tmp11 ;
34323  unsigned long __cil_tmp12 ;
34324  struct usb_host_endpoint *__cil_tmp13 ;
34325  unsigned long __cil_tmp14 ;
34326  struct usb_host_endpoint *__cil_tmp15 ;
34327  unsigned long __cil_tmp16 ;
34328  atomic_t *__cil_tmp17 ;
34329  atomic_t *__cil_tmp18 ;
34330  atomic_t const   *__cil_tmp19 ;
34331  atomic_t *__cil_tmp20 ;
34332  atomic_t const   *__cil_tmp21 ;
34333
34334  {
34335  {
34336#line 661
34337  __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",
34338                661, 0);
34339  }
34340  {
34341#line 662
34342  __cil_tmp6 = (struct urb *)0;
34343#line 662
34344  __cil_tmp7 = (unsigned long )__cil_tmp6;
34345#line 662
34346  __cil_tmp8 = (unsigned long )urb;
34347#line 662
34348  if (__cil_tmp8 == __cil_tmp7) {
34349#line 663
34350    return;
34351  } else {
34352    {
34353#line 662
34354    __cil_tmp9 = (struct usb_device *)0;
34355#line 662
34356    __cil_tmp10 = (unsigned long )__cil_tmp9;
34357#line 662
34358    __cil_tmp11 = urb->dev;
34359#line 662
34360    __cil_tmp12 = (unsigned long )__cil_tmp11;
34361#line 662
34362    if (__cil_tmp12 == __cil_tmp10) {
34363#line 663
34364      return;
34365    } else {
34366      {
34367#line 662
34368      __cil_tmp13 = (struct usb_host_endpoint *)0;
34369#line 662
34370      __cil_tmp14 = (unsigned long )__cil_tmp13;
34371#line 662
34372      __cil_tmp15 = urb->ep;
34373#line 662
34374      __cil_tmp16 = (unsigned long )__cil_tmp15;
34375#line 662
34376      if (__cil_tmp16 == __cil_tmp14) {
34377#line 663
34378        return;
34379      } else {
34380
34381      }
34382      }
34383    }
34384    }
34385  }
34386  }
34387  {
34388#line 664
34389  __cil_tmp17 = & urb->reject;
34390#line 664
34391  atomic_inc(__cil_tmp17);
34392#line 666
34393  usb_hcd_unlink_urb(urb, -2);
34394#line 667
34395  __cil_tmp18 = & urb->use_count;
34396#line 667
34397  __cil_tmp19 = (atomic_t const   *)__cil_tmp18;
34398#line 667
34399  tmp = atomic_read(__cil_tmp19);
34400  }
34401#line 667
34402  if (tmp == 0) {
34403#line 667
34404    goto ldv_24223;
34405  } else {
34406
34407  }
34408  {
34409#line 667
34410  tmp___0 = get_current();
34411#line 667
34412  __wait.flags = 0U;
34413#line 667
34414  __wait.private = (void *)tmp___0;
34415#line 667
34416  __wait.func = & autoremove_wake_function;
34417#line 667
34418  __wait.task_list.next = & __wait.task_list;
34419#line 667
34420  __wait.task_list.prev = & __wait.task_list;
34421  }
34422  ldv_24226: 
34423  {
34424#line 667
34425  prepare_to_wait(& usb_kill_urb_queue, & __wait, 2);
34426#line 667
34427  __cil_tmp20 = & urb->use_count;
34428#line 667
34429  __cil_tmp21 = (atomic_t const   *)__cil_tmp20;
34430#line 667
34431  tmp___1 = atomic_read(__cil_tmp21);
34432  }
34433#line 667
34434  if (tmp___1 == 0) {
34435#line 667
34436    goto ldv_24225;
34437  } else {
34438
34439  }
34440  {
34441#line 667
34442  schedule();
34443  }
34444#line 667
34445  goto ldv_24226;
34446  ldv_24225: 
34447  {
34448#line 667
34449  finish_wait(& usb_kill_urb_queue, & __wait);
34450  }
34451  ldv_24223: ;
34452#line 670
34453  return;
34454}
34455}
34456#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"
34457void usb_unpoison_urb(struct urb *urb ) 
34458{ struct urb *__cil_tmp2 ;
34459  unsigned long __cil_tmp3 ;
34460  unsigned long __cil_tmp4 ;
34461  atomic_t *__cil_tmp5 ;
34462
34463  {
34464  {
34465#line 673
34466  __cil_tmp2 = (struct urb *)0;
34467#line 673
34468  __cil_tmp3 = (unsigned long )__cil_tmp2;
34469#line 673
34470  __cil_tmp4 = (unsigned long )urb;
34471#line 673
34472  if (__cil_tmp4 == __cil_tmp3) {
34473#line 674
34474    return;
34475  } else {
34476
34477  }
34478  }
34479  {
34480#line 676
34481  __cil_tmp5 = & urb->reject;
34482#line 676
34483  atomic_dec(__cil_tmp5);
34484  }
34485#line 677
34486  return;
34487}
34488}
34489#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"
34490void usb_kill_anchored_urbs(struct usb_anchor *anchor ) 
34491{ struct urb *victim ;
34492  struct list_head  const  *__mptr ;
34493  int tmp ;
34494  spinlock_t *__cil_tmp5 ;
34495  struct list_head *__cil_tmp6 ;
34496  struct urb *__cil_tmp7 ;
34497  spinlock_t *__cil_tmp8 ;
34498  spinlock_t *__cil_tmp9 ;
34499  struct list_head *__cil_tmp10 ;
34500  struct list_head  const  *__cil_tmp11 ;
34501  spinlock_t *__cil_tmp12 ;
34502
34503  {
34504  {
34505#line 694
34506  __cil_tmp5 = & anchor->lock;
34507#line 694
34508  spin_lock_irq(__cil_tmp5);
34509  }
34510#line 695
34511  goto ldv_24249;
34512  ldv_24248: 
34513  {
34514#line 696
34515  __cil_tmp6 = anchor->urb_list.prev;
34516#line 696
34517  __mptr = (struct list_head  const  *)__cil_tmp6;
34518#line 696
34519  __cil_tmp7 = (struct urb *)__mptr;
34520#line 696
34521  victim = __cil_tmp7 + 1152921504606846928UL;
34522#line 699
34523  usb_get_urb(victim);
34524#line 700
34525  __cil_tmp8 = & anchor->lock;
34526#line 700
34527  spin_unlock_irq(__cil_tmp8);
34528#line 702
34529  usb_kill_urb(victim);
34530#line 703
34531  usb_free_urb(victim);
34532#line 704
34533  __cil_tmp9 = & anchor->lock;
34534#line 704
34535  spin_lock_irq(__cil_tmp9);
34536  }
34537  ldv_24249: 
34538  {
34539#line 695
34540  __cil_tmp10 = & anchor->urb_list;
34541#line 695
34542  __cil_tmp11 = (struct list_head  const  *)__cil_tmp10;
34543#line 695
34544  tmp = list_empty(__cil_tmp11);
34545  }
34546#line 695
34547  if (tmp == 0) {
34548#line 696
34549    goto ldv_24248;
34550  } else {
34551#line 698
34552    goto ldv_24250;
34553  }
34554  ldv_24250: 
34555  {
34556#line 706
34557  __cil_tmp12 = & anchor->lock;
34558#line 706
34559  spin_unlock_irq(__cil_tmp12);
34560  }
34561#line 707
34562  return;
34563}
34564}
34565#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"
34566void usb_poison_anchored_urbs(struct usb_anchor *anchor ) 
34567{ struct urb *victim ;
34568  struct list_head  const  *__mptr ;
34569  int tmp ;
34570  spinlock_t *__cil_tmp5 ;
34571  struct list_head *__cil_tmp6 ;
34572  struct urb *__cil_tmp7 ;
34573  spinlock_t *__cil_tmp8 ;
34574  spinlock_t *__cil_tmp9 ;
34575  struct list_head *__cil_tmp10 ;
34576  struct list_head  const  *__cil_tmp11 ;
34577  spinlock_t *__cil_tmp12 ;
34578
34579  {
34580  {
34581#line 726
34582  __cil_tmp5 = & anchor->lock;
34583#line 726
34584  spin_lock_irq(__cil_tmp5);
34585#line 727
34586  anchor->poisoned = (unsigned char)1;
34587  }
34588#line 728
34589  goto ldv_24264;
34590  ldv_24263: 
34591  {
34592#line 729
34593  __cil_tmp6 = anchor->urb_list.prev;
34594#line 729
34595  __mptr = (struct list_head  const  *)__cil_tmp6;
34596#line 729
34597  __cil_tmp7 = (struct urb *)__mptr;
34598#line 729
34599  victim = __cil_tmp7 + 1152921504606846928UL;
34600#line 732
34601  usb_get_urb(victim);
34602#line 733
34603  __cil_tmp8 = & anchor->lock;
34604#line 733
34605  spin_unlock_irq(__cil_tmp8);
34606#line 735
34607  usb_poison_urb(victim);
34608#line 736
34609  usb_free_urb(victim);
34610#line 737
34611  __cil_tmp9 = & anchor->lock;
34612#line 737
34613  spin_lock_irq(__cil_tmp9);
34614  }
34615  ldv_24264: 
34616  {
34617#line 728
34618  __cil_tmp10 = & anchor->urb_list;
34619#line 728
34620  __cil_tmp11 = (struct list_head  const  *)__cil_tmp10;
34621#line 728
34622  tmp = list_empty(__cil_tmp11);
34623  }
34624#line 728
34625  if (tmp == 0) {
34626#line 729
34627    goto ldv_24263;
34628  } else {
34629#line 731
34630    goto ldv_24265;
34631  }
34632  ldv_24265: 
34633  {
34634#line 739
34635  __cil_tmp12 = & anchor->lock;
34636#line 739
34637  spin_unlock_irq(__cil_tmp12);
34638  }
34639#line 740
34640  return;
34641}
34642}
34643#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"
34644void usb_unpoison_anchored_urbs(struct usb_anchor *anchor ) 
34645{ unsigned long flags ;
34646  struct urb *lazarus ;
34647  raw_spinlock_t *tmp ;
34648  struct list_head  const  *__mptr ;
34649  struct list_head  const  *__mptr___0 ;
34650  spinlock_t *__cil_tmp7 ;
34651  struct list_head *__cil_tmp8 ;
34652  struct urb *__cil_tmp9 ;
34653  struct list_head *__cil_tmp10 ;
34654  struct urb *__cil_tmp11 ;
34655  struct list_head *__cil_tmp12 ;
34656  unsigned long __cil_tmp13 ;
34657  struct list_head *__cil_tmp14 ;
34658  unsigned long __cil_tmp15 ;
34659  spinlock_t *__cil_tmp16 ;
34660
34661  {
34662  {
34663#line 755
34664  __cil_tmp7 = & anchor->lock;
34665#line 755
34666  tmp = spinlock_check(__cil_tmp7);
34667#line 755
34668  flags = _raw_spin_lock_irqsave(tmp);
34669#line 756
34670  __cil_tmp8 = anchor->urb_list.next;
34671#line 756
34672  __mptr = (struct list_head  const  *)__cil_tmp8;
34673#line 756
34674  __cil_tmp9 = (struct urb *)__mptr;
34675#line 756
34676  lazarus = __cil_tmp9 + 1152921504606846928UL;
34677  }
34678#line 756
34679  goto ldv_24285;
34680  ldv_24284: 
34681  {
34682#line 757
34683  usb_unpoison_urb(lazarus);
34684#line 756
34685  __cil_tmp10 = lazarus->anchor_list.next;
34686#line 756
34687  __mptr___0 = (struct list_head  const  *)__cil_tmp10;
34688#line 756
34689  __cil_tmp11 = (struct urb *)__mptr___0;
34690#line 756
34691  lazarus = __cil_tmp11 + 1152921504606846928UL;
34692  }
34693  ldv_24285: ;
34694  {
34695#line 756
34696  __cil_tmp12 = & anchor->urb_list;
34697#line 756
34698  __cil_tmp13 = (unsigned long )__cil_tmp12;
34699#line 756
34700  __cil_tmp14 = & lazarus->anchor_list;
34701#line 756
34702  __cil_tmp15 = (unsigned long )__cil_tmp14;
34703#line 756
34704  if (__cil_tmp15 != __cil_tmp13) {
34705#line 757
34706    goto ldv_24284;
34707  } else {
34708#line 759
34709    goto ldv_24286;
34710  }
34711  }
34712  ldv_24286: 
34713  {
34714#line 759
34715  anchor->poisoned = (unsigned char)0;
34716#line 760
34717  __cil_tmp16 = & anchor->lock;
34718#line 760
34719  spin_unlock_irqrestore(__cil_tmp16, flags);
34720  }
34721#line 761
34722  return;
34723}
34724}
34725#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"
34726void usb_unlink_anchored_urbs(struct usb_anchor *anchor ) 
34727{ struct urb *victim ;
34728  struct urb *__cil_tmp3 ;
34729  unsigned long __cil_tmp4 ;
34730  unsigned long __cil_tmp5 ;
34731
34732  {
34733#line 779
34734  goto ldv_24298;
34735  ldv_24297: 
34736  {
34737#line 780
34738  usb_unlink_urb(victim);
34739#line 781
34740  usb_free_urb(victim);
34741  }
34742  ldv_24298: 
34743  {
34744#line 779
34745  victim = usb_get_from_anchor(anchor);
34746  }
34747  {
34748#line 779
34749  __cil_tmp3 = (struct urb *)0;
34750#line 779
34751  __cil_tmp4 = (unsigned long )__cil_tmp3;
34752#line 779
34753  __cil_tmp5 = (unsigned long )victim;
34754#line 779
34755  if (__cil_tmp5 != __cil_tmp4) {
34756#line 780
34757    goto ldv_24297;
34758  } else {
34759#line 782
34760    goto ldv_24299;
34761  }
34762  }
34763  ldv_24299: ;
34764#line 784
34765  return;
34766}
34767}
34768#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"
34769int usb_wait_anchor_empty_timeout(struct usb_anchor *anchor , unsigned int timeout ) 
34770{ long __ret ;
34771  unsigned long tmp ;
34772  wait_queue_t __wait ;
34773  struct task_struct *tmp___0 ;
34774  int tmp___1 ;
34775  int tmp___2 ;
34776  unsigned int __cil_tmp9 ;
34777  unsigned int __cil_tmp10 ;
34778  struct list_head *__cil_tmp11 ;
34779  struct list_head  const  *__cil_tmp12 ;
34780  wait_queue_head_t *__cil_tmp13 ;
34781  struct list_head *__cil_tmp14 ;
34782  struct list_head  const  *__cil_tmp15 ;
34783  wait_queue_head_t *__cil_tmp16 ;
34784
34785  {
34786  {
34787#line 797
34788  __cil_tmp9 = (unsigned int const   )timeout;
34789#line 797
34790  __cil_tmp10 = (unsigned int )__cil_tmp9;
34791#line 797
34792  tmp = msecs_to_jiffies(__cil_tmp10);
34793#line 797
34794  __ret = (long )tmp;
34795#line 797
34796  __cil_tmp11 = & anchor->urb_list;
34797#line 797
34798  __cil_tmp12 = (struct list_head  const  *)__cil_tmp11;
34799#line 797
34800  tmp___2 = list_empty(__cil_tmp12);
34801  }
34802#line 797
34803  if (tmp___2 == 0) {
34804    {
34805#line 797
34806    tmp___0 = get_current();
34807#line 797
34808    __wait.flags = 0U;
34809#line 797
34810    __wait.private = (void *)tmp___0;
34811#line 797
34812    __wait.func = & autoremove_wake_function;
34813#line 797
34814    __wait.task_list.next = & __wait.task_list;
34815#line 797
34816    __wait.task_list.prev = & __wait.task_list;
34817    }
34818    ldv_24313: 
34819    {
34820#line 797
34821    __cil_tmp13 = & anchor->wait;
34822#line 797
34823    prepare_to_wait(__cil_tmp13, & __wait, 2);
34824#line 797
34825    __cil_tmp14 = & anchor->urb_list;
34826#line 797
34827    __cil_tmp15 = (struct list_head  const  *)__cil_tmp14;
34828#line 797
34829    tmp___1 = list_empty(__cil_tmp15);
34830    }
34831#line 797
34832    if (tmp___1 != 0) {
34833#line 797
34834      goto ldv_24312;
34835    } else {
34836
34837    }
34838    {
34839#line 797
34840    __ret = schedule_timeout(__ret);
34841    }
34842#line 797
34843    if (__ret == 0L) {
34844#line 797
34845      goto ldv_24312;
34846    } else {
34847
34848    }
34849#line 797
34850    goto ldv_24313;
34851    ldv_24312: 
34852    {
34853#line 797
34854    __cil_tmp16 = & anchor->wait;
34855#line 797
34856    finish_wait(__cil_tmp16, & __wait);
34857    }
34858  } else {
34859
34860  }
34861#line 797
34862  return ((int )__ret);
34863}
34864}
34865#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"
34866struct urb *usb_get_from_anchor(struct usb_anchor *anchor ) 
34867{ struct urb *victim ;
34868  unsigned long flags ;
34869  raw_spinlock_t *tmp ;
34870  struct list_head  const  *__mptr ;
34871  int tmp___0 ;
34872  spinlock_t *__cil_tmp7 ;
34873  struct list_head *__cil_tmp8 ;
34874  struct list_head  const  *__cil_tmp9 ;
34875  struct list_head *__cil_tmp10 ;
34876  struct urb *__cil_tmp11 ;
34877  spinlock_t *__cil_tmp12 ;
34878
34879  {
34880  {
34881#line 814
34882  __cil_tmp7 = & anchor->lock;
34883#line 814
34884  tmp = spinlock_check(__cil_tmp7);
34885#line 814
34886  flags = _raw_spin_lock_irqsave(tmp);
34887#line 815
34888  __cil_tmp8 = & anchor->urb_list;
34889#line 815
34890  __cil_tmp9 = (struct list_head  const  *)__cil_tmp8;
34891#line 815
34892  tmp___0 = list_empty(__cil_tmp9);
34893  }
34894#line 815
34895  if (tmp___0 == 0) {
34896    {
34897#line 816
34898    __cil_tmp10 = anchor->urb_list.next;
34899#line 816
34900    __mptr = (struct list_head  const  *)__cil_tmp10;
34901#line 816
34902    __cil_tmp11 = (struct urb *)__mptr;
34903#line 816
34904    victim = __cil_tmp11 + 1152921504606846928UL;
34905#line 818
34906    usb_get_urb(victim);
34907#line 819
34908    __usb_unanchor_urb(victim, anchor);
34909    }
34910  } else {
34911#line 821
34912    victim = (struct urb *)0;
34913  }
34914  {
34915#line 823
34916  __cil_tmp12 = & anchor->lock;
34917#line 823
34918  spin_unlock_irqrestore(__cil_tmp12, flags);
34919  }
34920#line 825
34921  return (victim);
34922}
34923}
34924#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"
34925void usb_scuttle_anchored_urbs(struct usb_anchor *anchor ) 
34926{ struct urb *victim ;
34927  unsigned long flags ;
34928  raw_spinlock_t *tmp ;
34929  struct list_head  const  *__mptr ;
34930  int tmp___0 ;
34931  spinlock_t *__cil_tmp7 ;
34932  struct list_head *__cil_tmp8 ;
34933  struct urb *__cil_tmp9 ;
34934  struct list_head *__cil_tmp10 ;
34935  struct list_head  const  *__cil_tmp11 ;
34936  spinlock_t *__cil_tmp12 ;
34937
34938  {
34939  {
34940#line 841
34941  __cil_tmp7 = & anchor->lock;
34942#line 841
34943  tmp = spinlock_check(__cil_tmp7);
34944#line 841
34945  flags = _raw_spin_lock_irqsave(tmp);
34946  }
34947#line 842
34948  goto ldv_24349;
34949  ldv_24348: 
34950  {
34951#line 843
34952  __cil_tmp8 = anchor->urb_list.prev;
34953#line 843
34954  __mptr = (struct list_head  const  *)__cil_tmp8;
34955#line 843
34956  __cil_tmp9 = (struct urb *)__mptr;
34957#line 843
34958  victim = __cil_tmp9 + 1152921504606846928UL;
34959#line 845
34960  __usb_unanchor_urb(victim, anchor);
34961  }
34962  ldv_24349: 
34963  {
34964#line 842
34965  __cil_tmp10 = & anchor->urb_list;
34966#line 842
34967  __cil_tmp11 = (struct list_head  const  *)__cil_tmp10;
34968#line 842
34969  tmp___0 = list_empty(__cil_tmp11);
34970  }
34971#line 842
34972  if (tmp___0 == 0) {
34973#line 843
34974    goto ldv_24348;
34975  } else {
34976#line 845
34977    goto ldv_24350;
34978  }
34979  ldv_24350: 
34980  {
34981#line 847
34982  __cil_tmp12 = & anchor->lock;
34983#line 847
34984  spin_unlock_irqrestore(__cil_tmp12, flags);
34985  }
34986#line 848
34987  return;
34988}
34989}
34990#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"
34991int usb_anchor_empty(struct usb_anchor *anchor ) 
34992{ int tmp ;
34993  struct list_head *__cil_tmp3 ;
34994  struct list_head  const  *__cil_tmp4 ;
34995
34996  {
34997  {
34998#line 860
34999  __cil_tmp3 = & anchor->urb_list;
35000#line 860
35001  __cil_tmp4 = (struct list_head  const  *)__cil_tmp3;
35002#line 860
35003  tmp = list_empty(__cil_tmp4);
35004  }
35005#line 860
35006  return (tmp);
35007}
35008}
35009#line 702 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
35010__inline static void rep_nop(void) 
35011{ 
35012
35013  {
35014#line 704
35015  __asm__  volatile   ("rep; nop": : : "memory");
35016#line 705
35017  return;
35018}
35019}
35020#line 707 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/processor.h"
35021__inline static void cpu_relax(void) 
35022{ 
35023
35024  {
35025  {
35026#line 709
35027  rep_nop();
35028  }
35029#line 710
35030  return;
35031}
35032}
35033#line 80 "include/linux/wait.h"
35034extern void __init_waitqueue_head(wait_queue_head_t * , struct lock_class_key * ) ;
35035#line 73 "include/linux/completion.h"
35036__inline static void init_completion(struct completion *x ) 
35037{ struct lock_class_key __key ;
35038  wait_queue_head_t *__cil_tmp3 ;
35039
35040  {
35041  {
35042#line 75
35043  x->done = 0U;
35044#line 76
35045  __cil_tmp3 = & x->wait;
35046#line 76
35047  __init_waitqueue_head(__cil_tmp3, & __key);
35048  }
35049#line 78
35050  return;
35051}
35052}
35053#line 79
35054extern void wait_for_completion(struct completion * ) ;
35055#line 82
35056extern unsigned long wait_for_completion_timeout(struct completion * , unsigned long  ) ;
35057#line 91
35058extern void complete(struct completion * ) ;
35059#line 649 "include/linux/device.h"
35060__inline static int device_is_registered(struct device *dev ) 
35061{ unsigned char __cil_tmp2 ;
35062
35063  {
35064  {
35065#line 651
35066  __cil_tmp2 = dev->kobj.state_in_sysfs;
35067#line 651
35068  return ((int )__cil_tmp2);
35069  }
35070}
35071}
35072#line 245 "include/linux/page-flags.h"
35073__inline static int PageHighMem(struct page *page ) 
35074{ 
35075
35076  {
35077#line 245
35078  return (0);
35079}
35080}
35081#line 93 "include/linux/scatterlist.h"
35082__inline static struct page *sg_page___0(struct scatterlist *sg ) 
35083{ long tmp ;
35084  long tmp___0 ;
35085  unsigned long __cil_tmp4 ;
35086  int __cil_tmp5 ;
35087  long __cil_tmp6 ;
35088  unsigned long __cil_tmp7 ;
35089  int __cil_tmp8 ;
35090  long __cil_tmp9 ;
35091  long __cil_tmp10 ;
35092  unsigned long __cil_tmp11 ;
35093  unsigned long __cil_tmp12 ;
35094
35095  {
35096  {
35097#line 96
35098  __cil_tmp4 = sg->sg_magic;
35099#line 96
35100  __cil_tmp5 = __cil_tmp4 != 2271560481UL;
35101#line 96
35102  __cil_tmp6 = (long )__cil_tmp5;
35103#line 96
35104  tmp = __builtin_expect(__cil_tmp6, 0L);
35105  }
35106#line 96
35107  if (tmp != 0L) {
35108#line 96
35109    __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"),
35110                         "i" (96), "i" (12UL));
35111    ldv_18514: ;
35112#line 96
35113    goto ldv_18514;
35114  } else {
35115
35116  }
35117  {
35118#line 97
35119  __cil_tmp7 = sg->page_link;
35120#line 97
35121  __cil_tmp8 = (int )__cil_tmp7;
35122#line 97
35123  __cil_tmp9 = (long )__cil_tmp8;
35124#line 97
35125  __cil_tmp10 = __cil_tmp9 & 1L;
35126#line 97
35127  tmp___0 = __builtin_expect(__cil_tmp10, 0L);
35128  }
35129#line 97
35130  if (tmp___0 != 0L) {
35131#line 97
35132    __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"),
35133                         "i" (97), "i" (12UL));
35134    ldv_18515: ;
35135#line 97
35136    goto ldv_18515;
35137  } else {
35138
35139  }
35140  {
35141#line 99
35142  __cil_tmp11 = sg->page_link;
35143#line 99
35144  __cil_tmp12 = __cil_tmp11 & 1152921504606846972UL;
35145#line 99
35146  return ((struct page *)__cil_tmp12);
35147  }
35148}
35149}
35150#line 197 "include/linux/scatterlist.h"
35151__inline static void *sg_virt___0(struct scatterlist *sg ) 
35152{ struct page *tmp ;
35153  void *tmp___0 ;
35154  unsigned int __cil_tmp4 ;
35155  unsigned long __cil_tmp5 ;
35156
35157  {
35158  {
35159#line 199
35160  tmp = sg_page___0(sg);
35161#line 199
35162  tmp___0 = lowmem_page_address(tmp);
35163  }
35164  {
35165#line 199
35166  __cil_tmp4 = sg->offset;
35167#line 199
35168  __cil_tmp5 = (unsigned long )__cil_tmp4;
35169#line 199
35170  return (tmp___0 + __cil_tmp5);
35171  }
35172}
35173}
35174#line 2051 "include/linux/sched.h"
35175extern void yield(void) ;
35176#line 42 "include/linux/pm_runtime.h"
35177extern void pm_runtime_no_callbacks(struct device * ) ;
35178#line 1237 "include/linux/usb.h"
35179__inline static void usb_fill_control_urb(struct urb *urb , struct usb_device *dev ,
35180                                          unsigned int pipe , unsigned char *setup_packet ,
35181                                          void *transfer_buffer , int buffer_length ,
35182                                          void (*complete_fn)(struct urb * ) , void *context ) 
35183{ 
35184
35185  {
35186#line 1246
35187  urb->dev = dev;
35188#line 1247
35189  urb->pipe = pipe;
35190#line 1248
35191  urb->setup_packet = setup_packet;
35192#line 1249
35193  urb->transfer_buffer = transfer_buffer;
35194#line 1250
35195  urb->transfer_buffer_length = (u32 )buffer_length;
35196#line 1251
35197  urb->complete = complete_fn;
35198#line 1252
35199  urb->context = context;
35200#line 1253
35201  return;
35202}
35203}
35204#line 1268 "include/linux/usb.h"
35205__inline static void usb_fill_bulk_urb(struct urb *urb , struct usb_device *dev ,
35206                                       unsigned int pipe , void *transfer_buffer ,
35207                                       int buffer_length , void (*complete_fn)(struct urb * ) ,
35208                                       void *context ) 
35209{ 
35210
35211  {
35212#line 1276
35213  urb->dev = dev;
35214#line 1277
35215  urb->pipe = pipe;
35216#line 1278
35217  urb->transfer_buffer = transfer_buffer;
35218#line 1279
35219  urb->transfer_buffer_length = (u32 )buffer_length;
35220#line 1280
35221  urb->complete = complete_fn;
35222#line 1281
35223  urb->context = context;
35224#line 1282
35225  return;
35226}
35227}
35228#line 1405
35229int usb_interrupt_msg(struct usb_device *usb_dev , unsigned int pipe , void *data ,
35230                      int len , int *actual_length , int timeout ) ;
35231#line 1407
35232int usb_bulk_msg(struct usb_device *usb_dev , unsigned int pipe , void *data , int len ,
35233                 int *actual_length , int timeout ) ;
35234#line 1420
35235int usb_clear_halt(struct usb_device *dev , int pipe ) ;
35236#line 1421
35237int usb_reset_configuration(struct usb_device *dev ) ;
35238#line 1423
35239void usb_reset_endpoint(struct usb_device *dev , unsigned int epaddr ) ;
35240#line 1426
35241int usb_driver_set_configuration(struct usb_device *udev , int config ) ;
35242#line 1474
35243int usb_sg_init(struct usb_sg_request *io , struct usb_device *dev , unsigned int pipe ,
35244                unsigned int period , struct scatterlist *sg , int nents , size_t length ,
35245                gfp_t mem_flags ) ;
35246#line 1484
35247void usb_sg_cancel(struct usb_sg_request *io ) ;
35248#line 1485
35249void usb_sg_wait(struct usb_sg_request *io ) ;
35250#line 18 "include/linux/ctype.h"
35251extern unsigned char const   _ctype[] ;
35252#line 56 "include/linux/nls.h"
35253extern int utf16s_to_utf8s(wchar_t const   * , int  , enum utf16_endian  , u8 * ,
35254                           int  ) ;
35255#line 22 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
35256void usb_release_interface_cache(struct kref *ref ) ;
35257#line 147
35258struct attribute_group  const  *usb_interface_groups[3U] ;
35259#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"
35260static void cancel_async_set_config(struct usb_device *udev ) ;
35261#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"
35262static void usb_api_blocking_completion(struct urb *urb ) 
35263{ struct api_context *ctx ;
35264  void *__cil_tmp3 ;
35265  struct completion *__cil_tmp4 ;
35266
35267  {
35268  {
35269#line 39
35270  __cil_tmp3 = urb->context;
35271#line 39
35272  ctx = (struct api_context *)__cil_tmp3;
35273#line 41
35274  ctx->status = urb->status;
35275#line 42
35276  __cil_tmp4 = & ctx->done;
35277#line 42
35278  complete(__cil_tmp4);
35279  }
35280#line 43
35281  return;
35282}
35283}
35284#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"
35285static int usb_start_wait_urb(struct urb *urb , int timeout , int *actual_length ) 
35286{ struct api_context ctx ;
35287  unsigned long expire ;
35288  int retval ;
35289  long tmp ;
35290  unsigned long tmp___0 ;
35291  char *tmp___2 ;
35292  int tmp___3 ;
35293  int tmp___4 ;
35294  struct task_struct *tmp___5 ;
35295  unsigned long tmp___6 ;
35296  struct completion *__cil_tmp14 ;
35297  int __cil_tmp15 ;
35298  long __cil_tmp16 ;
35299  unsigned int __cil_tmp17 ;
35300  unsigned int __cil_tmp18 ;
35301  struct completion *__cil_tmp19 ;
35302  struct usb_host_endpoint *__cil_tmp20 ;
35303  struct usb_endpoint_descriptor *__cil_tmp21 ;
35304  struct usb_endpoint_descriptor  const  *__cil_tmp22 ;
35305  struct usb_device *__cil_tmp23 ;
35306  struct device *__cil_tmp24 ;
35307  struct device  const  *__cil_tmp25 ;
35308  char (*__cil_tmp26)[16U] ;
35309  char *__cil_tmp27 ;
35310  u32 __cil_tmp28 ;
35311  u32 __cil_tmp29 ;
35312  int *__cil_tmp30 ;
35313  unsigned long __cil_tmp31 ;
35314  unsigned long __cil_tmp32 ;
35315  u32 __cil_tmp33 ;
35316
35317  {
35318  {
35319#line 58
35320  __cil_tmp14 = & ctx.done;
35321#line 58
35322  init_completion(__cil_tmp14);
35323#line 59
35324  urb->context = (void *)(& ctx);
35325#line 60
35326  urb->actual_length = 0U;
35327#line 61
35328  retval = usb_submit_urb(urb, 16U);
35329#line 62
35330  __cil_tmp15 = retval != 0;
35331#line 62
35332  __cil_tmp16 = (long )__cil_tmp15;
35333#line 62
35334  tmp = __builtin_expect(__cil_tmp16, 0L);
35335  }
35336#line 62
35337  if (tmp != 0L) {
35338#line 63
35339    goto out;
35340  } else {
35341
35342  }
35343#line 65
35344  if (timeout != 0) {
35345    {
35346#line 65
35347    __cil_tmp17 = (unsigned int const   )timeout;
35348#line 65
35349    __cil_tmp18 = (unsigned int )__cil_tmp17;
35350#line 65
35351    tmp___0 = msecs_to_jiffies(__cil_tmp18);
35352#line 65
35353    expire = tmp___0;
35354    }
35355  } else {
35356#line 65
35357    expire = 9223372036854775807UL;
35358  }
35359  {
35360#line 66
35361  __cil_tmp19 = & ctx.done;
35362#line 66
35363  tmp___6 = wait_for_completion_timeout(__cil_tmp19, expire);
35364  }
35365#line 66
35366  if (tmp___6 == 0UL) {
35367    {
35368#line 67
35369    usb_kill_urb(urb);
35370    }
35371#line 68
35372    if (ctx.status != -2) {
35373#line 68
35374      retval = ctx.status;
35375    } else {
35376#line 68
35377      retval = -110;
35378    }
35379    {
35380#line 70
35381    tmp___3 = usb_urb_dir_in(urb);
35382    }
35383#line 70
35384    if (tmp___3 != 0) {
35385#line 70
35386      tmp___2 = (char *)"in";
35387    } else {
35388#line 70
35389      tmp___2 = (char *)"out";
35390    }
35391    {
35392#line 70
35393    __cil_tmp20 = urb->ep;
35394#line 70
35395    __cil_tmp21 = & __cil_tmp20->desc;
35396#line 70
35397    __cil_tmp22 = (struct usb_endpoint_descriptor  const  *)__cil_tmp21;
35398#line 70
35399    tmp___4 = usb_endpoint_num(__cil_tmp22);
35400#line 70
35401    tmp___5 = get_current();
35402#line 70
35403    __cil_tmp23 = urb->dev;
35404#line 70
35405    __cil_tmp24 = & __cil_tmp23->dev;
35406#line 70
35407    __cil_tmp25 = (struct device  const  *)__cil_tmp24;
35408#line 70
35409    __cil_tmp26 = & tmp___5->comm;
35410#line 70
35411    __cil_tmp27 = (char *)__cil_tmp26;
35412#line 70
35413    __cil_tmp28 = urb->actual_length;
35414#line 70
35415    __cil_tmp29 = urb->transfer_buffer_length;
35416#line 70
35417    dev_printk("<7>", __cil_tmp25, "%s timed out on ep%d%s len=%u/%u\n", __cil_tmp27,
35418               tmp___4, tmp___2, __cil_tmp28, __cil_tmp29);
35419    }
35420  } else {
35421#line 78
35422    retval = ctx.status;
35423  }
35424  out: ;
35425  {
35426#line 80
35427  __cil_tmp30 = (int *)0;
35428#line 80
35429  __cil_tmp31 = (unsigned long )__cil_tmp30;
35430#line 80
35431  __cil_tmp32 = (unsigned long )actual_length;
35432#line 80
35433  if (__cil_tmp32 != __cil_tmp31) {
35434#line 81
35435    __cil_tmp33 = urb->actual_length;
35436#line 81
35437    *actual_length = (int )__cil_tmp33;
35438  } else {
35439
35440  }
35441  }
35442  {
35443#line 83
35444  usb_free_urb(urb);
35445  }
35446#line 84
35447  return (retval);
35448}
35449}
35450#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"
35451static int usb_internal_control_msg(struct usb_device *usb_dev , unsigned int pipe ,
35452                                    struct usb_ctrlrequest *cmd , void *data , int len ,
35453                                    int timeout ) 
35454{ struct urb *urb ;
35455  int retv ;
35456  int length ;
35457  struct urb *__cil_tmp10 ;
35458  unsigned long __cil_tmp11 ;
35459  unsigned long __cil_tmp12 ;
35460  unsigned char *__cil_tmp13 ;
35461  void *__cil_tmp14 ;
35462
35463  {
35464  {
35465#line 98
35466  urb = usb_alloc_urb(0, 16U);
35467  }
35468  {
35469#line 99
35470  __cil_tmp10 = (struct urb *)0;
35471#line 99
35472  __cil_tmp11 = (unsigned long )__cil_tmp10;
35473#line 99
35474  __cil_tmp12 = (unsigned long )urb;
35475#line 99
35476  if (__cil_tmp12 == __cil_tmp11) {
35477#line 100
35478    return (-12);
35479  } else {
35480
35481  }
35482  }
35483  {
35484#line 102
35485  __cil_tmp13 = (unsigned char *)cmd;
35486#line 102
35487  __cil_tmp14 = (void *)0;
35488#line 102
35489  usb_fill_control_urb(urb, usb_dev, pipe, __cil_tmp13, data, len, & usb_api_blocking_completion,
35490                       __cil_tmp14);
35491#line 105
35492  retv = usb_start_wait_urb(urb, timeout, & length);
35493  }
35494#line 106
35495  if (retv < 0) {
35496#line 107
35497    return (retv);
35498  } else {
35499#line 109
35500    return (length);
35501  }
35502}
35503}
35504#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"
35505int usb_control_msg(struct usb_device *dev , unsigned int pipe , __u8 request , __u8 requesttype ,
35506                    __u16 value , __u16 index , void *data , __u16 size , int timeout ) 
35507{ struct usb_ctrlrequest *dr ;
35508  int ret ;
35509  void *tmp ;
35510  struct usb_ctrlrequest *__cil_tmp13 ;
35511  unsigned long __cil_tmp14 ;
35512  unsigned long __cil_tmp15 ;
35513  int __cil_tmp16 ;
35514  void const   *__cil_tmp17 ;
35515
35516  {
35517  {
35518#line 147
35519  tmp = kmalloc(8UL, 16U);
35520#line 147
35521  dr = (struct usb_ctrlrequest *)tmp;
35522  }
35523  {
35524#line 148
35525  __cil_tmp13 = (struct usb_ctrlrequest *)0;
35526#line 148
35527  __cil_tmp14 = (unsigned long )__cil_tmp13;
35528#line 148
35529  __cil_tmp15 = (unsigned long )dr;
35530#line 148
35531  if (__cil_tmp15 == __cil_tmp14) {
35532#line 149
35533    return (-12);
35534  } else {
35535
35536  }
35537  }
35538  {
35539#line 151
35540  dr->bRequestType = requesttype;
35541#line 152
35542  dr->bRequest = request;
35543#line 153
35544  dr->wValue = value;
35545#line 154
35546  dr->wIndex = index;
35547#line 155
35548  dr->wLength = size;
35549#line 159
35550  __cil_tmp16 = (int )size;
35551#line 159
35552  ret = usb_internal_control_msg(dev, pipe, dr, data, __cil_tmp16, timeout);
35553#line 161
35554  __cil_tmp17 = (void const   *)dr;
35555#line 161
35556  kfree(__cil_tmp17);
35557  }
35558#line 163
35559  return (ret);
35560}
35561}
35562#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"
35563int usb_interrupt_msg(struct usb_device *usb_dev , unsigned int pipe , void *data ,
35564                      int len , int *actual_length , int timeout ) 
35565{ int tmp ;
35566
35567  {
35568  {
35569#line 196
35570  tmp = usb_bulk_msg(usb_dev, pipe, data, len, actual_length, timeout);
35571  }
35572#line 196
35573  return (tmp);
35574}
35575}
35576#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"
35577int usb_bulk_msg(struct usb_device *usb_dev , unsigned int pipe , void *data , int len ,
35578                 int *actual_length , int timeout ) 
35579{ struct urb *urb ;
35580  struct usb_host_endpoint *ep ;
35581  int tmp ;
35582  struct usb_host_endpoint *__cil_tmp10 ;
35583  unsigned long __cil_tmp11 ;
35584  unsigned long __cil_tmp12 ;
35585  struct urb *__cil_tmp13 ;
35586  unsigned long __cil_tmp14 ;
35587  unsigned long __cil_tmp15 ;
35588  __u8 __cil_tmp16 ;
35589  int __cil_tmp17 ;
35590  int __cil_tmp18 ;
35591  unsigned int __cil_tmp19 ;
35592  void *__cil_tmp20 ;
35593  __u8 __cil_tmp21 ;
35594  int __cil_tmp22 ;
35595  void *__cil_tmp23 ;
35596
35597  {
35598  {
35599#line 237
35600  ep = usb_pipe_endpoint(usb_dev, pipe);
35601  }
35602  {
35603#line 238
35604  __cil_tmp10 = (struct usb_host_endpoint *)0;
35605#line 238
35606  __cil_tmp11 = (unsigned long )__cil_tmp10;
35607#line 238
35608  __cil_tmp12 = (unsigned long )ep;
35609#line 238
35610  if (__cil_tmp12 == __cil_tmp11) {
35611#line 239
35612    return (-22);
35613  } else
35614#line 238
35615  if (len < 0) {
35616#line 239
35617    return (-22);
35618  } else {
35619
35620  }
35621  }
35622  {
35623#line 241
35624  urb = usb_alloc_urb(0, 208U);
35625  }
35626  {
35627#line 242
35628  __cil_tmp13 = (struct urb *)0;
35629#line 242
35630  __cil_tmp14 = (unsigned long )__cil_tmp13;
35631#line 242
35632  __cil_tmp15 = (unsigned long )urb;
35633#line 242
35634  if (__cil_tmp15 == __cil_tmp14) {
35635#line 243
35636    return (-12);
35637  } else {
35638
35639  }
35640  }
35641  {
35642#line 245
35643  __cil_tmp16 = ep->desc.bmAttributes;
35644#line 245
35645  __cil_tmp17 = (int )__cil_tmp16;
35646#line 245
35647  __cil_tmp18 = __cil_tmp17 & 3;
35648#line 245
35649  if (__cil_tmp18 == 3) {
35650    {
35651#line 247
35652    __cil_tmp19 = pipe & 1073741823U;
35653#line 247
35654    pipe = __cil_tmp19 | 1073741824U;
35655#line 248
35656    __cil_tmp20 = (void *)0;
35657#line 248
35658    __cil_tmp21 = ep->desc.bInterval;
35659#line 248
35660    __cil_tmp22 = (int )__cil_tmp21;
35661#line 248
35662    usb_fill_int_urb(urb, usb_dev, pipe, data, len, & usb_api_blocking_completion,
35663                     __cil_tmp20, __cil_tmp22);
35664    }
35665  } else {
35666    {
35667#line 252
35668    __cil_tmp23 = (void *)0;
35669#line 252
35670    usb_fill_bulk_urb(urb, usb_dev, pipe, data, len, & usb_api_blocking_completion,
35671                      __cil_tmp23);
35672    }
35673  }
35674  }
35675  {
35676#line 255
35677  tmp = usb_start_wait_urb(urb, timeout, actual_length);
35678  }
35679#line 255
35680  return (tmp);
35681}
35682}
35683#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"
35684static void sg_clean(struct usb_sg_request *io ) 
35685{ int tmp ;
35686  struct urb **__cil_tmp3 ;
35687  unsigned long __cil_tmp4 ;
35688  struct urb **__cil_tmp5 ;
35689  unsigned long __cil_tmp6 ;
35690  int __cil_tmp7 ;
35691  unsigned long __cil_tmp8 ;
35692  struct urb **__cil_tmp9 ;
35693  struct urb **__cil_tmp10 ;
35694  struct urb *__cil_tmp11 ;
35695  int __cil_tmp12 ;
35696  struct urb **__cil_tmp13 ;
35697  void const   *__cil_tmp14 ;
35698
35699  {
35700  {
35701#line 263
35702  __cil_tmp3 = (struct urb **)0;
35703#line 263
35704  __cil_tmp4 = (unsigned long )__cil_tmp3;
35705#line 263
35706  __cil_tmp5 = io->urbs;
35707#line 263
35708  __cil_tmp6 = (unsigned long )__cil_tmp5;
35709#line 263
35710  if (__cil_tmp6 != __cil_tmp4) {
35711#line 264
35712    goto ldv_28792;
35713    ldv_28791: 
35714    {
35715#line 265
35716    __cil_tmp7 = io->entries;
35717#line 265
35718    __cil_tmp8 = (unsigned long )__cil_tmp7;
35719#line 265
35720    __cil_tmp9 = io->urbs;
35721#line 265
35722    __cil_tmp10 = __cil_tmp9 + __cil_tmp8;
35723#line 265
35724    __cil_tmp11 = *__cil_tmp10;
35725#line 265
35726    usb_free_urb(__cil_tmp11);
35727    }
35728    ldv_28792: 
35729#line 264
35730    tmp = io->entries;
35731#line 264
35732    __cil_tmp12 = io->entries;
35733#line 264
35734    io->entries = __cil_tmp12 - 1;
35735#line 264
35736    if (tmp != 0) {
35737#line 265
35738      goto ldv_28791;
35739    } else {
35740#line 267
35741      goto ldv_28793;
35742    }
35743    ldv_28793: 
35744    {
35745#line 266
35746    __cil_tmp13 = io->urbs;
35747#line 266
35748    __cil_tmp14 = (void const   *)__cil_tmp13;
35749#line 266
35750    kfree(__cil_tmp14);
35751#line 267
35752    io->urbs = (struct urb **)0;
35753    }
35754  } else {
35755
35756  }
35757  }
35758#line 269
35759  io->dev = (struct usb_device *)0;
35760#line 270
35761  return;
35762}
35763}
35764#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"
35765static void sg_complete(struct urb *urb ) 
35766{ struct usb_sg_request *io ;
35767  int status ;
35768  char *tmp___0 ;
35769  int tmp___1 ;
35770  int tmp___2 ;
35771  int i ;
35772  int found ;
35773  int retval ;
35774  void *__cil_tmp10 ;
35775  spinlock_t *__cil_tmp11 ;
35776  int __cil_tmp12 ;
35777  int __cil_tmp13 ;
35778  u32 __cil_tmp14 ;
35779  struct usb_host_endpoint *__cil_tmp15 ;
35780  struct usb_endpoint_descriptor *__cil_tmp16 ;
35781  struct usb_endpoint_descriptor  const  *__cil_tmp17 ;
35782  struct usb_device *__cil_tmp18 ;
35783  struct usb_bus *__cil_tmp19 ;
35784  struct device *__cil_tmp20 ;
35785  struct device  const  *__cil_tmp21 ;
35786  struct usb_device *__cil_tmp22 ;
35787  char (*__cil_tmp23)[16U] ;
35788  char *__cil_tmp24 ;
35789  int __cil_tmp25 ;
35790  int __cil_tmp26 ;
35791  spinlock_t *__cil_tmp27 ;
35792  struct urb *__cil_tmp28 ;
35793  unsigned long __cil_tmp29 ;
35794  unsigned long __cil_tmp30 ;
35795  struct urb **__cil_tmp31 ;
35796  struct urb **__cil_tmp32 ;
35797  struct urb *__cil_tmp33 ;
35798  unsigned long __cil_tmp34 ;
35799  struct usb_device *__cil_tmp35 ;
35800  unsigned long __cil_tmp36 ;
35801  unsigned long __cil_tmp37 ;
35802  struct urb **__cil_tmp38 ;
35803  struct urb **__cil_tmp39 ;
35804  struct urb *__cil_tmp40 ;
35805  struct usb_device *__cil_tmp41 ;
35806  unsigned long __cil_tmp42 ;
35807  unsigned long __cil_tmp43 ;
35808  struct urb **__cil_tmp44 ;
35809  struct urb **__cil_tmp45 ;
35810  struct urb *__cil_tmp46 ;
35811  struct usb_device *__cil_tmp47 ;
35812  struct device *__cil_tmp48 ;
35813  struct device  const  *__cil_tmp49 ;
35814  unsigned long __cil_tmp50 ;
35815  unsigned long __cil_tmp51 ;
35816  struct urb **__cil_tmp52 ;
35817  struct urb **__cil_tmp53 ;
35818  struct urb *__cil_tmp54 ;
35819  unsigned long __cil_tmp55 ;
35820  int __cil_tmp56 ;
35821  spinlock_t *__cil_tmp57 ;
35822  u32 __cil_tmp58 ;
35823  size_t __cil_tmp59 ;
35824  size_t __cil_tmp60 ;
35825  int __cil_tmp61 ;
35826  int __cil_tmp62 ;
35827  struct completion *__cil_tmp63 ;
35828  spinlock_t *__cil_tmp64 ;
35829
35830  {
35831  {
35832#line 274
35833  __cil_tmp10 = urb->context;
35834#line 274
35835  io = (struct usb_sg_request *)__cil_tmp10;
35836#line 275
35837  status = urb->status;
35838#line 277
35839  __cil_tmp11 = & io->lock;
35840#line 277
35841  spin_lock(__cil_tmp11);
35842  }
35843  {
35844#line 289
35845  __cil_tmp12 = io->status;
35846#line 289
35847  if (__cil_tmp12 != 0) {
35848    {
35849#line 289
35850    __cil_tmp13 = io->status;
35851#line 289
35852    if (__cil_tmp13 != -104) {
35853#line 289
35854      goto _L;
35855    } else
35856#line 289
35857    if (status != -104) {
35858      _L: 
35859      {
35860#line 289
35861      __cil_tmp14 = urb->actual_length;
35862#line 289
35863      if (__cil_tmp14 != 0U) {
35864        {
35865#line 293
35866        tmp___1 = usb_urb_dir_in(urb);
35867        }
35868#line 293
35869        if (tmp___1 != 0) {
35870#line 293
35871          tmp___0 = (char *)"in";
35872        } else {
35873#line 293
35874          tmp___0 = (char *)"out";
35875        }
35876        {
35877#line 293
35878        __cil_tmp15 = urb->ep;
35879#line 293
35880        __cil_tmp16 = & __cil_tmp15->desc;
35881#line 293
35882        __cil_tmp17 = (struct usb_endpoint_descriptor  const  *)__cil_tmp16;
35883#line 293
35884        tmp___2 = usb_endpoint_num(__cil_tmp17);
35885#line 293
35886        __cil_tmp18 = io->dev;
35887#line 293
35888        __cil_tmp19 = __cil_tmp18->bus;
35889#line 293
35890        __cil_tmp20 = __cil_tmp19->controller;
35891#line 293
35892        __cil_tmp21 = (struct device  const  *)__cil_tmp20;
35893#line 293
35894        __cil_tmp22 = io->dev;
35895#line 293
35896        __cil_tmp23 = & __cil_tmp22->devpath;
35897#line 293
35898        __cil_tmp24 = (char *)__cil_tmp23;
35899#line 293
35900        __cil_tmp25 = io->status;
35901#line 293
35902        dev_err(__cil_tmp21, "dev %s ep%d%s scatterlist error %d/%d\n", __cil_tmp24,
35903                tmp___2, tmp___0, status, __cil_tmp25);
35904        }
35905      } else {
35906
35907      }
35908      }
35909    } else {
35910
35911    }
35912    }
35913  } else {
35914
35915  }
35916  }
35917  {
35918#line 302
35919  __cil_tmp26 = io->status;
35920#line 302
35921  if (__cil_tmp26 == 0) {
35922#line 302
35923    if (status != 0) {
35924#line 302
35925      if (status != -104) {
35926        {
35927#line 305
35928        io->status = status;
35929#line 311
35930        __cil_tmp27 = & io->lock;
35931#line 311
35932        spin_unlock(__cil_tmp27);
35933#line 312
35934        i = 0;
35935#line 312
35936        found = 0;
35937        }
35938#line 312
35939        goto ldv_28805;
35940        ldv_28804: ;
35941        {
35942#line 313
35943        __cil_tmp28 = (struct urb *)0;
35944#line 313
35945        __cil_tmp29 = (unsigned long )__cil_tmp28;
35946#line 313
35947        __cil_tmp30 = (unsigned long )i;
35948#line 313
35949        __cil_tmp31 = io->urbs;
35950#line 313
35951        __cil_tmp32 = __cil_tmp31 + __cil_tmp30;
35952#line 313
35953        __cil_tmp33 = *__cil_tmp32;
35954#line 313
35955        __cil_tmp34 = (unsigned long )__cil_tmp33;
35956#line 313
35957        if (__cil_tmp34 == __cil_tmp29) {
35958#line 314
35959          goto ldv_28802;
35960        } else {
35961          {
35962#line 313
35963          __cil_tmp35 = (struct usb_device *)0;
35964#line 313
35965          __cil_tmp36 = (unsigned long )__cil_tmp35;
35966#line 313
35967          __cil_tmp37 = (unsigned long )i;
35968#line 313
35969          __cil_tmp38 = io->urbs;
35970#line 313
35971          __cil_tmp39 = __cil_tmp38 + __cil_tmp37;
35972#line 313
35973          __cil_tmp40 = *__cil_tmp39;
35974#line 313
35975          __cil_tmp41 = __cil_tmp40->dev;
35976#line 313
35977          __cil_tmp42 = (unsigned long )__cil_tmp41;
35978#line 313
35979          if (__cil_tmp42 == __cil_tmp36) {
35980#line 314
35981            goto ldv_28802;
35982          } else {
35983
35984          }
35985          }
35986        }
35987        }
35988#line 315
35989        if (found != 0) {
35990          {
35991#line 316
35992          __cil_tmp43 = (unsigned long )i;
35993#line 316
35994          __cil_tmp44 = io->urbs;
35995#line 316
35996          __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
35997#line 316
35998          __cil_tmp46 = *__cil_tmp45;
35999#line 316
36000          retval = usb_unlink_urb(__cil_tmp46);
36001          }
36002#line 317
36003          if (retval != -115) {
36004#line 317
36005            if (retval != -19) {
36006#line 317
36007              if (retval != -16) {
36008                {
36009#line 320
36010                __cil_tmp47 = io->dev;
36011#line 320
36012                __cil_tmp48 = & __cil_tmp47->dev;
36013#line 320
36014                __cil_tmp49 = (struct device  const  *)__cil_tmp48;
36015#line 320
36016                dev_err(__cil_tmp49, "%s, unlink --> %d\n", "sg_complete", retval);
36017                }
36018              } else {
36019
36020              }
36021            } else {
36022
36023            }
36024          } else {
36025
36026          }
36027        } else {
36028          {
36029#line 323
36030          __cil_tmp50 = (unsigned long )urb;
36031#line 323
36032          __cil_tmp51 = (unsigned long )i;
36033#line 323
36034          __cil_tmp52 = io->urbs;
36035#line 323
36036          __cil_tmp53 = __cil_tmp52 + __cil_tmp51;
36037#line 323
36038          __cil_tmp54 = *__cil_tmp53;
36039#line 323
36040          __cil_tmp55 = (unsigned long )__cil_tmp54;
36041#line 323
36042          if (__cil_tmp55 == __cil_tmp50) {
36043#line 324
36044            found = 1;
36045          } else {
36046
36047          }
36048          }
36049        }
36050        ldv_28802: 
36051#line 312
36052        i = i + 1;
36053        ldv_28805: ;
36054        {
36055#line 312
36056        __cil_tmp56 = io->entries;
36057#line 312
36058        if (__cil_tmp56 > i) {
36059#line 313
36060          goto ldv_28804;
36061        } else {
36062#line 315
36063          goto ldv_28806;
36064        }
36065        }
36066        ldv_28806: 
36067        {
36068#line 326
36069        __cil_tmp57 = & io->lock;
36070#line 326
36071        spin_lock(__cil_tmp57);
36072        }
36073      } else {
36074
36075      }
36076    } else {
36077
36078    }
36079  } else {
36080
36081  }
36082  }
36083#line 328
36084  urb->dev = (struct usb_device *)0;
36085#line 331
36086  __cil_tmp58 = urb->actual_length;
36087#line 331
36088  __cil_tmp59 = (size_t )__cil_tmp58;
36089#line 331
36090  __cil_tmp60 = io->bytes;
36091#line 331
36092  io->bytes = __cil_tmp60 + __cil_tmp59;
36093#line 332
36094  __cil_tmp61 = io->count;
36095#line 332
36096  io->count = __cil_tmp61 - 1;
36097  {
36098#line 333
36099  __cil_tmp62 = io->count;
36100#line 333
36101  if (__cil_tmp62 == 0) {
36102    {
36103#line 334
36104    __cil_tmp63 = & io->complete;
36105#line 334
36106    complete(__cil_tmp63);
36107    }
36108  } else {
36109
36110  }
36111  }
36112  {
36113#line 336
36114  __cil_tmp64 = & io->lock;
36115#line 336
36116  spin_unlock(__cil_tmp64);
36117  }
36118#line 337
36119  return;
36120}
36121}
36122#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"
36123int usb_sg_init(struct usb_sg_request *io , struct usb_device *dev , unsigned int pipe ,
36124                unsigned int period , struct scatterlist *sg , int nents , size_t length ,
36125                gfp_t mem_flags ) 
36126{ int i ;
36127  int urb_flags ;
36128  int use_sg ;
36129  struct lock_class_key __key ;
36130  void *tmp ;
36131  struct urb *urb ;
36132  unsigned int len ;
36133  struct scatterlist *sg2 ;
36134  int j ;
36135  struct page *tmp___0 ;
36136  int tmp___1 ;
36137  unsigned int __min1 ;
36138  unsigned int __min2 ;
36139  unsigned int tmp___2 ;
36140  struct usb_sg_request *__cil_tmp23 ;
36141  unsigned long __cil_tmp24 ;
36142  unsigned long __cil_tmp25 ;
36143  struct usb_device *__cil_tmp26 ;
36144  unsigned long __cil_tmp27 ;
36145  unsigned long __cil_tmp28 ;
36146  struct scatterlist *__cil_tmp29 ;
36147  unsigned long __cil_tmp30 ;
36148  unsigned long __cil_tmp31 ;
36149  unsigned int __cil_tmp32 ;
36150  unsigned int __cil_tmp33 ;
36151  spinlock_t *__cil_tmp34 ;
36152  struct raw_spinlock *__cil_tmp35 ;
36153  struct usb_bus *__cil_tmp36 ;
36154  unsigned int __cil_tmp37 ;
36155  int __cil_tmp38 ;
36156  unsigned long __cil_tmp39 ;
36157  unsigned long __cil_tmp40 ;
36158  struct urb **__cil_tmp41 ;
36159  unsigned long __cil_tmp42 ;
36160  struct urb **__cil_tmp43 ;
36161  unsigned long __cil_tmp44 ;
36162  unsigned int __cil_tmp45 ;
36163  struct urb *__cil_tmp46 ;
36164  unsigned long __cil_tmp47 ;
36165  unsigned long __cil_tmp48 ;
36166  unsigned long __cil_tmp49 ;
36167  struct urb **__cil_tmp50 ;
36168  struct urb **__cil_tmp51 ;
36169  unsigned int __cil_tmp52 ;
36170  size_t __cil_tmp53 ;
36171  int __cil_tmp54 ;
36172  unsigned long __cil_tmp55 ;
36173  struct urb **__cil_tmp56 ;
36174  struct urb **__cil_tmp57 ;
36175  struct urb *__cil_tmp58 ;
36176  unsigned long __cil_tmp59 ;
36177  struct urb **__cil_tmp60 ;
36178  struct urb **__cil_tmp61 ;
36179  struct urb *__cil_tmp62 ;
36180  unsigned int __cil_tmp63 ;
36181  struct completion *__cil_tmp64 ;
36182
36183  {
36184  {
36185#line 373
36186  __cil_tmp23 = (struct usb_sg_request *)0;
36187#line 373
36188  __cil_tmp24 = (unsigned long )__cil_tmp23;
36189#line 373
36190  __cil_tmp25 = (unsigned long )io;
36191#line 373
36192  if (__cil_tmp25 == __cil_tmp24) {
36193#line 377
36194    return (-22);
36195  } else {
36196    {
36197#line 373
36198    __cil_tmp26 = (struct usb_device *)0;
36199#line 373
36200    __cil_tmp27 = (unsigned long )__cil_tmp26;
36201#line 373
36202    __cil_tmp28 = (unsigned long )dev;
36203#line 373
36204    if (__cil_tmp28 == __cil_tmp27) {
36205#line 377
36206      return (-22);
36207    } else {
36208      {
36209#line 373
36210      __cil_tmp29 = (struct scatterlist *)0;
36211#line 373
36212      __cil_tmp30 = (unsigned long )__cil_tmp29;
36213#line 373
36214      __cil_tmp31 = (unsigned long )sg;
36215#line 373
36216      if (__cil_tmp31 == __cil_tmp30) {
36217#line 377
36218        return (-22);
36219      } else {
36220        {
36221#line 373
36222        __cil_tmp32 = pipe >> 30;
36223#line 373
36224        if (__cil_tmp32 == 2U) {
36225#line 377
36226          return (-22);
36227        } else {
36228          {
36229#line 373
36230          __cil_tmp33 = pipe >> 30;
36231#line 373
36232          if (__cil_tmp33 == 0U) {
36233#line 377
36234            return (-22);
36235          } else
36236#line 373
36237          if (nents <= 0) {
36238#line 377
36239            return (-22);
36240          } else {
36241
36242          }
36243          }
36244        }
36245        }
36246      }
36247      }
36248    }
36249    }
36250  }
36251  }
36252  {
36253#line 379
36254  __cil_tmp34 = & io->lock;
36255#line 379
36256  spinlock_check(__cil_tmp34);
36257#line 379
36258  __cil_tmp35 = & io->lock.ldv_6060.rlock;
36259#line 379
36260  __raw_spin_lock_init(__cil_tmp35, "&(&io->lock)->rlock", & __key);
36261#line 380
36262  io->dev = dev;
36263#line 381
36264  io->pipe = (int )pipe;
36265  }
36266  {
36267#line 383
36268  __cil_tmp36 = dev->bus;
36269#line 383
36270  __cil_tmp37 = __cil_tmp36->sg_tablesize;
36271#line 383
36272  if (__cil_tmp37 != 0U) {
36273#line 384
36274    use_sg = 1;
36275#line 385
36276    io->entries = 1;
36277  } else {
36278#line 387
36279    use_sg = 0;
36280#line 388
36281    io->entries = nents;
36282  }
36283  }
36284  {
36285#line 392
36286  __cil_tmp38 = io->entries;
36287#line 392
36288  __cil_tmp39 = (unsigned long )__cil_tmp38;
36289#line 392
36290  __cil_tmp40 = __cil_tmp39 * 8UL;
36291#line 392
36292  tmp = kmalloc(__cil_tmp40, mem_flags);
36293#line 392
36294  io->urbs = (struct urb **)tmp;
36295  }
36296  {
36297#line 393
36298  __cil_tmp41 = (struct urb **)0;
36299#line 393
36300  __cil_tmp42 = (unsigned long )__cil_tmp41;
36301#line 393
36302  __cil_tmp43 = io->urbs;
36303#line 393
36304  __cil_tmp44 = (unsigned long )__cil_tmp43;
36305#line 393
36306  if (__cil_tmp44 == __cil_tmp42) {
36307#line 394
36308    goto nomem;
36309  } else {
36310
36311  }
36312  }
36313#line 396
36314  urb_flags = 128;
36315  {
36316#line 397
36317  __cil_tmp45 = pipe & 128U;
36318#line 397
36319  if (__cil_tmp45 != 0U) {
36320#line 398
36321    urb_flags = urb_flags | 1;
36322  } else {
36323
36324  }
36325  }
36326#line 400
36327  i = 0;
36328#line 400
36329  sg = sg;
36330#line 400
36331  goto ldv_28833;
36332  ldv_28832: 
36333  {
36334#line 404
36335  urb = usb_alloc_urb(0, mem_flags);
36336  }
36337  {
36338#line 405
36339  __cil_tmp46 = (struct urb *)0;
36340#line 405
36341  __cil_tmp47 = (unsigned long )__cil_tmp46;
36342#line 405
36343  __cil_tmp48 = (unsigned long )urb;
36344#line 405
36345  if (__cil_tmp48 == __cil_tmp47) {
36346#line 406
36347    io->entries = i;
36348#line 407
36349    goto nomem;
36350  } else {
36351
36352  }
36353  }
36354#line 409
36355  __cil_tmp49 = (unsigned long )i;
36356#line 409
36357  __cil_tmp50 = io->urbs;
36358#line 409
36359  __cil_tmp51 = __cil_tmp50 + __cil_tmp49;
36360#line 409
36361  *__cil_tmp51 = urb;
36362#line 411
36363  urb->dev = (struct usb_device *)0;
36364#line 412
36365  urb->pipe = pipe;
36366#line 413
36367  urb->interval = (int )period;
36368#line 414
36369  urb->transfer_flags = (unsigned int )urb_flags;
36370#line 415
36371  urb->complete = & sg_complete;
36372#line 416
36373  urb->context = (void *)io;
36374#line 417
36375  urb->sg = sg;
36376#line 419
36377  if (use_sg != 0) {
36378#line 421
36379    urb->transfer_buffer = (void *)0;
36380#line 422
36381    urb->num_sgs = nents;
36382#line 425
36383    len = (unsigned int )length;
36384#line 426
36385    if (len == 0U) {
36386#line 430
36387      j = 0;
36388#line 430
36389      sg2 = sg;
36390#line 430
36391      goto ldv_28827;
36392      ldv_28826: 
36393      {
36394#line 431
36395      __cil_tmp52 = sg2->length;
36396#line 431
36397      len = __cil_tmp52 + len;
36398#line 430
36399      j = j + 1;
36400#line 430
36401      sg2 = sg_next(sg2);
36402      }
36403      ldv_28827: ;
36404#line 430
36405      if (j < nents) {
36406#line 431
36407        goto ldv_28826;
36408      } else {
36409#line 433
36410        goto ldv_28828;
36411      }
36412      ldv_28828: ;
36413    } else {
36414
36415    }
36416  } else {
36417    {
36418#line 439
36419    tmp___0 = sg_page___0(sg);
36420#line 439
36421    tmp___1 = PageHighMem(tmp___0);
36422    }
36423#line 439
36424    if (tmp___1 == 0) {
36425      {
36426#line 440
36427      urb->transfer_buffer = sg_virt___0(sg);
36428      }
36429    } else {
36430#line 442
36431      urb->transfer_buffer = (void *)0;
36432    }
36433#line 444
36434    len = sg->length;
36435#line 445
36436    if (length != 0UL) {
36437#line 446
36438      __min1 = len;
36439#line 446
36440      __min2 = (unsigned int )length;
36441#line 446
36442      if (__min1 < __min2) {
36443#line 446
36444        tmp___2 = __min1;
36445      } else {
36446#line 446
36447        tmp___2 = __min2;
36448      }
36449#line 446
36450      len = tmp___2;
36451#line 447
36452      __cil_tmp53 = (size_t )len;
36453#line 447
36454      length = length - __cil_tmp53;
36455#line 448
36456      if (length == 0UL) {
36457#line 449
36458        io->entries = i + 1;
36459      } else {
36460
36461      }
36462    } else {
36463
36464    }
36465  }
36466  {
36467#line 452
36468  urb->transfer_buffer_length = len;
36469#line 400
36470  i = i + 1;
36471#line 400
36472  sg = sg_next(sg);
36473  }
36474  ldv_28833: ;
36475  {
36476#line 400
36477  __cil_tmp54 = io->entries;
36478#line 400
36479  if (__cil_tmp54 > i) {
36480#line 401
36481    goto ldv_28832;
36482  } else {
36483#line 403
36484    goto ldv_28834;
36485  }
36486  }
36487  ldv_28834: 
36488  {
36489#line 454
36490  i = i - 1;
36491#line 454
36492  __cil_tmp55 = (unsigned long )i;
36493#line 454
36494  __cil_tmp56 = io->urbs;
36495#line 454
36496  __cil_tmp57 = __cil_tmp56 + __cil_tmp55;
36497#line 454
36498  __cil_tmp58 = *__cil_tmp57;
36499#line 454
36500  __cil_tmp59 = (unsigned long )i;
36501#line 454
36502  __cil_tmp60 = io->urbs;
36503#line 454
36504  __cil_tmp61 = __cil_tmp60 + __cil_tmp59;
36505#line 454
36506  __cil_tmp62 = *__cil_tmp61;
36507#line 454
36508  __cil_tmp63 = __cil_tmp62->transfer_flags;
36509#line 454
36510  __cil_tmp58->transfer_flags = __cil_tmp63 & 4294967167U;
36511#line 457
36512  io->count = io->entries;
36513#line 458
36514  io->status = 0;
36515#line 459
36516  io->bytes = 0UL;
36517#line 460
36518  __cil_tmp64 = & io->complete;
36519#line 460
36520  init_completion(__cil_tmp64);
36521  }
36522#line 461
36523  return (0);
36524  nomem: 
36525  {
36526#line 464
36527  sg_clean(io);
36528  }
36529#line 465
36530  return (-12);
36531}
36532}
36533#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"
36534void usb_sg_wait(struct usb_sg_request *io ) 
36535{ int i ;
36536  int entries ;
36537  int retval ;
36538  spinlock_t *__cil_tmp5 ;
36539  unsigned long __cil_tmp6 ;
36540  struct urb **__cil_tmp7 ;
36541  struct urb **__cil_tmp8 ;
36542  struct urb *__cil_tmp9 ;
36543  unsigned long __cil_tmp10 ;
36544  struct urb **__cil_tmp11 ;
36545  struct urb **__cil_tmp12 ;
36546  struct urb *__cil_tmp13 ;
36547  spinlock_t *__cil_tmp14 ;
36548  unsigned long __cil_tmp15 ;
36549  struct urb **__cil_tmp16 ;
36550  struct urb **__cil_tmp17 ;
36551  struct urb *__cil_tmp18 ;
36552  unsigned long __cil_tmp19 ;
36553  struct urb **__cil_tmp20 ;
36554  struct urb **__cil_tmp21 ;
36555  struct urb *__cil_tmp22 ;
36556  unsigned long __cil_tmp23 ;
36557  struct urb **__cil_tmp24 ;
36558  struct urb **__cil_tmp25 ;
36559  struct urb *__cil_tmp26 ;
36560  struct usb_device *__cil_tmp27 ;
36561  struct device *__cil_tmp28 ;
36562  struct device  const  *__cil_tmp29 ;
36563  spinlock_t *__cil_tmp30 ;
36564  int __cil_tmp31 ;
36565  int __cil_tmp32 ;
36566  int __cil_tmp33 ;
36567  int __cil_tmp34 ;
36568  int __cil_tmp35 ;
36569  int __cil_tmp36 ;
36570  struct completion *__cil_tmp37 ;
36571  spinlock_t *__cil_tmp38 ;
36572  struct completion *__cil_tmp39 ;
36573
36574  {
36575  {
36576#line 515
36577  entries = io->entries;
36578#line 518
36579  __cil_tmp5 = & io->lock;
36580#line 518
36581  spin_lock_irq(__cil_tmp5);
36582#line 519
36583  i = 0;
36584  }
36585#line 520
36586  goto ldv_28862;
36587  ldv_28861: 
36588  {
36589#line 523
36590  __cil_tmp6 = (unsigned long )i;
36591#line 523
36592  __cil_tmp7 = io->urbs;
36593#line 523
36594  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
36595#line 523
36596  __cil_tmp9 = *__cil_tmp8;
36597#line 523
36598  __cil_tmp9->dev = io->dev;
36599#line 524
36600  __cil_tmp10 = (unsigned long )i;
36601#line 524
36602  __cil_tmp11 = io->urbs;
36603#line 524
36604  __cil_tmp12 = __cil_tmp11 + __cil_tmp10;
36605#line 524
36606  __cil_tmp13 = *__cil_tmp12;
36607#line 524
36608  retval = usb_submit_urb(__cil_tmp13, 32U);
36609#line 529
36610  __cil_tmp14 = & io->lock;
36611#line 529
36612  spin_unlock_irq(__cil_tmp14);
36613  }
36614#line 532
36615  if (retval == -6) {
36616#line 532
36617    goto case_neg_6;
36618  } else
36619#line 533
36620  if (retval == -11) {
36621#line 533
36622    goto case_neg_11;
36623  } else
36624#line 534
36625  if (retval == -12) {
36626#line 534
36627    goto case_neg_12;
36628  } else
36629#line 546
36630  if (retval == 0) {
36631#line 546
36632    goto case_0;
36633  } else {
36634#line 552
36635    goto switch_default;
36636#line 530
36637    if (0) {
36638      case_neg_6: ;
36639      case_neg_11: ;
36640      case_neg_12: 
36641      {
36642#line 535
36643      __cil_tmp15 = (unsigned long )i;
36644#line 535
36645      __cil_tmp16 = io->urbs;
36646#line 535
36647      __cil_tmp17 = __cil_tmp16 + __cil_tmp15;
36648#line 535
36649      __cil_tmp18 = *__cil_tmp17;
36650#line 535
36651      __cil_tmp18->dev = (struct usb_device *)0;
36652#line 536
36653      retval = 0;
36654#line 537
36655      yield();
36656      }
36657#line 538
36658      goto ldv_28857;
36659      case_0: 
36660      {
36661#line 547
36662      i = i + 1;
36663#line 548
36664      cpu_relax();
36665      }
36666#line 549
36667      goto ldv_28857;
36668      switch_default: 
36669      {
36670#line 553
36671      __cil_tmp19 = (unsigned long )i;
36672#line 553
36673      __cil_tmp20 = io->urbs;
36674#line 553
36675      __cil_tmp21 = __cil_tmp20 + __cil_tmp19;
36676#line 553
36677      __cil_tmp22 = *__cil_tmp21;
36678#line 553
36679      __cil_tmp22->dev = (struct usb_device *)0;
36680#line 554
36681      __cil_tmp23 = (unsigned long )i;
36682#line 554
36683      __cil_tmp24 = io->urbs;
36684#line 554
36685      __cil_tmp25 = __cil_tmp24 + __cil_tmp23;
36686#line 554
36687      __cil_tmp26 = *__cil_tmp25;
36688#line 554
36689      __cil_tmp26->status = retval;
36690#line 555
36691      __cil_tmp27 = io->dev;
36692#line 555
36693      __cil_tmp28 = & __cil_tmp27->dev;
36694#line 555
36695      __cil_tmp29 = (struct device  const  *)__cil_tmp28;
36696#line 555
36697      dev_printk("<7>", __cil_tmp29, "%s, submit --> %d\n", "usb_sg_wait", retval);
36698#line 557
36699      usb_sg_cancel(io);
36700      }
36701    } else {
36702
36703    }
36704  }
36705  ldv_28857: 
36706  {
36707#line 559
36708  __cil_tmp30 = & io->lock;
36709#line 559
36710  spin_lock_irq(__cil_tmp30);
36711  }
36712#line 560
36713  if (retval != 0) {
36714    {
36715#line 560
36716    __cil_tmp31 = io->status;
36717#line 560
36718    if (__cil_tmp31 == 0) {
36719#line 561
36720      io->status = retval;
36721    } else {
36722      {
36723#line 560
36724      __cil_tmp32 = io->status;
36725#line 560
36726      if (__cil_tmp32 == -104) {
36727#line 561
36728        io->status = retval;
36729      } else {
36730
36731      }
36732      }
36733    }
36734    }
36735  } else {
36736
36737  }
36738  ldv_28862: ;
36739#line 520
36740  if (i < entries) {
36741    {
36742#line 520
36743    __cil_tmp33 = io->status;
36744#line 520
36745    if (__cil_tmp33 == 0) {
36746#line 521
36747      goto ldv_28861;
36748    } else {
36749#line 523
36750      goto ldv_28863;
36751    }
36752    }
36753  } else {
36754#line 523
36755    goto ldv_28863;
36756  }
36757  ldv_28863: 
36758#line 563
36759  __cil_tmp34 = i - entries;
36760#line 563
36761  __cil_tmp35 = io->count;
36762#line 563
36763  io->count = __cil_tmp35 + __cil_tmp34;
36764  {
36765#line 564
36766  __cil_tmp36 = io->count;
36767#line 564
36768  if (__cil_tmp36 == 0) {
36769    {
36770#line 565
36771    __cil_tmp37 = & io->complete;
36772#line 565
36773    complete(__cil_tmp37);
36774    }
36775  } else {
36776
36777  }
36778  }
36779  {
36780#line 566
36781  __cil_tmp38 = & io->lock;
36782#line 566
36783  spin_unlock_irq(__cil_tmp38);
36784#line 572
36785  __cil_tmp39 = & io->complete;
36786#line 572
36787  wait_for_completion(__cil_tmp39);
36788#line 574
36789  sg_clean(io);
36790  }
36791#line 575
36792  return;
36793}
36794}
36795#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"
36796void usb_sg_cancel(struct usb_sg_request *io ) 
36797{ unsigned long flags ;
36798  raw_spinlock_t *tmp ;
36799  int i ;
36800  int retval ;
36801  spinlock_t *__cil_tmp6 ;
36802  int __cil_tmp7 ;
36803  spinlock_t *__cil_tmp8 ;
36804  struct usb_device *__cil_tmp9 ;
36805  unsigned long __cil_tmp10 ;
36806  unsigned long __cil_tmp11 ;
36807  struct urb **__cil_tmp12 ;
36808  struct urb **__cil_tmp13 ;
36809  struct urb *__cil_tmp14 ;
36810  struct usb_device *__cil_tmp15 ;
36811  unsigned long __cil_tmp16 ;
36812  unsigned long __cil_tmp17 ;
36813  struct urb **__cil_tmp18 ;
36814  struct urb **__cil_tmp19 ;
36815  struct urb *__cil_tmp20 ;
36816  struct usb_device *__cil_tmp21 ;
36817  struct device *__cil_tmp22 ;
36818  struct device  const  *__cil_tmp23 ;
36819  int __cil_tmp24 ;
36820  spinlock_t *__cil_tmp25 ;
36821  spinlock_t *__cil_tmp26 ;
36822
36823  {
36824  {
36825#line 590
36826  __cil_tmp6 = & io->lock;
36827#line 590
36828  tmp = spinlock_check(__cil_tmp6);
36829#line 590
36830  flags = _raw_spin_lock_irqsave(tmp);
36831  }
36832  {
36833#line 593
36834  __cil_tmp7 = io->status;
36835#line 593
36836  if (__cil_tmp7 == 0) {
36837    {
36838#line 596
36839    io->status = -104;
36840#line 597
36841    __cil_tmp8 = & io->lock;
36842#line 597
36843    spin_unlock(__cil_tmp8);
36844#line 598
36845    i = 0;
36846    }
36847#line 598
36848    goto ldv_28882;
36849    ldv_28881: ;
36850    {
36851#line 601
36852    __cil_tmp9 = (struct usb_device *)0;
36853#line 601
36854    __cil_tmp10 = (unsigned long )__cil_tmp9;
36855#line 601
36856    __cil_tmp11 = (unsigned long )i;
36857#line 601
36858    __cil_tmp12 = io->urbs;
36859#line 601
36860    __cil_tmp13 = __cil_tmp12 + __cil_tmp11;
36861#line 601
36862    __cil_tmp14 = *__cil_tmp13;
36863#line 601
36864    __cil_tmp15 = __cil_tmp14->dev;
36865#line 601
36866    __cil_tmp16 = (unsigned long )__cil_tmp15;
36867#line 601
36868    if (__cil_tmp16 == __cil_tmp10) {
36869#line 602
36870      goto ldv_28879;
36871    } else {
36872
36873    }
36874    }
36875    {
36876#line 603
36877    __cil_tmp17 = (unsigned long )i;
36878#line 603
36879    __cil_tmp18 = io->urbs;
36880#line 603
36881    __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
36882#line 603
36883    __cil_tmp20 = *__cil_tmp19;
36884#line 603
36885    retval = usb_unlink_urb(__cil_tmp20);
36886    }
36887#line 604
36888    if (retval != -115) {
36889#line 604
36890      if (retval != -16) {
36891        {
36892#line 605
36893        __cil_tmp21 = io->dev;
36894#line 605
36895        __cil_tmp22 = & __cil_tmp21->dev;
36896#line 605
36897        __cil_tmp23 = (struct device  const  *)__cil_tmp22;
36898#line 605
36899        dev_warn(__cil_tmp23, "%s, unlink --> %d\n", "usb_sg_cancel", retval);
36900        }
36901      } else {
36902
36903      }
36904    } else {
36905
36906    }
36907    ldv_28879: 
36908#line 598
36909    i = i + 1;
36910    ldv_28882: ;
36911    {
36912#line 598
36913    __cil_tmp24 = io->entries;
36914#line 598
36915    if (__cil_tmp24 > i) {
36916#line 599
36917      goto ldv_28881;
36918    } else {
36919#line 601
36920      goto ldv_28883;
36921    }
36922    }
36923    ldv_28883: 
36924    {
36925#line 608
36926    __cil_tmp25 = & io->lock;
36927#line 608
36928    spin_lock(__cil_tmp25);
36929    }
36930  } else {
36931
36932  }
36933  }
36934  {
36935#line 610
36936  __cil_tmp26 = & io->lock;
36937#line 610
36938  spin_unlock_irqrestore(__cil_tmp26, flags);
36939  }
36940#line 611
36941  return;
36942}
36943}
36944#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"
36945int usb_get_descriptor(struct usb_device *dev , unsigned char type , unsigned char index ,
36946                       void *buf , int size ) 
36947{ int i ;
36948  int result ;
36949  unsigned int tmp ;
36950  size_t __cil_tmp9 ;
36951  unsigned int __cil_tmp10 ;
36952  __u8 __cil_tmp11 ;
36953  __u8 __cil_tmp12 ;
36954  __u16 __cil_tmp13 ;
36955  int __cil_tmp14 ;
36956  __u16 __cil_tmp15 ;
36957  int __cil_tmp16 ;
36958  int __cil_tmp17 ;
36959  int __cil_tmp18 ;
36960  __u16 __cil_tmp19 ;
36961  __u16 __cil_tmp20 ;
36962  __u16 __cil_tmp21 ;
36963  int __cil_tmp22 ;
36964  __u16 __cil_tmp23 ;
36965  int __cil_tmp24 ;
36966  u8 *__cil_tmp25 ;
36967  u8 *__cil_tmp26 ;
36968  u8 __cil_tmp27 ;
36969  int __cil_tmp28 ;
36970
36971  {
36972  {
36973#line 644
36974  __cil_tmp9 = (size_t )size;
36975#line 644
36976  memset(buf, 0, __cil_tmp9);
36977#line 646
36978  i = 0;
36979  }
36980#line 646
36981  goto ldv_28902;
36982  ldv_28901: 
36983  {
36984#line 648
36985  tmp = __create_pipe(dev, 0U);
36986#line 648
36987  __cil_tmp10 = tmp | 2147483776U;
36988#line 648
36989  __cil_tmp11 = (__u8 )6;
36990#line 648
36991  __cil_tmp12 = (__u8 )128;
36992#line 648
36993  __cil_tmp13 = (__u16 )index;
36994#line 648
36995  __cil_tmp14 = (int )__cil_tmp13;
36996#line 648
36997  __cil_tmp15 = (__u16 )type;
36998#line 648
36999  __cil_tmp16 = (int )__cil_tmp15;
37000#line 648
37001  __cil_tmp17 = __cil_tmp16 << 8U;
37002#line 648
37003  __cil_tmp18 = __cil_tmp17 + __cil_tmp14;
37004#line 648
37005  __cil_tmp19 = (__u16 )__cil_tmp18;
37006#line 648
37007  __cil_tmp20 = (__u16 )0;
37008#line 648
37009  __cil_tmp21 = (__u16 )size;
37010#line 648
37011  __cil_tmp22 = (int )__cil_tmp21;
37012#line 648
37013  __cil_tmp23 = (__u16 )__cil_tmp22;
37014#line 648
37015  result = usb_control_msg(dev, __cil_tmp10, __cil_tmp11, __cil_tmp12, __cil_tmp19,
37016                           __cil_tmp20, buf, __cil_tmp23, 5000);
37017  }
37018#line 652
37019  if (result <= 0) {
37020#line 652
37021    if (result != -110) {
37022#line 653
37023      goto ldv_28899;
37024    } else {
37025
37026    }
37027  } else {
37028
37029  }
37030#line 654
37031  if (result > 1) {
37032    {
37033#line 654
37034    __cil_tmp24 = (int )type;
37035#line 654
37036    __cil_tmp25 = (u8 *)buf;
37037#line 654
37038    __cil_tmp26 = __cil_tmp25 + 1UL;
37039#line 654
37040    __cil_tmp27 = *__cil_tmp26;
37041#line 654
37042    __cil_tmp28 = (int )__cil_tmp27;
37043#line 654
37044    if (__cil_tmp28 != __cil_tmp24) {
37045#line 655
37046      result = -61;
37047#line 656
37048      goto ldv_28899;
37049    } else {
37050
37051    }
37052    }
37053  } else {
37054
37055  }
37056#line 658
37057  goto ldv_28900;
37058  ldv_28899: 
37059#line 646
37060  i = i + 1;
37061  ldv_28902: ;
37062#line 646
37063  if (i <= 2) {
37064#line 647
37065    goto ldv_28901;
37066  } else {
37067#line 649
37068    goto ldv_28900;
37069  }
37070  ldv_28900: ;
37071#line 660
37072  return (result);
37073}
37074}
37075#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"
37076static int usb_get_string(struct usb_device *dev , unsigned short langid , unsigned char index ,
37077                          void *buf , int size ) 
37078{ int i ;
37079  int result ;
37080  unsigned int tmp ;
37081  unsigned int __cil_tmp9 ;
37082  __u8 __cil_tmp10 ;
37083  __u8 __cil_tmp11 ;
37084  __u16 __cil_tmp12 ;
37085  unsigned int __cil_tmp13 ;
37086  unsigned int __cil_tmp14 ;
37087  int __cil_tmp15 ;
37088  __u16 __cil_tmp16 ;
37089  int __cil_tmp17 ;
37090  __u16 __cil_tmp18 ;
37091  __u16 __cil_tmp19 ;
37092  int __cil_tmp20 ;
37093  __u16 __cil_tmp21 ;
37094  u8 *__cil_tmp22 ;
37095  u8 *__cil_tmp23 ;
37096  u8 __cil_tmp24 ;
37097  unsigned int __cil_tmp25 ;
37098
37099  {
37100#line 692
37101  i = 0;
37102#line 692
37103  goto ldv_28925;
37104  ldv_28924: 
37105  {
37106#line 694
37107  tmp = __create_pipe(dev, 0U);
37108#line 694
37109  __cil_tmp9 = tmp | 2147483776U;
37110#line 694
37111  __cil_tmp10 = (__u8 )6;
37112#line 694
37113  __cil_tmp11 = (__u8 )128;
37114#line 694
37115  __cil_tmp12 = (__u16 )index;
37116#line 694
37117  __cil_tmp13 = (unsigned int )__cil_tmp12;
37118#line 694
37119  __cil_tmp14 = __cil_tmp13 + 768U;
37120#line 694
37121  __cil_tmp15 = (int )__cil_tmp14;
37122#line 694
37123  __cil_tmp16 = (__u16 )__cil_tmp15;
37124#line 694
37125  __cil_tmp17 = (int )langid;
37126#line 694
37127  __cil_tmp18 = (__u16 )__cil_tmp17;
37128#line 694
37129  __cil_tmp19 = (__u16 )size;
37130#line 694
37131  __cil_tmp20 = (int )__cil_tmp19;
37132#line 694
37133  __cil_tmp21 = (__u16 )__cil_tmp20;
37134#line 694
37135  result = usb_control_msg(dev, __cil_tmp9, __cil_tmp10, __cil_tmp11, __cil_tmp16,
37136                           __cil_tmp18, buf, __cil_tmp21, 5000);
37137  }
37138#line 698
37139  if (result == 0) {
37140#line 699
37141    goto ldv_28922;
37142  } else
37143#line 698
37144  if (result == -32) {
37145#line 699
37146    goto ldv_28922;
37147  } else {
37148
37149  }
37150#line 700
37151  if (result > 1) {
37152    {
37153#line 700
37154    __cil_tmp22 = (u8 *)buf;
37155#line 700
37156    __cil_tmp23 = __cil_tmp22 + 1UL;
37157#line 700
37158    __cil_tmp24 = *__cil_tmp23;
37159#line 700
37160    __cil_tmp25 = (unsigned int )__cil_tmp24;
37161#line 700
37162    if (__cil_tmp25 != 3U) {
37163#line 701
37164      result = -61;
37165#line 702
37166      goto ldv_28922;
37167    } else {
37168
37169    }
37170    }
37171  } else {
37172
37173  }
37174#line 704
37175  goto ldv_28923;
37176  ldv_28922: 
37177#line 692
37178  i = i + 1;
37179  ldv_28925: ;
37180#line 692
37181  if (i <= 2) {
37182#line 693
37183    goto ldv_28924;
37184  } else {
37185#line 695
37186    goto ldv_28923;
37187  }
37188  ldv_28923: ;
37189#line 706
37190  return (result);
37191}
37192}
37193#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"
37194static void usb_try_string_workarounds(unsigned char *buf , int *length ) 
37195{ int newlength ;
37196  int oldlength ;
37197  int __cil_tmp5 ;
37198  int __cil_tmp6 ;
37199  unsigned long __cil_tmp7 ;
37200  unsigned long __cil_tmp8 ;
37201  unsigned char *__cil_tmp9 ;
37202  unsigned char __cil_tmp10 ;
37203  unsigned int __cil_tmp11 ;
37204  int __cil_tmp12 ;
37205
37206  {
37207#line 711
37208  oldlength = *length;
37209#line 713
37210  newlength = 2;
37211#line 713
37212  goto ldv_28934;
37213  ldv_28933: ;
37214  {
37215#line 714
37216  __cil_tmp5 = (int )_ctype[(int )*(buf + (unsigned long )newlength)];
37217#line 714
37218  __cil_tmp6 = __cil_tmp5 & 151;
37219#line 714
37220  if (__cil_tmp6 == 0) {
37221#line 715
37222    goto ldv_28932;
37223  } else {
37224    {
37225#line 714
37226    __cil_tmp7 = (unsigned long )newlength;
37227#line 714
37228    __cil_tmp8 = __cil_tmp7 + 1UL;
37229#line 714
37230    __cil_tmp9 = buf + __cil_tmp8;
37231#line 714
37232    __cil_tmp10 = *__cil_tmp9;
37233#line 714
37234    __cil_tmp11 = (unsigned int )__cil_tmp10;
37235#line 714
37236    if (__cil_tmp11 != 0U) {
37237#line 715
37238      goto ldv_28932;
37239    } else {
37240
37241    }
37242    }
37243  }
37244  }
37245#line 713
37246  newlength = newlength + 2;
37247  ldv_28934: ;
37248  {
37249#line 713
37250  __cil_tmp12 = newlength + 1;
37251#line 713
37252  if (__cil_tmp12 < oldlength) {
37253#line 714
37254    goto ldv_28933;
37255  } else {
37256#line 716
37257    goto ldv_28932;
37258  }
37259  }
37260  ldv_28932: ;
37261#line 717
37262  if (newlength > 2) {
37263#line 718
37264    *buf = (unsigned char )newlength;
37265#line 719
37266    *length = newlength;
37267  } else {
37268
37269  }
37270#line 721
37271  return;
37272}
37273}
37274#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"
37275static int usb_string_sub(struct usb_device *dev , unsigned int langid , unsigned int index ,
37276                          unsigned char *buf ) 
37277{ int rc ;
37278  u32 __cil_tmp6 ;
37279  int __cil_tmp7 ;
37280  unsigned short __cil_tmp8 ;
37281  int __cil_tmp9 ;
37282  unsigned short __cil_tmp10 ;
37283  unsigned char __cil_tmp11 ;
37284  int __cil_tmp12 ;
37285  unsigned char __cil_tmp13 ;
37286  void *__cil_tmp14 ;
37287  unsigned short __cil_tmp15 ;
37288  int __cil_tmp16 ;
37289  unsigned short __cil_tmp17 ;
37290  unsigned char __cil_tmp18 ;
37291  int __cil_tmp19 ;
37292  unsigned char __cil_tmp20 ;
37293  void *__cil_tmp21 ;
37294  unsigned short __cil_tmp22 ;
37295  int __cil_tmp23 ;
37296  unsigned short __cil_tmp24 ;
37297  unsigned char __cil_tmp25 ;
37298  int __cil_tmp26 ;
37299  unsigned char __cil_tmp27 ;
37300  void *__cil_tmp28 ;
37301  unsigned char __cil_tmp29 ;
37302  int __cil_tmp30 ;
37303  unsigned char __cil_tmp31 ;
37304  unsigned int __cil_tmp32 ;
37305  unsigned char *__cil_tmp33 ;
37306  unsigned char __cil_tmp34 ;
37307  unsigned int __cil_tmp35 ;
37308  unsigned char __cil_tmp36 ;
37309  int __cil_tmp37 ;
37310  unsigned char __cil_tmp38 ;
37311
37312  {
37313  {
37314#line 730
37315  __cil_tmp6 = dev->quirks;
37316#line 730
37317  __cil_tmp7 = (int )__cil_tmp6;
37318#line 730
37319  if (__cil_tmp7 & 1) {
37320#line 731
37321    rc = -5;
37322  } else {
37323    {
37324#line 733
37325    __cil_tmp8 = (unsigned short )langid;
37326#line 733
37327    __cil_tmp9 = (int )__cil_tmp8;
37328#line 733
37329    __cil_tmp10 = (unsigned short )__cil_tmp9;
37330#line 733
37331    __cil_tmp11 = (unsigned char )index;
37332#line 733
37333    __cil_tmp12 = (int )__cil_tmp11;
37334#line 733
37335    __cil_tmp13 = (unsigned char )__cil_tmp12;
37336#line 733
37337    __cil_tmp14 = (void *)buf;
37338#line 733
37339    rc = usb_get_string(dev, __cil_tmp10, __cil_tmp13, __cil_tmp14, 255);
37340    }
37341  }
37342  }
37343#line 737
37344  if (rc <= 1) {
37345    {
37346#line 738
37347    __cil_tmp15 = (unsigned short )langid;
37348#line 738
37349    __cil_tmp16 = (int )__cil_tmp15;
37350#line 738
37351    __cil_tmp17 = (unsigned short )__cil_tmp16;
37352#line 738
37353    __cil_tmp18 = (unsigned char )index;
37354#line 738
37355    __cil_tmp19 = (int )__cil_tmp18;
37356#line 738
37357    __cil_tmp20 = (unsigned char )__cil_tmp19;
37358#line 738
37359    __cil_tmp21 = (void *)buf;
37360#line 738
37361    rc = usb_get_string(dev, __cil_tmp17, __cil_tmp20, __cil_tmp21, 2);
37362    }
37363#line 739
37364    if (rc == 2) {
37365      {
37366#line 740
37367      __cil_tmp22 = (unsigned short )langid;
37368#line 740
37369      __cil_tmp23 = (int )__cil_tmp22;
37370#line 740
37371      __cil_tmp24 = (unsigned short )__cil_tmp23;
37372#line 740
37373      __cil_tmp25 = (unsigned char )index;
37374#line 740
37375      __cil_tmp26 = (int )__cil_tmp25;
37376#line 740
37377      __cil_tmp27 = (unsigned char )__cil_tmp26;
37378#line 740
37379      __cil_tmp28 = (void *)buf;
37380#line 740
37381      __cil_tmp29 = *buf;
37382#line 740
37383      __cil_tmp30 = (int )__cil_tmp29;
37384#line 740
37385      rc = usb_get_string(dev, __cil_tmp24, __cil_tmp27, __cil_tmp28, __cil_tmp30);
37386      }
37387    } else {
37388
37389    }
37390  } else {
37391
37392  }
37393#line 743
37394  if (rc > 1) {
37395    {
37396#line 744
37397    __cil_tmp31 = *buf;
37398#line 744
37399    __cil_tmp32 = (unsigned int )__cil_tmp31;
37400#line 744
37401    if (__cil_tmp32 == 0U) {
37402      {
37403#line 744
37404      __cil_tmp33 = buf + 1UL;
37405#line 744
37406      __cil_tmp34 = *__cil_tmp33;
37407#line 744
37408      __cil_tmp35 = (unsigned int )__cil_tmp34;
37409#line 744
37410      if (__cil_tmp35 == 0U) {
37411        {
37412#line 745
37413        usb_try_string_workarounds(buf, & rc);
37414        }
37415      } else {
37416
37417      }
37418      }
37419    } else {
37420
37421    }
37422    }
37423    {
37424#line 748
37425    __cil_tmp36 = *buf;
37426#line 748
37427    __cil_tmp37 = (int )__cil_tmp36;
37428#line 748
37429    if (__cil_tmp37 < rc) {
37430#line 749
37431      __cil_tmp38 = *buf;
37432#line 749
37433      rc = (int )__cil_tmp38;
37434    } else {
37435
37436    }
37437    }
37438#line 751
37439    rc = rc & -2;
37440  } else {
37441
37442  }
37443#line 754
37444  if (rc <= 1) {
37445#line 755
37446    if (rc < 0) {
37447#line 755
37448      rc = rc;
37449    } else {
37450#line 755
37451      rc = -22;
37452    }
37453  } else {
37454
37455  }
37456#line 757
37457  return (rc);
37458}
37459}
37460#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"
37461static int usb_get_langid(struct usb_device *dev , unsigned char *tbuf ) 
37462{ int err ;
37463  unsigned char *__cil_tmp4 ;
37464  unsigned char *__cil_tmp5 ;
37465  unsigned char __cil_tmp6 ;
37466  unsigned int __cil_tmp7 ;
37467  int __cil_tmp8 ;
37468  struct device *__cil_tmp9 ;
37469  struct device  const  *__cil_tmp10 ;
37470  int __cil_tmp11 ;
37471  struct device *__cil_tmp12 ;
37472  struct device  const  *__cil_tmp13 ;
37473  int __cil_tmp14 ;
37474  struct device *__cil_tmp15 ;
37475  struct device  const  *__cil_tmp16 ;
37476  unsigned char *__cil_tmp17 ;
37477  unsigned char __cil_tmp18 ;
37478  int __cil_tmp19 ;
37479  int __cil_tmp20 ;
37480  unsigned char *__cil_tmp21 ;
37481  unsigned char __cil_tmp22 ;
37482  int __cil_tmp23 ;
37483  struct device *__cil_tmp24 ;
37484  struct device  const  *__cil_tmp25 ;
37485  int __cil_tmp26 ;
37486
37487  {
37488  {
37489#line 764
37490  __cil_tmp4 = (unsigned char *)dev;
37491#line 764
37492  __cil_tmp5 = __cil_tmp4 + 1556UL;
37493#line 764
37494  __cil_tmp6 = *__cil_tmp5;
37495#line 764
37496  __cil_tmp7 = (unsigned int )__cil_tmp6;
37497#line 764
37498  if (__cil_tmp7 != 0U) {
37499#line 765
37500    return (0);
37501  } else {
37502
37503  }
37504  }
37505  {
37506#line 767
37507  __cil_tmp8 = dev->string_langid;
37508#line 767
37509  if (__cil_tmp8 < 0) {
37510#line 768
37511    return (-32);
37512  } else {
37513
37514  }
37515  }
37516  {
37517#line 770
37518  err = usb_string_sub(dev, 0U, 0U, tbuf);
37519  }
37520#line 774
37521  if (err == -61) {
37522    {
37523#line 775
37524    dev->string_langid = 1033;
37525#line 776
37526    dev->have_langid = (unsigned char)1;
37527#line 777
37528    __cil_tmp9 = & dev->dev;
37529#line 777
37530    __cil_tmp10 = (struct device  const  *)__cil_tmp9;
37531#line 777
37532    __cil_tmp11 = dev->string_langid;
37533#line 777
37534    dev_err(__cil_tmp10, "string descriptor 0 malformed (err = %d), defaulting to 0x%04x\n",
37535            err, __cil_tmp11);
37536    }
37537#line 781
37538    return (0);
37539  } else
37540#line 774
37541  if (err > 0) {
37542#line 774
37543    if (err <= 3) {
37544      {
37545#line 775
37546      dev->string_langid = 1033;
37547#line 776
37548      dev->have_langid = (unsigned char)1;
37549#line 777
37550      __cil_tmp12 = & dev->dev;
37551#line 777
37552      __cil_tmp13 = (struct device  const  *)__cil_tmp12;
37553#line 777
37554      __cil_tmp14 = dev->string_langid;
37555#line 777
37556      dev_err(__cil_tmp13, "string descriptor 0 malformed (err = %d), defaulting to 0x%04x\n",
37557              err, __cil_tmp14);
37558      }
37559#line 781
37560      return (0);
37561    } else {
37562
37563    }
37564  } else {
37565
37566  }
37567#line 787
37568  if (err < 0) {
37569    {
37570#line 788
37571    __cil_tmp15 = & dev->dev;
37572#line 788
37573    __cil_tmp16 = (struct device  const  *)__cil_tmp15;
37574#line 788
37575    dev_err(__cil_tmp16, "string descriptor 0 read error: %d\n", err);
37576#line 790
37577    dev->string_langid = -1;
37578    }
37579#line 791
37580    return (-32);
37581  } else {
37582
37583  }
37584  {
37585#line 795
37586  __cil_tmp17 = tbuf + 3UL;
37587#line 795
37588  __cil_tmp18 = *__cil_tmp17;
37589#line 795
37590  __cil_tmp19 = (int )__cil_tmp18;
37591#line 795
37592  __cil_tmp20 = __cil_tmp19 << 8;
37593#line 795
37594  __cil_tmp21 = tbuf + 2UL;
37595#line 795
37596  __cil_tmp22 = *__cil_tmp21;
37597#line 795
37598  __cil_tmp23 = (int )__cil_tmp22;
37599#line 795
37600  dev->string_langid = __cil_tmp23 | __cil_tmp20;
37601#line 796
37602  dev->have_langid = (unsigned char)1;
37603#line 797
37604  __cil_tmp24 = & dev->dev;
37605#line 797
37606  __cil_tmp25 = (struct device  const  *)__cil_tmp24;
37607#line 797
37608  __cil_tmp26 = dev->string_langid;
37609#line 797
37610  dev_printk("<7>", __cil_tmp25, "default language 0x%04x\n", __cil_tmp26);
37611  }
37612#line 799
37613  return (0);
37614}
37615}
37616#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"
37617int usb_string(struct usb_device *dev , int index , char *buf , size_t size ) 
37618{ unsigned char *tbuf ;
37619  int err ;
37620  void *tmp ;
37621  enum usb_device_state __cil_tmp8 ;
37622  unsigned int __cil_tmp9 ;
37623  char *__cil_tmp10 ;
37624  unsigned long __cil_tmp11 ;
37625  unsigned long __cil_tmp12 ;
37626  unsigned char *__cil_tmp13 ;
37627  unsigned long __cil_tmp14 ;
37628  unsigned long __cil_tmp15 ;
37629  int __cil_tmp16 ;
37630  unsigned int __cil_tmp17 ;
37631  unsigned int __cil_tmp18 ;
37632  wchar_t const   *__cil_tmp19 ;
37633  wchar_t const   *__cil_tmp20 ;
37634  int __cil_tmp21 ;
37635  int __cil_tmp22 ;
37636  enum utf16_endian __cil_tmp23 ;
37637  u8 *__cil_tmp24 ;
37638  int __cil_tmp25 ;
37639  unsigned long __cil_tmp26 ;
37640  char *__cil_tmp27 ;
37641  unsigned char *__cil_tmp28 ;
37642  unsigned char __cil_tmp29 ;
37643  unsigned int __cil_tmp30 ;
37644  struct device *__cil_tmp31 ;
37645  struct device  const  *__cil_tmp32 ;
37646  unsigned char *__cil_tmp33 ;
37647  unsigned char __cil_tmp34 ;
37648  int __cil_tmp35 ;
37649  void const   *__cil_tmp36 ;
37650
37651  {
37652  {
37653#line 824
37654  __cil_tmp8 = dev->state;
37655#line 824
37656  __cil_tmp9 = (unsigned int )__cil_tmp8;
37657#line 824
37658  if (__cil_tmp9 == 8U) {
37659#line 825
37660    return (-113);
37661  } else {
37662
37663  }
37664  }
37665#line 826
37666  if (size == 0UL) {
37667#line 827
37668    return (-22);
37669  } else {
37670    {
37671#line 826
37672    __cil_tmp10 = (char *)0;
37673#line 826
37674    __cil_tmp11 = (unsigned long )__cil_tmp10;
37675#line 826
37676    __cil_tmp12 = (unsigned long )buf;
37677#line 826
37678    if (__cil_tmp12 == __cil_tmp11) {
37679#line 827
37680      return (-22);
37681    } else
37682#line 826
37683    if (index == 0) {
37684#line 827
37685      return (-22);
37686    } else {
37687
37688    }
37689    }
37690  }
37691  {
37692#line 828
37693  *buf = (char)0;
37694#line 829
37695  tmp = kmalloc(256UL, 16U);
37696#line 829
37697  tbuf = (unsigned char *)tmp;
37698  }
37699  {
37700#line 830
37701  __cil_tmp13 = (unsigned char *)0;
37702#line 830
37703  __cil_tmp14 = (unsigned long )__cil_tmp13;
37704#line 830
37705  __cil_tmp15 = (unsigned long )tbuf;
37706#line 830
37707  if (__cil_tmp15 == __cil_tmp14) {
37708#line 831
37709    return (-12);
37710  } else {
37711
37712  }
37713  }
37714  {
37715#line 833
37716  err = usb_get_langid(dev, tbuf);
37717  }
37718#line 834
37719  if (err < 0) {
37720#line 835
37721    goto errout;
37722  } else {
37723
37724  }
37725  {
37726#line 837
37727  __cil_tmp16 = dev->string_langid;
37728#line 837
37729  __cil_tmp17 = (unsigned int )__cil_tmp16;
37730#line 837
37731  __cil_tmp18 = (unsigned int )index;
37732#line 837
37733  err = usb_string_sub(dev, __cil_tmp17, __cil_tmp18, tbuf);
37734  }
37735#line 838
37736  if (err < 0) {
37737#line 839
37738    goto errout;
37739  } else {
37740
37741  }
37742  {
37743#line 841
37744  size = size - 1UL;
37745#line 842
37746  __cil_tmp19 = (wchar_t const   *)tbuf;
37747#line 842
37748  __cil_tmp20 = __cil_tmp19 + 2U;
37749#line 842
37750  __cil_tmp21 = err + -2;
37751#line 842
37752  __cil_tmp22 = __cil_tmp21 / 2;
37753#line 842
37754  __cil_tmp23 = (enum utf16_endian )1;
37755#line 842
37756  __cil_tmp24 = (u8 *)buf;
37757#line 842
37758  __cil_tmp25 = (int )size;
37759#line 842
37760  err = utf16s_to_utf8s(__cil_tmp20, __cil_tmp22, __cil_tmp23, __cil_tmp24, __cil_tmp25);
37761#line 844
37762  __cil_tmp26 = (unsigned long )err;
37763#line 844
37764  __cil_tmp27 = buf + __cil_tmp26;
37765#line 844
37766  *__cil_tmp27 = (char)0;
37767  }
37768  {
37769#line 846
37770  __cil_tmp28 = tbuf + 1UL;
37771#line 846
37772  __cil_tmp29 = *__cil_tmp28;
37773#line 846
37774  __cil_tmp30 = (unsigned int )__cil_tmp29;
37775#line 846
37776  if (__cil_tmp30 != 3U) {
37777    {
37778#line 847
37779    __cil_tmp31 = & dev->dev;
37780#line 847
37781    __cil_tmp32 = (struct device  const  *)__cil_tmp31;
37782#line 847
37783    __cil_tmp33 = tbuf + 1UL;
37784#line 847
37785    __cil_tmp34 = *__cil_tmp33;
37786#line 847
37787    __cil_tmp35 = (int )__cil_tmp34;
37788#line 847
37789    dev_printk("<7>", __cil_tmp32, "wrong descriptor type %02x for string %d (\"%s\")\n",
37790               __cil_tmp35, index, buf);
37791    }
37792  } else {
37793
37794  }
37795  }
37796  errout: 
37797  {
37798#line 852
37799  __cil_tmp36 = (void const   *)tbuf;
37800#line 852
37801  kfree(__cil_tmp36);
37802  }
37803#line 853
37804  return (err);
37805}
37806}
37807#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"
37808char *usb_cache_string(struct usb_device *udev , int index ) 
37809{ char *buf ;
37810  char *smallbuf ;
37811  int len ;
37812  void *tmp ;
37813  void *tmp___0 ;
37814  size_t __len ;
37815  void *__ret ;
37816  char *__cil_tmp10 ;
37817  unsigned long __cil_tmp11 ;
37818  unsigned long __cil_tmp12 ;
37819  size_t __cil_tmp13 ;
37820  char *__cil_tmp14 ;
37821  unsigned long __cil_tmp15 ;
37822  unsigned long __cil_tmp16 ;
37823  void *__cil_tmp17 ;
37824  void const   *__cil_tmp18 ;
37825  void const   *__cil_tmp19 ;
37826
37827  {
37828#line 871
37829  smallbuf = (char *)0;
37830#line 874
37831  if (index <= 0) {
37832#line 875
37833    return ((char *)0);
37834  } else {
37835
37836  }
37837  {
37838#line 877
37839  tmp = kmalloc(382UL, 16U);
37840#line 877
37841  buf = (char *)tmp;
37842  }
37843  {
37844#line 878
37845  __cil_tmp10 = (char *)0;
37846#line 878
37847  __cil_tmp11 = (unsigned long )__cil_tmp10;
37848#line 878
37849  __cil_tmp12 = (unsigned long )buf;
37850#line 878
37851  if (__cil_tmp12 != __cil_tmp11) {
37852    {
37853#line 879
37854    len = usb_string(udev, index, buf, 382UL);
37855    }
37856#line 880
37857    if (len > 0) {
37858      {
37859#line 881
37860      len = len + 1;
37861#line 881
37862      __cil_tmp13 = (size_t )len;
37863#line 881
37864      tmp___0 = kmalloc(__cil_tmp13, 16U);
37865#line 881
37866      smallbuf = (char *)tmp___0;
37867      }
37868      {
37869#line 882
37870      __cil_tmp14 = (char *)0;
37871#line 882
37872      __cil_tmp15 = (unsigned long )__cil_tmp14;
37873#line 882
37874      __cil_tmp16 = (unsigned long )smallbuf;
37875#line 882
37876      if (__cil_tmp16 == __cil_tmp15) {
37877#line 883
37878        return (buf);
37879      } else {
37880
37881      }
37882      }
37883      {
37884#line 884
37885      __len = (size_t )len;
37886#line 884
37887      __cil_tmp17 = (void *)smallbuf;
37888#line 884
37889      __cil_tmp18 = (void const   *)buf;
37890#line 884
37891      __ret = __builtin_memcpy(__cil_tmp17, __cil_tmp18, __len);
37892      }
37893    } else {
37894
37895    }
37896    {
37897#line 886
37898    __cil_tmp19 = (void const   *)buf;
37899#line 886
37900    kfree(__cil_tmp19);
37901    }
37902  } else {
37903
37904  }
37905  }
37906#line 888
37907  return (smallbuf);
37908}
37909}
37910#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"
37911int usb_get_device_descriptor(struct usb_device *dev , unsigned int size ) 
37912{ struct usb_device_descriptor *desc ;
37913  int ret ;
37914  void *tmp ;
37915  size_t __len ;
37916  void *__ret ;
37917  struct usb_device_descriptor *__cil_tmp8 ;
37918  unsigned long __cil_tmp9 ;
37919  unsigned long __cil_tmp10 ;
37920  void *__cil_tmp11 ;
37921  int __cil_tmp12 ;
37922  struct usb_device_descriptor *__cil_tmp13 ;
37923  void *__cil_tmp14 ;
37924  void const   *__cil_tmp15 ;
37925  void const   *__cil_tmp16 ;
37926
37927  {
37928#line 914
37929  if (size > 18U) {
37930#line 915
37931    return (-22);
37932  } else {
37933
37934  }
37935  {
37936#line 916
37937  tmp = kmalloc(18UL, 16U);
37938#line 916
37939  desc = (struct usb_device_descriptor *)tmp;
37940  }
37941  {
37942#line 917
37943  __cil_tmp8 = (struct usb_device_descriptor *)0;
37944#line 917
37945  __cil_tmp9 = (unsigned long )__cil_tmp8;
37946#line 917
37947  __cil_tmp10 = (unsigned long )desc;
37948#line 917
37949  if (__cil_tmp10 == __cil_tmp9) {
37950#line 918
37951    return (-12);
37952  } else {
37953
37954  }
37955  }
37956  {
37957#line 920
37958  __cil_tmp11 = (void *)desc;
37959#line 920
37960  __cil_tmp12 = (int )size;
37961#line 920
37962  ret = usb_get_descriptor(dev, (unsigned char)1, (unsigned char)0, __cil_tmp11, __cil_tmp12);
37963  }
37964#line 921
37965  if (ret >= 0) {
37966    {
37967#line 922
37968    __len = (size_t )size;
37969#line 922
37970    __cil_tmp13 = & dev->descriptor;
37971#line 922
37972    __cil_tmp14 = (void *)__cil_tmp13;
37973#line 922
37974    __cil_tmp15 = (void const   *)desc;
37975#line 922
37976    __ret = __builtin_memcpy(__cil_tmp14, __cil_tmp15, __len);
37977    }
37978  } else {
37979
37980  }
37981  {
37982#line 923
37983  __cil_tmp16 = (void const   *)desc;
37984#line 923
37985  kfree(__cil_tmp16);
37986  }
37987#line 924
37988  return (ret);
37989}
37990}
37991#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"
37992int usb_get_status(struct usb_device *dev , int type , int target , void *data ) 
37993{ int ret ;
37994  u16 *status ;
37995  void *tmp ;
37996  unsigned int tmp___0 ;
37997  u16 *__cil_tmp9 ;
37998  unsigned long __cil_tmp10 ;
37999  unsigned long __cil_tmp11 ;
38000  unsigned int __cil_tmp12 ;
38001  __u8 __cil_tmp13 ;
38002  signed char __cil_tmp14 ;
38003  int __cil_tmp15 ;
38004  int __cil_tmp16 ;
38005  __u8 __cil_tmp17 ;
38006  int __cil_tmp18 ;
38007  __u8 __cil_tmp19 ;
38008  __u16 __cil_tmp20 ;
38009  __u16 __cil_tmp21 ;
38010  int __cil_tmp22 ;
38011  __u16 __cil_tmp23 ;
38012  void *__cil_tmp24 ;
38013  __u16 __cil_tmp25 ;
38014  u16 *__cil_tmp26 ;
38015  void const   *__cil_tmp27 ;
38016
38017  {
38018  {
38019#line 952
38020  tmp = kmalloc(2UL, 208U);
38021#line 952
38022  status = (u16 *)tmp;
38023  }
38024  {
38025#line 954
38026  __cil_tmp9 = (u16 *)0;
38027#line 954
38028  __cil_tmp10 = (unsigned long )__cil_tmp9;
38029#line 954
38030  __cil_tmp11 = (unsigned long )status;
38031#line 954
38032  if (__cil_tmp11 == __cil_tmp10) {
38033#line 955
38034    return (-12);
38035  } else {
38036
38037  }
38038  }
38039  {
38040#line 957
38041  tmp___0 = __create_pipe(dev, 0U);
38042#line 957
38043  __cil_tmp12 = tmp___0 | 2147483776U;
38044#line 957
38045  __cil_tmp13 = (__u8 )0;
38046#line 957
38047  __cil_tmp14 = (signed char )type;
38048#line 957
38049  __cil_tmp15 = (int )__cil_tmp14;
38050#line 957
38051  __cil_tmp16 = __cil_tmp15 | -128;
38052#line 957
38053  __cil_tmp17 = (__u8 )__cil_tmp16;
38054#line 957
38055  __cil_tmp18 = (int )__cil_tmp17;
38056#line 957
38057  __cil_tmp19 = (__u8 )__cil_tmp18;
38058#line 957
38059  __cil_tmp20 = (__u16 )0;
38060#line 957
38061  __cil_tmp21 = (__u16 )target;
38062#line 957
38063  __cil_tmp22 = (int )__cil_tmp21;
38064#line 957
38065  __cil_tmp23 = (__u16 )__cil_tmp22;
38066#line 957
38067  __cil_tmp24 = (void *)status;
38068#line 957
38069  __cil_tmp25 = (__u16 )2;
38070#line 957
38071  ret = usb_control_msg(dev, __cil_tmp12, __cil_tmp13, __cil_tmp19, __cil_tmp20, __cil_tmp23,
38072                        __cil_tmp24, __cil_tmp25, 5000);
38073#line 961
38074  __cil_tmp26 = (u16 *)data;
38075#line 961
38076  *__cil_tmp26 = *status;
38077#line 962
38078  __cil_tmp27 = (void const   *)status;
38079#line 962
38080  kfree(__cil_tmp27);
38081  }
38082#line 963
38083  return (ret);
38084}
38085}
38086#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"
38087int usb_clear_halt(struct usb_device *dev , int pipe ) 
38088{ int result ;
38089  int endp ;
38090  unsigned int tmp ;
38091  int __cil_tmp6 ;
38092  int __cil_tmp7 ;
38093  unsigned int __cil_tmp8 ;
38094  __u8 __cil_tmp9 ;
38095  __u8 __cil_tmp10 ;
38096  __u16 __cil_tmp11 ;
38097  __u16 __cil_tmp12 ;
38098  int __cil_tmp13 ;
38099  __u16 __cil_tmp14 ;
38100  void *__cil_tmp15 ;
38101  __u16 __cil_tmp16 ;
38102  unsigned int __cil_tmp17 ;
38103
38104  {
38105#line 993
38106  __cil_tmp6 = pipe >> 15;
38107#line 993
38108  endp = __cil_tmp6 & 15;
38109  {
38110#line 995
38111  __cil_tmp7 = pipe & 128;
38112#line 995
38113  if (__cil_tmp7 != 0) {
38114#line 996
38115    endp = endp | 128;
38116  } else {
38117
38118  }
38119  }
38120  {
38121#line 1002
38122  tmp = __create_pipe(dev, 0U);
38123#line 1002
38124  __cil_tmp8 = tmp | 2147483648U;
38125#line 1002
38126  __cil_tmp9 = (__u8 )1;
38127#line 1002
38128  __cil_tmp10 = (__u8 )2;
38129#line 1002
38130  __cil_tmp11 = (__u16 )0;
38131#line 1002
38132  __cil_tmp12 = (__u16 )endp;
38133#line 1002
38134  __cil_tmp13 = (int )__cil_tmp12;
38135#line 1002
38136  __cil_tmp14 = (__u16 )__cil_tmp13;
38137#line 1002
38138  __cil_tmp15 = (void *)0;
38139#line 1002
38140  __cil_tmp16 = (__u16 )0;
38141#line 1002
38142  result = usb_control_msg(dev, __cil_tmp8, __cil_tmp9, __cil_tmp10, __cil_tmp11,
38143                           __cil_tmp14, __cil_tmp15, __cil_tmp16, 5000);
38144  }
38145#line 1008
38146  if (result < 0) {
38147#line 1009
38148    return (result);
38149  } else {
38150
38151  }
38152  {
38153#line 1019
38154  __cil_tmp17 = (unsigned int )endp;
38155#line 1019
38156  usb_reset_endpoint(dev, __cil_tmp17);
38157  }
38158#line 1021
38159  return (0);
38160}
38161}
38162#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"
38163static int create_intf_ep_devs(struct usb_interface *intf ) 
38164{ struct usb_device *udev ;
38165  struct usb_device *tmp ;
38166  struct usb_host_interface *alt ;
38167  int i ;
38168  unsigned char *__cil_tmp6 ;
38169  unsigned char *__cil_tmp7 ;
38170  unsigned char __cil_tmp8 ;
38171  unsigned int __cil_tmp9 ;
38172  unsigned char *__cil_tmp10 ;
38173  unsigned char *__cil_tmp11 ;
38174  unsigned char __cil_tmp12 ;
38175  unsigned int __cil_tmp13 ;
38176  struct device *__cil_tmp14 ;
38177  unsigned long __cil_tmp15 ;
38178  struct usb_host_endpoint *__cil_tmp16 ;
38179  struct usb_host_endpoint *__cil_tmp17 ;
38180  __u8 __cil_tmp18 ;
38181  int __cil_tmp19 ;
38182
38183  {
38184  {
38185#line 1027
38186  tmp = interface_to_usbdev(intf);
38187#line 1027
38188  udev = tmp;
38189#line 1028
38190  alt = intf->cur_altsetting;
38191  }
38192  {
38193#line 1031
38194  __cil_tmp6 = (unsigned char *)intf;
38195#line 1031
38196  __cil_tmp7 = __cil_tmp6 + 40UL;
38197#line 1031
38198  __cil_tmp8 = *__cil_tmp7;
38199#line 1031
38200  __cil_tmp9 = (unsigned int )__cil_tmp8;
38201#line 1031
38202  if (__cil_tmp9 != 0U) {
38203#line 1032
38204    return (0);
38205  } else {
38206    {
38207#line 1031
38208    __cil_tmp10 = (unsigned char *)intf;
38209#line 1031
38210    __cil_tmp11 = __cil_tmp10 + 40UL;
38211#line 1031
38212    __cil_tmp12 = *__cil_tmp11;
38213#line 1031
38214    __cil_tmp13 = (unsigned int )__cil_tmp12;
38215#line 1031
38216    if (__cil_tmp13 != 0U) {
38217#line 1032
38218      return (0);
38219    } else {
38220
38221    }
38222    }
38223  }
38224  }
38225#line 1034
38226  i = 0;
38227#line 1034
38228  goto ldv_29021;
38229  ldv_29020: 
38230  {
38231#line 1035
38232  __cil_tmp14 = & intf->dev;
38233#line 1035
38234  __cil_tmp15 = (unsigned long )i;
38235#line 1035
38236  __cil_tmp16 = alt->endpoint;
38237#line 1035
38238  __cil_tmp17 = __cil_tmp16 + __cil_tmp15;
38239#line 1035
38240  usb_create_ep_devs(__cil_tmp14, __cil_tmp17, udev);
38241#line 1034
38242  i = i + 1;
38243  }
38244  ldv_29021: ;
38245  {
38246#line 1034
38247  __cil_tmp18 = alt->desc.bNumEndpoints;
38248#line 1034
38249  __cil_tmp19 = (int )__cil_tmp18;
38250#line 1034
38251  if (__cil_tmp19 > i) {
38252#line 1035
38253    goto ldv_29020;
38254  } else {
38255#line 1037
38256    goto ldv_29022;
38257  }
38258  }
38259  ldv_29022: 
38260#line 1036
38261  intf->ep_devs_created = (unsigned char)1;
38262#line 1037
38263  return (0);
38264}
38265}
38266#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"
38267static void remove_intf_ep_devs(struct usb_interface *intf ) 
38268{ struct usb_host_interface *alt ;
38269  int i ;
38270  unsigned char *__cil_tmp4 ;
38271  unsigned char *__cil_tmp5 ;
38272  unsigned char __cil_tmp6 ;
38273  unsigned int __cil_tmp7 ;
38274  unsigned long __cil_tmp8 ;
38275  struct usb_host_endpoint *__cil_tmp9 ;
38276  struct usb_host_endpoint *__cil_tmp10 ;
38277  __u8 __cil_tmp11 ;
38278  int __cil_tmp12 ;
38279
38280  {
38281#line 1042
38282  alt = intf->cur_altsetting;
38283  {
38284#line 1045
38285  __cil_tmp4 = (unsigned char *)intf;
38286#line 1045
38287  __cil_tmp5 = __cil_tmp4 + 40UL;
38288#line 1045
38289  __cil_tmp6 = *__cil_tmp5;
38290#line 1045
38291  __cil_tmp7 = (unsigned int )__cil_tmp6;
38292#line 1045
38293  if (__cil_tmp7 == 0U) {
38294#line 1046
38295    return;
38296  } else {
38297
38298  }
38299  }
38300#line 1048
38301  i = 0;
38302#line 1048
38303  goto ldv_29029;
38304  ldv_29028: 
38305  {
38306#line 1049
38307  __cil_tmp8 = (unsigned long )i;
38308#line 1049
38309  __cil_tmp9 = alt->endpoint;
38310#line 1049
38311  __cil_tmp10 = __cil_tmp9 + __cil_tmp8;
38312#line 1049
38313  usb_remove_ep_devs(__cil_tmp10);
38314#line 1048
38315  i = i + 1;
38316  }
38317  ldv_29029: ;
38318  {
38319#line 1048
38320  __cil_tmp11 = alt->desc.bNumEndpoints;
38321#line 1048
38322  __cil_tmp12 = (int )__cil_tmp11;
38323#line 1048
38324  if (__cil_tmp12 > i) {
38325#line 1049
38326    goto ldv_29028;
38327  } else {
38328#line 1051
38329    goto ldv_29030;
38330  }
38331  }
38332  ldv_29030: 
38333#line 1050
38334  intf->ep_devs_created = (unsigned char)0;
38335#line 1051
38336  return;
38337}
38338}
38339#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"
38340void usb_disable_endpoint(struct usb_device *dev , unsigned int epaddr , bool reset_hardware ) 
38341{ unsigned int epnum ;
38342  struct usb_host_endpoint *ep ;
38343  struct usb_device *__cil_tmp6 ;
38344  unsigned long __cil_tmp7 ;
38345  unsigned long __cil_tmp8 ;
38346  unsigned int __cil_tmp9 ;
38347  struct usb_host_endpoint *__cil_tmp10 ;
38348  unsigned long __cil_tmp11 ;
38349  unsigned long __cil_tmp12 ;
38350
38351  {
38352#line 1068
38353  epnum = epaddr & 15U;
38354  {
38355#line 1071
38356  __cil_tmp6 = (struct usb_device *)0;
38357#line 1071
38358  __cil_tmp7 = (unsigned long )__cil_tmp6;
38359#line 1071
38360  __cil_tmp8 = (unsigned long )dev;
38361#line 1071
38362  if (__cil_tmp8 == __cil_tmp7) {
38363#line 1072
38364    return;
38365  } else {
38366
38367  }
38368  }
38369  {
38370#line 1074
38371  __cil_tmp9 = epaddr & 128U;
38372#line 1074
38373  if (__cil_tmp9 == 0U) {
38374#line 1075
38375    ep = dev->ep_out[epnum];
38376#line 1076
38377    if ((int )reset_hardware) {
38378#line 1077
38379      dev->ep_out[epnum] = (struct usb_host_endpoint *)0;
38380    } else {
38381
38382    }
38383  } else {
38384#line 1079
38385    ep = dev->ep_in[epnum];
38386#line 1080
38387    if ((int )reset_hardware) {
38388#line 1081
38389      dev->ep_in[epnum] = (struct usb_host_endpoint *)0;
38390    } else {
38391
38392    }
38393  }
38394  }
38395  {
38396#line 1083
38397  __cil_tmp10 = (struct usb_host_endpoint *)0;
38398#line 1083
38399  __cil_tmp11 = (unsigned long )__cil_tmp10;
38400#line 1083
38401  __cil_tmp12 = (unsigned long )ep;
38402#line 1083
38403  if (__cil_tmp12 != __cil_tmp11) {
38404    {
38405#line 1084
38406    ep->enabled = 0;
38407#line 1085
38408    usb_hcd_flush_endpoint(dev, ep);
38409    }
38410#line 1086
38411    if ((int )reset_hardware) {
38412      {
38413#line 1087
38414      usb_hcd_disable_endpoint(dev, ep);
38415      }
38416    } else {
38417
38418    }
38419  } else {
38420
38421  }
38422  }
38423#line 1089
38424  return;
38425}
38426}
38427#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"
38428void usb_reset_endpoint(struct usb_device *dev , unsigned int epaddr ) 
38429{ unsigned int epnum ;
38430  struct usb_host_endpoint *ep ;
38431  unsigned int __cil_tmp5 ;
38432  struct usb_host_endpoint *__cil_tmp6 ;
38433  unsigned long __cil_tmp7 ;
38434  unsigned long __cil_tmp8 ;
38435
38436  {
38437#line 1102
38438  epnum = epaddr & 15U;
38439  {
38440#line 1105
38441  __cil_tmp5 = epaddr & 128U;
38442#line 1105
38443  if (__cil_tmp5 == 0U) {
38444#line 1106
38445    ep = dev->ep_out[epnum];
38446  } else {
38447#line 1108
38448    ep = dev->ep_in[epnum];
38449  }
38450  }
38451  {
38452#line 1109
38453  __cil_tmp6 = (struct usb_host_endpoint *)0;
38454#line 1109
38455  __cil_tmp7 = (unsigned long )__cil_tmp6;
38456#line 1109
38457  __cil_tmp8 = (unsigned long )ep;
38458#line 1109
38459  if (__cil_tmp8 != __cil_tmp7) {
38460    {
38461#line 1110
38462    usb_hcd_reset_endpoint(dev, ep);
38463    }
38464  } else {
38465
38466  }
38467  }
38468#line 1111
38469  return;
38470}
38471}
38472#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"
38473void usb_disable_interface(struct usb_device *dev , struct usb_interface *intf , bool reset_hardware ) 
38474{ struct usb_host_interface *alt ;
38475  int i ;
38476  unsigned long __cil_tmp6 ;
38477  struct usb_host_endpoint *__cil_tmp7 ;
38478  struct usb_host_endpoint *__cil_tmp8 ;
38479  __u8 __cil_tmp9 ;
38480  unsigned int __cil_tmp10 ;
38481  int __cil_tmp11 ;
38482  bool __cil_tmp12 ;
38483  __u8 __cil_tmp13 ;
38484  int __cil_tmp14 ;
38485
38486  {
38487#line 1127
38488  alt = intf->cur_altsetting;
38489#line 1130
38490  i = 0;
38491#line 1130
38492  goto ldv_29059;
38493  ldv_29058: 
38494  {
38495#line 1131
38496  __cil_tmp6 = (unsigned long )i;
38497#line 1131
38498  __cil_tmp7 = alt->endpoint;
38499#line 1131
38500  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
38501#line 1131
38502  __cil_tmp9 = __cil_tmp8->desc.bEndpointAddress;
38503#line 1131
38504  __cil_tmp10 = (unsigned int )__cil_tmp9;
38505#line 1131
38506  __cil_tmp11 = (int )reset_hardware;
38507#line 1131
38508  __cil_tmp12 = (bool )__cil_tmp11;
38509#line 1131
38510  usb_disable_endpoint(dev, __cil_tmp10, __cil_tmp12);
38511#line 1130
38512  i = i + 1;
38513  }
38514  ldv_29059: ;
38515  {
38516#line 1130
38517  __cil_tmp13 = alt->desc.bNumEndpoints;
38518#line 1130
38519  __cil_tmp14 = (int )__cil_tmp13;
38520#line 1130
38521  if (__cil_tmp14 > i) {
38522#line 1131
38523    goto ldv_29058;
38524  } else {
38525#line 1133
38526    goto ldv_29060;
38527  }
38528  }
38529  ldv_29060: ;
38530#line 1135
38531  return;
38532}
38533}
38534#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"
38535void usb_disable_device(struct usb_device *dev , int skip_ep0 ) 
38536{ int i ;
38537  struct usb_hcd *hcd ;
38538  struct usb_hcd *tmp ;
38539  struct usb_interface *interface ;
38540  int tmp___0 ;
38541  char const   *tmp___1 ;
38542  char *tmp___2 ;
38543  struct usb_bus *__cil_tmp10 ;
38544  struct usb_host_config *__cil_tmp11 ;
38545  unsigned long __cil_tmp12 ;
38546  struct usb_host_config *__cil_tmp13 ;
38547  unsigned long __cil_tmp14 ;
38548  struct usb_host_config *__cil_tmp15 ;
38549  struct usb_interface *__cil_tmp16 ;
38550  struct usb_host_config *__cil_tmp17 ;
38551  __u8 __cil_tmp18 ;
38552  int __cil_tmp19 ;
38553  struct usb_host_config *__cil_tmp20 ;
38554  struct device *__cil_tmp21 ;
38555  struct device *__cil_tmp22 ;
38556  struct device  const  *__cil_tmp23 ;
38557  struct device *__cil_tmp24 ;
38558  struct device  const  *__cil_tmp25 ;
38559  struct device *__cil_tmp26 ;
38560  struct usb_host_config *__cil_tmp27 ;
38561  __u8 __cil_tmp28 ;
38562  int __cil_tmp29 ;
38563  struct usb_host_config *__cil_tmp30 ;
38564  struct usb_interface *__cil_tmp31 ;
38565  struct device *__cil_tmp32 ;
38566  struct usb_host_config *__cil_tmp33 ;
38567  struct usb_host_config *__cil_tmp34 ;
38568  __u8 __cil_tmp35 ;
38569  int __cil_tmp36 ;
38570  enum usb_device_state __cil_tmp37 ;
38571  unsigned int __cil_tmp38 ;
38572  enum usb_device_state __cil_tmp39 ;
38573  struct device *__cil_tmp40 ;
38574  struct device  const  *__cil_tmp41 ;
38575  int (*__cil_tmp42)(struct usb_hcd * , struct usb_device * ) ;
38576  unsigned long __cil_tmp43 ;
38577  struct hc_driver  const  *__cil_tmp44 ;
38578  int (*__cil_tmp45)(struct usb_hcd * , struct usb_device * ) ;
38579  unsigned long __cil_tmp46 ;
38580  unsigned int __cil_tmp47 ;
38581  bool __cil_tmp48 ;
38582  int __cil_tmp49 ;
38583  unsigned int __cil_tmp50 ;
38584  bool __cil_tmp51 ;
38585  struct usb_host_config *__cil_tmp52 ;
38586  struct usb_host_interface *__cil_tmp53 ;
38587  struct usb_host_interface *__cil_tmp54 ;
38588  unsigned int __cil_tmp55 ;
38589  bool __cil_tmp56 ;
38590  int __cil_tmp57 ;
38591  unsigned int __cil_tmp58 ;
38592  bool __cil_tmp59 ;
38593
38594  {
38595  {
38596#line 1152
38597  __cil_tmp10 = dev->bus;
38598#line 1152
38599  tmp = bus_to_hcd(__cil_tmp10);
38600#line 1152
38601  hcd = tmp;
38602  }
38603  {
38604#line 1157
38605  __cil_tmp11 = (struct usb_host_config *)0;
38606#line 1157
38607  __cil_tmp12 = (unsigned long )__cil_tmp11;
38608#line 1157
38609  __cil_tmp13 = dev->actconfig;
38610#line 1157
38611  __cil_tmp14 = (unsigned long )__cil_tmp13;
38612#line 1157
38613  if (__cil_tmp14 != __cil_tmp12) {
38614#line 1163
38615    i = 0;
38616#line 1163
38617    goto ldv_29068;
38618    ldv_29067: 
38619#line 1164
38620    __cil_tmp15 = dev->actconfig;
38621#line 1164
38622    __cil_tmp16 = __cil_tmp15->interface[i];
38623#line 1164
38624    __cil_tmp16->unregistering = (unsigned char)1;
38625#line 1163
38626    i = i + 1;
38627    ldv_29068: ;
38628    {
38629#line 1163
38630    __cil_tmp17 = dev->actconfig;
38631#line 1163
38632    __cil_tmp18 = __cil_tmp17->desc.bNumInterfaces;
38633#line 1163
38634    __cil_tmp19 = (int )__cil_tmp18;
38635#line 1163
38636    if (__cil_tmp19 > i) {
38637#line 1164
38638      goto ldv_29067;
38639    } else {
38640#line 1166
38641      goto ldv_29069;
38642    }
38643    }
38644    ldv_29069: 
38645#line 1166
38646    i = 0;
38647#line 1166
38648    goto ldv_29073;
38649    ldv_29072: 
38650    {
38651#line 1170
38652    __cil_tmp20 = dev->actconfig;
38653#line 1170
38654    interface = __cil_tmp20->interface[i];
38655#line 1171
38656    __cil_tmp21 = & interface->dev;
38657#line 1171
38658    tmp___0 = device_is_registered(__cil_tmp21);
38659    }
38660#line 1171
38661    if (tmp___0 == 0) {
38662#line 1172
38663      goto ldv_29071;
38664    } else {
38665
38666    }
38667    {
38668#line 1173
38669    __cil_tmp22 = & interface->dev;
38670#line 1173
38671    __cil_tmp23 = (struct device  const  *)__cil_tmp22;
38672#line 1173
38673    tmp___1 = dev_name(__cil_tmp23);
38674#line 1173
38675    __cil_tmp24 = & dev->dev;
38676#line 1173
38677    __cil_tmp25 = (struct device  const  *)__cil_tmp24;
38678#line 1173
38679    dev_printk("<7>", __cil_tmp25, "unregistering interface %s\n", tmp___1);
38680#line 1175
38681    remove_intf_ep_devs(interface);
38682#line 1176
38683    __cil_tmp26 = & interface->dev;
38684#line 1176
38685    device_del(__cil_tmp26);
38686    }
38687    ldv_29071: 
38688#line 1166
38689    i = i + 1;
38690    ldv_29073: ;
38691    {
38692#line 1166
38693    __cil_tmp27 = dev->actconfig;
38694#line 1166
38695    __cil_tmp28 = __cil_tmp27->desc.bNumInterfaces;
38696#line 1166
38697    __cil_tmp29 = (int )__cil_tmp28;
38698#line 1166
38699    if (__cil_tmp29 > i) {
38700#line 1167
38701      goto ldv_29072;
38702    } else {
38703#line 1169
38704      goto ldv_29074;
38705    }
38706    }
38707    ldv_29074: 
38708#line 1182
38709    i = 0;
38710#line 1182
38711    goto ldv_29076;
38712    ldv_29075: 
38713    {
38714#line 1183
38715    __cil_tmp30 = dev->actconfig;
38716#line 1183
38717    __cil_tmp31 = __cil_tmp30->interface[i];
38718#line 1183
38719    __cil_tmp32 = & __cil_tmp31->dev;
38720#line 1183
38721    put_device(__cil_tmp32);
38722#line 1184
38723    __cil_tmp33 = dev->actconfig;
38724#line 1184
38725    __cil_tmp33->interface[i] = (struct usb_interface *)0;
38726#line 1182
38727    i = i + 1;
38728    }
38729    ldv_29076: ;
38730    {
38731#line 1182
38732    __cil_tmp34 = dev->actconfig;
38733#line 1182
38734    __cil_tmp35 = __cil_tmp34->desc.bNumInterfaces;
38735#line 1182
38736    __cil_tmp36 = (int )__cil_tmp35;
38737#line 1182
38738    if (__cil_tmp36 > i) {
38739#line 1183
38740      goto ldv_29075;
38741    } else {
38742#line 1185
38743      goto ldv_29077;
38744    }
38745    }
38746    ldv_29077: 
38747#line 1186
38748    dev->actconfig = (struct usb_host_config *)0;
38749    {
38750#line 1187
38751    __cil_tmp37 = dev->state;
38752#line 1187
38753    __cil_tmp38 = (unsigned int )__cil_tmp37;
38754#line 1187
38755    if (__cil_tmp38 == 7U) {
38756      {
38757#line 1188
38758      __cil_tmp39 = (enum usb_device_state )6;
38759#line 1188
38760      usb_set_device_state(dev, __cil_tmp39);
38761      }
38762    } else {
38763
38764    }
38765    }
38766  } else {
38767
38768  }
38769  }
38770#line 1191
38771  if (skip_ep0 != 0) {
38772#line 1191
38773    tmp___2 = (char *)"non-ep0";
38774  } else {
38775#line 1191
38776    tmp___2 = (char *)"all";
38777  }
38778  {
38779#line 1191
38780  __cil_tmp40 = & dev->dev;
38781#line 1191
38782  __cil_tmp41 = (struct device  const  *)__cil_tmp40;
38783#line 1191
38784  dev_printk("<7>", __cil_tmp41, "%s nuking %s URBs\n", "usb_disable_device", tmp___2);
38785  }
38786  {
38787#line 1193
38788  __cil_tmp42 = (int (* const  )(struct usb_hcd * , struct usb_device * ))0;
38789#line 1193
38790  __cil_tmp43 = (unsigned long )__cil_tmp42;
38791#line 1193
38792  __cil_tmp44 = hcd->driver;
38793#line 1193
38794  __cil_tmp45 = __cil_tmp44->check_bandwidth;
38795#line 1193
38796  __cil_tmp46 = (unsigned long )__cil_tmp45;
38797#line 1193
38798  if (__cil_tmp46 != __cil_tmp43) {
38799#line 1195
38800    i = skip_ep0;
38801#line 1195
38802    goto ldv_29080;
38803    ldv_29079: 
38804    {
38805#line 1196
38806    __cil_tmp47 = (unsigned int )i;
38807#line 1196
38808    __cil_tmp48 = (bool )0;
38809#line 1196
38810    usb_disable_endpoint(dev, __cil_tmp47, __cil_tmp48);
38811#line 1197
38812    __cil_tmp49 = i + 128;
38813#line 1197
38814    __cil_tmp50 = (unsigned int )__cil_tmp49;
38815#line 1197
38816    __cil_tmp51 = (bool )0;
38817#line 1197
38818    usb_disable_endpoint(dev, __cil_tmp50, __cil_tmp51);
38819#line 1195
38820    i = i + 1;
38821    }
38822    ldv_29080: ;
38823#line 1195
38824    if (i <= 15) {
38825#line 1196
38826      goto ldv_29079;
38827    } else {
38828#line 1198
38829      goto ldv_29081;
38830    }
38831    ldv_29081: 
38832    {
38833#line 1200
38834    __cil_tmp52 = (struct usb_host_config *)0;
38835#line 1200
38836    __cil_tmp53 = (struct usb_host_interface *)0;
38837#line 1200
38838    __cil_tmp54 = (struct usb_host_interface *)0;
38839#line 1200
38840    usb_hcd_alloc_bandwidth(dev, __cil_tmp52, __cil_tmp53, __cil_tmp54);
38841    }
38842  } else {
38843
38844  }
38845  }
38846#line 1203
38847  i = skip_ep0;
38848#line 1203
38849  goto ldv_29083;
38850  ldv_29082: 
38851  {
38852#line 1204
38853  __cil_tmp55 = (unsigned int )i;
38854#line 1204
38855  __cil_tmp56 = (bool )1;
38856#line 1204
38857  usb_disable_endpoint(dev, __cil_tmp55, __cil_tmp56);
38858#line 1205
38859  __cil_tmp57 = i + 128;
38860#line 1205
38861  __cil_tmp58 = (unsigned int )__cil_tmp57;
38862#line 1205
38863  __cil_tmp59 = (bool )1;
38864#line 1205
38865  usb_disable_endpoint(dev, __cil_tmp58, __cil_tmp59);
38866#line 1203
38867  i = i + 1;
38868  }
38869  ldv_29083: ;
38870#line 1203
38871  if (i <= 15) {
38872#line 1204
38873    goto ldv_29082;
38874  } else {
38875#line 1206
38876    goto ldv_29084;
38877  }
38878  ldv_29084: ;
38879#line 1208
38880  return;
38881}
38882}
38883#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"
38884void usb_enable_endpoint(struct usb_device *dev , struct usb_host_endpoint *ep , bool reset_ep ) 
38885{ int epnum ;
38886  int tmp ;
38887  int is_out ;
38888  int tmp___0 ;
38889  int is_control ;
38890  int tmp___1 ;
38891  struct usb_endpoint_descriptor *__cil_tmp10 ;
38892  struct usb_endpoint_descriptor  const  *__cil_tmp11 ;
38893  struct usb_endpoint_descriptor *__cil_tmp12 ;
38894  struct usb_endpoint_descriptor  const  *__cil_tmp13 ;
38895  struct usb_endpoint_descriptor *__cil_tmp14 ;
38896  struct usb_endpoint_descriptor  const  *__cil_tmp15 ;
38897
38898  {
38899  {
38900#line 1221
38901  __cil_tmp10 = & ep->desc;
38902#line 1221
38903  __cil_tmp11 = (struct usb_endpoint_descriptor  const  *)__cil_tmp10;
38904#line 1221
38905  tmp = usb_endpoint_num(__cil_tmp11);
38906#line 1221
38907  epnum = tmp;
38908#line 1222
38909  __cil_tmp12 = & ep->desc;
38910#line 1222
38911  __cil_tmp13 = (struct usb_endpoint_descriptor  const  *)__cil_tmp12;
38912#line 1222
38913  tmp___0 = usb_endpoint_dir_out(__cil_tmp13);
38914#line 1222
38915  is_out = tmp___0;
38916#line 1223
38917  __cil_tmp14 = & ep->desc;
38918#line 1223
38919  __cil_tmp15 = (struct usb_endpoint_descriptor  const  *)__cil_tmp14;
38920#line 1223
38921  tmp___1 = usb_endpoint_xfer_control(__cil_tmp15);
38922#line 1223
38923  is_control = tmp___1;
38924  }
38925#line 1225
38926  if ((int )reset_ep) {
38927    {
38928#line 1226
38929    usb_hcd_reset_endpoint(dev, ep);
38930    }
38931  } else {
38932
38933  }
38934#line 1227
38935  if (is_out != 0) {
38936#line 1228
38937    dev->ep_out[epnum] = ep;
38938  } else
38939#line 1227
38940  if (is_control != 0) {
38941#line 1228
38942    dev->ep_out[epnum] = ep;
38943  } else {
38944
38945  }
38946#line 1229
38947  if (is_out == 0) {
38948#line 1230
38949    dev->ep_in[epnum] = ep;
38950  } else
38951#line 1229
38952  if (is_control != 0) {
38953#line 1230
38954    dev->ep_in[epnum] = ep;
38955  } else {
38956
38957  }
38958#line 1231
38959  ep->enabled = 1;
38960#line 1232
38961  return;
38962}
38963}
38964#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"
38965void usb_enable_interface(struct usb_device *dev , struct usb_interface *intf , bool reset_eps ) 
38966{ struct usb_host_interface *alt ;
38967  int i ;
38968  unsigned long __cil_tmp6 ;
38969  struct usb_host_endpoint *__cil_tmp7 ;
38970  struct usb_host_endpoint *__cil_tmp8 ;
38971  int __cil_tmp9 ;
38972  bool __cil_tmp10 ;
38973  __u8 __cil_tmp11 ;
38974  int __cil_tmp12 ;
38975
38976  {
38977#line 1245
38978  alt = intf->cur_altsetting;
38979#line 1248
38980  i = 0;
38981#line 1248
38982  goto ldv_29101;
38983  ldv_29100: 
38984  {
38985#line 1249
38986  __cil_tmp6 = (unsigned long )i;
38987#line 1249
38988  __cil_tmp7 = alt->endpoint;
38989#line 1249
38990  __cil_tmp8 = __cil_tmp7 + __cil_tmp6;
38991#line 1249
38992  __cil_tmp9 = (int )reset_eps;
38993#line 1249
38994  __cil_tmp10 = (bool )__cil_tmp9;
38995#line 1249
38996  usb_enable_endpoint(dev, __cil_tmp8, __cil_tmp10);
38997#line 1248
38998  i = i + 1;
38999  }
39000  ldv_29101: ;
39001  {
39002#line 1248
39003  __cil_tmp11 = alt->desc.bNumEndpoints;
39004#line 1248
39005  __cil_tmp12 = (int )__cil_tmp11;
39006#line 1248
39007  if (__cil_tmp12 > i) {
39008#line 1249
39009    goto ldv_29100;
39010  } else {
39011#line 1251
39012    goto ldv_29102;
39013  }
39014  }
39015  ldv_29102: ;
39016#line 1253
39017  return;
39018}
39019}
39020#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"
39021int usb_set_interface(struct usb_device *dev , int interface , int alternate ) 
39022{ struct usb_interface *iface ;
39023  struct usb_host_interface *alt ;
39024  struct usb_hcd *hcd ;
39025  struct usb_hcd *tmp ;
39026  int ret ;
39027  int manual ;
39028  unsigned int epaddr ;
39029  unsigned int pipe ;
39030  unsigned int tmp___0 ;
39031  int i ;
39032  unsigned int tmp___1 ;
39033  unsigned int tmp___2 ;
39034  int tmp___3 ;
39035  struct usb_bus *__cil_tmp17 ;
39036  enum usb_device_state __cil_tmp18 ;
39037  unsigned int __cil_tmp19 ;
39038  struct usb_device  const  *__cil_tmp20 ;
39039  unsigned int __cil_tmp21 ;
39040  struct usb_interface *__cil_tmp22 ;
39041  unsigned long __cil_tmp23 ;
39042  unsigned long __cil_tmp24 ;
39043  struct device *__cil_tmp25 ;
39044  struct device  const  *__cil_tmp26 ;
39045  unsigned char *__cil_tmp27 ;
39046  unsigned char *__cil_tmp28 ;
39047  unsigned char __cil_tmp29 ;
39048  unsigned int __cil_tmp30 ;
39049  struct usb_interface  const  *__cil_tmp31 ;
39050  unsigned int __cil_tmp32 ;
39051  struct usb_host_interface *__cil_tmp33 ;
39052  unsigned long __cil_tmp34 ;
39053  unsigned long __cil_tmp35 ;
39054  struct device *__cil_tmp36 ;
39055  struct device  const  *__cil_tmp37 ;
39056  struct mutex *__cil_tmp38 ;
39057  struct usb_host_config *__cil_tmp39 ;
39058  struct usb_host_interface *__cil_tmp40 ;
39059  struct device *__cil_tmp41 ;
39060  struct device  const  *__cil_tmp42 ;
39061  struct mutex *__cil_tmp43 ;
39062  u32 __cil_tmp44 ;
39063  unsigned int __cil_tmp45 ;
39064  unsigned int __cil_tmp46 ;
39065  __u8 __cil_tmp47 ;
39066  __u8 __cil_tmp48 ;
39067  __u16 __cil_tmp49 ;
39068  int __cil_tmp50 ;
39069  __u16 __cil_tmp51 ;
39070  __u16 __cil_tmp52 ;
39071  int __cil_tmp53 ;
39072  __u16 __cil_tmp54 ;
39073  void *__cil_tmp55 ;
39074  __u16 __cil_tmp56 ;
39075  unsigned int __cil_tmp57 ;
39076  struct device *__cil_tmp58 ;
39077  struct device  const  *__cil_tmp59 ;
39078  struct usb_host_config *__cil_tmp60 ;
39079  struct usb_host_interface *__cil_tmp61 ;
39080  struct mutex *__cil_tmp62 ;
39081  struct mutex *__cil_tmp63 ;
39082  unsigned long __cil_tmp64 ;
39083  struct usb_host_interface *__cil_tmp65 ;
39084  unsigned long __cil_tmp66 ;
39085  bool __cil_tmp67 ;
39086  unsigned long __cil_tmp68 ;
39087  struct usb_host_endpoint *__cil_tmp69 ;
39088  struct usb_host_endpoint *__cil_tmp70 ;
39089  __u8 __cil_tmp71 ;
39090  unsigned int __cil_tmp72 ;
39091  unsigned int __cil_tmp73 ;
39092  int __cil_tmp74 ;
39093  __u8 __cil_tmp75 ;
39094  int __cil_tmp76 ;
39095  bool __cil_tmp77 ;
39096  struct device *__cil_tmp78 ;
39097
39098  {
39099  {
39100#line 1289
39101  __cil_tmp17 = dev->bus;
39102#line 1289
39103  tmp = bus_to_hcd(__cil_tmp17);
39104#line 1289
39105  hcd = tmp;
39106#line 1291
39107  manual = 0;
39108  }
39109  {
39110#line 1295
39111  __cil_tmp18 = dev->state;
39112#line 1295
39113  __cil_tmp19 = (unsigned int )__cil_tmp18;
39114#line 1295
39115  if (__cil_tmp19 == 8U) {
39116#line 1296
39117    return (-113);
39118  } else {
39119
39120  }
39121  }
39122  {
39123#line 1298
39124  __cil_tmp20 = (struct usb_device  const  *)dev;
39125#line 1298
39126  __cil_tmp21 = (unsigned int )interface;
39127#line 1298
39128  iface = usb_ifnum_to_if(__cil_tmp20, __cil_tmp21);
39129  }
39130  {
39131#line 1299
39132  __cil_tmp22 = (struct usb_interface *)0;
39133#line 1299
39134  __cil_tmp23 = (unsigned long )__cil_tmp22;
39135#line 1299
39136  __cil_tmp24 = (unsigned long )iface;
39137#line 1299
39138  if (__cil_tmp24 == __cil_tmp23) {
39139    {
39140#line 1300
39141    __cil_tmp25 = & dev->dev;
39142#line 1300
39143    __cil_tmp26 = (struct device  const  *)__cil_tmp25;
39144#line 1300
39145    dev_printk("<7>", __cil_tmp26, "selecting invalid interface %d\n", interface);
39146    }
39147#line 1302
39148    return (-22);
39149  } else {
39150
39151  }
39152  }
39153  {
39154#line 1304
39155  __cil_tmp27 = (unsigned char *)iface;
39156#line 1304
39157  __cil_tmp28 = __cil_tmp27 + 40UL;
39158#line 1304
39159  __cil_tmp29 = *__cil_tmp28;
39160#line 1304
39161  __cil_tmp30 = (unsigned int )__cil_tmp29;
39162#line 1304
39163  if (__cil_tmp30 != 0U) {
39164#line 1305
39165    return (-19);
39166  } else {
39167
39168  }
39169  }
39170  {
39171#line 1307
39172  __cil_tmp31 = (struct usb_interface  const  *)iface;
39173#line 1307
39174  __cil_tmp32 = (unsigned int )alternate;
39175#line 1307
39176  alt = usb_altnum_to_altsetting(__cil_tmp31, __cil_tmp32);
39177  }
39178  {
39179#line 1308
39180  __cil_tmp33 = (struct usb_host_interface *)0;
39181#line 1308
39182  __cil_tmp34 = (unsigned long )__cil_tmp33;
39183#line 1308
39184  __cil_tmp35 = (unsigned long )alt;
39185#line 1308
39186  if (__cil_tmp35 == __cil_tmp34) {
39187    {
39188#line 1309
39189    __cil_tmp36 = & dev->dev;
39190#line 1309
39191    __cil_tmp37 = (struct device  const  *)__cil_tmp36;
39192#line 1309
39193    dev_warn(__cil_tmp37, "selecting invalid altsetting %d\n", alternate);
39194    }
39195#line 1311
39196    return (-22);
39197  } else {
39198
39199  }
39200  }
39201  {
39202#line 1317
39203  __cil_tmp38 = hcd->bandwidth_mutex;
39204#line 1317
39205  mutex_lock_nested(__cil_tmp38, 0U);
39206#line 1318
39207  __cil_tmp39 = (struct usb_host_config *)0;
39208#line 1318
39209  __cil_tmp40 = iface->cur_altsetting;
39210#line 1318
39211  ret = usb_hcd_alloc_bandwidth(dev, __cil_tmp39, __cil_tmp40, alt);
39212  }
39213#line 1319
39214  if (ret < 0) {
39215    {
39216#line 1320
39217    __cil_tmp41 = & dev->dev;
39218#line 1320
39219    __cil_tmp42 = (struct device  const  *)__cil_tmp41;
39220#line 1320
39221    _dev_info(__cil_tmp42, "Not enough bandwidth for altsetting %d\n", alternate);
39222#line 1322
39223    __cil_tmp43 = hcd->bandwidth_mutex;
39224#line 1322
39225    mutex_unlock(__cil_tmp43);
39226    }
39227#line 1323
39228    return (ret);
39229  } else {
39230
39231  }
39232  {
39233#line 1326
39234  __cil_tmp44 = dev->quirks;
39235#line 1326
39236  __cil_tmp45 = __cil_tmp44 & 4U;
39237#line 1326
39238  if (__cil_tmp45 != 0U) {
39239#line 1327
39240    ret = -32;
39241  } else {
39242    {
39243#line 1329
39244    tmp___0 = __create_pipe(dev, 0U);
39245#line 1329
39246    __cil_tmp46 = tmp___0 | 2147483648U;
39247#line 1329
39248    __cil_tmp47 = (__u8 )11;
39249#line 1329
39250    __cil_tmp48 = (__u8 )1;
39251#line 1329
39252    __cil_tmp49 = (__u16 )alternate;
39253#line 1329
39254    __cil_tmp50 = (int )__cil_tmp49;
39255#line 1329
39256    __cil_tmp51 = (__u16 )__cil_tmp50;
39257#line 1329
39258    __cil_tmp52 = (__u16 )interface;
39259#line 1329
39260    __cil_tmp53 = (int )__cil_tmp52;
39261#line 1329
39262    __cil_tmp54 = (__u16 )__cil_tmp53;
39263#line 1329
39264    __cil_tmp55 = (void *)0;
39265#line 1329
39266    __cil_tmp56 = (__u16 )0;
39267#line 1329
39268    ret = usb_control_msg(dev, __cil_tmp46, __cil_tmp47, __cil_tmp48, __cil_tmp51,
39269                          __cil_tmp54, __cil_tmp55, __cil_tmp56, 5000);
39270    }
39271  }
39272  }
39273#line 1336
39274  if (ret == -32) {
39275    {
39276#line 1336
39277    __cil_tmp57 = iface->num_altsetting;
39278#line 1336
39279    if (__cil_tmp57 == 1U) {
39280      {
39281#line 1337
39282      __cil_tmp58 = & dev->dev;
39283#line 1337
39284      __cil_tmp59 = (struct device  const  *)__cil_tmp58;
39285#line 1337
39286      dev_printk("<7>", __cil_tmp59, "manual set_interface for iface %d, alt %d\n",
39287                 interface, alternate);
39288#line 1340
39289      manual = 1;
39290      }
39291    } else {
39292#line 1336
39293      goto _L;
39294    }
39295    }
39296  } else
39297  _L: 
39298#line 1341
39299  if (ret < 0) {
39300    {
39301#line 1343
39302    __cil_tmp60 = (struct usb_host_config *)0;
39303#line 1343
39304    __cil_tmp61 = iface->cur_altsetting;
39305#line 1343
39306    usb_hcd_alloc_bandwidth(dev, __cil_tmp60, alt, __cil_tmp61);
39307#line 1344
39308    __cil_tmp62 = hcd->bandwidth_mutex;
39309#line 1344
39310    mutex_unlock(__cil_tmp62);
39311    }
39312#line 1345
39313    return (ret);
39314  } else {
39315
39316  }
39317  {
39318#line 1347
39319  __cil_tmp63 = hcd->bandwidth_mutex;
39320#line 1347
39321  mutex_unlock(__cil_tmp63);
39322  }
39323  {
39324#line 1356
39325  __cil_tmp64 = (unsigned long )alt;
39326#line 1356
39327  __cil_tmp65 = iface->cur_altsetting;
39328#line 1356
39329  __cil_tmp66 = (unsigned long )__cil_tmp65;
39330#line 1356
39331  if (__cil_tmp66 != __cil_tmp64) {
39332    {
39333#line 1357
39334    remove_intf_ep_devs(iface);
39335#line 1358
39336    usb_remove_sysfs_intf_files(iface);
39337    }
39338  } else {
39339
39340  }
39341  }
39342  {
39343#line 1360
39344  __cil_tmp67 = (bool )1;
39345#line 1360
39346  usb_disable_interface(dev, iface, __cil_tmp67);
39347#line 1362
39348  iface->cur_altsetting = alt;
39349  }
39350#line 1369
39351  if (manual != 0) {
39352#line 1372
39353    i = 0;
39354#line 1372
39355    goto ldv_29117;
39356    ldv_29116: 
39357    {
39358#line 1373
39359    __cil_tmp68 = (unsigned long )i;
39360#line 1373
39361    __cil_tmp69 = alt->endpoint;
39362#line 1373
39363    __cil_tmp70 = __cil_tmp69 + __cil_tmp68;
39364#line 1373
39365    __cil_tmp71 = __cil_tmp70->desc.bEndpointAddress;
39366#line 1373
39367    epaddr = (unsigned int )__cil_tmp71;
39368#line 1374
39369    __cil_tmp72 = epaddr & 15U;
39370#line 1374
39371    tmp___1 = __create_pipe(dev, __cil_tmp72);
39372    }
39373    {
39374#line 1374
39375    __cil_tmp73 = epaddr & 128U;
39376#line 1374
39377    if (__cil_tmp73 == 0U) {
39378#line 1374
39379      tmp___2 = 0U;
39380    } else {
39381#line 1374
39382      tmp___2 = 128U;
39383    }
39384    }
39385    {
39386#line 1374
39387    pipe = tmp___1 | tmp___2;
39388#line 1379
39389    __cil_tmp74 = (int )pipe;
39390#line 1379
39391    usb_clear_halt(dev, __cil_tmp74);
39392#line 1372
39393    i = i + 1;
39394    }
39395    ldv_29117: ;
39396    {
39397#line 1372
39398    __cil_tmp75 = alt->desc.bNumEndpoints;
39399#line 1372
39400    __cil_tmp76 = (int )__cil_tmp75;
39401#line 1372
39402    if (__cil_tmp76 > i) {
39403#line 1373
39404      goto ldv_29116;
39405    } else {
39406#line 1375
39407      goto ldv_29118;
39408    }
39409    }
39410    ldv_29118: ;
39411  } else {
39412
39413  }
39414  {
39415#line 1394
39416  __cil_tmp77 = (bool )1;
39417#line 1394
39418  usb_enable_interface(dev, iface, __cil_tmp77);
39419#line 1395
39420  __cil_tmp78 = & iface->dev;
39421#line 1395
39422  tmp___3 = device_is_registered(__cil_tmp78);
39423  }
39424#line 1395
39425  if (tmp___3 != 0) {
39426    {
39427#line 1396
39428    usb_create_sysfs_intf_files(iface);
39429#line 1397
39430    create_intf_ep_devs(iface);
39431    }
39432  } else {
39433
39434  }
39435#line 1399
39436  return (0);
39437}
39438}
39439#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"
39440int usb_reset_configuration(struct usb_device *dev ) 
39441{ int i ;
39442  int retval ;
39443  struct usb_host_config *config ;
39444  struct usb_hcd *hcd ;
39445  struct usb_hcd *tmp ;
39446  struct usb_interface *intf ;
39447  struct usb_host_interface *alt ;
39448  struct usb_interface *intf___0 ;
39449  struct usb_host_interface *alt___0 ;
39450  unsigned int tmp___0 ;
39451  struct usb_interface *intf___1 ;
39452  struct usb_host_interface *alt___1 ;
39453  int tmp___1 ;
39454  struct usb_bus *__cil_tmp15 ;
39455  enum usb_device_state __cil_tmp16 ;
39456  unsigned int __cil_tmp17 ;
39457  unsigned int __cil_tmp18 ;
39458  bool __cil_tmp19 ;
39459  int __cil_tmp20 ;
39460  unsigned int __cil_tmp21 ;
39461  bool __cil_tmp22 ;
39462  struct mutex *__cil_tmp23 ;
39463  struct usb_interface  const  *__cil_tmp24 ;
39464  struct usb_host_interface *__cil_tmp25 ;
39465  unsigned long __cil_tmp26 ;
39466  unsigned long __cil_tmp27 ;
39467  unsigned long __cil_tmp28 ;
39468  struct usb_host_interface *__cil_tmp29 ;
39469  unsigned long __cil_tmp30 ;
39470  struct usb_host_config *__cil_tmp31 ;
39471  struct usb_host_interface *__cil_tmp32 ;
39472  __u8 __cil_tmp33 ;
39473  int __cil_tmp34 ;
39474  struct usb_interface  const  *__cil_tmp35 ;
39475  struct usb_host_interface *__cil_tmp36 ;
39476  unsigned long __cil_tmp37 ;
39477  unsigned long __cil_tmp38 ;
39478  unsigned long __cil_tmp39 ;
39479  struct usb_host_interface *__cil_tmp40 ;
39480  unsigned long __cil_tmp41 ;
39481  struct usb_host_config *__cil_tmp42 ;
39482  struct usb_host_interface *__cil_tmp43 ;
39483  struct mutex *__cil_tmp44 ;
39484  unsigned int __cil_tmp45 ;
39485  __u8 __cil_tmp46 ;
39486  __u8 __cil_tmp47 ;
39487  __u8 __cil_tmp48 ;
39488  int __cil_tmp49 ;
39489  __u16 __cil_tmp50 ;
39490  __u16 __cil_tmp51 ;
39491  void *__cil_tmp52 ;
39492  __u16 __cil_tmp53 ;
39493  struct mutex *__cil_tmp54 ;
39494  struct usb_interface  const  *__cil_tmp55 ;
39495  struct usb_host_interface *__cil_tmp56 ;
39496  unsigned long __cil_tmp57 ;
39497  unsigned long __cil_tmp58 ;
39498  unsigned long __cil_tmp59 ;
39499  struct usb_host_interface *__cil_tmp60 ;
39500  unsigned long __cil_tmp61 ;
39501  bool __cil_tmp62 ;
39502  struct device *__cil_tmp63 ;
39503  __u8 __cil_tmp64 ;
39504  int __cil_tmp65 ;
39505
39506  {
39507  {
39508#line 1429
39509  __cil_tmp15 = dev->bus;
39510#line 1429
39511  tmp = bus_to_hcd(__cil_tmp15);
39512#line 1429
39513  hcd = tmp;
39514  }
39515  {
39516#line 1431
39517  __cil_tmp16 = dev->state;
39518#line 1431
39519  __cil_tmp17 = (unsigned int )__cil_tmp16;
39520#line 1431
39521  if (__cil_tmp17 == 8U) {
39522#line 1432
39523    return (-113);
39524  } else {
39525
39526  }
39527  }
39528#line 1439
39529  i = 1;
39530#line 1439
39531  goto ldv_29135;
39532  ldv_29134: 
39533  {
39534#line 1440
39535  __cil_tmp18 = (unsigned int )i;
39536#line 1440
39537  __cil_tmp19 = (bool )1;
39538#line 1440
39539  usb_disable_endpoint(dev, __cil_tmp18, __cil_tmp19);
39540#line 1441
39541  __cil_tmp20 = i + 128;
39542#line 1441
39543  __cil_tmp21 = (unsigned int )__cil_tmp20;
39544#line 1441
39545  __cil_tmp22 = (bool )1;
39546#line 1441
39547  usb_disable_endpoint(dev, __cil_tmp21, __cil_tmp22);
39548#line 1439
39549  i = i + 1;
39550  }
39551  ldv_29135: ;
39552#line 1439
39553  if (i <= 15) {
39554#line 1440
39555    goto ldv_29134;
39556  } else {
39557#line 1442
39558    goto ldv_29136;
39559  }
39560  ldv_29136: 
39561  {
39562#line 1444
39563  config = dev->actconfig;
39564#line 1445
39565  retval = 0;
39566#line 1446
39567  __cil_tmp23 = hcd->bandwidth_mutex;
39568#line 1446
39569  mutex_lock_nested(__cil_tmp23, 0U);
39570#line 1448
39571  i = 0;
39572  }
39573#line 1448
39574  goto ldv_29141;
39575  ldv_29140: 
39576  {
39577#line 1449
39578  intf = config->interface[i];
39579#line 1452
39580  __cil_tmp24 = (struct usb_interface  const  *)intf;
39581#line 1452
39582  alt = usb_altnum_to_altsetting(__cil_tmp24, 0U);
39583  }
39584  {
39585#line 1453
39586  __cil_tmp25 = (struct usb_host_interface *)0;
39587#line 1453
39588  __cil_tmp26 = (unsigned long )__cil_tmp25;
39589#line 1453
39590  __cil_tmp27 = (unsigned long )alt;
39591#line 1453
39592  if (__cil_tmp27 == __cil_tmp26) {
39593#line 1454
39594    alt = intf->altsetting;
39595  } else {
39596
39597  }
39598  }
39599  {
39600#line 1455
39601  __cil_tmp28 = (unsigned long )alt;
39602#line 1455
39603  __cil_tmp29 = intf->cur_altsetting;
39604#line 1455
39605  __cil_tmp30 = (unsigned long )__cil_tmp29;
39606#line 1455
39607  if (__cil_tmp30 != __cil_tmp28) {
39608    {
39609#line 1456
39610    __cil_tmp31 = (struct usb_host_config *)0;
39611#line 1456
39612    __cil_tmp32 = intf->cur_altsetting;
39613#line 1456
39614    retval = usb_hcd_alloc_bandwidth(dev, __cil_tmp31, __cil_tmp32, alt);
39615    }
39616  } else {
39617
39618  }
39619  }
39620#line 1458
39621  if (retval < 0) {
39622#line 1459
39623    goto ldv_29139;
39624  } else {
39625
39626  }
39627#line 1448
39628  i = i + 1;
39629  ldv_29141: ;
39630  {
39631#line 1448
39632  __cil_tmp33 = config->desc.bNumInterfaces;
39633#line 1448
39634  __cil_tmp34 = (int )__cil_tmp33;
39635#line 1448
39636  if (__cil_tmp34 > i) {
39637#line 1449
39638    goto ldv_29140;
39639  } else {
39640#line 1451
39641    goto ldv_29139;
39642  }
39643  }
39644  ldv_29139: ;
39645#line 1462
39646  if (retval < 0) {
39647    reset_old_alts: 
39648#line 1464
39649    i = i - 1;
39650#line 1464
39651    goto ldv_29146;
39652    ldv_29145: 
39653    {
39654#line 1465
39655    intf___0 = config->interface[i];
39656#line 1468
39657    __cil_tmp35 = (struct usb_interface  const  *)intf___0;
39658#line 1468
39659    alt___0 = usb_altnum_to_altsetting(__cil_tmp35, 0U);
39660    }
39661    {
39662#line 1469
39663    __cil_tmp36 = (struct usb_host_interface *)0;
39664#line 1469
39665    __cil_tmp37 = (unsigned long )__cil_tmp36;
39666#line 1469
39667    __cil_tmp38 = (unsigned long )alt___0;
39668#line 1469
39669    if (__cil_tmp38 == __cil_tmp37) {
39670#line 1470
39671      alt___0 = intf___0->altsetting;
39672    } else {
39673
39674    }
39675    }
39676    {
39677#line 1471
39678    __cil_tmp39 = (unsigned long )alt___0;
39679#line 1471
39680    __cil_tmp40 = intf___0->cur_altsetting;
39681#line 1471
39682    __cil_tmp41 = (unsigned long )__cil_tmp40;
39683#line 1471
39684    if (__cil_tmp41 != __cil_tmp39) {
39685      {
39686#line 1472
39687      __cil_tmp42 = (struct usb_host_config *)0;
39688#line 1472
39689      __cil_tmp43 = intf___0->cur_altsetting;
39690#line 1472
39691      usb_hcd_alloc_bandwidth(dev, __cil_tmp42, alt___0, __cil_tmp43);
39692      }
39693    } else {
39694
39695    }
39696    }
39697#line 1464
39698    i = i - 1;
39699    ldv_29146: ;
39700#line 1464
39701    if (i >= 0) {
39702#line 1465
39703      goto ldv_29145;
39704    } else {
39705#line 1467
39706      goto ldv_29147;
39707    }
39708    ldv_29147: 
39709    {
39710#line 1475
39711    __cil_tmp44 = hcd->bandwidth_mutex;
39712#line 1475
39713    mutex_unlock(__cil_tmp44);
39714    }
39715#line 1476
39716    return (retval);
39717  } else {
39718
39719  }
39720  {
39721#line 1478
39722  tmp___0 = __create_pipe(dev, 0U);
39723#line 1478
39724  __cil_tmp45 = tmp___0 | 2147483648U;
39725#line 1478
39726  __cil_tmp46 = (__u8 )9;
39727#line 1478
39728  __cil_tmp47 = (__u8 )0;
39729#line 1478
39730  __cil_tmp48 = config->desc.bConfigurationValue;
39731#line 1478
39732  __cil_tmp49 = (int )__cil_tmp48;
39733#line 1478
39734  __cil_tmp50 = (__u16 )__cil_tmp49;
39735#line 1478
39736  __cil_tmp51 = (__u16 )0;
39737#line 1478
39738  __cil_tmp52 = (void *)0;
39739#line 1478
39740  __cil_tmp53 = (__u16 )0;
39741#line 1478
39742  retval = usb_control_msg(dev, __cil_tmp45, __cil_tmp46, __cil_tmp47, __cil_tmp50,
39743                           __cil_tmp51, __cil_tmp52, __cil_tmp53, 5000);
39744  }
39745#line 1482
39746  if (retval < 0) {
39747#line 1483
39748    goto reset_old_alts;
39749  } else {
39750
39751  }
39752  {
39753#line 1484
39754  __cil_tmp54 = hcd->bandwidth_mutex;
39755#line 1484
39756  mutex_unlock(__cil_tmp54);
39757#line 1487
39758  i = 0;
39759  }
39760#line 1487
39761  goto ldv_29151;
39762  ldv_29150: 
39763  {
39764#line 1488
39765  intf___1 = config->interface[i];
39766#line 1491
39767  __cil_tmp55 = (struct usb_interface  const  *)intf___1;
39768#line 1491
39769  alt___1 = usb_altnum_to_altsetting(__cil_tmp55, 0U);
39770  }
39771  {
39772#line 1498
39773  __cil_tmp56 = (struct usb_host_interface *)0;
39774#line 1498
39775  __cil_tmp57 = (unsigned long )__cil_tmp56;
39776#line 1498
39777  __cil_tmp58 = (unsigned long )alt___1;
39778#line 1498
39779  if (__cil_tmp58 == __cil_tmp57) {
39780#line 1499
39781    alt___1 = intf___1->altsetting;
39782  } else {
39783
39784  }
39785  }
39786  {
39787#line 1501
39788  __cil_tmp59 = (unsigned long )alt___1;
39789#line 1501
39790  __cil_tmp60 = intf___1->cur_altsetting;
39791#line 1501
39792  __cil_tmp61 = (unsigned long )__cil_tmp60;
39793#line 1501
39794  if (__cil_tmp61 != __cil_tmp59) {
39795    {
39796#line 1502
39797    remove_intf_ep_devs(intf___1);
39798#line 1503
39799    usb_remove_sysfs_intf_files(intf___1);
39800    }
39801  } else {
39802
39803  }
39804  }
39805  {
39806#line 1505
39807  intf___1->cur_altsetting = alt___1;
39808#line 1506
39809  __cil_tmp62 = (bool )1;
39810#line 1506
39811  usb_enable_interface(dev, intf___1, __cil_tmp62);
39812#line 1507
39813  __cil_tmp63 = & intf___1->dev;
39814#line 1507
39815  tmp___1 = device_is_registered(__cil_tmp63);
39816  }
39817#line 1507
39818  if (tmp___1 != 0) {
39819    {
39820#line 1508
39821    usb_create_sysfs_intf_files(intf___1);
39822#line 1509
39823    create_intf_ep_devs(intf___1);
39824    }
39825  } else {
39826
39827  }
39828#line 1487
39829  i = i + 1;
39830  ldv_29151: ;
39831  {
39832#line 1487
39833  __cil_tmp64 = config->desc.bNumInterfaces;
39834#line 1487
39835  __cil_tmp65 = (int )__cil_tmp64;
39836#line 1487
39837  if (__cil_tmp65 > i) {
39838#line 1488
39839    goto ldv_29150;
39840  } else {
39841#line 1490
39842    goto ldv_29152;
39843  }
39844  }
39845  ldv_29152: ;
39846#line 1512
39847  return (0);
39848}
39849}
39850#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"
39851static void usb_release_interface(struct device *dev ) 
39852{ struct usb_interface *intf ;
39853  struct device  const  *__mptr ;
39854  struct usb_interface_cache *intfc ;
39855  struct usb_host_interface  const  *__mptr___0 ;
39856  struct usb_interface *__cil_tmp6 ;
39857  struct usb_host_interface *__cil_tmp7 ;
39858  struct usb_interface_cache *__cil_tmp8 ;
39859  struct kref *__cil_tmp9 ;
39860  void const   *__cil_tmp10 ;
39861
39862  {
39863  {
39864#line 1518
39865  __mptr = (struct device  const  *)dev;
39866#line 1518
39867  __cil_tmp6 = (struct usb_interface *)__mptr;
39868#line 1518
39869  intf = __cil_tmp6 + 1152921504606846928UL;
39870#line 1520
39871  __cil_tmp7 = intf->altsetting;
39872#line 1520
39873  __mptr___0 = (struct usb_host_interface  const  *)__cil_tmp7;
39874#line 1520
39875  __cil_tmp8 = (struct usb_interface_cache *)__mptr___0;
39876#line 1520
39877  intfc = __cil_tmp8 + 1152921504606846968UL;
39878#line 1522
39879  __cil_tmp9 = & intfc->ref;
39880#line 1522
39881  kref_put(__cil_tmp9, & usb_release_interface_cache);
39882#line 1523
39883  __cil_tmp10 = (void const   *)intf;
39884#line 1523
39885  kfree(__cil_tmp10);
39886  }
39887#line 1524
39888  return;
39889}
39890}
39891#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"
39892static int usb_if_uevent(struct device *dev , struct kobj_uevent_env *env ) 
39893{ struct usb_device *usb_dev ;
39894  struct usb_interface *intf ;
39895  struct usb_host_interface *alt ;
39896  struct device  const  *__mptr ;
39897  int tmp ;
39898  int tmp___0 ;
39899  struct usb_interface *__cil_tmp9 ;
39900  __u8 __cil_tmp10 ;
39901  int __cil_tmp11 ;
39902  __u8 __cil_tmp12 ;
39903  int __cil_tmp13 ;
39904  __u8 __cil_tmp14 ;
39905  int __cil_tmp15 ;
39906  __le16 __cil_tmp16 ;
39907  int __cil_tmp17 ;
39908  __le16 __cil_tmp18 ;
39909  int __cil_tmp19 ;
39910  __le16 __cil_tmp20 ;
39911  int __cil_tmp21 ;
39912  __u8 __cil_tmp22 ;
39913  int __cil_tmp23 ;
39914  __u8 __cil_tmp24 ;
39915  int __cil_tmp25 ;
39916  __u8 __cil_tmp26 ;
39917  int __cil_tmp27 ;
39918  __u8 __cil_tmp28 ;
39919  int __cil_tmp29 ;
39920  __u8 __cil_tmp30 ;
39921  int __cil_tmp31 ;
39922  __u8 __cil_tmp32 ;
39923  int __cil_tmp33 ;
39924
39925  {
39926  {
39927#line 1533
39928  __mptr = (struct device  const  *)dev;
39929#line 1533
39930  __cil_tmp9 = (struct usb_interface *)__mptr;
39931#line 1533
39932  intf = __cil_tmp9 + 1152921504606846928UL;
39933#line 1534
39934  usb_dev = interface_to_usbdev(intf);
39935#line 1535
39936  alt = intf->cur_altsetting;
39937#line 1537
39938  __cil_tmp10 = alt->desc.bInterfaceClass;
39939#line 1537
39940  __cil_tmp11 = (int )__cil_tmp10;
39941#line 1537
39942  __cil_tmp12 = alt->desc.bInterfaceSubClass;
39943#line 1537
39944  __cil_tmp13 = (int )__cil_tmp12;
39945#line 1537
39946  __cil_tmp14 = alt->desc.bInterfaceProtocol;
39947#line 1537
39948  __cil_tmp15 = (int )__cil_tmp14;
39949#line 1537
39950  tmp = add_uevent_var(env, "INTERFACE=%d/%d/%d", __cil_tmp11, __cil_tmp13, __cil_tmp15);
39951  }
39952#line 1537
39953  if (tmp != 0) {
39954#line 1541
39955    return (-12);
39956  } else {
39957
39958  }
39959  {
39960#line 1543
39961  __cil_tmp16 = usb_dev->descriptor.idVendor;
39962#line 1543
39963  __cil_tmp17 = (int )__cil_tmp16;
39964#line 1543
39965  __cil_tmp18 = usb_dev->descriptor.idProduct;
39966#line 1543
39967  __cil_tmp19 = (int )__cil_tmp18;
39968#line 1543
39969  __cil_tmp20 = usb_dev->descriptor.bcdDevice;
39970#line 1543
39971  __cil_tmp21 = (int )__cil_tmp20;
39972#line 1543
39973  __cil_tmp22 = usb_dev->descriptor.bDeviceClass;
39974#line 1543
39975  __cil_tmp23 = (int )__cil_tmp22;
39976#line 1543
39977  __cil_tmp24 = usb_dev->descriptor.bDeviceSubClass;
39978#line 1543
39979  __cil_tmp25 = (int )__cil_tmp24;
39980#line 1543
39981  __cil_tmp26 = usb_dev->descriptor.bDeviceProtocol;
39982#line 1543
39983  __cil_tmp27 = (int )__cil_tmp26;
39984#line 1543
39985  __cil_tmp28 = alt->desc.bInterfaceClass;
39986#line 1543
39987  __cil_tmp29 = (int )__cil_tmp28;
39988#line 1543
39989  __cil_tmp30 = alt->desc.bInterfaceSubClass;
39990#line 1543
39991  __cil_tmp31 = (int )__cil_tmp30;
39992#line 1543
39993  __cil_tmp32 = alt->desc.bInterfaceProtocol;
39994#line 1543
39995  __cil_tmp33 = (int )__cil_tmp32;
39996#line 1543
39997  tmp___0 = add_uevent_var(env, "MODALIAS=usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02X",
39998                           __cil_tmp17, __cil_tmp19, __cil_tmp21, __cil_tmp23, __cil_tmp25,
39999                           __cil_tmp27, __cil_tmp29, __cil_tmp31, __cil_tmp33);
40000  }
40001#line 1543
40002  if (tmp___0 != 0) {
40003#line 1555
40004    return (-12);
40005  } else {
40006
40007  }
40008#line 1557
40009  return (0);
40010}
40011}
40012#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"
40013struct device_type usb_if_device_type  =    {"usb_interface", (struct attribute_group  const  **)0, & usb_if_uevent, (char *(*)(struct device * ,
40014                                                                                       mode_t * ))0,
40015    & usb_release_interface, (struct dev_pm_ops  const  *)0};
40016#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"
40017static struct usb_interface_assoc_descriptor *find_iad(struct usb_device *dev , struct usb_host_config *config ,
40018                                                       u8 inum ) 
40019{ struct usb_interface_assoc_descriptor *retval ;
40020  struct usb_interface_assoc_descriptor *intf_assoc ;
40021  int first_intf ;
40022  int last_intf ;
40023  int i ;
40024  __u8 __cil_tmp9 ;
40025  unsigned int __cil_tmp10 ;
40026  __u8 __cil_tmp11 ;
40027  __u8 __cil_tmp12 ;
40028  int __cil_tmp13 ;
40029  int __cil_tmp14 ;
40030  int __cil_tmp15 ;
40031  int __cil_tmp16 ;
40032  struct usb_interface_assoc_descriptor *__cil_tmp17 ;
40033  unsigned long __cil_tmp18 ;
40034  unsigned long __cil_tmp19 ;
40035  struct device *__cil_tmp20 ;
40036  struct device  const  *__cil_tmp21 ;
40037  int __cil_tmp22 ;
40038  struct usb_interface_assoc_descriptor *__cil_tmp23 ;
40039  unsigned long __cil_tmp24 ;
40040  struct usb_interface_assoc_descriptor *__cil_tmp25 ;
40041  unsigned long __cil_tmp26 ;
40042
40043  {
40044#line 1578
40045  retval = (struct usb_interface_assoc_descriptor *)0;
40046#line 1584
40047  i = 0;
40048#line 1584
40049  goto ldv_29190;
40050  ldv_29189: 
40051#line 1585
40052  intf_assoc = config->intf_assoc[i];
40053  {
40054#line 1586
40055  __cil_tmp9 = intf_assoc->bInterfaceCount;
40056#line 1586
40057  __cil_tmp10 = (unsigned int )__cil_tmp9;
40058#line 1586
40059  if (__cil_tmp10 == 0U) {
40060#line 1587
40061    goto ldv_29188;
40062  } else {
40063
40064  }
40065  }
40066#line 1589
40067  __cil_tmp11 = intf_assoc->bFirstInterface;
40068#line 1589
40069  first_intf = (int )__cil_tmp11;
40070#line 1590
40071  __cil_tmp12 = intf_assoc->bInterfaceCount;
40072#line 1590
40073  __cil_tmp13 = (int )__cil_tmp12;
40074#line 1590
40075  __cil_tmp14 = __cil_tmp13 + -1;
40076#line 1590
40077  last_intf = __cil_tmp14 + first_intf;
40078  {
40079#line 1591
40080  __cil_tmp15 = (int )inum;
40081#line 1591
40082  if (__cil_tmp15 >= first_intf) {
40083    {
40084#line 1591
40085    __cil_tmp16 = (int )inum;
40086#line 1591
40087    if (__cil_tmp16 <= last_intf) {
40088      {
40089#line 1592
40090      __cil_tmp17 = (struct usb_interface_assoc_descriptor *)0;
40091#line 1592
40092      __cil_tmp18 = (unsigned long )__cil_tmp17;
40093#line 1592
40094      __cil_tmp19 = (unsigned long )retval;
40095#line 1592
40096      if (__cil_tmp19 == __cil_tmp18) {
40097#line 1593
40098        retval = intf_assoc;
40099      } else {
40100        {
40101#line 1595
40102        __cil_tmp20 = & dev->dev;
40103#line 1595
40104        __cil_tmp21 = (struct device  const  *)__cil_tmp20;
40105#line 1595
40106        __cil_tmp22 = (int )inum;
40107#line 1595
40108        dev_err(__cil_tmp21, "Interface #%d referenced by multiple IADs\n", __cil_tmp22);
40109        }
40110      }
40111      }
40112    } else {
40113
40114    }
40115    }
40116  } else {
40117
40118  }
40119  }
40120  ldv_29188: 
40121#line 1584
40122  i = i + 1;
40123  ldv_29190: ;
40124#line 1584
40125  if (i <= 15) {
40126    {
40127#line 1584
40128    __cil_tmp23 = (struct usb_interface_assoc_descriptor *)0;
40129#line 1584
40130    __cil_tmp24 = (unsigned long )__cil_tmp23;
40131#line 1584
40132    __cil_tmp25 = config->intf_assoc[i];
40133#line 1584
40134    __cil_tmp26 = (unsigned long )__cil_tmp25;
40135#line 1584
40136    if (__cil_tmp26 != __cil_tmp24) {
40137#line 1585
40138      goto ldv_29189;
40139    } else {
40140#line 1587
40141      goto ldv_29191;
40142    }
40143    }
40144  } else {
40145#line 1587
40146    goto ldv_29191;
40147  }
40148  ldv_29191: ;
40149#line 1600
40150  return (retval);
40151}
40152}
40153#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"
40154static void __usb_queue_reset_device(struct work_struct *ws ) 
40155{ int rc ;
40156  struct usb_interface *iface ;
40157  struct work_struct  const  *__mptr ;
40158  struct usb_device *udev ;
40159  struct usb_device *tmp ;
40160  struct usb_interface *__cil_tmp7 ;
40161  struct usb_interface  const  *__cil_tmp8 ;
40162  struct device *__cil_tmp9 ;
40163
40164  {
40165  {
40166#line 1630
40167  __mptr = (struct work_struct  const  *)ws;
40168#line 1630
40169  __cil_tmp7 = (struct usb_interface *)__mptr;
40170#line 1630
40171  iface = __cil_tmp7 + 1152921504606845800UL;
40172#line 1631
40173  tmp = interface_to_usbdev(iface);
40174#line 1631
40175  udev = tmp;
40176#line 1633
40177  __cil_tmp8 = (struct usb_interface  const  *)iface;
40178#line 1633
40179  rc = usb_lock_device_for_reset(udev, __cil_tmp8);
40180  }
40181#line 1634
40182  if (rc >= 0) {
40183    {
40184#line 1635
40185    iface->reset_running = (unsigned char)1;
40186#line 1636
40187    usb_reset_device(udev);
40188#line 1637
40189    iface->reset_running = (unsigned char)0;
40190#line 1638
40191    __cil_tmp9 = & udev->dev;
40192#line 1638
40193    device_unlock(__cil_tmp9);
40194    }
40195  } else {
40196
40197  }
40198#line 1640
40199  return;
40200}
40201}
40202#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"
40203int usb_set_configuration(struct usb_device *dev , int configuration ) 
40204{ int i ;
40205  int ret ;
40206  struct usb_host_config *cp ;
40207  struct usb_interface **new_interfaces ;
40208  struct usb_hcd *hcd ;
40209  struct usb_hcd *tmp ;
40210  int n ;
40211  int nintf ;
40212  void *tmp___0 ;
40213  void *tmp___1 ;
40214  unsigned int tmp___2 ;
40215  struct usb_interface_cache *intfc ;
40216  struct usb_interface *intf ;
40217  struct usb_host_interface *alt ;
40218  struct lock_class_key __key ;
40219  atomic_long_t __constr_expr_0 ;
40220  struct usb_interface *intf___0 ;
40221  char const   *tmp___3 ;
40222  char const   *tmp___4 ;
40223  struct usb_bus *__cil_tmp22 ;
40224  unsigned char *__cil_tmp23 ;
40225  unsigned char *__cil_tmp24 ;
40226  unsigned char __cil_tmp25 ;
40227  unsigned int __cil_tmp26 ;
40228  unsigned long __cil_tmp27 ;
40229  struct usb_host_config *__cil_tmp28 ;
40230  struct usb_host_config *__cil_tmp29 ;
40231  __u8 __cil_tmp30 ;
40232  int __cil_tmp31 ;
40233  unsigned long __cil_tmp32 ;
40234  struct usb_host_config *__cil_tmp33 ;
40235  __u8 __cil_tmp34 ;
40236  int __cil_tmp35 ;
40237  struct usb_host_config *__cil_tmp36 ;
40238  unsigned long __cil_tmp37 ;
40239  unsigned long __cil_tmp38 ;
40240  struct usb_host_config *__cil_tmp39 ;
40241  unsigned long __cil_tmp40 ;
40242  unsigned long __cil_tmp41 ;
40243  struct device *__cil_tmp42 ;
40244  struct device  const  *__cil_tmp43 ;
40245  struct usb_host_config *__cil_tmp44 ;
40246  unsigned long __cil_tmp45 ;
40247  unsigned long __cil_tmp46 ;
40248  __u8 __cil_tmp47 ;
40249  unsigned long __cil_tmp48 ;
40250  unsigned long __cil_tmp49 ;
40251  struct usb_interface **__cil_tmp50 ;
40252  unsigned long __cil_tmp51 ;
40253  unsigned long __cil_tmp52 ;
40254  struct device *__cil_tmp53 ;
40255  struct device  const  *__cil_tmp54 ;
40256  unsigned long __cil_tmp55 ;
40257  struct usb_interface **__cil_tmp56 ;
40258  struct usb_interface *__cil_tmp57 ;
40259  unsigned long __cil_tmp58 ;
40260  unsigned long __cil_tmp59 ;
40261  struct usb_interface **__cil_tmp60 ;
40262  struct usb_interface *__cil_tmp61 ;
40263  unsigned long __cil_tmp62 ;
40264  struct device *__cil_tmp63 ;
40265  struct device  const  *__cil_tmp64 ;
40266  unsigned long __cil_tmp65 ;
40267  struct usb_interface **__cil_tmp66 ;
40268  struct usb_interface *__cil_tmp67 ;
40269  void const   *__cil_tmp68 ;
40270  void const   *__cil_tmp69 ;
40271  __u8 __cil_tmp70 ;
40272  int __cil_tmp71 ;
40273  int __cil_tmp72 ;
40274  unsigned short __cil_tmp73 ;
40275  int __cil_tmp74 ;
40276  struct device *__cil_tmp75 ;
40277  struct device  const  *__cil_tmp76 ;
40278  int __cil_tmp77 ;
40279  struct mutex *__cil_tmp78 ;
40280  enum usb_device_state __cil_tmp79 ;
40281  unsigned int __cil_tmp80 ;
40282  struct usb_host_interface *__cil_tmp81 ;
40283  struct usb_host_interface *__cil_tmp82 ;
40284  struct mutex *__cil_tmp83 ;
40285  unsigned int __cil_tmp84 ;
40286  __u8 __cil_tmp85 ;
40287  __u8 __cil_tmp86 ;
40288  __u16 __cil_tmp87 ;
40289  int __cil_tmp88 ;
40290  __u16 __cil_tmp89 ;
40291  __u16 __cil_tmp90 ;
40292  void *__cil_tmp91 ;
40293  __u16 __cil_tmp92 ;
40294  struct usb_host_config *__cil_tmp93 ;
40295  unsigned long __cil_tmp94 ;
40296  unsigned long __cil_tmp95 ;
40297  enum usb_device_state __cil_tmp96 ;
40298  struct usb_host_config *__cil_tmp97 ;
40299  struct usb_host_interface *__cil_tmp98 ;
40300  struct usb_host_interface *__cil_tmp99 ;
40301  struct mutex *__cil_tmp100 ;
40302  struct mutex *__cil_tmp101 ;
40303  enum usb_device_state __cil_tmp102 ;
40304  unsigned long __cil_tmp103 ;
40305  struct usb_interface **__cil_tmp104 ;
40306  struct usb_host_interface (*__cil_tmp105)[0U] ;
40307  u8 __cil_tmp106 ;
40308  int __cil_tmp107 ;
40309  u8 __cil_tmp108 ;
40310  struct kref *__cil_tmp109 ;
40311  struct usb_interface  const  *__cil_tmp110 ;
40312  struct usb_host_interface *__cil_tmp111 ;
40313  unsigned long __cil_tmp112 ;
40314  unsigned long __cil_tmp113 ;
40315  bool __cil_tmp114 ;
40316  struct work_struct *__cil_tmp115 ;
40317  struct lockdep_map *__cil_tmp116 ;
40318  struct list_head *__cil_tmp117 ;
40319  struct device *__cil_tmp118 ;
40320  struct device *__cil_tmp119 ;
40321  struct device *__cil_tmp120 ;
40322  struct usb_bus *__cil_tmp121 ;
40323  int __cil_tmp122 ;
40324  char (*__cil_tmp123)[16U] ;
40325  char *__cil_tmp124 ;
40326  __u8 __cil_tmp125 ;
40327  int __cil_tmp126 ;
40328  void const   *__cil_tmp127 ;
40329  char *__cil_tmp128 ;
40330  unsigned long __cil_tmp129 ;
40331  char *__cil_tmp130 ;
40332  unsigned long __cil_tmp131 ;
40333  u32 __cil_tmp132 ;
40334  unsigned int __cil_tmp133 ;
40335  __u8 __cil_tmp134 ;
40336  int __cil_tmp135 ;
40337  struct device *__cil_tmp136 ;
40338  struct device  const  *__cil_tmp137 ;
40339  struct device *__cil_tmp138 ;
40340  struct device  const  *__cil_tmp139 ;
40341  struct usb_host_interface *__cil_tmp140 ;
40342  __u8 __cil_tmp141 ;
40343  int __cil_tmp142 ;
40344  struct device *__cil_tmp143 ;
40345  struct device *__cil_tmp144 ;
40346  struct device *__cil_tmp145 ;
40347  struct device  const  *__cil_tmp146 ;
40348  struct device *__cil_tmp147 ;
40349  struct device  const  *__cil_tmp148 ;
40350
40351  {
40352  {
40353#line 1691
40354  cp = (struct usb_host_config *)0;
40355#line 1692
40356  new_interfaces = (struct usb_interface **)0;
40357#line 1693
40358  __cil_tmp22 = dev->bus;
40359#line 1693
40360  tmp = bus_to_hcd(__cil_tmp22);
40361#line 1693
40362  hcd = tmp;
40363  }
40364  {
40365#line 1696
40366  __cil_tmp23 = (unsigned char *)dev;
40367#line 1696
40368  __cil_tmp24 = __cil_tmp23 + 1556UL;
40369#line 1696
40370  __cil_tmp25 = *__cil_tmp24;
40371#line 1696
40372  __cil_tmp26 = (unsigned int )__cil_tmp25;
40373#line 1696
40374  if (__cil_tmp26 == 0U) {
40375#line 1697
40376    configuration = 0;
40377  } else
40378#line 1696
40379  if (configuration == -1) {
40380#line 1697
40381    configuration = 0;
40382  } else {
40383#line 1699
40384    i = 0;
40385#line 1699
40386    goto ldv_29213;
40387    ldv_29212: ;
40388    {
40389#line 1700
40390    __cil_tmp27 = (unsigned long )i;
40391#line 1700
40392    __cil_tmp28 = dev->config;
40393#line 1700
40394    __cil_tmp29 = __cil_tmp28 + __cil_tmp27;
40395#line 1700
40396    __cil_tmp30 = __cil_tmp29->desc.bConfigurationValue;
40397#line 1700
40398    __cil_tmp31 = (int )__cil_tmp30;
40399#line 1700
40400    if (__cil_tmp31 == configuration) {
40401#line 1702
40402      __cil_tmp32 = (unsigned long )i;
40403#line 1702
40404      __cil_tmp33 = dev->config;
40405#line 1702
40406      cp = __cil_tmp33 + __cil_tmp32;
40407#line 1703
40408      goto ldv_29211;
40409    } else {
40410
40411    }
40412    }
40413#line 1699
40414    i = i + 1;
40415    ldv_29213: ;
40416    {
40417#line 1699
40418    __cil_tmp34 = dev->descriptor.bNumConfigurations;
40419#line 1699
40420    __cil_tmp35 = (int )__cil_tmp34;
40421#line 1699
40422    if (__cil_tmp35 > i) {
40423#line 1700
40424      goto ldv_29212;
40425    } else {
40426#line 1702
40427      goto ldv_29211;
40428    }
40429    }
40430    ldv_29211: ;
40431  }
40432  }
40433  {
40434#line 1707
40435  __cil_tmp36 = (struct usb_host_config *)0;
40436#line 1707
40437  __cil_tmp37 = (unsigned long )__cil_tmp36;
40438#line 1707
40439  __cil_tmp38 = (unsigned long )cp;
40440#line 1707
40441  if (__cil_tmp38 == __cil_tmp37) {
40442#line 1707
40443    if (configuration != 0) {
40444#line 1708
40445      return (-22);
40446    } else {
40447
40448    }
40449  } else {
40450
40451  }
40452  }
40453  {
40454#line 1715
40455  __cil_tmp39 = (struct usb_host_config *)0;
40456#line 1715
40457  __cil_tmp40 = (unsigned long )__cil_tmp39;
40458#line 1715
40459  __cil_tmp41 = (unsigned long )cp;
40460#line 1715
40461  if (__cil_tmp41 != __cil_tmp40) {
40462#line 1715
40463    if (configuration == 0) {
40464      {
40465#line 1716
40466      __cil_tmp42 = & dev->dev;
40467#line 1716
40468      __cil_tmp43 = (struct device  const  *)__cil_tmp42;
40469#line 1716
40470      dev_warn(__cil_tmp43, "config 0 descriptor??\n");
40471      }
40472    } else {
40473
40474    }
40475  } else {
40476
40477  }
40478  }
40479#line 1720
40480  nintf = 0;
40481#line 1720
40482  n = nintf;
40483  {
40484#line 1721
40485  __cil_tmp44 = (struct usb_host_config *)0;
40486#line 1721
40487  __cil_tmp45 = (unsigned long )__cil_tmp44;
40488#line 1721
40489  __cil_tmp46 = (unsigned long )cp;
40490#line 1721
40491  if (__cil_tmp46 != __cil_tmp45) {
40492    {
40493#line 1722
40494    __cil_tmp47 = cp->desc.bNumInterfaces;
40495#line 1722
40496    nintf = (int )__cil_tmp47;
40497#line 1723
40498    __cil_tmp48 = (unsigned long )nintf;
40499#line 1723
40500    __cil_tmp49 = __cil_tmp48 * 8UL;
40501#line 1723
40502    tmp___0 = kmalloc(__cil_tmp49, 16U);
40503#line 1723
40504    new_interfaces = (struct usb_interface **)tmp___0;
40505    }
40506    {
40507#line 1725
40508    __cil_tmp50 = (struct usb_interface **)0;
40509#line 1725
40510    __cil_tmp51 = (unsigned long )__cil_tmp50;
40511#line 1725
40512    __cil_tmp52 = (unsigned long )new_interfaces;
40513#line 1725
40514    if (__cil_tmp52 == __cil_tmp51) {
40515      {
40516#line 1726
40517      __cil_tmp53 = & dev->dev;
40518#line 1726
40519      __cil_tmp54 = (struct device  const  *)__cil_tmp53;
40520#line 1726
40521      dev_err(__cil_tmp54, "Out of memory\n");
40522      }
40523#line 1727
40524      return (-12);
40525    } else {
40526
40527    }
40528    }
40529#line 1730
40530    goto ldv_29219;
40531    ldv_29218: 
40532    {
40533#line 1731
40534    tmp___1 = kzalloc(1256UL, 16U);
40535#line 1731
40536    __cil_tmp55 = (unsigned long )n;
40537#line 1731
40538    __cil_tmp56 = new_interfaces + __cil_tmp55;
40539#line 1731
40540    *__cil_tmp56 = (struct usb_interface *)tmp___1;
40541    }
40542    {
40543#line 1734
40544    __cil_tmp57 = (struct usb_interface *)0;
40545#line 1734
40546    __cil_tmp58 = (unsigned long )__cil_tmp57;
40547#line 1734
40548    __cil_tmp59 = (unsigned long )n;
40549#line 1734
40550    __cil_tmp60 = new_interfaces + __cil_tmp59;
40551#line 1734
40552    __cil_tmp61 = *__cil_tmp60;
40553#line 1734
40554    __cil_tmp62 = (unsigned long )__cil_tmp61;
40555#line 1734
40556    if (__cil_tmp62 == __cil_tmp58) {
40557      {
40558#line 1735
40559      __cil_tmp63 = & dev->dev;
40560#line 1735
40561      __cil_tmp64 = (struct device  const  *)__cil_tmp63;
40562#line 1735
40563      dev_err(__cil_tmp64, "Out of memory\n");
40564#line 1736
40565      ret = -12;
40566      }
40567      free_interfaces: ;
40568#line 1738
40569      goto ldv_29216;
40570      ldv_29215: 
40571      {
40572#line 1739
40573      __cil_tmp65 = (unsigned long )n;
40574#line 1739
40575      __cil_tmp66 = new_interfaces + __cil_tmp65;
40576#line 1739
40577      __cil_tmp67 = *__cil_tmp66;
40578#line 1739
40579      __cil_tmp68 = (void const   *)__cil_tmp67;
40580#line 1739
40581      kfree(__cil_tmp68);
40582      }
40583      ldv_29216: 
40584#line 1738
40585      n = n - 1;
40586#line 1738
40587      if (n >= 0) {
40588#line 1739
40589        goto ldv_29215;
40590      } else {
40591#line 1741
40592        goto ldv_29217;
40593      }
40594      ldv_29217: 
40595      {
40596#line 1740
40597      __cil_tmp69 = (void const   *)new_interfaces;
40598#line 1740
40599      kfree(__cil_tmp69);
40600      }
40601#line 1741
40602      return (ret);
40603    } else {
40604
40605    }
40606    }
40607#line 1730
40608    n = n + 1;
40609    ldv_29219: ;
40610#line 1730
40611    if (n < nintf) {
40612#line 1731
40613      goto ldv_29218;
40614    } else {
40615#line 1733
40616      goto ldv_29220;
40617    }
40618    ldv_29220: 
40619#line 1745
40620    __cil_tmp70 = cp->desc.bMaxPower;
40621#line 1745
40622    __cil_tmp71 = (int )__cil_tmp70;
40623#line 1745
40624    __cil_tmp72 = __cil_tmp71 * -2;
40625#line 1745
40626    __cil_tmp73 = dev->bus_mA;
40627#line 1745
40628    __cil_tmp74 = (int )__cil_tmp73;
40629#line 1745
40630    i = __cil_tmp74 + __cil_tmp72;
40631#line 1746
40632    if (i < 0) {
40633      {
40634#line 1747
40635      __cil_tmp75 = & dev->dev;
40636#line 1747
40637      __cil_tmp76 = (struct device  const  *)__cil_tmp75;
40638#line 1747
40639      __cil_tmp77 = - i;
40640#line 1747
40641      dev_warn(__cil_tmp76, "new config #%d exceeds power limit by %dmA\n", configuration,
40642               __cil_tmp77);
40643      }
40644    } else {
40645
40646    }
40647  } else {
40648
40649  }
40650  }
40651  {
40652#line 1753
40653  ret = usb_autoresume_device(dev);
40654  }
40655#line 1754
40656  if (ret != 0) {
40657#line 1755
40658    goto free_interfaces;
40659  } else {
40660
40661  }
40662  {
40663#line 1760
40664  __cil_tmp78 = hcd->bandwidth_mutex;
40665#line 1760
40666  mutex_lock_nested(__cil_tmp78, 0U);
40667  }
40668  {
40669#line 1761
40670  __cil_tmp79 = dev->state;
40671#line 1761
40672  __cil_tmp80 = (unsigned int )__cil_tmp79;
40673#line 1761
40674  if (__cil_tmp80 != 6U) {
40675    {
40676#line 1762
40677    usb_disable_device(dev, 1);
40678    }
40679  } else {
40680
40681  }
40682  }
40683  {
40684#line 1765
40685  cancel_async_set_config(dev);
40686#line 1773
40687  __cil_tmp81 = (struct usb_host_interface *)0;
40688#line 1773
40689  __cil_tmp82 = (struct usb_host_interface *)0;
40690#line 1773
40691  ret = usb_hcd_alloc_bandwidth(dev, cp, __cil_tmp81, __cil_tmp82);
40692  }
40693#line 1774
40694  if (ret < 0) {
40695    {
40696#line 1775
40697    __cil_tmp83 = hcd->bandwidth_mutex;
40698#line 1775
40699    mutex_unlock(__cil_tmp83);
40700#line 1776
40701    usb_autosuspend_device(dev);
40702    }
40703#line 1777
40704    goto free_interfaces;
40705  } else {
40706
40707  }
40708  {
40709#line 1780
40710  tmp___2 = __create_pipe(dev, 0U);
40711#line 1780
40712  __cil_tmp84 = tmp___2 | 2147483648U;
40713#line 1780
40714  __cil_tmp85 = (__u8 )9;
40715#line 1780
40716  __cil_tmp86 = (__u8 )0;
40717#line 1780
40718  __cil_tmp87 = (__u16 )configuration;
40719#line 1780
40720  __cil_tmp88 = (int )__cil_tmp87;
40721#line 1780
40722  __cil_tmp89 = (__u16 )__cil_tmp88;
40723#line 1780
40724  __cil_tmp90 = (__u16 )0;
40725#line 1780
40726  __cil_tmp91 = (void *)0;
40727#line 1780
40728  __cil_tmp92 = (__u16 )0;
40729#line 1780
40730  ret = usb_control_msg(dev, __cil_tmp84, __cil_tmp85, __cil_tmp86, __cil_tmp89, __cil_tmp90,
40731                        __cil_tmp91, __cil_tmp92, 5000);
40732  }
40733#line 1783
40734  if (ret < 0) {
40735#line 1787
40736    cp = (struct usb_host_config *)0;
40737  } else {
40738
40739  }
40740#line 1790
40741  dev->actconfig = cp;
40742  {
40743#line 1791
40744  __cil_tmp93 = (struct usb_host_config *)0;
40745#line 1791
40746  __cil_tmp94 = (unsigned long )__cil_tmp93;
40747#line 1791
40748  __cil_tmp95 = (unsigned long )cp;
40749#line 1791
40750  if (__cil_tmp95 == __cil_tmp94) {
40751    {
40752#line 1792
40753    __cil_tmp96 = (enum usb_device_state )6;
40754#line 1792
40755    usb_set_device_state(dev, __cil_tmp96);
40756#line 1793
40757    __cil_tmp97 = (struct usb_host_config *)0;
40758#line 1793
40759    __cil_tmp98 = (struct usb_host_interface *)0;
40760#line 1793
40761    __cil_tmp99 = (struct usb_host_interface *)0;
40762#line 1793
40763    usb_hcd_alloc_bandwidth(dev, __cil_tmp97, __cil_tmp98, __cil_tmp99);
40764#line 1794
40765    __cil_tmp100 = hcd->bandwidth_mutex;
40766#line 1794
40767    mutex_unlock(__cil_tmp100);
40768#line 1795
40769    usb_autosuspend_device(dev);
40770    }
40771#line 1796
40772    goto free_interfaces;
40773  } else {
40774
40775  }
40776  }
40777  {
40778#line 1798
40779  __cil_tmp101 = hcd->bandwidth_mutex;
40780#line 1798
40781  mutex_unlock(__cil_tmp101);
40782#line 1799
40783  __cil_tmp102 = (enum usb_device_state )7;
40784#line 1799
40785  usb_set_device_state(dev, __cil_tmp102);
40786#line 1804
40787  i = 0;
40788  }
40789#line 1804
40790  goto ldv_29227;
40791  ldv_29226: 
40792  {
40793#line 1809
40794  __cil_tmp103 = (unsigned long )i;
40795#line 1809
40796  __cil_tmp104 = new_interfaces + __cil_tmp103;
40797#line 1809
40798  intf = *__cil_tmp104;
40799#line 1809
40800  cp->interface[i] = intf;
40801#line 1810
40802  intfc = cp->intf_cache[i];
40803#line 1811
40804  __cil_tmp105 = & intfc->altsetting;
40805#line 1811
40806  intf->altsetting = (struct usb_host_interface *)__cil_tmp105;
40807#line 1812
40808  intf->num_altsetting = intfc->num_altsetting;
40809#line 1813
40810  __cil_tmp106 = (u8 )i;
40811#line 1813
40812  __cil_tmp107 = (int )__cil_tmp106;
40813#line 1813
40814  __cil_tmp108 = (u8 )__cil_tmp107;
40815#line 1813
40816  intf->intf_assoc = find_iad(dev, cp, __cil_tmp108);
40817#line 1814
40818  __cil_tmp109 = & intfc->ref;
40819#line 1814
40820  kref_get(__cil_tmp109);
40821#line 1816
40822  __cil_tmp110 = (struct usb_interface  const  *)intf;
40823#line 1816
40824  alt = usb_altnum_to_altsetting(__cil_tmp110, 0U);
40825  }
40826  {
40827#line 1823
40828  __cil_tmp111 = (struct usb_host_interface *)0;
40829#line 1823
40830  __cil_tmp112 = (unsigned long )__cil_tmp111;
40831#line 1823
40832  __cil_tmp113 = (unsigned long )alt;
40833#line 1823
40834  if (__cil_tmp113 == __cil_tmp112) {
40835#line 1824
40836    alt = intf->altsetting;
40837  } else {
40838
40839  }
40840  }
40841  {
40842#line 1826
40843  intf->cur_altsetting = alt;
40844#line 1827
40845  __cil_tmp114 = (bool )1;
40846#line 1827
40847  usb_enable_interface(dev, intf, __cil_tmp114);
40848#line 1828
40849  intf->dev.parent = & dev->dev;
40850#line 1829
40851  intf->dev.driver = (struct device_driver *)0;
40852#line 1830
40853  intf->dev.bus = & usb_bus_type;
40854#line 1831
40855  intf->dev.type = (struct device_type  const  *)(& usb_if_device_type);
40856#line 1832
40857  intf->dev.groups = (struct attribute_group  const  **)(& usb_interface_groups);
40858#line 1833
40859  intf->dev.dma_mask = dev->dev.dma_mask;
40860#line 1834
40861  __cil_tmp115 = & intf->reset_ws;
40862#line 1834
40863  __init_work(__cil_tmp115, 0);
40864#line 1834
40865  __constr_expr_0.counter = 2097664L;
40866#line 1834
40867  intf->reset_ws.data = __constr_expr_0;
40868#line 1834
40869  __cil_tmp116 = & intf->reset_ws.lockdep_map;
40870#line 1834
40871  lockdep_init_map(__cil_tmp116, "(&intf->reset_ws)", & __key, 0);
40872#line 1834
40873  __cil_tmp117 = & intf->reset_ws.entry;
40874#line 1834
40875  INIT_LIST_HEAD(__cil_tmp117);
40876#line 1834
40877  intf->reset_ws.func = & __usb_queue_reset_device;
40878#line 1835
40879  intf->minor = -1;
40880#line 1836
40881  __cil_tmp118 = & intf->dev;
40882#line 1836
40883  device_initialize(__cil_tmp118);
40884#line 1837
40885  __cil_tmp119 = & intf->dev;
40886#line 1837
40887  pm_runtime_no_callbacks(__cil_tmp119);
40888#line 1838
40889  __cil_tmp120 = & intf->dev;
40890#line 1838
40891  __cil_tmp121 = dev->bus;
40892#line 1838
40893  __cil_tmp122 = __cil_tmp121->busnum;
40894#line 1838
40895  __cil_tmp123 = & dev->devpath;
40896#line 1838
40897  __cil_tmp124 = (char *)__cil_tmp123;
40898#line 1838
40899  __cil_tmp125 = alt->desc.bInterfaceNumber;
40900#line 1838
40901  __cil_tmp126 = (int )__cil_tmp125;
40902#line 1838
40903  dev_set_name(__cil_tmp120, "%d-%s:%d.%d", __cil_tmp122, __cil_tmp124, configuration,
40904               __cil_tmp126);
40905#line 1804
40906  i = i + 1;
40907  }
40908  ldv_29227: ;
40909#line 1804
40910  if (i < nintf) {
40911#line 1805
40912    goto ldv_29226;
40913  } else {
40914#line 1807
40915    goto ldv_29228;
40916  }
40917  ldv_29228: 
40918  {
40919#line 1842
40920  __cil_tmp127 = (void const   *)new_interfaces;
40921#line 1842
40922  kfree(__cil_tmp127);
40923  }
40924  {
40925#line 1844
40926  __cil_tmp128 = (char *)0;
40927#line 1844
40928  __cil_tmp129 = (unsigned long )__cil_tmp128;
40929#line 1844
40930  __cil_tmp130 = cp->string;
40931#line 1844
40932  __cil_tmp131 = (unsigned long )__cil_tmp130;
40933#line 1844
40934  if (__cil_tmp131 == __cil_tmp129) {
40935    {
40936#line 1844
40937    __cil_tmp132 = dev->quirks;
40938#line 1844
40939    __cil_tmp133 = __cil_tmp132 & 8U;
40940#line 1844
40941    if (__cil_tmp133 == 0U) {
40942      {
40943#line 1846
40944      __cil_tmp134 = cp->desc.iConfiguration;
40945#line 1846
40946      __cil_tmp135 = (int )__cil_tmp134;
40947#line 1846
40948      cp->string = usb_cache_string(dev, __cil_tmp135);
40949      }
40950    } else {
40951
40952    }
40953    }
40954  } else {
40955
40956  }
40957  }
40958#line 1854
40959  i = 0;
40960#line 1854
40961  goto ldv_29232;
40962  ldv_29231: 
40963  {
40964#line 1855
40965  intf___0 = cp->interface[i];
40966#line 1857
40967  __cil_tmp136 = & intf___0->dev;
40968#line 1857
40969  __cil_tmp137 = (struct device  const  *)__cil_tmp136;
40970#line 1857
40971  tmp___3 = dev_name(__cil_tmp137);
40972#line 1857
40973  __cil_tmp138 = & dev->dev;
40974#line 1857
40975  __cil_tmp139 = (struct device  const  *)__cil_tmp138;
40976#line 1857
40977  __cil_tmp140 = intf___0->cur_altsetting;
40978#line 1857
40979  __cil_tmp141 = __cil_tmp140->desc.bInterfaceNumber;
40980#line 1857
40981  __cil_tmp142 = (int )__cil_tmp141;
40982#line 1857
40983  dev_printk("<7>", __cil_tmp139, "adding %s (config #%d, interface %d)\n", tmp___3,
40984             configuration, __cil_tmp142);
40985#line 1861
40986  __cil_tmp143 = & intf___0->dev;
40987#line 1861
40988  device_enable_async_suspend(__cil_tmp143);
40989#line 1862
40990  __cil_tmp144 = & intf___0->dev;
40991#line 1862
40992  ret = device_add(__cil_tmp144);
40993  }
40994#line 1863
40995  if (ret != 0) {
40996    {
40997#line 1864
40998    __cil_tmp145 = & intf___0->dev;
40999#line 1864
41000    __cil_tmp146 = (struct device  const  *)__cil_tmp145;
41001#line 1864
41002    tmp___4 = dev_name(__cil_tmp146);
41003#line 1864
41004    __cil_tmp147 = & dev->dev;
41005#line 1864
41006    __cil_tmp148 = (struct device  const  *)__cil_tmp147;
41007#line 1864
41008    dev_err(__cil_tmp148, "device_add(%s) --> %d\n", tmp___4, ret);
41009    }
41010#line 1866
41011    goto ldv_29230;
41012  } else {
41013
41014  }
41015  {
41016#line 1868
41017  create_intf_ep_devs(intf___0);
41018  }
41019  ldv_29230: 
41020#line 1854
41021  i = i + 1;
41022  ldv_29232: ;
41023#line 1854
41024  if (i < nintf) {
41025#line 1855
41026    goto ldv_29231;
41027  } else {
41028#line 1857
41029    goto ldv_29233;
41030  }
41031  ldv_29233: 
41032  {
41033#line 1871
41034  usb_autosuspend_device(dev);
41035  }
41036#line 1872
41037  return (0);
41038}
41039}
41040#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"
41041static struct list_head set_config_list  =    {& set_config_list, & set_config_list};
41042#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"
41043static spinlock_t set_config_lock  =    {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
41044                                                                      {(struct lock_class *)0,
41045                                                                       (struct lock_class *)0},
41046                                                                      "set_config_lock",
41047                                                                      0, 0UL}}}};
41048#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"
41049static void driver_set_config_work(struct work_struct *work ) 
41050{ struct set_config_request *req ;
41051  struct work_struct  const  *__mptr ;
41052  struct usb_device *udev ;
41053  struct set_config_request *__cil_tmp5 ;
41054  struct device *__cil_tmp6 ;
41055  struct list_head *__cil_tmp7 ;
41056  int __cil_tmp8 ;
41057  int __cil_tmp9 ;
41058  struct device *__cil_tmp10 ;
41059  void const   *__cil_tmp11 ;
41060
41061  {
41062  {
41063#line 1889
41064  __mptr = (struct work_struct  const  *)work;
41065#line 1889
41066  __cil_tmp5 = (struct set_config_request *)__mptr;
41067#line 1889
41068  req = __cil_tmp5 + 1152921504606846960UL;
41069#line 1890
41070  udev = req->udev;
41071#line 1892
41072  __cil_tmp6 = & udev->dev;
41073#line 1892
41074  device_lock(__cil_tmp6);
41075#line 1893
41076  spin_lock(& set_config_lock);
41077#line 1894
41078  __cil_tmp7 = & req->node;
41079#line 1894
41080  list_del(__cil_tmp7);
41081#line 1895
41082  spin_unlock(& set_config_lock);
41083  }
41084  {
41085#line 1897
41086  __cil_tmp8 = req->config;
41087#line 1897
41088  if (__cil_tmp8 >= -1) {
41089    {
41090#line 1898
41091    __cil_tmp9 = req->config;
41092#line 1898
41093    usb_set_configuration(udev, __cil_tmp9);
41094    }
41095  } else {
41096
41097  }
41098  }
41099  {
41100#line 1899
41101  __cil_tmp10 = & udev->dev;
41102#line 1899
41103  device_unlock(__cil_tmp10);
41104#line 1900
41105  usb_put_dev(udev);
41106#line 1901
41107  __cil_tmp11 = (void const   *)req;
41108#line 1901
41109  kfree(__cil_tmp11);
41110  }
41111#line 1902
41112  return;
41113}
41114}
41115#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"
41116static void cancel_async_set_config(struct usb_device *udev ) 
41117{ struct set_config_request *req ;
41118  struct list_head  const  *__mptr ;
41119  struct list_head  const  *__mptr___0 ;
41120  struct set_config_request *__cil_tmp5 ;
41121  unsigned long __cil_tmp6 ;
41122  struct usb_device *__cil_tmp7 ;
41123  unsigned long __cil_tmp8 ;
41124  struct list_head *__cil_tmp9 ;
41125  struct set_config_request *__cil_tmp10 ;
41126  unsigned long __cil_tmp11 ;
41127  struct list_head *__cil_tmp12 ;
41128  unsigned long __cil_tmp13 ;
41129
41130  {
41131  {
41132#line 1911
41133  spin_lock(& set_config_lock);
41134#line 1912
41135  __mptr = (struct list_head  const  *)set_config_list.next;
41136#line 1912
41137  __cil_tmp5 = (struct set_config_request *)__mptr;
41138#line 1912
41139  req = __cil_tmp5 + 1152921504606846880UL;
41140  }
41141#line 1912
41142  goto ldv_29258;
41143  ldv_29257: ;
41144  {
41145#line 1913
41146  __cil_tmp6 = (unsigned long )udev;
41147#line 1913
41148  __cil_tmp7 = req->udev;
41149#line 1913
41150  __cil_tmp8 = (unsigned long )__cil_tmp7;
41151#line 1913
41152  if (__cil_tmp8 == __cil_tmp6) {
41153#line 1914
41154    req->config = -999;
41155  } else {
41156
41157  }
41158  }
41159#line 1912
41160  __cil_tmp9 = req->node.next;
41161#line 1912
41162  __mptr___0 = (struct list_head  const  *)__cil_tmp9;
41163#line 1912
41164  __cil_tmp10 = (struct set_config_request *)__mptr___0;
41165#line 1912
41166  req = __cil_tmp10 + 1152921504606846880UL;
41167  ldv_29258: ;
41168  {
41169#line 1912
41170  __cil_tmp11 = (unsigned long )(& set_config_list);
41171#line 1912
41172  __cil_tmp12 = & req->node;
41173#line 1912
41174  __cil_tmp13 = (unsigned long )__cil_tmp12;
41175#line 1912
41176  if (__cil_tmp13 != __cil_tmp11) {
41177#line 1913
41178    goto ldv_29257;
41179  } else {
41180#line 1915
41181    goto ldv_29259;
41182  }
41183  }
41184  ldv_29259: 
41185  {
41186#line 1916
41187  spin_unlock(& set_config_lock);
41188  }
41189#line 1917
41190  return;
41191}
41192}
41193#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"
41194int usb_driver_set_configuration(struct usb_device *udev , int config ) 
41195{ struct set_config_request *req ;
41196  void *tmp ;
41197  struct lock_class_key __key ;
41198  atomic_long_t __constr_expr_0 ;
41199  struct set_config_request *__cil_tmp7 ;
41200  unsigned long __cil_tmp8 ;
41201  unsigned long __cil_tmp9 ;
41202  struct work_struct *__cil_tmp10 ;
41203  struct lockdep_map *__cil_tmp11 ;
41204  struct list_head *__cil_tmp12 ;
41205  struct list_head *__cil_tmp13 ;
41206  struct work_struct *__cil_tmp14 ;
41207
41208  {
41209  {
41210#line 1943
41211  tmp = kmalloc(112UL, 208U);
41212#line 1943
41213  req = (struct set_config_request *)tmp;
41214  }
41215  {
41216#line 1944
41217  __cil_tmp7 = (struct set_config_request *)0;
41218#line 1944
41219  __cil_tmp8 = (unsigned long )__cil_tmp7;
41220#line 1944
41221  __cil_tmp9 = (unsigned long )req;
41222#line 1944
41223  if (__cil_tmp9 == __cil_tmp8) {
41224#line 1945
41225    return (-12);
41226  } else {
41227
41228  }
41229  }
41230  {
41231#line 1946
41232  req->udev = udev;
41233#line 1947
41234  req->config = config;
41235#line 1948
41236  __cil_tmp10 = & req->work;
41237#line 1948
41238  __init_work(__cil_tmp10, 0);
41239#line 1948
41240  __constr_expr_0.counter = 2097664L;
41241#line 1948
41242  req->work.data = __constr_expr_0;
41243#line 1948
41244  __cil_tmp11 = & req->work.lockdep_map;
41245#line 1948
41246  lockdep_init_map(__cil_tmp11, "(&req->work)", & __key, 0);
41247#line 1948
41248  __cil_tmp12 = & req->work.entry;
41249#line 1948
41250  INIT_LIST_HEAD(__cil_tmp12);
41251#line 1948
41252  req->work.func = & driver_set_config_work;
41253#line 1950
41254  spin_lock(& set_config_lock);
41255#line 1951
41256  __cil_tmp13 = & req->node;
41257#line 1951
41258  list_add(__cil_tmp13, & set_config_list);
41259#line 1952
41260  spin_unlock(& set_config_lock);
41261#line 1954
41262  usb_get_dev(udev);
41263#line 1955
41264  __cil_tmp14 = & req->work;
41265#line 1955
41266  schedule_work(__cil_tmp14);
41267  }
41268#line 1956
41269  return (0);
41270}
41271}
41272#line 12 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/cmpxchg_64.h"
41273extern void __cmpxchg_wrong_size(void) ;
41274#line 213 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
41275__inline static int atomic_cmpxchg(atomic_t *v , int old , int new ) 
41276{ int __ret ;
41277  int __old ;
41278  int __new ;
41279  u8 volatile   *__ptr ;
41280  u16 volatile   *__ptr___0 ;
41281  u32 volatile   *__ptr___1 ;
41282  u64 volatile   *__ptr___2 ;
41283  int *__cil_tmp11 ;
41284  int *__cil_tmp12 ;
41285  int *__cil_tmp13 ;
41286  int *__cil_tmp14 ;
41287
41288  {
41289#line 215
41290  __old = old;
41291#line 215
41292  __new = new;
41293#line 215
41294  if (1) {
41295#line 215
41296    goto case_4;
41297  } else {
41298#line 215
41299    goto switch_default;
41300#line 215
41301    if (0) {
41302#line 215
41303      __cil_tmp11 = & v->counter;
41304#line 215
41305      __ptr = (u8 volatile   *)__cil_tmp11;
41306#line 215
41307      __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; cmpxchgb %2,%1": "=a" (__ret),
41308                           "+m" (*__ptr): "q" (__new), "0" (__old): "memory");
41309#line 215
41310      goto ldv_5544;
41311#line 215
41312      __cil_tmp12 = & v->counter;
41313#line 215
41314      __ptr___0 = (u16 volatile   *)__cil_tmp12;
41315#line 215
41316      __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; cmpxchgw %2,%1": "=a" (__ret),
41317                           "+m" (*__ptr___0): "r" (__new), "0" (__old): "memory");
41318#line 215
41319      goto ldv_5544;
41320      case_4: 
41321#line 215
41322      __cil_tmp13 = & v->counter;
41323#line 215
41324      __ptr___1 = (u32 volatile   *)__cil_tmp13;
41325#line 215
41326      __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; cmpxchgl %2,%1": "=a" (__ret),
41327                           "+m" (*__ptr___1): "r" (__new), "0" (__old): "memory");
41328#line 215
41329      goto ldv_5544;
41330#line 215
41331      __cil_tmp14 = & v->counter;
41332#line 215
41333      __ptr___2 = (u64 volatile   *)__cil_tmp14;
41334#line 215
41335      __asm__  volatile   (".section .smp_locks,\"a\"\n.balign 4\n.long 671f - .\n.previous\n671:\n\tlock; cmpxchgq %2,%1": "=a" (__ret),
41336                           "+m" (*__ptr___2): "r" (__new), "0" (__old): "memory");
41337#line 215
41338      goto ldv_5544;
41339      switch_default: 
41340      {
41341#line 215
41342      __cmpxchg_wrong_size();
41343      }
41344    } else {
41345
41346    }
41347  }
41348  ldv_5544: ;
41349#line 215
41350  return (__ret);
41351}
41352}
41353#line 232 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
41354__inline static int atomic_add_unless(atomic_t *v , int a , int u ) 
41355{ int c ;
41356  int old ;
41357  long tmp ;
41358  long tmp___0 ;
41359  atomic_t const   *__cil_tmp8 ;
41360  int __cil_tmp9 ;
41361  long __cil_tmp10 ;
41362  int __cil_tmp11 ;
41363  int __cil_tmp12 ;
41364  long __cil_tmp13 ;
41365
41366  {
41367  {
41368#line 235
41369  __cil_tmp8 = (atomic_t const   *)v;
41370#line 235
41371  c = atomic_read(__cil_tmp8);
41372  }
41373  ldv_5577: 
41374  {
41375#line 237
41376  __cil_tmp9 = c == u;
41377#line 237
41378  __cil_tmp10 = (long )__cil_tmp9;
41379#line 237
41380  tmp = __builtin_expect(__cil_tmp10, 0L);
41381  }
41382#line 237
41383  if (tmp != 0L) {
41384#line 238
41385    goto ldv_5576;
41386  } else {
41387
41388  }
41389  {
41390#line 239
41391  __cil_tmp11 = c + a;
41392#line 239
41393  old = atomic_cmpxchg(v, c, __cil_tmp11);
41394#line 240
41395  __cil_tmp12 = old == c;
41396#line 240
41397  __cil_tmp13 = (long )__cil_tmp12;
41398#line 240
41399  tmp___0 = __builtin_expect(__cil_tmp13, 1L);
41400  }
41401#line 240
41402  if (tmp___0 != 0L) {
41403#line 241
41404    goto ldv_5576;
41405  } else {
41406
41407  }
41408#line 242
41409  c = old;
41410#line 243
41411  goto ldv_5577;
41412  ldv_5576: ;
41413#line 244
41414  return (c != u);
41415}
41416}
41417#line 553 "include/linux/pm.h"
41418extern int device_pm_wait_for_dev(struct device * , struct device * ) ;
41419#line 209 "include/linux/device.h"
41420extern int driver_register(struct device_driver * ) ;
41421#line 210
41422extern void driver_unregister(struct device_driver * ) ;
41423#line 212
41424extern struct device_driver *get_driver(struct device_driver * ) ;
41425#line 213
41426extern void put_driver(struct device_driver * ) ;
41427#line 233
41428extern int driver_create_file(struct device_driver * , struct driver_attribute  const  * ) ;
41429#line 235
41430extern void driver_remove_file(struct device_driver * , struct driver_attribute  const  * ) ;
41431#line 728
41432extern int device_bind_driver(struct device * ) ;
41433#line 729
41434extern void device_release_driver(struct device * ) ;
41435#line 730
41436extern int device_attach(struct device * ) ;
41437#line 731
41438extern int driver_attach(struct device_driver * ) ;
41439#line 29 "include/linux/pm_runtime.h"
41440extern int __pm_runtime_idle(struct device * , int  ) ;
41441#line 31
41442extern int __pm_runtime_resume(struct device * , int  ) ;
41443#line 37
41444extern void pm_runtime_allow(struct device * ) ;
41445#line 38
41446extern void pm_runtime_forbid(struct device * ) ;
41447#line 54 "include/linux/pm_runtime.h"
41448__inline static void pm_suspend_ignore_children(struct device *dev , bool enable ) 
41449{ 
41450
41451  {
41452#line 56
41453  dev->power.ignore_children = (unsigned char )enable;
41454#line 57
41455  return;
41456}
41457}
41458#line 64 "include/linux/pm_runtime.h"
41459__inline static void pm_runtime_put_noidle(struct device *dev ) 
41460{ atomic_t *__cil_tmp2 ;
41461
41462  {
41463  {
41464#line 66
41465  __cil_tmp2 = & dev->power.usage_count;
41466#line 66
41467  atomic_add_unless(__cil_tmp2, -1, 0);
41468  }
41469#line 67
41470  return;
41471}
41472}
41473#line 162 "include/linux/pm_runtime.h"
41474__inline static int pm_runtime_autosuspend(struct device *dev ) 
41475{ int tmp ;
41476
41477  {
41478  {
41479#line 164
41480  tmp = __pm_runtime_suspend(dev, 8);
41481  }
41482#line 164
41483  return (tmp);
41484}
41485}
41486#line 167 "include/linux/pm_runtime.h"
41487__inline static int pm_runtime_resume(struct device *dev ) 
41488{ int tmp ;
41489
41490  {
41491  {
41492#line 169
41493  tmp = __pm_runtime_resume(dev, 0);
41494  }
41495#line 169
41496  return (tmp);
41497}
41498}
41499#line 187 "include/linux/pm_runtime.h"
41500__inline static int pm_runtime_get(struct device *dev ) 
41501{ int tmp ;
41502
41503  {
41504  {
41505#line 189
41506  tmp = __pm_runtime_resume(dev, 5);
41507  }
41508#line 189
41509  return (tmp);
41510}
41511}
41512#line 192 "include/linux/pm_runtime.h"
41513__inline static int pm_runtime_get_sync(struct device *dev ) 
41514{ int tmp ;
41515
41516  {
41517  {
41518#line 194
41519  tmp = __pm_runtime_resume(dev, 4);
41520  }
41521#line 194
41522  return (tmp);
41523}
41524}
41525#line 197 "include/linux/pm_runtime.h"
41526__inline static int pm_runtime_put(struct device *dev ) 
41527{ int tmp ;
41528
41529  {
41530  {
41531#line 199
41532  tmp = __pm_runtime_idle(dev, 5);
41533  }
41534#line 199
41535  return (tmp);
41536}
41537}
41538#line 208 "include/linux/pm_runtime.h"
41539__inline static int pm_runtime_put_sync(struct device *dev ) 
41540{ int tmp ;
41541
41542  {
41543  {
41544#line 210
41545  tmp = __pm_runtime_idle(dev, 4);
41546  }
41547#line 210
41548  return (tmp);
41549}
41550}
41551#line 524 "include/linux/usb.h"
41552int usb_autopm_get_interface_async(struct usb_interface *intf ) ;
41553#line 576
41554int usb_driver_claim_interface(struct usb_driver *driver , struct usb_interface *iface ,
41555                               void *priv ) ;
41556#line 594
41557void usb_driver_release_interface(struct usb_driver *driver , struct usb_interface *iface ) ;
41558#line 596
41559struct usb_device_id  const  *usb_match_id(struct usb_interface *interface , struct usb_device_id  const  *id ) ;
41560#line 598
41561int usb_match_one_id(struct usb_interface *interface , struct usb_device_id  const  *id ) ;
41562#line 773
41563ssize_t usb_store_new_id(struct usb_dynids *dynids , struct device_driver *driver ,
41564                         char const   *buf , size_t count ) ;
41565#line 595 "include/linux/usb/hcd.h"
41566void usbfs_update_special(void) ;
41567#line 36 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
41568int usb_match_device(struct usb_device *dev , struct usb_device_id  const  *id ) ;
41569#line 105 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
41570__inline static int is_usb_device(struct device  const  *dev ) 
41571{ struct device_type  const  *__cil_tmp2 ;
41572  unsigned long __cil_tmp3 ;
41573  struct device_type  const  *__cil_tmp4 ;
41574  struct device_type  const  *__cil_tmp5 ;
41575  unsigned long __cil_tmp6 ;
41576
41577  {
41578  {
41579#line 107
41580  __cil_tmp2 = (struct device_type  const  *)(& usb_device_type);
41581#line 107
41582  __cil_tmp3 = (unsigned long )__cil_tmp2;
41583#line 107
41584  __cil_tmp4 = dev->type;
41585#line 107
41586  __cil_tmp5 = (struct device_type  const  *)__cil_tmp4;
41587#line 107
41588  __cil_tmp6 = (unsigned long )__cil_tmp5;
41589#line 107
41590  return (__cil_tmp6 == __cil_tmp3);
41591  }
41592}
41593}
41594#line 122 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
41595__inline static int is_usb_device_driver(struct device_driver *drv ) 
41596{ struct device_driver  const  *__mptr ;
41597  struct usbdrv_wrap *__cil_tmp3 ;
41598
41599  {
41600#line 124
41601  __mptr = (struct device_driver  const  *)drv;
41602  {
41603#line 124
41604  __cil_tmp3 = (struct usbdrv_wrap *)__mptr;
41605#line 124
41606  return (__cil_tmp3->for_devices);
41607  }
41608}
41609}
41610#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"
41611ssize_t usb_store_new_id(struct usb_dynids *dynids , struct device_driver *driver ,
41612                         char const   *buf , size_t count ) 
41613{ struct usb_dynid *dynid ;
41614  u32 idVendor ;
41615  u32 idProduct ;
41616  int fields ;
41617  int retval ;
41618  void *tmp ;
41619  struct device_driver *tmp___0 ;
41620  struct usb_dynid *__cil_tmp12 ;
41621  unsigned long __cil_tmp13 ;
41622  unsigned long __cil_tmp14 ;
41623  struct list_head *__cil_tmp15 ;
41624  spinlock_t *__cil_tmp16 ;
41625  struct list_head *__cil_tmp17 ;
41626  struct list_head *__cil_tmp18 ;
41627  spinlock_t *__cil_tmp19 ;
41628  struct device_driver *__cil_tmp20 ;
41629  unsigned long __cil_tmp21 ;
41630  unsigned long __cil_tmp22 ;
41631
41632  {
41633  {
41634#line 53
41635  idVendor = 0U;
41636#line 54
41637  idProduct = 0U;
41638#line 55
41639  fields = 0;
41640#line 56
41641  retval = 0;
41642#line 58
41643  fields = sscanf(buf, "%x %x", & idVendor, & idProduct);
41644  }
41645#line 59
41646  if (fields <= 1) {
41647#line 60
41648    return (-22L);
41649  } else {
41650
41651  }
41652  {
41653#line 62
41654  tmp = kzalloc(40UL, 208U);
41655#line 62
41656  dynid = (struct usb_dynid *)tmp;
41657  }
41658  {
41659#line 63
41660  __cil_tmp12 = (struct usb_dynid *)0;
41661#line 63
41662  __cil_tmp13 = (unsigned long )__cil_tmp12;
41663#line 63
41664  __cil_tmp14 = (unsigned long )dynid;
41665#line 63
41666  if (__cil_tmp14 == __cil_tmp13) {
41667#line 64
41668    return (-12L);
41669  } else {
41670
41671  }
41672  }
41673  {
41674#line 66
41675  __cil_tmp15 = & dynid->node;
41676#line 66
41677  INIT_LIST_HEAD(__cil_tmp15);
41678#line 67
41679  dynid->id.idVendor = (__u16 )idVendor;
41680#line 68
41681  dynid->id.idProduct = (__u16 )idProduct;
41682#line 69
41683  dynid->id.match_flags = (__u16 )3U;
41684#line 71
41685  __cil_tmp16 = & dynids->lock;
41686#line 71
41687  spin_lock(__cil_tmp16);
41688#line 72
41689  __cil_tmp17 = & dynid->node;
41690#line 72
41691  __cil_tmp18 = & dynids->list;
41692#line 72
41693  list_add_tail(__cil_tmp17, __cil_tmp18);
41694#line 73
41695  __cil_tmp19 = & dynids->lock;
41696#line 73
41697  spin_unlock(__cil_tmp19);
41698#line 75
41699  tmp___0 = get_driver(driver);
41700  }
41701  {
41702#line 75
41703  __cil_tmp20 = (struct device_driver *)0;
41704#line 75
41705  __cil_tmp21 = (unsigned long )__cil_tmp20;
41706#line 75
41707  __cil_tmp22 = (unsigned long )tmp___0;
41708#line 75
41709  if (__cil_tmp22 != __cil_tmp21) {
41710    {
41711#line 76
41712    retval = driver_attach(driver);
41713#line 77
41714    put_driver(driver);
41715    }
41716  } else {
41717
41718  }
41719  }
41720#line 80
41721  if (retval != 0) {
41722#line 81
41723    return ((ssize_t )retval);
41724  } else {
41725
41726  }
41727#line 82
41728  return ((ssize_t )count);
41729}
41730}
41731#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"
41732static ssize_t store_new_id(struct device_driver *driver , char const   *buf , size_t count ) 
41733{ struct usb_driver *usb_drv ;
41734  struct device_driver  const  *__mptr ;
41735  ssize_t tmp ;
41736  struct usb_driver *__cil_tmp7 ;
41737  struct usb_dynids *__cil_tmp8 ;
41738
41739  {
41740  {
41741#line 89
41742  __mptr = (struct device_driver  const  *)driver;
41743#line 89
41744  __cil_tmp7 = (struct usb_driver *)__mptr;
41745#line 89
41746  usb_drv = __cil_tmp7 + 1152921504606846808UL;
41747#line 91
41748  __cil_tmp8 = & usb_drv->dynids;
41749#line 91
41750  tmp = usb_store_new_id(__cil_tmp8, driver, buf, count);
41751  }
41752#line 91
41753  return (tmp);
41754}
41755}
41756#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"
41757static struct driver_attribute driver_attr_new_id  =    {{"new_id", 128U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
41758                                                   {(char)0}, {(char)0}, {(char)0},
41759                                                   {(char)0}, {(char)0}}}}, (ssize_t (*)(struct device_driver * ,
41760                                                                                         char * ))0,
41761    & store_new_id};
41762#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"
41763static ssize_t store_remove_id(struct device_driver *driver , char const   *buf ,
41764                               size_t count ) 
41765{ struct usb_dynid *dynid ;
41766  struct usb_dynid *n ;
41767  struct usb_driver *usb_driver ;
41768  struct device_driver  const  *__mptr ;
41769  u32 idVendor ;
41770  u32 idProduct ;
41771  int fields ;
41772  int retval ;
41773  struct list_head  const  *__mptr___0 ;
41774  struct list_head  const  *__mptr___1 ;
41775  struct usb_device_id *id ;
41776  struct list_head  const  *__mptr___2 ;
41777  struct usb_driver *__cil_tmp16 ;
41778  spinlock_t *__cil_tmp17 ;
41779  struct list_head *__cil_tmp18 ;
41780  struct list_head *__cil_tmp19 ;
41781  __u16 __cil_tmp20 ;
41782  u32 __cil_tmp21 ;
41783  __u16 __cil_tmp22 ;
41784  u32 __cil_tmp23 ;
41785  struct list_head *__cil_tmp24 ;
41786  void const   *__cil_tmp25 ;
41787  struct list_head *__cil_tmp26 ;
41788  struct list_head *__cil_tmp27 ;
41789  unsigned long __cil_tmp28 ;
41790  struct list_head *__cil_tmp29 ;
41791  unsigned long __cil_tmp30 ;
41792  spinlock_t *__cil_tmp31 ;
41793
41794  {
41795  {
41796#line 107
41797  __mptr = (struct device_driver  const  *)driver;
41798#line 107
41799  __cil_tmp16 = (struct usb_driver *)__mptr;
41800#line 107
41801  usb_driver = __cil_tmp16 + 1152921504606846808UL;
41802#line 108
41803  idVendor = 0U;
41804#line 109
41805  idProduct = 0U;
41806#line 110
41807  fields = 0;
41808#line 111
41809  retval = 0;
41810#line 113
41811  fields = sscanf(buf, "%x %x", & idVendor, & idProduct);
41812  }
41813#line 114
41814  if (fields <= 1) {
41815#line 115
41816    return (-22L);
41817  } else {
41818
41819  }
41820  {
41821#line 117
41822  __cil_tmp17 = & usb_driver->dynids.lock;
41823#line 117
41824  spin_lock(__cil_tmp17);
41825#line 118
41826  __cil_tmp18 = usb_driver->dynids.list.next;
41827#line 118
41828  __mptr___0 = (struct list_head  const  *)__cil_tmp18;
41829#line 118
41830  dynid = (struct usb_dynid *)__mptr___0;
41831#line 118
41832  __cil_tmp19 = dynid->node.next;
41833#line 118
41834  __mptr___1 = (struct list_head  const  *)__cil_tmp19;
41835#line 118
41836  n = (struct usb_dynid *)__mptr___1;
41837  }
41838#line 118
41839  goto ldv_24278;
41840  ldv_24277: 
41841#line 119
41842  id = & dynid->id;
41843  {
41844#line 120
41845  __cil_tmp20 = id->idVendor;
41846#line 120
41847  __cil_tmp21 = (u32 )__cil_tmp20;
41848#line 120
41849  if (__cil_tmp21 == idVendor) {
41850    {
41851#line 120
41852    __cil_tmp22 = id->idProduct;
41853#line 120
41854    __cil_tmp23 = (u32 )__cil_tmp22;
41855#line 120
41856    if (__cil_tmp23 == idProduct) {
41857      {
41858#line 122
41859      __cil_tmp24 = & dynid->node;
41860#line 122
41861      list_del(__cil_tmp24);
41862#line 123
41863      __cil_tmp25 = (void const   *)dynid;
41864#line 123
41865      kfree(__cil_tmp25);
41866#line 124
41867      retval = 0;
41868      }
41869#line 125
41870      goto ldv_24276;
41871    } else {
41872
41873    }
41874    }
41875  } else {
41876
41877  }
41878  }
41879#line 118
41880  dynid = n;
41881#line 118
41882  __cil_tmp26 = n->node.next;
41883#line 118
41884  __mptr___2 = (struct list_head  const  *)__cil_tmp26;
41885#line 118
41886  n = (struct usb_dynid *)__mptr___2;
41887  ldv_24278: ;
41888  {
41889#line 118
41890  __cil_tmp27 = & usb_driver->dynids.list;
41891#line 118
41892  __cil_tmp28 = (unsigned long )__cil_tmp27;
41893#line 118
41894  __cil_tmp29 = & dynid->node;
41895#line 118
41896  __cil_tmp30 = (unsigned long )__cil_tmp29;
41897#line 118
41898  if (__cil_tmp30 != __cil_tmp28) {
41899#line 119
41900    goto ldv_24277;
41901  } else {
41902#line 121
41903    goto ldv_24276;
41904  }
41905  }
41906  ldv_24276: 
41907  {
41908#line 128
41909  __cil_tmp31 = & usb_driver->dynids.lock;
41910#line 128
41911  spin_unlock(__cil_tmp31);
41912  }
41913#line 130
41914  if (retval != 0) {
41915#line 131
41916    return ((ssize_t )retval);
41917  } else {
41918
41919  }
41920#line 132
41921  return ((ssize_t )count);
41922}
41923}
41924#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"
41925static struct driver_attribute driver_attr_remove_id  =    {{"remove_id", 128U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
41926                                                      {(char)0}, {(char)0}, {(char)0},
41927                                                      {(char)0}, {(char)0}}}}, (ssize_t (*)(struct device_driver * ,
41928                                                                                            char * ))0,
41929    & store_remove_id};
41930#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"
41931static int usb_create_newid_file(struct usb_driver *usb_drv ) 
41932{ int error ;
41933  unsigned char *__cil_tmp3 ;
41934  unsigned char *__cil_tmp4 ;
41935  unsigned char __cil_tmp5 ;
41936  unsigned int __cil_tmp6 ;
41937  int (*__cil_tmp7)(struct usb_interface * , struct usb_device_id  const  * ) ;
41938  unsigned long __cil_tmp8 ;
41939  int (*__cil_tmp9)(struct usb_interface * , struct usb_device_id  const  * ) ;
41940  unsigned long __cil_tmp10 ;
41941  struct device_driver *__cil_tmp11 ;
41942  struct driver_attribute  const  *__cil_tmp12 ;
41943
41944  {
41945#line 138
41946  error = 0;
41947  {
41948#line 140
41949  __cil_tmp3 = (unsigned char *)usb_drv;
41950#line 140
41951  __cil_tmp4 = __cil_tmp3 + 288UL;
41952#line 140
41953  __cil_tmp5 = *__cil_tmp4;
41954#line 140
41955  __cil_tmp6 = (unsigned int )__cil_tmp5;
41956#line 140
41957  if (__cil_tmp6 != 0U) {
41958#line 141
41959    goto exit;
41960  } else {
41961
41962  }
41963  }
41964  {
41965#line 143
41966  __cil_tmp7 = (int (*)(struct usb_interface * , struct usb_device_id  const  * ))0;
41967#line 143
41968  __cil_tmp8 = (unsigned long )__cil_tmp7;
41969#line 143
41970  __cil_tmp9 = usb_drv->probe;
41971#line 143
41972  __cil_tmp10 = (unsigned long )__cil_tmp9;
41973#line 143
41974  if (__cil_tmp10 != __cil_tmp8) {
41975    {
41976#line 144
41977    __cil_tmp11 = & usb_drv->drvwrap.driver;
41978#line 144
41979    __cil_tmp12 = (struct driver_attribute  const  *)(& driver_attr_new_id);
41980#line 144
41981    error = driver_create_file(__cil_tmp11, __cil_tmp12);
41982    }
41983  } else {
41984
41985  }
41986  }
41987  exit: ;
41988#line 147
41989  return (error);
41990}
41991}
41992#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"
41993static void usb_remove_newid_file(struct usb_driver *usb_drv ) 
41994{ unsigned char *__cil_tmp2 ;
41995  unsigned char *__cil_tmp3 ;
41996  unsigned char __cil_tmp4 ;
41997  unsigned int __cil_tmp5 ;
41998  int (*__cil_tmp6)(struct usb_interface * , struct usb_device_id  const  * ) ;
41999  unsigned long __cil_tmp7 ;
42000  int (*__cil_tmp8)(struct usb_interface * , struct usb_device_id  const  * ) ;
42001  unsigned long __cil_tmp9 ;
42002  struct device_driver *__cil_tmp10 ;
42003  struct driver_attribute  const  *__cil_tmp11 ;
42004
42005  {
42006  {
42007#line 152
42008  __cil_tmp2 = (unsigned char *)usb_drv;
42009#line 152
42010  __cil_tmp3 = __cil_tmp2 + 288UL;
42011#line 152
42012  __cil_tmp4 = *__cil_tmp3;
42013#line 152
42014  __cil_tmp5 = (unsigned int )__cil_tmp4;
42015#line 152
42016  if (__cil_tmp5 != 0U) {
42017#line 153
42018    return;
42019  } else {
42020
42021  }
42022  }
42023  {
42024#line 155
42025  __cil_tmp6 = (int (*)(struct usb_interface * , struct usb_device_id  const  * ))0;
42026#line 155
42027  __cil_tmp7 = (unsigned long )__cil_tmp6;
42028#line 155
42029  __cil_tmp8 = usb_drv->probe;
42030#line 155
42031  __cil_tmp9 = (unsigned long )__cil_tmp8;
42032#line 155
42033  if (__cil_tmp9 != __cil_tmp7) {
42034    {
42035#line 156
42036    __cil_tmp10 = & usb_drv->drvwrap.driver;
42037#line 156
42038    __cil_tmp11 = (struct driver_attribute  const  *)(& driver_attr_new_id);
42039#line 156
42040    driver_remove_file(__cil_tmp10, __cil_tmp11);
42041    }
42042  } else {
42043
42044  }
42045  }
42046#line 158
42047  return;
42048}
42049}
42050#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"
42051static int usb_create_removeid_file(struct usb_driver *drv ) 
42052{ int error ;
42053  int (*__cil_tmp3)(struct usb_interface * , struct usb_device_id  const  * ) ;
42054  unsigned long __cil_tmp4 ;
42055  int (*__cil_tmp5)(struct usb_interface * , struct usb_device_id  const  * ) ;
42056  unsigned long __cil_tmp6 ;
42057  struct device_driver *__cil_tmp7 ;
42058  struct driver_attribute  const  *__cil_tmp8 ;
42059
42060  {
42061#line 163
42062  error = 0;
42063  {
42064#line 164
42065  __cil_tmp3 = (int (*)(struct usb_interface * , struct usb_device_id  const  * ))0;
42066#line 164
42067  __cil_tmp4 = (unsigned long )__cil_tmp3;
42068#line 164
42069  __cil_tmp5 = drv->probe;
42070#line 164
42071  __cil_tmp6 = (unsigned long )__cil_tmp5;
42072#line 164
42073  if (__cil_tmp6 != __cil_tmp4) {
42074    {
42075#line 165
42076    __cil_tmp7 = & drv->drvwrap.driver;
42077#line 165
42078    __cil_tmp8 = (struct driver_attribute  const  *)(& driver_attr_remove_id);
42079#line 165
42080    error = driver_create_file(__cil_tmp7, __cil_tmp8);
42081    }
42082  } else {
42083
42084  }
42085  }
42086#line 167
42087  return (error);
42088}
42089}
42090#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"
42091static void usb_remove_removeid_file(struct usb_driver *drv ) 
42092{ struct device_driver *__cil_tmp2 ;
42093  struct driver_attribute  const  *__cil_tmp3 ;
42094
42095  {
42096  {
42097#line 172
42098  __cil_tmp2 = & drv->drvwrap.driver;
42099#line 172
42100  __cil_tmp3 = (struct driver_attribute  const  *)(& driver_attr_remove_id);
42101#line 172
42102  driver_remove_file(__cil_tmp2, __cil_tmp3);
42103  }
42104#line 173
42105  return;
42106}
42107}
42108#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"
42109static void usb_free_dynids(struct usb_driver *usb_drv ) 
42110{ struct usb_dynid *dynid ;
42111  struct usb_dynid *n ;
42112  struct list_head  const  *__mptr ;
42113  struct list_head  const  *__mptr___0 ;
42114  struct list_head  const  *__mptr___1 ;
42115  spinlock_t *__cil_tmp7 ;
42116  struct list_head *__cil_tmp8 ;
42117  struct list_head *__cil_tmp9 ;
42118  struct list_head *__cil_tmp10 ;
42119  void const   *__cil_tmp11 ;
42120  struct list_head *__cil_tmp12 ;
42121  struct list_head *__cil_tmp13 ;
42122  unsigned long __cil_tmp14 ;
42123  struct list_head *__cil_tmp15 ;
42124  unsigned long __cil_tmp16 ;
42125  spinlock_t *__cil_tmp17 ;
42126
42127  {
42128  {
42129#line 179
42130  __cil_tmp7 = & usb_drv->dynids.lock;
42131#line 179
42132  spin_lock(__cil_tmp7);
42133#line 180
42134  __cil_tmp8 = usb_drv->dynids.list.next;
42135#line 180
42136  __mptr = (struct list_head  const  *)__cil_tmp8;
42137#line 180
42138  dynid = (struct usb_dynid *)__mptr;
42139#line 180
42140  __cil_tmp9 = dynid->node.next;
42141#line 180
42142  __mptr___0 = (struct list_head  const  *)__cil_tmp9;
42143#line 180
42144  n = (struct usb_dynid *)__mptr___0;
42145  }
42146#line 180
42147  goto ldv_24307;
42148  ldv_24306: 
42149  {
42150#line 181
42151  __cil_tmp10 = & dynid->node;
42152#line 181
42153  list_del(__cil_tmp10);
42154#line 182
42155  __cil_tmp11 = (void const   *)dynid;
42156#line 182
42157  kfree(__cil_tmp11);
42158#line 180
42159  dynid = n;
42160#line 180
42161  __cil_tmp12 = n->node.next;
42162#line 180
42163  __mptr___1 = (struct list_head  const  *)__cil_tmp12;
42164#line 180
42165  n = (struct usb_dynid *)__mptr___1;
42166  }
42167  ldv_24307: ;
42168  {
42169#line 180
42170  __cil_tmp13 = & usb_drv->dynids.list;
42171#line 180
42172  __cil_tmp14 = (unsigned long )__cil_tmp13;
42173#line 180
42174  __cil_tmp15 = & dynid->node;
42175#line 180
42176  __cil_tmp16 = (unsigned long )__cil_tmp15;
42177#line 180
42178  if (__cil_tmp16 != __cil_tmp14) {
42179#line 181
42180    goto ldv_24306;
42181  } else {
42182#line 183
42183    goto ldv_24308;
42184  }
42185  }
42186  ldv_24308: 
42187  {
42188#line 184
42189  __cil_tmp17 = & usb_drv->dynids.lock;
42190#line 184
42191  spin_unlock(__cil_tmp17);
42192  }
42193#line 185
42194  return;
42195}
42196}
42197#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"
42198static struct usb_device_id  const  *usb_match_dynamic_id(struct usb_interface *intf ,
42199                                                          struct usb_driver *drv ) 
42200{ struct usb_dynid *dynid ;
42201  struct list_head  const  *__mptr ;
42202  int tmp ;
42203  struct list_head  const  *__mptr___0 ;
42204  spinlock_t *__cil_tmp7 ;
42205  struct list_head *__cil_tmp8 ;
42206  struct usb_device_id *__cil_tmp9 ;
42207  struct usb_device_id  const  *__cil_tmp10 ;
42208  spinlock_t *__cil_tmp11 ;
42209  struct usb_device_id *__cil_tmp12 ;
42210  struct list_head *__cil_tmp13 ;
42211  struct list_head *__cil_tmp14 ;
42212  unsigned long __cil_tmp15 ;
42213  struct list_head *__cil_tmp16 ;
42214  unsigned long __cil_tmp17 ;
42215  spinlock_t *__cil_tmp18 ;
42216
42217  {
42218  {
42219#line 216
42220  __cil_tmp7 = & drv->dynids.lock;
42221#line 216
42222  spin_lock(__cil_tmp7);
42223#line 217
42224  __cil_tmp8 = drv->dynids.list.next;
42225#line 217
42226  __mptr = (struct list_head  const  *)__cil_tmp8;
42227#line 217
42228  dynid = (struct usb_dynid *)__mptr;
42229  }
42230#line 217
42231  goto ldv_24319;
42232  ldv_24318: 
42233  {
42234#line 218
42235  __cil_tmp9 = & dynid->id;
42236#line 218
42237  __cil_tmp10 = (struct usb_device_id  const  *)__cil_tmp9;
42238#line 218
42239  tmp = usb_match_one_id(intf, __cil_tmp10);
42240  }
42241#line 218
42242  if (tmp != 0) {
42243    {
42244#line 219
42245    __cil_tmp11 = & drv->dynids.lock;
42246#line 219
42247    spin_unlock(__cil_tmp11);
42248    }
42249    {
42250#line 220
42251    __cil_tmp12 = & dynid->id;
42252#line 220
42253    return ((struct usb_device_id  const  *)__cil_tmp12);
42254    }
42255  } else {
42256
42257  }
42258#line 217
42259  __cil_tmp13 = dynid->node.next;
42260#line 217
42261  __mptr___0 = (struct list_head  const  *)__cil_tmp13;
42262#line 217
42263  dynid = (struct usb_dynid *)__mptr___0;
42264  ldv_24319: ;
42265  {
42266#line 217
42267  __cil_tmp14 = & drv->dynids.list;
42268#line 217
42269  __cil_tmp15 = (unsigned long )__cil_tmp14;
42270#line 217
42271  __cil_tmp16 = & dynid->node;
42272#line 217
42273  __cil_tmp17 = (unsigned long )__cil_tmp16;
42274#line 217
42275  if (__cil_tmp17 != __cil_tmp15) {
42276#line 218
42277    goto ldv_24318;
42278  } else {
42279#line 220
42280    goto ldv_24320;
42281  }
42282  }
42283  ldv_24320: 
42284  {
42285#line 223
42286  __cil_tmp18 = & drv->dynids.lock;
42287#line 223
42288  spin_unlock(__cil_tmp18);
42289  }
42290#line 224
42291  return ((struct usb_device_id  const  *)0);
42292}
42293}
42294#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"
42295static int usb_probe_device(struct device *dev ) 
42296{ struct usb_device_driver *udriver ;
42297  struct device_driver  const  *__mptr ;
42298  struct usb_device *udev ;
42299  struct device  const  *__mptr___0 ;
42300  int error ;
42301  struct device_driver *__cil_tmp7 ;
42302  struct usb_device_driver *__cil_tmp8 ;
42303  struct usb_device *__cil_tmp9 ;
42304  struct device  const  *__cil_tmp10 ;
42305  unsigned char *__cil_tmp11 ;
42306  unsigned char *__cil_tmp12 ;
42307  unsigned char __cil_tmp13 ;
42308  unsigned int __cil_tmp14 ;
42309  int (*__cil_tmp15)(struct usb_device * ) ;
42310
42311  {
42312  {
42313#line 231
42314  __cil_tmp7 = dev->driver;
42315#line 231
42316  __mptr = (struct device_driver  const  *)__cil_tmp7;
42317#line 231
42318  __cil_tmp8 = (struct usb_device_driver *)__mptr;
42319#line 231
42320  udriver = __cil_tmp8 + 1152921504606846936UL;
42321#line 232
42322  __mptr___0 = (struct device  const  *)dev;
42323#line 232
42324  __cil_tmp9 = (struct usb_device *)__mptr___0;
42325#line 232
42326  udev = __cil_tmp9 + 1152921504606846840UL;
42327#line 233
42328  error = 0;
42329#line 235
42330  __cil_tmp10 = (struct device  const  *)dev;
42331#line 235
42332  dev_printk("<7>", __cil_tmp10, "%s\n", "usb_probe_device");
42333  }
42334  {
42335#line 242
42336  __cil_tmp11 = (unsigned char *)udriver;
42337#line 242
42338  __cil_tmp12 = __cil_tmp11 + 160UL;
42339#line 242
42340  __cil_tmp13 = *__cil_tmp12;
42341#line 242
42342  __cil_tmp14 = (unsigned int )__cil_tmp13;
42343#line 242
42344  if (__cil_tmp14 == 0U) {
42345    {
42346#line 243
42347    error = usb_autoresume_device(udev);
42348    }
42349  } else {
42350
42351  }
42352  }
42353#line 245
42354  if (error == 0) {
42355    {
42356#line 246
42357    __cil_tmp15 = udriver->probe;
42358#line 246
42359    error = (*__cil_tmp15)(udev);
42360    }
42361  } else {
42362
42363  }
42364#line 247
42365  return (error);
42366}
42367}
42368#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"
42369static int usb_unbind_device(struct device *dev ) 
42370{ struct usb_device *udev ;
42371  struct device  const  *__mptr ;
42372  struct usb_device_driver *udriver ;
42373  struct device_driver  const  *__mptr___0 ;
42374  struct usb_device *__cil_tmp6 ;
42375  struct device_driver *__cil_tmp7 ;
42376  struct usb_device_driver *__cil_tmp8 ;
42377  void (*__cil_tmp9)(struct usb_device * ) ;
42378  unsigned char *__cil_tmp10 ;
42379  unsigned char *__cil_tmp11 ;
42380  unsigned char __cil_tmp12 ;
42381  unsigned int __cil_tmp13 ;
42382
42383  {
42384  {
42385#line 253
42386  __mptr = (struct device  const  *)dev;
42387#line 253
42388  __cil_tmp6 = (struct usb_device *)__mptr;
42389#line 253
42390  udev = __cil_tmp6 + 1152921504606846840UL;
42391#line 254
42392  __cil_tmp7 = dev->driver;
42393#line 254
42394  __mptr___0 = (struct device_driver  const  *)__cil_tmp7;
42395#line 254
42396  __cil_tmp8 = (struct usb_device_driver *)__mptr___0;
42397#line 254
42398  udriver = __cil_tmp8 + 1152921504606846936UL;
42399#line 256
42400  __cil_tmp9 = udriver->disconnect;
42401#line 256
42402  (*__cil_tmp9)(udev);
42403  }
42404  {
42405#line 257
42406  __cil_tmp10 = (unsigned char *)udriver;
42407#line 257
42408  __cil_tmp11 = __cil_tmp10 + 160UL;
42409#line 257
42410  __cil_tmp12 = *__cil_tmp11;
42411#line 257
42412  __cil_tmp13 = (unsigned int )__cil_tmp12;
42413#line 257
42414  if (__cil_tmp13 == 0U) {
42415    {
42416#line 258
42417    usb_autosuspend_device(udev);
42418    }
42419  } else {
42420
42421  }
42422  }
42423#line 259
42424  return (0);
42425}
42426}
42427#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"
42428static void usb_cancel_queued_reset(struct usb_interface *iface ) 
42429{ unsigned char *__cil_tmp2 ;
42430  unsigned char *__cil_tmp3 ;
42431  unsigned char __cil_tmp4 ;
42432  unsigned int __cil_tmp5 ;
42433  struct work_struct *__cil_tmp6 ;
42434
42435  {
42436  {
42437#line 273
42438  __cil_tmp2 = (unsigned char *)iface;
42439#line 273
42440  __cil_tmp3 = __cil_tmp2 + 40UL;
42441#line 273
42442  __cil_tmp4 = *__cil_tmp3;
42443#line 273
42444  __cil_tmp5 = (unsigned int )__cil_tmp4;
42445#line 273
42446  if (__cil_tmp5 == 0U) {
42447    {
42448#line 274
42449    __cil_tmp6 = & iface->reset_ws;
42450#line 274
42451    cancel_work_sync(__cil_tmp6);
42452    }
42453  } else {
42454
42455  }
42456  }
42457#line 275
42458  return;
42459}
42460}
42461#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"
42462static int usb_probe_interface(struct device *dev ) 
42463{ struct usb_driver *driver ;
42464  struct device_driver  const  *__mptr ;
42465  struct usb_interface *intf ;
42466  struct device  const  *__mptr___0 ;
42467  struct usb_device *udev ;
42468  struct usb_device *tmp ;
42469  struct usb_device_id  const  *id ;
42470  int error ;
42471  bool tmp___0 ;
42472  struct device_driver *__cil_tmp11 ;
42473  struct usb_driver *__cil_tmp12 ;
42474  struct usb_interface *__cil_tmp13 ;
42475  struct device  const  *__cil_tmp14 ;
42476  unsigned char *__cil_tmp15 ;
42477  unsigned char *__cil_tmp16 ;
42478  unsigned char __cil_tmp17 ;
42479  unsigned int __cil_tmp18 ;
42480  struct device *__cil_tmp19 ;
42481  struct device  const  *__cil_tmp20 ;
42482  struct usb_device_id  const  *__cil_tmp21 ;
42483  struct usb_device_id  const  *__cil_tmp22 ;
42484  unsigned long __cil_tmp23 ;
42485  unsigned long __cil_tmp24 ;
42486  struct usb_device_id  const  *__cil_tmp25 ;
42487  unsigned long __cil_tmp26 ;
42488  unsigned long __cil_tmp27 ;
42489  struct device  const  *__cil_tmp28 ;
42490  bool __cil_tmp29 ;
42491  unsigned char *__cil_tmp30 ;
42492  unsigned char *__cil_tmp31 ;
42493  unsigned char __cil_tmp32 ;
42494  unsigned int __cil_tmp33 ;
42495  unsigned char *__cil_tmp34 ;
42496  unsigned char *__cil_tmp35 ;
42497  unsigned char __cil_tmp36 ;
42498  unsigned int __cil_tmp37 ;
42499  struct usb_host_interface *__cil_tmp38 ;
42500  __u8 __cil_tmp39 ;
42501  int __cil_tmp40 ;
42502  int (*__cil_tmp41)(struct usb_interface * , struct usb_device_id  const  * ) ;
42503  unsigned char *__cil_tmp42 ;
42504  unsigned char *__cil_tmp43 ;
42505  unsigned char __cil_tmp44 ;
42506  unsigned int __cil_tmp45 ;
42507
42508  {
42509  {
42510#line 280
42511  __cil_tmp11 = dev->driver;
42512#line 280
42513  __mptr = (struct device_driver  const  *)__cil_tmp11;
42514#line 280
42515  __cil_tmp12 = (struct usb_driver *)__mptr;
42516#line 280
42517  driver = __cil_tmp12 + 1152921504606846808UL;
42518#line 281
42519  __mptr___0 = (struct device  const  *)dev;
42520#line 281
42521  __cil_tmp13 = (struct usb_interface *)__mptr___0;
42522#line 281
42523  intf = __cil_tmp13 + 1152921504606846928UL;
42524#line 282
42525  tmp = interface_to_usbdev(intf);
42526#line 282
42527  udev = tmp;
42528#line 284
42529  error = -19;
42530#line 286
42531  __cil_tmp14 = (struct device  const  *)dev;
42532#line 286
42533  dev_printk("<7>", __cil_tmp14, "%s\n", "usb_probe_interface");
42534#line 288
42535  intf->needs_binding = (unsigned char)0;
42536#line 290
42537  tmp___0 = usb_device_is_owned(udev);
42538  }
42539#line 290
42540  if ((int )tmp___0) {
42541#line 291
42542    return (error);
42543  } else {
42544
42545  }
42546  {
42547#line 293
42548  __cil_tmp15 = (unsigned char *)udev;
42549#line 293
42550  __cil_tmp16 = __cil_tmp15 + 1556UL;
42551#line 293
42552  __cil_tmp17 = *__cil_tmp16;
42553#line 293
42554  __cil_tmp18 = (unsigned int )__cil_tmp17;
42555#line 293
42556  if (__cil_tmp18 == 0U) {
42557    {
42558#line 294
42559    __cil_tmp19 = & intf->dev;
42560#line 294
42561    __cil_tmp20 = (struct device  const  *)__cil_tmp19;
42562#line 294
42563    dev_err(__cil_tmp20, "Device is not authorized for usage\n");
42564    }
42565#line 295
42566    return (error);
42567  } else {
42568
42569  }
42570  }
42571  {
42572#line 298
42573  __cil_tmp21 = driver->id_table;
42574#line 298
42575  id = usb_match_id(intf, __cil_tmp21);
42576  }
42577  {
42578#line 299
42579  __cil_tmp22 = (struct usb_device_id  const  *)0;
42580#line 299
42581  __cil_tmp23 = (unsigned long )__cil_tmp22;
42582#line 299
42583  __cil_tmp24 = (unsigned long )id;
42584#line 299
42585  if (__cil_tmp24 == __cil_tmp23) {
42586    {
42587#line 300
42588    id = usb_match_dynamic_id(intf, driver);
42589    }
42590  } else {
42591
42592  }
42593  }
42594  {
42595#line 301
42596  __cil_tmp25 = (struct usb_device_id  const  *)0;
42597#line 301
42598  __cil_tmp26 = (unsigned long )__cil_tmp25;
42599#line 301
42600  __cil_tmp27 = (unsigned long )id;
42601#line 301
42602  if (__cil_tmp27 == __cil_tmp26) {
42603#line 302
42604    return (error);
42605  } else {
42606
42607  }
42608  }
42609  {
42610#line 304
42611  __cil_tmp28 = (struct device  const  *)dev;
42612#line 304
42613  dev_printk("<7>", __cil_tmp28, "%s - got id\n", "usb_probe_interface");
42614#line 306
42615  error = usb_autoresume_device(udev);
42616  }
42617#line 307
42618  if (error != 0) {
42619#line 308
42620    return (error);
42621  } else {
42622
42623  }
42624  {
42625#line 310
42626  intf->condition = (enum usb_interface_condition )1;
42627#line 316
42628  pm_runtime_set_active(dev);
42629#line 317
42630  __cil_tmp29 = (bool )0;
42631#line 317
42632  pm_suspend_ignore_children(dev, __cil_tmp29);
42633  }
42634  {
42635#line 318
42636  __cil_tmp30 = (unsigned char *)driver;
42637#line 318
42638  __cil_tmp31 = __cil_tmp30 + 288UL;
42639#line 318
42640  __cil_tmp32 = *__cil_tmp31;
42641#line 318
42642  __cil_tmp33 = (unsigned int )__cil_tmp32;
42643#line 318
42644  if (__cil_tmp33 != 0U) {
42645    {
42646#line 319
42647    pm_runtime_enable(dev);
42648    }
42649  } else {
42650
42651  }
42652  }
42653  {
42654#line 322
42655  __cil_tmp34 = (unsigned char *)intf;
42656#line 322
42657  __cil_tmp35 = __cil_tmp34 + 40UL;
42658#line 322
42659  __cil_tmp36 = *__cil_tmp35;
42660#line 322
42661  __cil_tmp37 = (unsigned int )__cil_tmp36;
42662#line 322
42663  if (__cil_tmp37 != 0U) {
42664    {
42665#line 323
42666    __cil_tmp38 = intf->altsetting;
42667#line 323
42668    __cil_tmp39 = __cil_tmp38->desc.bInterfaceNumber;
42669#line 323
42670    __cil_tmp40 = (int )__cil_tmp39;
42671#line 323
42672    error = usb_set_interface(udev, __cil_tmp40, 0);
42673    }
42674#line 325
42675    if (error < 0) {
42676#line 326
42677      goto err;
42678    } else {
42679
42680    }
42681#line 327
42682    intf->needs_altsetting0 = (unsigned char)0;
42683  } else {
42684
42685  }
42686  }
42687  {
42688#line 330
42689  __cil_tmp41 = driver->probe;
42690#line 330
42691  error = (*__cil_tmp41)(intf, id);
42692  }
42693#line 331
42694  if (error != 0) {
42695#line 332
42696    goto err;
42697  } else {
42698
42699  }
42700  {
42701#line 334
42702  intf->condition = (enum usb_interface_condition )2;
42703#line 335
42704  usb_autosuspend_device(udev);
42705  }
42706#line 336
42707  return (error);
42708  err: 
42709  {
42710#line 339
42711  intf->needs_remote_wakeup = (unsigned char)0;
42712#line 340
42713  intf->condition = (enum usb_interface_condition )0;
42714#line 341
42715  usb_cancel_queued_reset(intf);
42716  }
42717  {
42718#line 344
42719  __cil_tmp42 = (unsigned char *)driver;
42720#line 344
42721  __cil_tmp43 = __cil_tmp42 + 288UL;
42722#line 344
42723  __cil_tmp44 = *__cil_tmp43;
42724#line 344
42725  __cil_tmp45 = (unsigned int )__cil_tmp44;
42726#line 344
42727  if (__cil_tmp45 != 0U) {
42728    {
42729#line 345
42730    pm_runtime_disable(dev);
42731    }
42732  } else {
42733
42734  }
42735  }
42736  {
42737#line 346
42738  pm_runtime_set_suspended(dev);
42739#line 348
42740  usb_autosuspend_device(udev);
42741  }
42742#line 349
42743  return (error);
42744}
42745}
42746#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"
42747static int usb_unbind_interface(struct device *dev ) 
42748{ struct usb_driver *driver ;
42749  struct device_driver  const  *__mptr ;
42750  struct usb_interface *intf ;
42751  struct device  const  *__mptr___0 ;
42752  struct usb_device *udev ;
42753  int error ;
42754  int r ;
42755  struct device_driver *__cil_tmp9 ;
42756  struct usb_driver *__cil_tmp10 ;
42757  struct usb_interface *__cil_tmp11 ;
42758  unsigned char *__cil_tmp12 ;
42759  unsigned char *__cil_tmp13 ;
42760  unsigned char __cil_tmp14 ;
42761  unsigned int __cil_tmp15 ;
42762  bool __cil_tmp16 ;
42763  void (*__cil_tmp17)(struct usb_interface * ) ;
42764  struct usb_host_interface *__cil_tmp18 ;
42765  __u8 __cil_tmp19 ;
42766  unsigned int __cil_tmp20 ;
42767  bool __cil_tmp21 ;
42768  bool __cil_tmp22 ;
42769  struct usb_host_interface *__cil_tmp23 ;
42770  __u8 __cil_tmp24 ;
42771  int __cil_tmp25 ;
42772  void *__cil_tmp26 ;
42773  unsigned char *__cil_tmp27 ;
42774  unsigned char *__cil_tmp28 ;
42775  unsigned char __cil_tmp29 ;
42776  unsigned int __cil_tmp30 ;
42777  atomic_t *__cil_tmp31 ;
42778  atomic_t const   *__cil_tmp32 ;
42779  atomic_t *__cil_tmp33 ;
42780
42781  {
42782  {
42783#line 355
42784  __cil_tmp9 = dev->driver;
42785#line 355
42786  __mptr = (struct device_driver  const  *)__cil_tmp9;
42787#line 355
42788  __cil_tmp10 = (struct usb_driver *)__mptr;
42789#line 355
42790  driver = __cil_tmp10 + 1152921504606846808UL;
42791#line 356
42792  __mptr___0 = (struct device  const  *)dev;
42793#line 356
42794  __cil_tmp11 = (struct usb_interface *)__mptr___0;
42795#line 356
42796  intf = __cil_tmp11 + 1152921504606846928UL;
42797#line 360
42798  intf->condition = (enum usb_interface_condition )3;
42799#line 363
42800  udev = interface_to_usbdev(intf);
42801#line 364
42802  error = usb_autoresume_device(udev);
42803  }
42804  {
42805#line 369
42806  __cil_tmp12 = (unsigned char *)driver;
42807#line 369
42808  __cil_tmp13 = __cil_tmp12 + 288UL;
42809#line 369
42810  __cil_tmp14 = *__cil_tmp13;
42811#line 369
42812  __cil_tmp15 = (unsigned int )__cil_tmp14;
42813#line 369
42814  if (__cil_tmp15 == 0U) {
42815    {
42816#line 370
42817    __cil_tmp16 = (bool )0;
42818#line 370
42819    usb_disable_interface(udev, intf, __cil_tmp16);
42820    }
42821  } else {
42822
42823  }
42824  }
42825  {
42826#line 372
42827  __cil_tmp17 = driver->disconnect;
42828#line 372
42829  (*__cil_tmp17)(intf);
42830#line 373
42831  usb_cancel_queued_reset(intf);
42832  }
42833  {
42834#line 381
42835  __cil_tmp18 = intf->cur_altsetting;
42836#line 381
42837  __cil_tmp19 = __cil_tmp18->desc.bAlternateSetting;
42838#line 381
42839  __cil_tmp20 = (unsigned int )__cil_tmp19;
42840#line 381
42841  if (__cil_tmp20 == 0U) {
42842    {
42843#line 385
42844    __cil_tmp21 = (bool )0;
42845#line 385
42846    usb_enable_interface(udev, intf, __cil_tmp21);
42847    }
42848  } else
42849#line 386
42850  if (error == 0) {
42851    {
42852#line 386
42853    __cil_tmp22 = intf->dev.power.is_prepared;
42854#line 386
42855    if (! __cil_tmp22) {
42856      {
42857#line 387
42858      __cil_tmp23 = intf->altsetting;
42859#line 387
42860      __cil_tmp24 = __cil_tmp23->desc.bInterfaceNumber;
42861#line 387
42862      __cil_tmp25 = (int )__cil_tmp24;
42863#line 387
42864      r = usb_set_interface(udev, __cil_tmp25, 0);
42865      }
42866#line 389
42867      if (r < 0) {
42868#line 390
42869        intf->needs_altsetting0 = (unsigned char)1;
42870      } else {
42871
42872      }
42873    } else {
42874#line 392
42875      intf->needs_altsetting0 = (unsigned char)1;
42876    }
42877    }
42878  } else {
42879#line 392
42880    intf->needs_altsetting0 = (unsigned char)1;
42881  }
42882  }
42883  {
42884#line 394
42885  __cil_tmp26 = (void *)0;
42886#line 394
42887  usb_set_intfdata(intf, __cil_tmp26);
42888#line 396
42889  intf->condition = (enum usb_interface_condition )0;
42890#line 397
42891  intf->needs_remote_wakeup = (unsigned char)0;
42892  }
42893  {
42894#line 400
42895  __cil_tmp27 = (unsigned char *)driver;
42896#line 400
42897  __cil_tmp28 = __cil_tmp27 + 288UL;
42898#line 400
42899  __cil_tmp29 = *__cil_tmp28;
42900#line 400
42901  __cil_tmp30 = (unsigned int )__cil_tmp29;
42902#line 400
42903  if (__cil_tmp30 != 0U) {
42904    {
42905#line 401
42906    pm_runtime_disable(dev);
42907    }
42908  } else {
42909
42910  }
42911  }
42912  {
42913#line 402
42914  pm_runtime_set_suspended(dev);
42915#line 405
42916  __cil_tmp31 = & intf->pm_usage_cnt;
42917#line 405
42918  __cil_tmp32 = (atomic_t const   *)__cil_tmp31;
42919#line 405
42920  r = atomic_read(__cil_tmp32);
42921  }
42922#line 405
42923  goto ldv_24371;
42924  ldv_24370: 
42925  {
42926#line 406
42927  usb_autopm_put_interface_no_suspend(intf);
42928#line 405
42929  r = r - 1;
42930  }
42931  ldv_24371: ;
42932#line 405
42933  if (r > 0) {
42934#line 406
42935    goto ldv_24370;
42936  } else {
42937#line 408
42938    goto ldv_24372;
42939  }
42940  ldv_24372: 
42941  {
42942#line 407
42943  __cil_tmp33 = & intf->pm_usage_cnt;
42944#line 407
42945  atomic_set(__cil_tmp33, 0);
42946  }
42947#line 409
42948  if (error == 0) {
42949    {
42950#line 410
42951    usb_autosuspend_device(udev);
42952    }
42953  } else {
42954
42955  }
42956#line 412
42957  return (0);
42958}
42959}
42960#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"
42961int usb_driver_claim_interface(struct usb_driver *driver , struct usb_interface *iface ,
42962                               void *priv ) 
42963{ struct device *dev ;
42964  int retval ;
42965  int tmp ;
42966  struct device_driver *__cil_tmp7 ;
42967  unsigned long __cil_tmp8 ;
42968  struct device_driver *__cil_tmp9 ;
42969  unsigned long __cil_tmp10 ;
42970  bool __cil_tmp11 ;
42971  unsigned char *__cil_tmp12 ;
42972  unsigned char *__cil_tmp13 ;
42973  unsigned char __cil_tmp14 ;
42974  unsigned int __cil_tmp15 ;
42975
42976  {
42977#line 438
42978  dev = & iface->dev;
42979#line 439
42980  retval = 0;
42981  {
42982#line 441
42983  __cil_tmp7 = (struct device_driver *)0;
42984#line 441
42985  __cil_tmp8 = (unsigned long )__cil_tmp7;
42986#line 441
42987  __cil_tmp9 = dev->driver;
42988#line 441
42989  __cil_tmp10 = (unsigned long )__cil_tmp9;
42990#line 441
42991  if (__cil_tmp10 != __cil_tmp8) {
42992#line 442
42993    return (-16);
42994  } else {
42995
42996  }
42997  }
42998  {
42999#line 444
43000  dev->driver = & driver->drvwrap.driver;
43001#line 445
43002  usb_set_intfdata(iface, priv);
43003#line 446
43004  iface->needs_binding = (unsigned char)0;
43005#line 448
43006  iface->condition = (enum usb_interface_condition )2;
43007#line 456
43008  __cil_tmp11 = (bool )0;
43009#line 456
43010  pm_suspend_ignore_children(dev, __cil_tmp11);
43011  }
43012  {
43013#line 457
43014  __cil_tmp12 = (unsigned char *)driver;
43015#line 457
43016  __cil_tmp13 = __cil_tmp12 + 288UL;
43017#line 457
43018  __cil_tmp14 = *__cil_tmp13;
43019#line 457
43020  __cil_tmp15 = (unsigned int )__cil_tmp14;
43021#line 457
43022  if (__cil_tmp15 != 0U) {
43023    {
43024#line 458
43025    pm_runtime_enable(dev);
43026    }
43027  } else {
43028    {
43029#line 460
43030    pm_runtime_set_active(dev);
43031    }
43032  }
43033  }
43034  {
43035#line 465
43036  tmp = device_is_registered(dev);
43037  }
43038#line 465
43039  if (tmp != 0) {
43040    {
43041#line 466
43042    retval = device_bind_driver(dev);
43043    }
43044  } else {
43045
43046  }
43047#line 468
43048  return (retval);
43049}
43050}
43051#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"
43052void usb_driver_release_interface(struct usb_driver *driver , struct usb_interface *iface ) 
43053{ struct device *dev ;
43054  int tmp ;
43055  struct device_driver *__cil_tmp5 ;
43056  unsigned long __cil_tmp6 ;
43057  struct device_driver *__cil_tmp7 ;
43058  unsigned long __cil_tmp8 ;
43059  struct device_driver *__cil_tmp9 ;
43060  unsigned long __cil_tmp10 ;
43061  struct device_driver *__cil_tmp11 ;
43062  unsigned long __cil_tmp12 ;
43063  enum usb_interface_condition __cil_tmp13 ;
43064  unsigned int __cil_tmp14 ;
43065
43066  {
43067#line 489
43068  dev = & iface->dev;
43069  {
43070#line 492
43071  __cil_tmp5 = (struct device_driver *)0;
43072#line 492
43073  __cil_tmp6 = (unsigned long )__cil_tmp5;
43074#line 492
43075  __cil_tmp7 = dev->driver;
43076#line 492
43077  __cil_tmp8 = (unsigned long )__cil_tmp7;
43078#line 492
43079  if (__cil_tmp8 == __cil_tmp6) {
43080#line 493
43081    return;
43082  } else {
43083    {
43084#line 492
43085    __cil_tmp9 = & driver->drvwrap.driver;
43086#line 492
43087    __cil_tmp10 = (unsigned long )__cil_tmp9;
43088#line 492
43089    __cil_tmp11 = dev->driver;
43090#line 492
43091    __cil_tmp12 = (unsigned long )__cil_tmp11;
43092#line 492
43093    if (__cil_tmp12 != __cil_tmp10) {
43094#line 493
43095      return;
43096    } else {
43097
43098    }
43099    }
43100  }
43101  }
43102  {
43103#line 496
43104  __cil_tmp13 = iface->condition;
43105#line 496
43106  __cil_tmp14 = (unsigned int )__cil_tmp13;
43107#line 496
43108  if (__cil_tmp14 != 2U) {
43109#line 497
43110    return;
43111  } else {
43112
43113  }
43114  }
43115  {
43116#line 498
43117  iface->condition = (enum usb_interface_condition )3;
43118#line 503
43119  tmp = device_is_registered(dev);
43120  }
43121#line 503
43122  if (tmp != 0) {
43123    {
43124#line 504
43125    device_release_driver(dev);
43126    }
43127  } else {
43128    {
43129#line 506
43130    device_lock(dev);
43131#line 507
43132    usb_unbind_interface(dev);
43133#line 508
43134    dev->driver = (struct device_driver *)0;
43135#line 509
43136    device_unlock(dev);
43137    }
43138  }
43139#line 511
43140  return;
43141}
43142}
43143#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"
43144int usb_match_device(struct usb_device *dev , struct usb_device_id  const  *id ) 
43145{ __u16 __cil_tmp3 ;
43146  int __cil_tmp4 ;
43147  __le16 __cil_tmp5 ;
43148  int __cil_tmp6 ;
43149  __u16 __cil_tmp7 ;
43150  unsigned short __cil_tmp8 ;
43151  int __cil_tmp9 ;
43152  __u16 __cil_tmp10 ;
43153  int __cil_tmp11 ;
43154  int __cil_tmp12 ;
43155  __le16 __cil_tmp13 ;
43156  int __cil_tmp14 ;
43157  __u16 __cil_tmp15 ;
43158  unsigned short __cil_tmp16 ;
43159  int __cil_tmp17 ;
43160  __u16 __cil_tmp18 ;
43161  int __cil_tmp19 ;
43162  int __cil_tmp20 ;
43163  __le16 __cil_tmp21 ;
43164  int __cil_tmp22 ;
43165  __u16 __cil_tmp23 ;
43166  unsigned short __cil_tmp24 ;
43167  int __cil_tmp25 ;
43168  __u16 __cil_tmp26 ;
43169  int __cil_tmp27 ;
43170  int __cil_tmp28 ;
43171  __le16 __cil_tmp29 ;
43172  int __cil_tmp30 ;
43173  __u16 __cil_tmp31 ;
43174  unsigned short __cil_tmp32 ;
43175  int __cil_tmp33 ;
43176  __u16 __cil_tmp34 ;
43177  int __cil_tmp35 ;
43178  int __cil_tmp36 ;
43179  __u8 __cil_tmp37 ;
43180  int __cil_tmp38 ;
43181  __u8 __cil_tmp39 ;
43182  unsigned char __cil_tmp40 ;
43183  int __cil_tmp41 ;
43184  __u16 __cil_tmp42 ;
43185  int __cil_tmp43 ;
43186  int __cil_tmp44 ;
43187  __u8 __cil_tmp45 ;
43188  int __cil_tmp46 ;
43189  __u8 __cil_tmp47 ;
43190  unsigned char __cil_tmp48 ;
43191  int __cil_tmp49 ;
43192  __u16 __cil_tmp50 ;
43193  int __cil_tmp51 ;
43194  int __cil_tmp52 ;
43195  __u8 __cil_tmp53 ;
43196  int __cil_tmp54 ;
43197  __u8 __cil_tmp55 ;
43198  unsigned char __cil_tmp56 ;
43199  int __cil_tmp57 ;
43200
43201  {
43202  {
43203#line 517
43204  __cil_tmp3 = id->match_flags;
43205#line 517
43206  __cil_tmp4 = (int )__cil_tmp3;
43207#line 517
43208  if (__cil_tmp4 & 1) {
43209    {
43210#line 517
43211    __cil_tmp5 = dev->descriptor.idVendor;
43212#line 517
43213    __cil_tmp6 = (int )__cil_tmp5;
43214#line 517
43215    __cil_tmp7 = id->idVendor;
43216#line 517
43217    __cil_tmp8 = (unsigned short )__cil_tmp7;
43218#line 517
43219    __cil_tmp9 = (int )__cil_tmp8;
43220#line 517
43221    if (__cil_tmp9 != __cil_tmp6) {
43222#line 519
43223      return (0);
43224    } else {
43225
43226    }
43227    }
43228  } else {
43229
43230  }
43231  }
43232  {
43233#line 521
43234  __cil_tmp10 = id->match_flags;
43235#line 521
43236  __cil_tmp11 = (int )__cil_tmp10;
43237#line 521
43238  __cil_tmp12 = __cil_tmp11 & 2;
43239#line 521
43240  if (__cil_tmp12 != 0) {
43241    {
43242#line 521
43243    __cil_tmp13 = dev->descriptor.idProduct;
43244#line 521
43245    __cil_tmp14 = (int )__cil_tmp13;
43246#line 521
43247    __cil_tmp15 = id->idProduct;
43248#line 521
43249    __cil_tmp16 = (unsigned short )__cil_tmp15;
43250#line 521
43251    __cil_tmp17 = (int )__cil_tmp16;
43252#line 521
43253    if (__cil_tmp17 != __cil_tmp14) {
43254#line 523
43255      return (0);
43256    } else {
43257
43258    }
43259    }
43260  } else {
43261
43262  }
43263  }
43264  {
43265#line 527
43266  __cil_tmp18 = id->match_flags;
43267#line 527
43268  __cil_tmp19 = (int )__cil_tmp18;
43269#line 527
43270  __cil_tmp20 = __cil_tmp19 & 4;
43271#line 527
43272  if (__cil_tmp20 != 0) {
43273    {
43274#line 527
43275    __cil_tmp21 = dev->descriptor.bcdDevice;
43276#line 527
43277    __cil_tmp22 = (int )__cil_tmp21;
43278#line 527
43279    __cil_tmp23 = id->bcdDevice_lo;
43280#line 527
43281    __cil_tmp24 = (unsigned short )__cil_tmp23;
43282#line 527
43283    __cil_tmp25 = (int )__cil_tmp24;
43284#line 527
43285    if (__cil_tmp25 > __cil_tmp22) {
43286#line 529
43287      return (0);
43288    } else {
43289
43290    }
43291    }
43292  } else {
43293
43294  }
43295  }
43296  {
43297#line 531
43298  __cil_tmp26 = id->match_flags;
43299#line 531
43300  __cil_tmp27 = (int )__cil_tmp26;
43301#line 531
43302  __cil_tmp28 = __cil_tmp27 & 8;
43303#line 531
43304  if (__cil_tmp28 != 0) {
43305    {
43306#line 531
43307    __cil_tmp29 = dev->descriptor.bcdDevice;
43308#line 531
43309    __cil_tmp30 = (int )__cil_tmp29;
43310#line 531
43311    __cil_tmp31 = id->bcdDevice_hi;
43312#line 531
43313    __cil_tmp32 = (unsigned short )__cil_tmp31;
43314#line 531
43315    __cil_tmp33 = (int )__cil_tmp32;
43316#line 531
43317    if (__cil_tmp33 < __cil_tmp30) {
43318#line 533
43319      return (0);
43320    } else {
43321
43322    }
43323    }
43324  } else {
43325
43326  }
43327  }
43328  {
43329#line 535
43330  __cil_tmp34 = id->match_flags;
43331#line 535
43332  __cil_tmp35 = (int )__cil_tmp34;
43333#line 535
43334  __cil_tmp36 = __cil_tmp35 & 16;
43335#line 535
43336  if (__cil_tmp36 != 0) {
43337    {
43338#line 535
43339    __cil_tmp37 = dev->descriptor.bDeviceClass;
43340#line 535
43341    __cil_tmp38 = (int )__cil_tmp37;
43342#line 535
43343    __cil_tmp39 = id->bDeviceClass;
43344#line 535
43345    __cil_tmp40 = (unsigned char )__cil_tmp39;
43346#line 535
43347    __cil_tmp41 = (int )__cil_tmp40;
43348#line 535
43349    if (__cil_tmp41 != __cil_tmp38) {
43350#line 537
43351      return (0);
43352    } else {
43353
43354    }
43355    }
43356  } else {
43357
43358  }
43359  }
43360  {
43361#line 539
43362  __cil_tmp42 = id->match_flags;
43363#line 539
43364  __cil_tmp43 = (int )__cil_tmp42;
43365#line 539
43366  __cil_tmp44 = __cil_tmp43 & 32;
43367#line 539
43368  if (__cil_tmp44 != 0) {
43369    {
43370#line 539
43371    __cil_tmp45 = dev->descriptor.bDeviceSubClass;
43372#line 539
43373    __cil_tmp46 = (int )__cil_tmp45;
43374#line 539
43375    __cil_tmp47 = id->bDeviceSubClass;
43376#line 539
43377    __cil_tmp48 = (unsigned char )__cil_tmp47;
43378#line 539
43379    __cil_tmp49 = (int )__cil_tmp48;
43380#line 539
43381    if (__cil_tmp49 != __cil_tmp46) {
43382#line 541
43383      return (0);
43384    } else {
43385
43386    }
43387    }
43388  } else {
43389
43390  }
43391  }
43392  {
43393#line 543
43394  __cil_tmp50 = id->match_flags;
43395#line 543
43396  __cil_tmp51 = (int )__cil_tmp50;
43397#line 543
43398  __cil_tmp52 = __cil_tmp51 & 64;
43399#line 543
43400  if (__cil_tmp52 != 0) {
43401    {
43402#line 543
43403    __cil_tmp53 = dev->descriptor.bDeviceProtocol;
43404#line 543
43405    __cil_tmp54 = (int )__cil_tmp53;
43406#line 543
43407    __cil_tmp55 = id->bDeviceProtocol;
43408#line 543
43409    __cil_tmp56 = (unsigned char )__cil_tmp55;
43410#line 543
43411    __cil_tmp57 = (int )__cil_tmp56;
43412#line 543
43413    if (__cil_tmp57 != __cil_tmp54) {
43414#line 545
43415      return (0);
43416    } else {
43417
43418    }
43419    }
43420  } else {
43421
43422  }
43423  }
43424#line 547
43425  return (1);
43426}
43427}
43428#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"
43429int usb_match_one_id(struct usb_interface *interface , struct usb_device_id  const  *id ) 
43430{ struct usb_host_interface *intf ;
43431  struct usb_device *dev ;
43432  int tmp ;
43433  struct usb_device_id  const  *__cil_tmp6 ;
43434  unsigned long __cil_tmp7 ;
43435  unsigned long __cil_tmp8 ;
43436  __u8 __cil_tmp9 ;
43437  unsigned int __cil_tmp10 ;
43438  __u16 __cil_tmp11 ;
43439  int __cil_tmp12 ;
43440  int __cil_tmp13 ;
43441  __u16 __cil_tmp14 ;
43442  int __cil_tmp15 ;
43443  int __cil_tmp16 ;
43444  __u16 __cil_tmp17 ;
43445  int __cil_tmp18 ;
43446  int __cil_tmp19 ;
43447  __u8 __cil_tmp20 ;
43448  int __cil_tmp21 ;
43449  __u8 __cil_tmp22 ;
43450  unsigned char __cil_tmp23 ;
43451  int __cil_tmp24 ;
43452  __u16 __cil_tmp25 ;
43453  int __cil_tmp26 ;
43454  int __cil_tmp27 ;
43455  __u8 __cil_tmp28 ;
43456  int __cil_tmp29 ;
43457  __u8 __cil_tmp30 ;
43458  unsigned char __cil_tmp31 ;
43459  int __cil_tmp32 ;
43460  __u16 __cil_tmp33 ;
43461  int __cil_tmp34 ;
43462  int __cil_tmp35 ;
43463  __u8 __cil_tmp36 ;
43464  int __cil_tmp37 ;
43465  __u8 __cil_tmp38 ;
43466  unsigned char __cil_tmp39 ;
43467  int __cil_tmp40 ;
43468
43469  {
43470  {
43471#line 558
43472  __cil_tmp6 = (struct usb_device_id  const  *)0;
43473#line 558
43474  __cil_tmp7 = (unsigned long )__cil_tmp6;
43475#line 558
43476  __cil_tmp8 = (unsigned long )id;
43477#line 558
43478  if (__cil_tmp8 == __cil_tmp7) {
43479#line 559
43480    return (0);
43481  } else {
43482
43483  }
43484  }
43485  {
43486#line 561
43487  intf = interface->cur_altsetting;
43488#line 562
43489  dev = interface_to_usbdev(interface);
43490#line 564
43491  tmp = usb_match_device(dev, id);
43492  }
43493#line 564
43494  if (tmp == 0) {
43495#line 565
43496    return (0);
43497  } else {
43498
43499  }
43500  {
43501#line 570
43502  __cil_tmp9 = dev->descriptor.bDeviceClass;
43503#line 570
43504  __cil_tmp10 = (unsigned int )__cil_tmp9;
43505#line 570
43506  if (__cil_tmp10 == 255U) {
43507    {
43508#line 570
43509    __cil_tmp11 = id->match_flags;
43510#line 570
43511    __cil_tmp12 = (int )__cil_tmp11;
43512#line 570
43513    __cil_tmp13 = __cil_tmp12 & 1;
43514#line 570
43515    if (__cil_tmp13 == 0) {
43516      {
43517#line 570
43518      __cil_tmp14 = id->match_flags;
43519#line 570
43520      __cil_tmp15 = (int )__cil_tmp14;
43521#line 570
43522      __cil_tmp16 = __cil_tmp15 & 896;
43523#line 570
43524      if (__cil_tmp16 != 0) {
43525#line 575
43526        return (0);
43527      } else {
43528
43529      }
43530      }
43531    } else {
43532
43533    }
43534    }
43535  } else {
43536
43537  }
43538  }
43539  {
43540#line 577
43541  __cil_tmp17 = id->match_flags;
43542#line 577
43543  __cil_tmp18 = (int )__cil_tmp17;
43544#line 577
43545  __cil_tmp19 = __cil_tmp18 & 128;
43546#line 577
43547  if (__cil_tmp19 != 0) {
43548    {
43549#line 577
43550    __cil_tmp20 = intf->desc.bInterfaceClass;
43551#line 577
43552    __cil_tmp21 = (int )__cil_tmp20;
43553#line 577
43554    __cil_tmp22 = id->bInterfaceClass;
43555#line 577
43556    __cil_tmp23 = (unsigned char )__cil_tmp22;
43557#line 577
43558    __cil_tmp24 = (int )__cil_tmp23;
43559#line 577
43560    if (__cil_tmp24 != __cil_tmp21) {
43561#line 579
43562      return (0);
43563    } else {
43564
43565    }
43566    }
43567  } else {
43568
43569  }
43570  }
43571  {
43572#line 581
43573  __cil_tmp25 = id->match_flags;
43574#line 581
43575  __cil_tmp26 = (int )__cil_tmp25;
43576#line 581
43577  __cil_tmp27 = __cil_tmp26 & 256;
43578#line 581
43579  if (__cil_tmp27 != 0) {
43580    {
43581#line 581
43582    __cil_tmp28 = intf->desc.bInterfaceSubClass;
43583#line 581
43584    __cil_tmp29 = (int )__cil_tmp28;
43585#line 581
43586    __cil_tmp30 = id->bInterfaceSubClass;
43587#line 581
43588    __cil_tmp31 = (unsigned char )__cil_tmp30;
43589#line 581
43590    __cil_tmp32 = (int )__cil_tmp31;
43591#line 581
43592    if (__cil_tmp32 != __cil_tmp29) {
43593#line 583
43594      return (0);
43595    } else {
43596
43597    }
43598    }
43599  } else {
43600
43601  }
43602  }
43603  {
43604#line 585
43605  __cil_tmp33 = id->match_flags;
43606#line 585
43607  __cil_tmp34 = (int )__cil_tmp33;
43608#line 585
43609  __cil_tmp35 = __cil_tmp34 & 512;
43610#line 585
43611  if (__cil_tmp35 != 0) {
43612    {
43613#line 585
43614    __cil_tmp36 = intf->desc.bInterfaceProtocol;
43615#line 585
43616    __cil_tmp37 = (int )__cil_tmp36;
43617#line 585
43618    __cil_tmp38 = id->bInterfaceProtocol;
43619#line 585
43620    __cil_tmp39 = (unsigned char )__cil_tmp38;
43621#line 585
43622    __cil_tmp40 = (int )__cil_tmp39;
43623#line 585
43624    if (__cil_tmp40 != __cil_tmp37) {
43625#line 587
43626      return (0);
43627    } else {
43628
43629    }
43630    }
43631  } else {
43632
43633  }
43634  }
43635#line 589
43636  return (1);
43637}
43638}
43639#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"
43640struct usb_device_id  const  *usb_match_id(struct usb_interface *interface , struct usb_device_id  const  *id ) 
43641{ int tmp ;
43642  struct usb_device_id  const  *__cil_tmp4 ;
43643  unsigned long __cil_tmp5 ;
43644  unsigned long __cil_tmp6 ;
43645  __u16 __cil_tmp7 ;
43646  unsigned short __cil_tmp8 ;
43647  unsigned int __cil_tmp9 ;
43648  __u16 __cil_tmp10 ;
43649  unsigned short __cil_tmp11 ;
43650  unsigned int __cil_tmp12 ;
43651  __u8 __cil_tmp13 ;
43652  unsigned char __cil_tmp14 ;
43653  unsigned int __cil_tmp15 ;
43654  __u8 __cil_tmp16 ;
43655  unsigned char __cil_tmp17 ;
43656  unsigned int __cil_tmp18 ;
43657  kernel_ulong_t __cil_tmp19 ;
43658  unsigned long __cil_tmp20 ;
43659
43660  {
43661  {
43662#line 668
43663  __cil_tmp4 = (struct usb_device_id  const  *)0;
43664#line 668
43665  __cil_tmp5 = (unsigned long )__cil_tmp4;
43666#line 668
43667  __cil_tmp6 = (unsigned long )id;
43668#line 668
43669  if (__cil_tmp6 == __cil_tmp5) {
43670#line 669
43671    return ((struct usb_device_id  const  *)0);
43672  } else {
43673
43674  }
43675  }
43676#line 676
43677  goto ldv_24422;
43678  ldv_24421: 
43679  {
43680#line 678
43681  tmp = usb_match_one_id(interface, id);
43682  }
43683#line 678
43684  if (tmp != 0) {
43685#line 679
43686    return (id);
43687  } else {
43688
43689  }
43690#line 677
43691  id = id + 1;
43692  ldv_24422: ;
43693  {
43694#line 676
43695  __cil_tmp7 = id->idVendor;
43696#line 676
43697  __cil_tmp8 = (unsigned short )__cil_tmp7;
43698#line 676
43699  __cil_tmp9 = (unsigned int )__cil_tmp8;
43700#line 676
43701  if (__cil_tmp9 != 0U) {
43702#line 678
43703    goto ldv_24421;
43704  } else {
43705    {
43706#line 676
43707    __cil_tmp10 = id->idProduct;
43708#line 676
43709    __cil_tmp11 = (unsigned short )__cil_tmp10;
43710#line 676
43711    __cil_tmp12 = (unsigned int )__cil_tmp11;
43712#line 676
43713    if (__cil_tmp12 != 0U) {
43714#line 678
43715      goto ldv_24421;
43716    } else {
43717      {
43718#line 676
43719      __cil_tmp13 = id->bDeviceClass;
43720#line 676
43721      __cil_tmp14 = (unsigned char )__cil_tmp13;
43722#line 676
43723      __cil_tmp15 = (unsigned int )__cil_tmp14;
43724#line 676
43725      if (__cil_tmp15 != 0U) {
43726#line 678
43727        goto ldv_24421;
43728      } else {
43729        {
43730#line 676
43731        __cil_tmp16 = id->bInterfaceClass;
43732#line 676
43733        __cil_tmp17 = (unsigned char )__cil_tmp16;
43734#line 676
43735        __cil_tmp18 = (unsigned int )__cil_tmp17;
43736#line 676
43737        if (__cil_tmp18 != 0U) {
43738#line 678
43739          goto ldv_24421;
43740        } else {
43741          {
43742#line 676
43743          __cil_tmp19 = id->driver_info;
43744#line 676
43745          __cil_tmp20 = (unsigned long )__cil_tmp19;
43746#line 676
43747          if (__cil_tmp20 != 0UL) {
43748#line 678
43749            goto ldv_24421;
43750          } else {
43751#line 680
43752            goto ldv_24423;
43753          }
43754          }
43755        }
43756        }
43757      }
43758      }
43759    }
43760    }
43761  }
43762  }
43763  ldv_24423: ;
43764#line 682
43765  return ((struct usb_device_id  const  *)0);
43766}
43767}
43768#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"
43769static int usb_device_match(struct device *dev , struct device_driver *drv ) 
43770{ int tmp ;
43771  struct usb_interface *intf ;
43772  struct usb_driver *usb_drv ;
43773  struct usb_device_id  const  *id ;
43774  int tmp___0 ;
43775  struct device  const  *__mptr ;
43776  struct device_driver  const  *__mptr___0 ;
43777  int tmp___1 ;
43778  int tmp___2 ;
43779  struct device  const  *__cil_tmp12 ;
43780  struct device  const  *__cil_tmp13 ;
43781  struct usb_interface *__cil_tmp14 ;
43782  struct usb_driver *__cil_tmp15 ;
43783  struct usb_device_id  const  *__cil_tmp16 ;
43784  struct usb_device_id  const  *__cil_tmp17 ;
43785  unsigned long __cil_tmp18 ;
43786  unsigned long __cil_tmp19 ;
43787  struct usb_device_id  const  *__cil_tmp20 ;
43788  unsigned long __cil_tmp21 ;
43789  unsigned long __cil_tmp22 ;
43790
43791  {
43792  {
43793#line 689
43794  __cil_tmp12 = (struct device  const  *)dev;
43795#line 689
43796  tmp___2 = is_usb_device(__cil_tmp12);
43797  }
43798#line 689
43799  if (tmp___2 != 0) {
43800    {
43801#line 692
43802    tmp = is_usb_device_driver(drv);
43803    }
43804#line 692
43805    if (tmp == 0) {
43806#line 693
43807      return (0);
43808    } else {
43809
43810    }
43811#line 696
43812    return (1);
43813  } else {
43814    {
43815#line 698
43816    __cil_tmp13 = (struct device  const  *)dev;
43817#line 698
43818    tmp___1 = is_usb_interface(__cil_tmp13);
43819    }
43820#line 698
43821    if (tmp___1 != 0) {
43822      {
43823#line 704
43824      tmp___0 = is_usb_device_driver(drv);
43825      }
43826#line 704
43827      if (tmp___0 != 0) {
43828#line 705
43829        return (0);
43830      } else {
43831
43832      }
43833      {
43834#line 707
43835      __mptr = (struct device  const  *)dev;
43836#line 707
43837      __cil_tmp14 = (struct usb_interface *)__mptr;
43838#line 707
43839      intf = __cil_tmp14 + 1152921504606846928UL;
43840#line 708
43841      __mptr___0 = (struct device_driver  const  *)drv;
43842#line 708
43843      __cil_tmp15 = (struct usb_driver *)__mptr___0;
43844#line 708
43845      usb_drv = __cil_tmp15 + 1152921504606846808UL;
43846#line 710
43847      __cil_tmp16 = usb_drv->id_table;
43848#line 710
43849      id = usb_match_id(intf, __cil_tmp16);
43850      }
43851      {
43852#line 711
43853      __cil_tmp17 = (struct usb_device_id  const  *)0;
43854#line 711
43855      __cil_tmp18 = (unsigned long )__cil_tmp17;
43856#line 711
43857      __cil_tmp19 = (unsigned long )id;
43858#line 711
43859      if (__cil_tmp19 != __cil_tmp18) {
43860#line 712
43861        return (1);
43862      } else {
43863
43864      }
43865      }
43866      {
43867#line 714
43868      id = usb_match_dynamic_id(intf, usb_drv);
43869      }
43870      {
43871#line 715
43872      __cil_tmp20 = (struct usb_device_id  const  *)0;
43873#line 715
43874      __cil_tmp21 = (unsigned long )__cil_tmp20;
43875#line 715
43876      __cil_tmp22 = (unsigned long )id;
43877#line 715
43878      if (__cil_tmp22 != __cil_tmp21) {
43879#line 716
43880        return (1);
43881      } else {
43882
43883      }
43884      }
43885    } else {
43886
43887    }
43888  }
43889#line 719
43890  return (0);
43891}
43892}
43893#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"
43894static int usb_uevent(struct device *dev , struct kobj_uevent_env *env ) 
43895{ struct usb_device *usb_dev ;
43896  struct device  const  *__mptr ;
43897  struct usb_interface *intf ;
43898  struct device  const  *__mptr___0 ;
43899  int tmp ;
43900  int tmp___0 ;
43901  char const   *tmp___1 ;
43902  char const   *tmp___2 ;
43903  int tmp___3 ;
43904  int tmp___4 ;
43905  int tmp___5 ;
43906  struct device  const  *__cil_tmp14 ;
43907  struct usb_device *__cil_tmp15 ;
43908  struct device  const  *__cil_tmp16 ;
43909  struct usb_interface *__cil_tmp17 ;
43910  int __cil_tmp18 ;
43911  struct device  const  *__cil_tmp19 ;
43912  struct usb_bus *__cil_tmp20 ;
43913  unsigned long __cil_tmp21 ;
43914  struct usb_bus *__cil_tmp22 ;
43915  unsigned long __cil_tmp23 ;
43916  struct device  const  *__cil_tmp24 ;
43917  struct usb_bus *__cil_tmp25 ;
43918  int __cil_tmp26 ;
43919  int __cil_tmp27 ;
43920  __le16 __cil_tmp28 ;
43921  int __cil_tmp29 ;
43922  __le16 __cil_tmp30 ;
43923  int __cil_tmp31 ;
43924  __le16 __cil_tmp32 ;
43925  int __cil_tmp33 ;
43926  __u8 __cil_tmp34 ;
43927  int __cil_tmp35 ;
43928  __u8 __cil_tmp36 ;
43929  int __cil_tmp37 ;
43930  __u8 __cil_tmp38 ;
43931  int __cil_tmp39 ;
43932
43933  {
43934  {
43935#line 727
43936  __cil_tmp14 = (struct device  const  *)dev;
43937#line 727
43938  tmp___0 = is_usb_device(__cil_tmp14);
43939  }
43940#line 727
43941  if (tmp___0 != 0) {
43942#line 728
43943    __mptr = (struct device  const  *)dev;
43944#line 728
43945    __cil_tmp15 = (struct usb_device *)__mptr;
43946#line 728
43947    usb_dev = __cil_tmp15 + 1152921504606846840UL;
43948  } else {
43949    {
43950#line 729
43951    __cil_tmp16 = (struct device  const  *)dev;
43952#line 729
43953    tmp = is_usb_interface(__cil_tmp16);
43954    }
43955#line 729
43956    if (tmp != 0) {
43957      {
43958#line 730
43959      __mptr___0 = (struct device  const  *)dev;
43960#line 730
43961      __cil_tmp17 = (struct usb_interface *)__mptr___0;
43962#line 730
43963      intf = __cil_tmp17 + 1152921504606846928UL;
43964#line 732
43965      usb_dev = interface_to_usbdev(intf);
43966      }
43967    } else {
43968#line 734
43969      return (0);
43970    }
43971  }
43972  {
43973#line 737
43974  __cil_tmp18 = usb_dev->devnum;
43975#line 737
43976  if (__cil_tmp18 < 0) {
43977    {
43978#line 739
43979    __cil_tmp19 = (struct device  const  *)dev;
43980#line 739
43981    tmp___1 = dev_name(__cil_tmp19);
43982#line 739
43983    printk("<7>usb %s: already deleted?\n", tmp___1);
43984    }
43985#line 740
43986    return (-19);
43987  } else {
43988
43989  }
43990  }
43991  {
43992#line 742
43993  __cil_tmp20 = (struct usb_bus *)0;
43994#line 742
43995  __cil_tmp21 = (unsigned long )__cil_tmp20;
43996#line 742
43997  __cil_tmp22 = usb_dev->bus;
43998#line 742
43999  __cil_tmp23 = (unsigned long )__cil_tmp22;
44000#line 742
44001  if (__cil_tmp23 == __cil_tmp21) {
44002    {
44003#line 743
44004    __cil_tmp24 = (struct device  const  *)dev;
44005#line 743
44006    tmp___2 = dev_name(__cil_tmp24);
44007#line 743
44008    printk("<7>usb %s: bus removed?\n", tmp___2);
44009    }
44010#line 744
44011    return (-19);
44012  } else {
44013
44014  }
44015  }
44016  {
44017#line 752
44018  __cil_tmp25 = usb_dev->bus;
44019#line 752
44020  __cil_tmp26 = __cil_tmp25->busnum;
44021#line 752
44022  __cil_tmp27 = usb_dev->devnum;
44023#line 752
44024  tmp___3 = add_uevent_var(env, "DEVICE=/proc/bus/usb/%03d/%03d", __cil_tmp26, __cil_tmp27);
44025  }
44026#line 752
44027  if (tmp___3 != 0) {
44028#line 754
44029    return (-12);
44030  } else {
44031
44032  }
44033  {
44034#line 758
44035  __cil_tmp28 = usb_dev->descriptor.idVendor;
44036#line 758
44037  __cil_tmp29 = (int )__cil_tmp28;
44038#line 758
44039  __cil_tmp30 = usb_dev->descriptor.idProduct;
44040#line 758
44041  __cil_tmp31 = (int )__cil_tmp30;
44042#line 758
44043  __cil_tmp32 = usb_dev->descriptor.bcdDevice;
44044#line 758
44045  __cil_tmp33 = (int )__cil_tmp32;
44046#line 758
44047  tmp___4 = add_uevent_var(env, "PRODUCT=%x/%x/%x", __cil_tmp29, __cil_tmp31, __cil_tmp33);
44048  }
44049#line 758
44050  if (tmp___4 != 0) {
44051#line 762
44052    return (-12);
44053  } else {
44054
44055  }
44056  {
44057#line 765
44058  __cil_tmp34 = usb_dev->descriptor.bDeviceClass;
44059#line 765
44060  __cil_tmp35 = (int )__cil_tmp34;
44061#line 765
44062  __cil_tmp36 = usb_dev->descriptor.bDeviceSubClass;
44063#line 765
44064  __cil_tmp37 = (int )__cil_tmp36;
44065#line 765
44066  __cil_tmp38 = usb_dev->descriptor.bDeviceProtocol;
44067#line 765
44068  __cil_tmp39 = (int )__cil_tmp38;
44069#line 765
44070  tmp___5 = add_uevent_var(env, "TYPE=%d/%d/%d", __cil_tmp35, __cil_tmp37, __cil_tmp39);
44071  }
44072#line 765
44073  if (tmp___5 != 0) {
44074#line 769
44075    return (-12);
44076  } else {
44077
44078  }
44079#line 771
44080  return (0);
44081}
44082}
44083#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"
44084int usb_register_device_driver(struct usb_device_driver *new_udriver , struct module *owner ) 
44085{ int retval ;
44086  int tmp ;
44087  struct device_driver *__cil_tmp5 ;
44088  char const   *__cil_tmp6 ;
44089  char const   *__cil_tmp7 ;
44090
44091  {
44092  {
44093#line 795
44094  retval = 0;
44095#line 797
44096  tmp = usb_disabled();
44097  }
44098#line 797
44099  if (tmp != 0) {
44100#line 798
44101    return (-19);
44102  } else {
44103
44104  }
44105  {
44106#line 800
44107  new_udriver->drvwrap.for_devices = 1;
44108#line 801
44109  new_udriver->drvwrap.driver.name = new_udriver->name;
44110#line 802
44111  new_udriver->drvwrap.driver.bus = & usb_bus_type;
44112#line 803
44113  new_udriver->drvwrap.driver.probe = & usb_probe_device;
44114#line 804
44115  new_udriver->drvwrap.driver.remove = & usb_unbind_device;
44116#line 805
44117  new_udriver->drvwrap.driver.owner = owner;
44118#line 807
44119  __cil_tmp5 = & new_udriver->drvwrap.driver;
44120#line 807
44121  retval = driver_register(__cil_tmp5);
44122  }
44123#line 809
44124  if (retval == 0) {
44125    {
44126#line 810
44127    __cil_tmp6 = new_udriver->name;
44128#line 810
44129    printk("<6>%s: registered new device driver %s\n", usbcore_name, __cil_tmp6);
44130#line 812
44131    usbfs_update_special();
44132    }
44133  } else {
44134    {
44135#line 814
44136    __cil_tmp7 = new_udriver->name;
44137#line 814
44138    printk("<3>%s: error %d registering device \tdriver %s\n", usbcore_name, retval,
44139           __cil_tmp7);
44140    }
44141  }
44142#line 819
44143  return (retval);
44144}
44145}
44146#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"
44147void usb_deregister_device_driver(struct usb_device_driver *udriver ) 
44148{ char const   *__cil_tmp2 ;
44149  struct device_driver *__cil_tmp3 ;
44150
44151  {
44152  {
44153#line 832
44154  __cil_tmp2 = udriver->name;
44155#line 832
44156  printk("<6>%s: deregistering device driver %s\n", usbcore_name, __cil_tmp2);
44157#line 835
44158  __cil_tmp3 = & udriver->drvwrap.driver;
44159#line 835
44160  driver_unregister(__cil_tmp3);
44161#line 836
44162  usbfs_update_special();
44163  }
44164#line 837
44165  return;
44166}
44167}
44168#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"
44169int usb_register_driver(struct usb_driver *new_driver , struct module *owner , char const   *mod_name ) 
44170{ int retval ;
44171  int tmp ;
44172  struct lock_class_key __key ;
44173  spinlock_t *__cil_tmp7 ;
44174  struct raw_spinlock *__cil_tmp8 ;
44175  struct list_head *__cil_tmp9 ;
44176  struct device_driver *__cil_tmp10 ;
44177  char const   *__cil_tmp11 ;
44178  struct device_driver *__cil_tmp12 ;
44179  char const   *__cil_tmp13 ;
44180
44181  {
44182  {
44183#line 858
44184  retval = 0;
44185#line 860
44186  tmp = usb_disabled();
44187  }
44188#line 860
44189  if (tmp != 0) {
44190#line 861
44191    return (-19);
44192  } else {
44193
44194  }
44195  {
44196#line 863
44197  new_driver->drvwrap.for_devices = 0;
44198#line 864
44199  new_driver->drvwrap.driver.name = new_driver->name;
44200#line 865
44201  new_driver->drvwrap.driver.bus = & usb_bus_type;
44202#line 866
44203  new_driver->drvwrap.driver.probe = & usb_probe_interface;
44204#line 867
44205  new_driver->drvwrap.driver.remove = & usb_unbind_interface;
44206#line 868
44207  new_driver->drvwrap.driver.owner = owner;
44208#line 869
44209  new_driver->drvwrap.driver.mod_name = mod_name;
44210#line 870
44211  __cil_tmp7 = & new_driver->dynids.lock;
44212#line 870
44213  spinlock_check(__cil_tmp7);
44214#line 870
44215  __cil_tmp8 = & new_driver->dynids.lock.ldv_6060.rlock;
44216#line 870
44217  __raw_spin_lock_init(__cil_tmp8, "&(&new_driver->dynids.lock)->rlock", & __key);
44218#line 871
44219  __cil_tmp9 = & new_driver->dynids.list;
44220#line 871
44221  INIT_LIST_HEAD(__cil_tmp9);
44222#line 873
44223  __cil_tmp10 = & new_driver->drvwrap.driver;
44224#line 873
44225  retval = driver_register(__cil_tmp10);
44226  }
44227#line 874
44228  if (retval != 0) {
44229#line 875
44230    goto out;
44231  } else {
44232
44233  }
44234  {
44235#line 877
44236  usbfs_update_special();
44237#line 879
44238  retval = usb_create_newid_file(new_driver);
44239  }
44240#line 880
44241  if (retval != 0) {
44242#line 881
44243    goto out_newid;
44244  } else {
44245
44246  }
44247  {
44248#line 883
44249  retval = usb_create_removeid_file(new_driver);
44250  }
44251#line 884
44252  if (retval != 0) {
44253#line 885
44254    goto out_removeid;
44255  } else {
44256
44257  }
44258  {
44259#line 887
44260  __cil_tmp11 = new_driver->name;
44261#line 887
44262  printk("<6>%s: registered new interface driver %s\n", usbcore_name, __cil_tmp11);
44263  }
44264  out: ;
44265#line 891
44266  return (retval);
44267  out_removeid: 
44268  {
44269#line 894
44270  usb_remove_newid_file(new_driver);
44271  }
44272  out_newid: 
44273  {
44274#line 896
44275  __cil_tmp12 = & new_driver->drvwrap.driver;
44276#line 896
44277  driver_unregister(__cil_tmp12);
44278#line 898
44279  __cil_tmp13 = new_driver->name;
44280#line 898
44281  printk("<3>%s: error %d registering interface \tdriver %s\n", usbcore_name, retval,
44282         __cil_tmp13);
44283  }
44284#line 901
44285  goto out;
44286}
44287}
44288#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"
44289void usb_deregister(struct usb_driver *driver ) 
44290{ char const   *__cil_tmp2 ;
44291  struct device_driver *__cil_tmp3 ;
44292
44293  {
44294  {
44295#line 918
44296  __cil_tmp2 = driver->name;
44297#line 918
44298  printk("<6>%s: deregistering interface driver %s\n", usbcore_name, __cil_tmp2);
44299#line 921
44300  usb_remove_removeid_file(driver);
44301#line 922
44302  usb_remove_newid_file(driver);
44303#line 923
44304  usb_free_dynids(driver);
44305#line 924
44306  __cil_tmp3 = & driver->drvwrap.driver;
44307#line 924
44308  driver_unregister(__cil_tmp3);
44309#line 926
44310  usbfs_update_special();
44311  }
44312#line 927
44313  return;
44314}
44315}
44316#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"
44317void usb_forced_unbind_intf(struct usb_interface *intf ) 
44318{ struct usb_driver *driver ;
44319  struct device_driver  const  *__mptr ;
44320  struct device_driver *__cil_tmp4 ;
44321  struct usb_driver *__cil_tmp5 ;
44322  struct device *__cil_tmp6 ;
44323  struct device  const  *__cil_tmp7 ;
44324
44325  {
44326  {
44327#line 939
44328  __cil_tmp4 = intf->dev.driver;
44329#line 939
44330  __mptr = (struct device_driver  const  *)__cil_tmp4;
44331#line 939
44332  __cil_tmp5 = (struct usb_driver *)__mptr;
44333#line 939
44334  driver = __cil_tmp5 + 1152921504606846808UL;
44335#line 941
44336  __cil_tmp6 = & intf->dev;
44337#line 941
44338  __cil_tmp7 = (struct device  const  *)__cil_tmp6;
44339#line 941
44340  dev_printk("<7>", __cil_tmp7, "forced unbind\n");
44341#line 942
44342  usb_driver_release_interface(driver, intf);
44343#line 945
44344  intf->needs_binding = (unsigned char)1;
44345  }
44346#line 946
44347  return;
44348}
44349}
44350#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"
44351void usb_rebind_intf(struct usb_interface *intf ) 
44352{ int rc ;
44353  struct usb_driver *driver ;
44354  struct device_driver  const  *__mptr ;
44355  struct device_driver *__cil_tmp5 ;
44356  unsigned long __cil_tmp6 ;
44357  struct device_driver *__cil_tmp7 ;
44358  unsigned long __cil_tmp8 ;
44359  struct device_driver *__cil_tmp9 ;
44360  struct usb_driver *__cil_tmp10 ;
44361  struct device *__cil_tmp11 ;
44362  struct device  const  *__cil_tmp12 ;
44363  bool __cil_tmp13 ;
44364  struct device *__cil_tmp14 ;
44365  struct device *__cil_tmp15 ;
44366  struct device  const  *__cil_tmp16 ;
44367
44368  {
44369  {
44370#line 962
44371  __cil_tmp5 = (struct device_driver *)0;
44372#line 962
44373  __cil_tmp6 = (unsigned long )__cil_tmp5;
44374#line 962
44375  __cil_tmp7 = intf->dev.driver;
44376#line 962
44377  __cil_tmp8 = (unsigned long )__cil_tmp7;
44378#line 962
44379  if (__cil_tmp8 != __cil_tmp6) {
44380    {
44381#line 964
44382    __cil_tmp9 = intf->dev.driver;
44383#line 964
44384    __mptr = (struct device_driver  const  *)__cil_tmp9;
44385#line 964
44386    __cil_tmp10 = (struct usb_driver *)__mptr;
44387#line 964
44388    driver = __cil_tmp10 + 1152921504606846808UL;
44389#line 966
44390    __cil_tmp11 = & intf->dev;
44391#line 966
44392    __cil_tmp12 = (struct device  const  *)__cil_tmp11;
44393#line 966
44394    dev_printk("<7>", __cil_tmp12, "forced unbind\n");
44395#line 967
44396    usb_driver_release_interface(driver, intf);
44397    }
44398  } else {
44399
44400  }
44401  }
44402  {
44403#line 971
44404  __cil_tmp13 = intf->dev.power.is_prepared;
44405#line 971
44406  if (! __cil_tmp13) {
44407    {
44408#line 972
44409    intf->needs_binding = (unsigned char)0;
44410#line 973
44411    __cil_tmp14 = & intf->dev;
44412#line 973
44413    rc = device_attach(__cil_tmp14);
44414    }
44415#line 974
44416    if (rc < 0) {
44417      {
44418#line 975
44419      __cil_tmp15 = & intf->dev;
44420#line 975
44421      __cil_tmp16 = (struct device  const  *)__cil_tmp15;
44422#line 975
44423      dev_warn(__cil_tmp16, "rebind failed: %d\n", rc);
44424      }
44425    } else {
44426
44427    }
44428  } else {
44429
44430  }
44431  }
44432#line 977
44433  return;
44434}
44435}
44436#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"
44437static void do_unbind_rebind(struct usb_device *udev , int action ) 
44438{ struct usb_host_config *config ;
44439  int i ;
44440  struct usb_interface *intf ;
44441  struct usb_driver *drv ;
44442  struct device_driver  const  *__mptr ;
44443  struct usb_host_config *__cil_tmp8 ;
44444  unsigned long __cil_tmp9 ;
44445  unsigned long __cil_tmp10 ;
44446  struct device_driver *__cil_tmp11 ;
44447  unsigned long __cil_tmp12 ;
44448  struct device_driver *__cil_tmp13 ;
44449  unsigned long __cil_tmp14 ;
44450  struct device_driver *__cil_tmp15 ;
44451  struct usb_driver *__cil_tmp16 ;
44452  int (*__cil_tmp17)(struct usb_interface * , pm_message_t  ) ;
44453  unsigned long __cil_tmp18 ;
44454  int (*__cil_tmp19)(struct usb_interface * , pm_message_t  ) ;
44455  unsigned long __cil_tmp20 ;
44456  int (*__cil_tmp21)(struct usb_interface * ) ;
44457  unsigned long __cil_tmp22 ;
44458  int (*__cil_tmp23)(struct usb_interface * ) ;
44459  unsigned long __cil_tmp24 ;
44460  unsigned char *__cil_tmp25 ;
44461  unsigned char *__cil_tmp26 ;
44462  unsigned char __cil_tmp27 ;
44463  unsigned int __cil_tmp28 ;
44464  __u8 __cil_tmp29 ;
44465  int __cil_tmp30 ;
44466
44467  {
44468#line 996
44469  config = udev->actconfig;
44470  {
44471#line 997
44472  __cil_tmp8 = (struct usb_host_config *)0;
44473#line 997
44474  __cil_tmp9 = (unsigned long )__cil_tmp8;
44475#line 997
44476  __cil_tmp10 = (unsigned long )config;
44477#line 997
44478  if (__cil_tmp10 != __cil_tmp9) {
44479#line 998
44480    i = 0;
44481#line 998
44482    goto ldv_24527;
44483    ldv_24526: 
44484#line 999
44485    intf = config->interface[i];
44486#line 1001
44487    if (action == 0) {
44488#line 1001
44489      goto case_0;
44490    } else
44491#line 1008
44492    if (action == 1) {
44493#line 1008
44494      goto case_1;
44495    } else
44496#line 1000
44497    if (0) {
44498      case_0: ;
44499      {
44500#line 1002
44501      __cil_tmp11 = (struct device_driver *)0;
44502#line 1002
44503      __cil_tmp12 = (unsigned long )__cil_tmp11;
44504#line 1002
44505      __cil_tmp13 = intf->dev.driver;
44506#line 1002
44507      __cil_tmp14 = (unsigned long )__cil_tmp13;
44508#line 1002
44509      if (__cil_tmp14 != __cil_tmp12) {
44510#line 1003
44511        __cil_tmp15 = intf->dev.driver;
44512#line 1003
44513        __mptr = (struct device_driver  const  *)__cil_tmp15;
44514#line 1003
44515        __cil_tmp16 = (struct usb_driver *)__mptr;
44516#line 1003
44517        drv = __cil_tmp16 + 1152921504606846808UL;
44518        {
44519#line 1004
44520        __cil_tmp17 = (int (*)(struct usb_interface * , pm_message_t  ))0;
44521#line 1004
44522        __cil_tmp18 = (unsigned long )__cil_tmp17;
44523#line 1004
44524        __cil_tmp19 = drv->suspend;
44525#line 1004
44526        __cil_tmp20 = (unsigned long )__cil_tmp19;
44527#line 1004
44528        if (__cil_tmp20 == __cil_tmp18) {
44529          {
44530#line 1005
44531          usb_forced_unbind_intf(intf);
44532          }
44533        } else {
44534          {
44535#line 1004
44536          __cil_tmp21 = (int (*)(struct usb_interface * ))0;
44537#line 1004
44538          __cil_tmp22 = (unsigned long )__cil_tmp21;
44539#line 1004
44540          __cil_tmp23 = drv->resume;
44541#line 1004
44542          __cil_tmp24 = (unsigned long )__cil_tmp23;
44543#line 1004
44544          if (__cil_tmp24 == __cil_tmp22) {
44545            {
44546#line 1005
44547            usb_forced_unbind_intf(intf);
44548            }
44549          } else {
44550
44551          }
44552          }
44553        }
44554        }
44555      } else {
44556
44557      }
44558      }
44559#line 1007
44560      goto ldv_24524;
44561      case_1: ;
44562      {
44563#line 1009
44564      __cil_tmp25 = (unsigned char *)intf;
44565#line 1009
44566      __cil_tmp26 = __cil_tmp25 + 40UL;
44567#line 1009
44568      __cil_tmp27 = *__cil_tmp26;
44569#line 1009
44570      __cil_tmp28 = (unsigned int )__cil_tmp27;
44571#line 1009
44572      if (__cil_tmp28 != 0U) {
44573        {
44574#line 1010
44575        usb_rebind_intf(intf);
44576        }
44577      } else {
44578
44579      }
44580      }
44581#line 1011
44582      goto ldv_24524;
44583    } else {
44584
44585    }
44586    ldv_24524: 
44587#line 998
44588    i = i + 1;
44589    ldv_24527: ;
44590    {
44591#line 998
44592    __cil_tmp29 = config->desc.bNumInterfaces;
44593#line 998
44594    __cil_tmp30 = (int )__cil_tmp29;
44595#line 998
44596    if (__cil_tmp30 > i) {
44597#line 999
44598      goto ldv_24526;
44599    } else {
44600#line 1001
44601      goto ldv_24528;
44602    }
44603    }
44604    ldv_24528: ;
44605  } else {
44606
44607  }
44608  }
44609#line 1004
44610  return;
44611}
44612}
44613#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"
44614static int usb_suspend_device(struct usb_device *udev , pm_message_t msg ) 
44615{ struct usb_device_driver *udriver ;
44616  int status ;
44617  struct device_driver  const  *__mptr ;
44618  enum usb_device_state __cil_tmp6 ;
44619  unsigned int __cil_tmp7 ;
44620  enum usb_device_state __cil_tmp8 ;
44621  unsigned int __cil_tmp9 ;
44622  struct device_driver *__cil_tmp10 ;
44623  unsigned long __cil_tmp11 ;
44624  struct device_driver *__cil_tmp12 ;
44625  unsigned long __cil_tmp13 ;
44626  struct device_driver *__cil_tmp14 ;
44627  struct usb_device_driver *__cil_tmp15 ;
44628  int (*__cil_tmp16)(struct usb_device * , pm_message_t  ) ;
44629
44630  {
44631#line 1020
44632  status = 0;
44633  {
44634#line 1022
44635  __cil_tmp6 = udev->state;
44636#line 1022
44637  __cil_tmp7 = (unsigned int )__cil_tmp6;
44638#line 1022
44639  if (__cil_tmp7 == 0U) {
44640#line 1024
44641    goto done;
44642  } else {
44643    {
44644#line 1022
44645    __cil_tmp8 = udev->state;
44646#line 1022
44647    __cil_tmp9 = (unsigned int )__cil_tmp8;
44648#line 1022
44649    if (__cil_tmp9 == 8U) {
44650#line 1024
44651      goto done;
44652    } else {
44653
44654    }
44655    }
44656  }
44657  }
44658  {
44659#line 1027
44660  __cil_tmp10 = (struct device_driver *)0;
44661#line 1027
44662  __cil_tmp11 = (unsigned long )__cil_tmp10;
44663#line 1027
44664  __cil_tmp12 = udev->dev.driver;
44665#line 1027
44666  __cil_tmp13 = (unsigned long )__cil_tmp12;
44667#line 1027
44668  if (__cil_tmp13 != __cil_tmp11) {
44669#line 1028
44670    __cil_tmp14 = udev->dev.driver;
44671#line 1028
44672    __mptr = (struct device_driver  const  *)__cil_tmp14;
44673#line 1028
44674    __cil_tmp15 = (struct usb_device_driver *)__mptr;
44675#line 1028
44676    udriver = __cil_tmp15 + 1152921504606846936UL;
44677  } else {
44678#line 1030
44679    udev->do_remote_wakeup = (unsigned char)0;
44680#line 1031
44681    udriver = & usb_generic_driver;
44682  }
44683  }
44684  {
44685#line 1033
44686  __cil_tmp16 = udriver->suspend;
44687#line 1033
44688  status = (*__cil_tmp16)(udev, msg);
44689  }
44690  done: ;
44691#line 1037
44692  return (status);
44693}
44694}
44695#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"
44696static int usb_resume_device(struct usb_device *udev , pm_message_t msg ) 
44697{ struct usb_device_driver *udriver ;
44698  int status ;
44699  struct device_driver  const  *__mptr ;
44700  enum usb_device_state __cil_tmp6 ;
44701  unsigned int __cil_tmp7 ;
44702  struct device_driver *__cil_tmp8 ;
44703  unsigned long __cil_tmp9 ;
44704  struct device_driver *__cil_tmp10 ;
44705  unsigned long __cil_tmp11 ;
44706  int __cil_tmp12 ;
44707  struct usb_device *__cil_tmp13 ;
44708  unsigned long __cil_tmp14 ;
44709  struct usb_device *__cil_tmp15 ;
44710  unsigned long __cil_tmp16 ;
44711  struct usb_bus *__cil_tmp17 ;
44712  unsigned long __cil_tmp18 ;
44713  struct usb_bus *__cil_tmp19 ;
44714  struct usb_bus *__cil_tmp20 ;
44715  unsigned long __cil_tmp21 ;
44716  struct device *__cil_tmp22 ;
44717  struct usb_bus *__cil_tmp23 ;
44718  struct usb_bus *__cil_tmp24 ;
44719  struct usb_device *__cil_tmp25 ;
44720  struct device *__cil_tmp26 ;
44721  u32 __cil_tmp27 ;
44722  unsigned int __cil_tmp28 ;
44723  struct device_driver *__cil_tmp29 ;
44724  struct usb_device_driver *__cil_tmp30 ;
44725  int (*__cil_tmp31)(struct usb_device * , pm_message_t  ) ;
44726
44727  {
44728#line 1043
44729  status = 0;
44730  {
44731#line 1045
44732  __cil_tmp6 = udev->state;
44733#line 1045
44734  __cil_tmp7 = (unsigned int )__cil_tmp6;
44735#line 1045
44736  if (__cil_tmp7 == 0U) {
44737#line 1046
44738    goto done;
44739  } else {
44740
44741  }
44742  }
44743  {
44744#line 1049
44745  __cil_tmp8 = (struct device_driver *)0;
44746#line 1049
44747  __cil_tmp9 = (unsigned long )__cil_tmp8;
44748#line 1049
44749  __cil_tmp10 = udev->dev.driver;
44750#line 1049
44751  __cil_tmp11 = (unsigned long )__cil_tmp10;
44752#line 1049
44753  if (__cil_tmp11 == __cil_tmp9) {
44754#line 1050
44755    status = -107;
44756#line 1051
44757    goto done;
44758  } else {
44759
44760  }
44761  }
44762  {
44763#line 1057
44764  __cil_tmp12 = msg.event & 1024;
44765#line 1057
44766  if (__cil_tmp12 == 0) {
44767    {
44768#line 1057
44769    __cil_tmp13 = (struct usb_device *)0;
44770#line 1057
44771    __cil_tmp14 = (unsigned long )__cil_tmp13;
44772#line 1057
44773    __cil_tmp15 = udev->parent;
44774#line 1057
44775    __cil_tmp16 = (unsigned long )__cil_tmp15;
44776#line 1057
44777    if (__cil_tmp16 != __cil_tmp14) {
44778      {
44779#line 1057
44780      __cil_tmp17 = (struct usb_bus *)0;
44781#line 1057
44782      __cil_tmp18 = (unsigned long )__cil_tmp17;
44783#line 1057
44784      __cil_tmp19 = udev->bus;
44785#line 1057
44786      __cil_tmp20 = __cil_tmp19->hs_companion;
44787#line 1057
44788      __cil_tmp21 = (unsigned long )__cil_tmp20;
44789#line 1057
44790      if (__cil_tmp21 != __cil_tmp18) {
44791        {
44792#line 1059
44793        __cil_tmp22 = & udev->dev;
44794#line 1059
44795        __cil_tmp23 = udev->bus;
44796#line 1059
44797        __cil_tmp24 = __cil_tmp23->hs_companion;
44798#line 1059
44799        __cil_tmp25 = __cil_tmp24->root_hub;
44800#line 1059
44801        __cil_tmp26 = & __cil_tmp25->dev;
44802#line 1059
44803        device_pm_wait_for_dev(__cil_tmp22, __cil_tmp26);
44804        }
44805      } else {
44806
44807      }
44808      }
44809    } else {
44810
44811    }
44812    }
44813  } else {
44814
44815  }
44816  }
44817  {
44818#line 1062
44819  __cil_tmp27 = udev->quirks;
44820#line 1062
44821  __cil_tmp28 = __cil_tmp27 & 2U;
44822#line 1062
44823  if (__cil_tmp28 != 0U) {
44824#line 1063
44825    udev->reset_resume = (unsigned char)1;
44826  } else {
44827
44828  }
44829  }
44830  {
44831#line 1065
44832  __cil_tmp29 = udev->dev.driver;
44833#line 1065
44834  __mptr = (struct device_driver  const  *)__cil_tmp29;
44835#line 1065
44836  __cil_tmp30 = (struct usb_device_driver *)__mptr;
44837#line 1065
44838  udriver = __cil_tmp30 + 1152921504606846936UL;
44839#line 1066
44840  __cil_tmp31 = udriver->resume;
44841#line 1066
44842  status = (*__cil_tmp31)(udev, msg);
44843  }
44844  done: ;
44845#line 1070
44846  return (status);
44847}
44848}
44849#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"
44850static int usb_suspend_interface(struct usb_device *udev , struct usb_interface *intf ,
44851                                 pm_message_t msg ) 
44852{ struct usb_driver *driver ;
44853  int status ;
44854  struct device_driver  const  *__mptr ;
44855  enum usb_device_state __cil_tmp7 ;
44856  unsigned int __cil_tmp8 ;
44857  enum usb_interface_condition __cil_tmp9 ;
44858  unsigned int __cil_tmp10 ;
44859  struct device_driver *__cil_tmp11 ;
44860  struct usb_driver *__cil_tmp12 ;
44861  int (*__cil_tmp13)(struct usb_interface * , pm_message_t  ) ;
44862  unsigned long __cil_tmp14 ;
44863  int (*__cil_tmp15)(struct usb_interface * , pm_message_t  ) ;
44864  unsigned long __cil_tmp16 ;
44865  int (*__cil_tmp17)(struct usb_interface * , pm_message_t  ) ;
44866  int __cil_tmp18 ;
44867  struct device *__cil_tmp19 ;
44868  struct device  const  *__cil_tmp20 ;
44869  char *__cil_tmp21 ;
44870  struct device *__cil_tmp22 ;
44871  struct device  const  *__cil_tmp23 ;
44872  char *__cil_tmp24 ;
44873  char const   *__cil_tmp25 ;
44874
44875  {
44876#line 1077
44877  status = 0;
44878  {
44879#line 1079
44880  __cil_tmp7 = udev->state;
44881#line 1079
44882  __cil_tmp8 = (unsigned int )__cil_tmp7;
44883#line 1079
44884  if (__cil_tmp8 == 0U) {
44885#line 1081
44886    goto done;
44887  } else {
44888    {
44889#line 1079
44890    __cil_tmp9 = intf->condition;
44891#line 1079
44892    __cil_tmp10 = (unsigned int )__cil_tmp9;
44893#line 1079
44894    if (__cil_tmp10 == 0U) {
44895#line 1081
44896      goto done;
44897    } else {
44898
44899    }
44900    }
44901  }
44902  }
44903#line 1082
44904  __cil_tmp11 = intf->dev.driver;
44905#line 1082
44906  __mptr = (struct device_driver  const  *)__cil_tmp11;
44907#line 1082
44908  __cil_tmp12 = (struct usb_driver *)__mptr;
44909#line 1082
44910  driver = __cil_tmp12 + 1152921504606846808UL;
44911  {
44912#line 1084
44913  __cil_tmp13 = (int (*)(struct usb_interface * , pm_message_t  ))0;
44914#line 1084
44915  __cil_tmp14 = (unsigned long )__cil_tmp13;
44916#line 1084
44917  __cil_tmp15 = driver->suspend;
44918#line 1084
44919  __cil_tmp16 = (unsigned long )__cil_tmp15;
44920#line 1084
44921  if (__cil_tmp16 != __cil_tmp14) {
44922    {
44923#line 1085
44924    __cil_tmp17 = driver->suspend;
44925#line 1085
44926    status = (*__cil_tmp17)(intf, msg);
44927    }
44928#line 1086
44929    if (status != 0) {
44930      {
44931#line 1086
44932      __cil_tmp18 = msg.event & 1024;
44933#line 1086
44934      if (__cil_tmp18 == 0) {
44935        {
44936#line 1087
44937        __cil_tmp19 = & intf->dev;
44938#line 1087
44939        __cil_tmp20 = (struct device  const  *)__cil_tmp19;
44940#line 1087
44941        __cil_tmp21 = (char *)"suspend";
44942#line 1087
44943        dev_err(__cil_tmp20, "%s error %d\n", __cil_tmp21, status);
44944        }
44945      } else {
44946
44947      }
44948      }
44949    } else {
44950
44951    }
44952  } else {
44953    {
44954#line 1091
44955    intf->needs_binding = (unsigned char)1;
44956#line 1092
44957    __cil_tmp22 = & intf->dev;
44958#line 1092
44959    __cil_tmp23 = (struct device  const  *)__cil_tmp22;
44960#line 1092
44961    __cil_tmp24 = (char *)"suspend";
44962#line 1092
44963    __cil_tmp25 = driver->name;
44964#line 1092
44965    dev_warn(__cil_tmp23, "no %s for driver %s?\n", __cil_tmp24, __cil_tmp25);
44966    }
44967  }
44968  }
44969  done: ;
44970#line 1098
44971  return (status);
44972}
44973}
44974#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"
44975static int usb_resume_interface(struct usb_device *udev , struct usb_interface *intf ,
44976                                pm_message_t msg , int reset_resume ) 
44977{ struct usb_driver *driver ;
44978  int status ;
44979  struct device_driver  const  *__mptr ;
44980  enum usb_device_state __cil_tmp8 ;
44981  unsigned int __cil_tmp9 ;
44982  enum usb_interface_condition __cil_tmp10 ;
44983  unsigned int __cil_tmp11 ;
44984  enum usb_interface_condition __cil_tmp12 ;
44985  unsigned int __cil_tmp13 ;
44986  unsigned char *__cil_tmp14 ;
44987  unsigned char *__cil_tmp15 ;
44988  unsigned char __cil_tmp16 ;
44989  unsigned int __cil_tmp17 ;
44990  bool __cil_tmp18 ;
44991  struct usb_host_interface *__cil_tmp19 ;
44992  __u8 __cil_tmp20 ;
44993  int __cil_tmp21 ;
44994  unsigned char *__cil_tmp22 ;
44995  unsigned char *__cil_tmp23 ;
44996  unsigned char __cil_tmp24 ;
44997  unsigned int __cil_tmp25 ;
44998  struct device_driver *__cil_tmp26 ;
44999  struct usb_driver *__cil_tmp27 ;
45000  int (*__cil_tmp28)(struct usb_interface * ) ;
45001  unsigned long __cil_tmp29 ;
45002  int (*__cil_tmp30)(struct usb_interface * ) ;
45003  unsigned long __cil_tmp31 ;
45004  int (*__cil_tmp32)(struct usb_interface * ) ;
45005  struct device *__cil_tmp33 ;
45006  struct device  const  *__cil_tmp34 ;
45007  char *__cil_tmp35 ;
45008  struct device *__cil_tmp36 ;
45009  struct device  const  *__cil_tmp37 ;
45010  char *__cil_tmp38 ;
45011  char const   *__cil_tmp39 ;
45012  int (*__cil_tmp40)(struct usb_interface * ) ;
45013  unsigned long __cil_tmp41 ;
45014  int (*__cil_tmp42)(struct usb_interface * ) ;
45015  unsigned long __cil_tmp43 ;
45016  int (*__cil_tmp44)(struct usb_interface * ) ;
45017  struct device *__cil_tmp45 ;
45018  struct device  const  *__cil_tmp46 ;
45019  char *__cil_tmp47 ;
45020  struct device *__cil_tmp48 ;
45021  struct device  const  *__cil_tmp49 ;
45022  char *__cil_tmp50 ;
45023  char const   *__cil_tmp51 ;
45024
45025  {
45026#line 1105
45027  status = 0;
45028  {
45029#line 1107
45030  __cil_tmp8 = udev->state;
45031#line 1107
45032  __cil_tmp9 = (unsigned int )__cil_tmp8;
45033#line 1107
45034  if (__cil_tmp9 == 0U) {
45035#line 1108
45036    goto done;
45037  } else {
45038
45039  }
45040  }
45041  {
45042#line 1111
45043  __cil_tmp10 = intf->condition;
45044#line 1111
45045  __cil_tmp11 = (unsigned int )__cil_tmp10;
45046#line 1111
45047  if (__cil_tmp11 == 3U) {
45048#line 1112
45049    goto done;
45050  } else {
45051
45052  }
45053  }
45054  {
45055#line 1115
45056  __cil_tmp12 = intf->condition;
45057#line 1115
45058  __cil_tmp13 = (unsigned int )__cil_tmp12;
45059#line 1115
45060  if (__cil_tmp13 == 0U) {
45061    {
45062#line 1118
45063    __cil_tmp14 = (unsigned char *)intf;
45064#line 1118
45065    __cil_tmp15 = __cil_tmp14 + 40UL;
45066#line 1118
45067    __cil_tmp16 = *__cil_tmp15;
45068#line 1118
45069    __cil_tmp17 = (unsigned int )__cil_tmp16;
45070#line 1118
45071    if (__cil_tmp17 != 0U) {
45072      {
45073#line 1118
45074      __cil_tmp18 = intf->dev.power.is_prepared;
45075#line 1118
45076      if (! __cil_tmp18) {
45077        {
45078#line 1119
45079        __cil_tmp19 = intf->altsetting;
45080#line 1119
45081        __cil_tmp20 = __cil_tmp19->desc.bInterfaceNumber;
45082#line 1119
45083        __cil_tmp21 = (int )__cil_tmp20;
45084#line 1119
45085        usb_set_interface(udev, __cil_tmp21, 0);
45086#line 1121
45087        intf->needs_altsetting0 = (unsigned char)0;
45088        }
45089      } else {
45090
45091      }
45092      }
45093    } else {
45094
45095    }
45096    }
45097#line 1123
45098    goto done;
45099  } else {
45100
45101  }
45102  }
45103  {
45104#line 1127
45105  __cil_tmp22 = (unsigned char *)intf;
45106#line 1127
45107  __cil_tmp23 = __cil_tmp22 + 40UL;
45108#line 1127
45109  __cil_tmp24 = *__cil_tmp23;
45110#line 1127
45111  __cil_tmp25 = (unsigned int )__cil_tmp24;
45112#line 1127
45113  if (__cil_tmp25 != 0U) {
45114#line 1128
45115    goto done;
45116  } else {
45117
45118  }
45119  }
45120#line 1129
45121  __cil_tmp26 = intf->dev.driver;
45122#line 1129
45123  __mptr = (struct device_driver  const  *)__cil_tmp26;
45124#line 1129
45125  __cil_tmp27 = (struct usb_driver *)__mptr;
45126#line 1129
45127  driver = __cil_tmp27 + 1152921504606846808UL;
45128#line 1131
45129  if (reset_resume != 0) {
45130    {
45131#line 1132
45132    __cil_tmp28 = (int (*)(struct usb_interface * ))0;
45133#line 1132
45134    __cil_tmp29 = (unsigned long )__cil_tmp28;
45135#line 1132
45136    __cil_tmp30 = driver->reset_resume;
45137#line 1132
45138    __cil_tmp31 = (unsigned long )__cil_tmp30;
45139#line 1132
45140    if (__cil_tmp31 != __cil_tmp29) {
45141      {
45142#line 1133
45143      __cil_tmp32 = driver->reset_resume;
45144#line 1133
45145      status = (*__cil_tmp32)(intf);
45146      }
45147#line 1134
45148      if (status != 0) {
45149        {
45150#line 1135
45151        __cil_tmp33 = & intf->dev;
45152#line 1135
45153        __cil_tmp34 = (struct device  const  *)__cil_tmp33;
45154#line 1135
45155        __cil_tmp35 = (char *)"reset_resume";
45156#line 1135
45157        dev_err(__cil_tmp34, "%s error %d\n", __cil_tmp35, status);
45158        }
45159      } else {
45160
45161      }
45162    } else {
45163      {
45164#line 1138
45165      intf->needs_binding = (unsigned char)1;
45166#line 1139
45167      __cil_tmp36 = & intf->dev;
45168#line 1139
45169      __cil_tmp37 = (struct device  const  *)__cil_tmp36;
45170#line 1139
45171      __cil_tmp38 = (char *)"reset_resume";
45172#line 1139
45173      __cil_tmp39 = driver->name;
45174#line 1139
45175      dev_warn(__cil_tmp37, "no %s for driver %s?\n", __cil_tmp38, __cil_tmp39);
45176      }
45177    }
45178    }
45179  } else {
45180    {
45181#line 1143
45182    __cil_tmp40 = (int (*)(struct usb_interface * ))0;
45183#line 1143
45184    __cil_tmp41 = (unsigned long )__cil_tmp40;
45185#line 1143
45186    __cil_tmp42 = driver->resume;
45187#line 1143
45188    __cil_tmp43 = (unsigned long )__cil_tmp42;
45189#line 1143
45190    if (__cil_tmp43 != __cil_tmp41) {
45191      {
45192#line 1144
45193      __cil_tmp44 = driver->resume;
45194#line 1144
45195      status = (*__cil_tmp44)(intf);
45196      }
45197#line 1145
45198      if (status != 0) {
45199        {
45200#line 1146
45201        __cil_tmp45 = & intf->dev;
45202#line 1146
45203        __cil_tmp46 = (struct device  const  *)__cil_tmp45;
45204#line 1146
45205        __cil_tmp47 = (char *)"resume";
45206#line 1146
45207        dev_err(__cil_tmp46, "%s error %d\n", __cil_tmp47, status);
45208        }
45209      } else {
45210
45211      }
45212    } else {
45213      {
45214#line 1149
45215      intf->needs_binding = (unsigned char)1;
45216#line 1150
45217      __cil_tmp48 = & intf->dev;
45218#line 1150
45219      __cil_tmp49 = (struct device  const  *)__cil_tmp48;
45220#line 1150
45221      __cil_tmp50 = (char *)"resume";
45222#line 1150
45223      __cil_tmp51 = driver->name;
45224#line 1150
45225      dev_warn(__cil_tmp49, "no %s for driver %s?\n", __cil_tmp50, __cil_tmp51);
45226      }
45227    }
45228    }
45229  }
45230  done: ;
45231#line 1159
45232  return (status);
45233}
45234}
45235#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"
45236static int usb_suspend_both(struct usb_device *udev , pm_message_t msg ) 
45237{ int status ;
45238  int i ;
45239  int n ;
45240  struct usb_interface *intf ;
45241  enum usb_device_state __cil_tmp7 ;
45242  unsigned int __cil_tmp8 ;
45243  enum usb_device_state __cil_tmp9 ;
45244  unsigned int __cil_tmp10 ;
45245  struct usb_host_config *__cil_tmp11 ;
45246  unsigned long __cil_tmp12 ;
45247  struct usb_host_config *__cil_tmp13 ;
45248  unsigned long __cil_tmp14 ;
45249  struct usb_host_config *__cil_tmp15 ;
45250  __u8 __cil_tmp16 ;
45251  struct usb_host_config *__cil_tmp17 ;
45252  int __cil_tmp18 ;
45253  int __cil_tmp19 ;
45254  struct usb_host_config *__cil_tmp20 ;
45255  struct usb_host_endpoint *__cil_tmp21 ;
45256  struct usb_host_endpoint *__cil_tmp22 ;
45257
45258  {
45259#line 1184
45260  status = 0;
45261#line 1185
45262  i = 0;
45263#line 1185
45264  n = 0;
45265  {
45266#line 1188
45267  __cil_tmp7 = udev->state;
45268#line 1188
45269  __cil_tmp8 = (unsigned int )__cil_tmp7;
45270#line 1188
45271  if (__cil_tmp8 == 0U) {
45272#line 1190
45273    goto done;
45274  } else {
45275    {
45276#line 1188
45277    __cil_tmp9 = udev->state;
45278#line 1188
45279    __cil_tmp10 = (unsigned int )__cil_tmp9;
45280#line 1188
45281    if (__cil_tmp10 == 8U) {
45282#line 1190
45283      goto done;
45284    } else {
45285
45286    }
45287    }
45288  }
45289  }
45290  {
45291#line 1193
45292  __cil_tmp11 = (struct usb_host_config *)0;
45293#line 1193
45294  __cil_tmp12 = (unsigned long )__cil_tmp11;
45295#line 1193
45296  __cil_tmp13 = udev->actconfig;
45297#line 1193
45298  __cil_tmp14 = (unsigned long )__cil_tmp13;
45299#line 1193
45300  if (__cil_tmp14 != __cil_tmp12) {
45301#line 1194
45302    __cil_tmp15 = udev->actconfig;
45303#line 1194
45304    __cil_tmp16 = __cil_tmp15->desc.bNumInterfaces;
45305#line 1194
45306    n = (int )__cil_tmp16;
45307#line 1195
45308    i = n + -1;
45309#line 1195
45310    goto ldv_24587;
45311    ldv_24586: 
45312    {
45313#line 1196
45314    __cil_tmp17 = udev->actconfig;
45315#line 1196
45316    intf = __cil_tmp17->interface[i];
45317#line 1197
45318    status = usb_suspend_interface(udev, intf, msg);
45319    }
45320    {
45321#line 1200
45322    __cil_tmp18 = msg.event & 1024;
45323#line 1200
45324    if (__cil_tmp18 == 0) {
45325#line 1201
45326      status = 0;
45327    } else {
45328
45329    }
45330    }
45331#line 1202
45332    if (status != 0) {
45333#line 1203
45334      goto ldv_24585;
45335    } else {
45336
45337    }
45338#line 1195
45339    i = i - 1;
45340    ldv_24587: ;
45341#line 1195
45342    if (i >= 0) {
45343#line 1196
45344      goto ldv_24586;
45345    } else {
45346#line 1198
45347      goto ldv_24585;
45348    }
45349    ldv_24585: ;
45350  } else {
45351
45352  }
45353  }
45354#line 1206
45355  if (status == 0) {
45356    {
45357#line 1207
45358    status = usb_suspend_device(udev, msg);
45359    }
45360    {
45361#line 1210
45362    __cil_tmp19 = msg.event & 1024;
45363#line 1210
45364    if (__cil_tmp19 == 0) {
45365#line 1211
45366      status = 0;
45367    } else {
45368
45369    }
45370    }
45371  } else {
45372
45373  }
45374#line 1215
45375  if (status != 0) {
45376#line 1216
45377    msg.event = msg.event ^ 18;
45378#line 1217
45379    goto ldv_24589;
45380    ldv_24588: 
45381    {
45382#line 1218
45383    __cil_tmp20 = udev->actconfig;
45384#line 1218
45385    intf = __cil_tmp20->interface[i];
45386#line 1219
45387    usb_resume_interface(udev, intf, msg, 0);
45388    }
45389    ldv_24589: 
45390#line 1217
45391    i = i + 1;
45392#line 1217
45393    if (i < n) {
45394#line 1218
45395      goto ldv_24588;
45396    } else {
45397#line 1220
45398      goto ldv_24590;
45399    }
45400    ldv_24590: ;
45401  } else {
45402#line 1226
45403    udev->can_submit = (unsigned char)0;
45404#line 1227
45405    i = 0;
45406#line 1227
45407    goto ldv_24592;
45408    ldv_24591: 
45409    {
45410#line 1228
45411    __cil_tmp21 = udev->ep_out[i];
45412#line 1228
45413    usb_hcd_flush_endpoint(udev, __cil_tmp21);
45414#line 1229
45415    __cil_tmp22 = udev->ep_in[i];
45416#line 1229
45417    usb_hcd_flush_endpoint(udev, __cil_tmp22);
45418#line 1227
45419    i = i + 1;
45420    }
45421    ldv_24592: ;
45422#line 1227
45423    if (i <= 15) {
45424#line 1228
45425      goto ldv_24591;
45426    } else {
45427#line 1230
45428      goto ldv_24593;
45429    }
45430    ldv_24593: ;
45431  }
45432  done: ;
45433#line 1235
45434  return (status);
45435}
45436}
45437#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"
45438static int usb_resume_both(struct usb_device *udev , pm_message_t msg ) 
45439{ int status ;
45440  int i ;
45441  struct usb_interface *intf ;
45442  enum usb_device_state __cil_tmp6 ;
45443  unsigned int __cil_tmp7 ;
45444  enum usb_device_state __cil_tmp8 ;
45445  unsigned int __cil_tmp9 ;
45446  unsigned char *__cil_tmp10 ;
45447  unsigned char *__cil_tmp11 ;
45448  unsigned char __cil_tmp12 ;
45449  unsigned int __cil_tmp13 ;
45450  struct usb_host_config *__cil_tmp14 ;
45451  unsigned long __cil_tmp15 ;
45452  struct usb_host_config *__cil_tmp16 ;
45453  unsigned long __cil_tmp17 ;
45454  struct usb_host_config *__cil_tmp18 ;
45455  unsigned char __cil_tmp19 ;
45456  int __cil_tmp20 ;
45457  struct usb_host_config *__cil_tmp21 ;
45458  __u8 __cil_tmp22 ;
45459  int __cil_tmp23 ;
45460
45461  {
45462#line 1258
45463  status = 0;
45464  {
45465#line 1262
45466  __cil_tmp6 = udev->state;
45467#line 1262
45468  __cil_tmp7 = (unsigned int )__cil_tmp6;
45469#line 1262
45470  if (__cil_tmp7 == 0U) {
45471#line 1263
45472    status = -19;
45473#line 1264
45474    goto done;
45475  } else {
45476
45477  }
45478  }
45479#line 1266
45480  udev->can_submit = (unsigned char)1;
45481  {
45482#line 1269
45483  __cil_tmp8 = udev->state;
45484#line 1269
45485  __cil_tmp9 = (unsigned int )__cil_tmp8;
45486#line 1269
45487  if (__cil_tmp9 == 8U) {
45488    {
45489#line 1270
45490    status = usb_resume_device(udev, msg);
45491    }
45492  } else {
45493    {
45494#line 1269
45495    __cil_tmp10 = (unsigned char *)udev;
45496#line 1269
45497    __cil_tmp11 = __cil_tmp10 + 1904UL;
45498#line 1269
45499    __cil_tmp12 = *__cil_tmp11;
45500#line 1269
45501    __cil_tmp13 = (unsigned int )__cil_tmp12;
45502#line 1269
45503    if (__cil_tmp13 != 0U) {
45504      {
45505#line 1270
45506      status = usb_resume_device(udev, msg);
45507      }
45508    } else {
45509
45510    }
45511    }
45512  }
45513  }
45514#line 1273
45515  if (status == 0) {
45516    {
45517#line 1273
45518    __cil_tmp14 = (struct usb_host_config *)0;
45519#line 1273
45520    __cil_tmp15 = (unsigned long )__cil_tmp14;
45521#line 1273
45522    __cil_tmp16 = udev->actconfig;
45523#line 1273
45524    __cil_tmp17 = (unsigned long )__cil_tmp16;
45525#line 1273
45526    if (__cil_tmp17 != __cil_tmp15) {
45527#line 1274
45528      i = 0;
45529#line 1274
45530      goto ldv_24605;
45531      ldv_24604: 
45532      {
45533#line 1275
45534      __cil_tmp18 = udev->actconfig;
45535#line 1275
45536      intf = __cil_tmp18->interface[i];
45537#line 1276
45538      __cil_tmp19 = udev->reset_resume;
45539#line 1276
45540      __cil_tmp20 = (int )__cil_tmp19;
45541#line 1276
45542      usb_resume_interface(udev, intf, msg, __cil_tmp20);
45543#line 1274
45544      i = i + 1;
45545      }
45546      ldv_24605: ;
45547      {
45548#line 1274
45549      __cil_tmp21 = udev->actconfig;
45550#line 1274
45551      __cil_tmp22 = __cil_tmp21->desc.bNumInterfaces;
45552#line 1274
45553      __cil_tmp23 = (int )__cil_tmp22;
45554#line 1274
45555      if (__cil_tmp23 > i) {
45556#line 1275
45557        goto ldv_24604;
45558      } else {
45559#line 1277
45560        goto ldv_24606;
45561      }
45562      }
45563      ldv_24606: ;
45564    } else {
45565
45566    }
45567    }
45568  } else {
45569
45570  }
45571  {
45572#line 1280
45573  usb_mark_last_busy(udev);
45574  }
45575  done: ;
45576#line 1284
45577  if (status == 0) {
45578#line 1285
45579    udev->reset_resume = (unsigned char)0;
45580  } else {
45581
45582  }
45583#line 1286
45584  return (status);
45585}
45586}
45587#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"
45588static void choose_wakeup(struct usb_device *udev , pm_message_t msg ) 
45589{ int w ;
45590  bool tmp ;
45591  enum usb_device_state __cil_tmp5 ;
45592  unsigned int __cil_tmp6 ;
45593  struct device *__cil_tmp7 ;
45594  enum usb_device_state __cil_tmp8 ;
45595  unsigned int __cil_tmp9 ;
45596  unsigned char __cil_tmp10 ;
45597  int __cil_tmp11 ;
45598  struct device *__cil_tmp12 ;
45599
45600  {
45601#line 1297
45602  if (msg.event == 1) {
45603#line 1297
45604    goto _L;
45605  } else
45606#line 1297
45607  if (msg.event == 8) {
45608    _L: 
45609    {
45610#line 1298
45611    __cil_tmp5 = udev->state;
45612#line 1298
45613    __cil_tmp6 = (unsigned int )__cil_tmp5;
45614#line 1298
45615    if (__cil_tmp6 != 8U) {
45616#line 1299
45617      udev->do_remote_wakeup = (unsigned char)0;
45618    } else {
45619
45620    }
45621    }
45622#line 1300
45623    return;
45624  } else {
45625
45626  }
45627  {
45628#line 1306
45629  __cil_tmp7 = & udev->dev;
45630#line 1306
45631  tmp = device_may_wakeup(__cil_tmp7);
45632#line 1306
45633  w = (int )tmp;
45634  }
45635  {
45636#line 1311
45637  __cil_tmp8 = udev->state;
45638#line 1311
45639  __cil_tmp9 = (unsigned int )__cil_tmp8;
45640#line 1311
45641  if (__cil_tmp9 == 8U) {
45642    {
45643#line 1311
45644    __cil_tmp10 = udev->do_remote_wakeup;
45645#line 1311
45646    __cil_tmp11 = (int )__cil_tmp10;
45647#line 1311
45648    if (__cil_tmp11 != w) {
45649      {
45650#line 1312
45651      __cil_tmp12 = & udev->dev;
45652#line 1312
45653      pm_runtime_resume(__cil_tmp12);
45654      }
45655    } else {
45656
45657    }
45658    }
45659  } else {
45660
45661  }
45662  }
45663#line 1313
45664  udev->do_remote_wakeup = (unsigned char )w;
45665#line 1314
45666  return;
45667}
45668}
45669#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"
45670int usb_suspend(struct device *dev , pm_message_t msg ) 
45671{ struct usb_device *udev ;
45672  struct device  const  *__mptr ;
45673  int tmp ;
45674  struct usb_device *__cil_tmp6 ;
45675
45676  {
45677  {
45678#line 1319
45679  __mptr = (struct device  const  *)dev;
45680#line 1319
45681  __cil_tmp6 = (struct usb_device *)__mptr;
45682#line 1319
45683  udev = __cil_tmp6 + 1152921504606846840UL;
45684#line 1321
45685  do_unbind_rebind(udev, 0);
45686#line 1322
45687  choose_wakeup(udev, msg);
45688#line 1323
45689  tmp = usb_suspend_both(udev, msg);
45690  }
45691#line 1323
45692  return (tmp);
45693}
45694}
45695#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"
45696int usb_resume(struct device *dev , pm_message_t msg ) 
45697{ struct usb_device *udev ;
45698  struct device  const  *__mptr ;
45699  int status ;
45700  struct usb_device *__cil_tmp6 ;
45701  enum usb_device_state __cil_tmp7 ;
45702  unsigned int __cil_tmp8 ;
45703
45704  {
45705#line 1329
45706  __mptr = (struct device  const  *)dev;
45707#line 1329
45708  __cil_tmp6 = (struct usb_device *)__mptr;
45709#line 1329
45710  udev = __cil_tmp6 + 1152921504606846840UL;
45711#line 1333
45712  if (msg.event == 0) {
45713    {
45714#line 1334
45715    __cil_tmp7 = udev->state;
45716#line 1334
45717    __cil_tmp8 = (unsigned int )__cil_tmp7;
45718#line 1334
45719    if (__cil_tmp8 != 0U) {
45720      {
45721#line 1335
45722      do_unbind_rebind(udev, 1);
45723      }
45724    } else {
45725
45726    }
45727    }
45728#line 1336
45729    status = 0;
45730  } else {
45731    {
45732#line 1343
45733    status = usb_resume_both(udev, msg);
45734    }
45735#line 1344
45736    if (status == 0) {
45737      {
45738#line 1345
45739      pm_runtime_disable(dev);
45740#line 1346
45741      pm_runtime_set_active(dev);
45742#line 1347
45743      pm_runtime_enable(dev);
45744#line 1348
45745      do_unbind_rebind(udev, 1);
45746      }
45747    } else {
45748
45749    }
45750  }
45751#line 1355
45752  if (status == -19) {
45753#line 1356
45754    status = 0;
45755  } else
45756#line 1355
45757  if (status == -108) {
45758#line 1356
45759    status = 0;
45760  } else {
45761
45762  }
45763#line 1357
45764  return (status);
45765}
45766}
45767#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"
45768void usb_enable_autosuspend(struct usb_device *udev ) 
45769{ struct device *__cil_tmp2 ;
45770
45771  {
45772  {
45773#line 1376
45774  __cil_tmp2 = & udev->dev;
45775#line 1376
45776  pm_runtime_allow(__cil_tmp2);
45777  }
45778#line 1377
45779  return;
45780}
45781}
45782#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"
45783void usb_disable_autosuspend(struct usb_device *udev ) 
45784{ struct device *__cil_tmp2 ;
45785
45786  {
45787  {
45788#line 1391
45789  __cil_tmp2 = & udev->dev;
45790#line 1391
45791  pm_runtime_forbid(__cil_tmp2);
45792  }
45793#line 1392
45794  return;
45795}
45796}
45797#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"
45798void usb_autosuspend_device(struct usb_device *udev ) 
45799{ int status ;
45800  struct device *__cil_tmp3 ;
45801
45802  {
45803  {
45804#line 1415
45805  usb_mark_last_busy(udev);
45806#line 1416
45807  __cil_tmp3 = & udev->dev;
45808#line 1416
45809  status = pm_runtime_put_sync_autosuspend(__cil_tmp3);
45810  }
45811#line 1419
45812  return;
45813}
45814}
45815#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"
45816int usb_autoresume_device(struct usb_device *udev ) 
45817{ int status ;
45818  struct device *__cil_tmp3 ;
45819  struct device *__cil_tmp4 ;
45820
45821  {
45822  {
45823#line 1444
45824  __cil_tmp3 = & udev->dev;
45825#line 1444
45826  status = pm_runtime_get_sync(__cil_tmp3);
45827  }
45828#line 1445
45829  if (status < 0) {
45830    {
45831#line 1446
45832    __cil_tmp4 = & udev->dev;
45833#line 1446
45834    pm_runtime_put_sync(__cil_tmp4);
45835    }
45836  } else {
45837
45838  }
45839#line 1450
45840  if (status > 0) {
45841#line 1451
45842    status = 0;
45843  } else {
45844
45845  }
45846#line 1452
45847  return (status);
45848}
45849}
45850#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"
45851void usb_autopm_put_interface(struct usb_interface *intf ) 
45852{ struct usb_device *udev ;
45853  struct usb_device *tmp ;
45854  int status ;
45855  atomic_t *__cil_tmp5 ;
45856  struct device *__cil_tmp6 ;
45857
45858  {
45859  {
45860#line 1472
45861  tmp = interface_to_usbdev(intf);
45862#line 1472
45863  udev = tmp;
45864#line 1475
45865  usb_mark_last_busy(udev);
45866#line 1476
45867  __cil_tmp5 = & intf->pm_usage_cnt;
45868#line 1476
45869  atomic_dec(__cil_tmp5);
45870#line 1477
45871  __cil_tmp6 = & intf->dev;
45872#line 1477
45873  status = pm_runtime_put_sync(__cil_tmp6);
45874  }
45875#line 1480
45876  return;
45877}
45878}
45879#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"
45880void usb_autopm_put_interface_async(struct usb_interface *intf ) 
45881{ struct usb_device *udev ;
45882  struct usb_device *tmp ;
45883  int status ;
45884  atomic_t *__cil_tmp5 ;
45885  struct device *__cil_tmp6 ;
45886
45887  {
45888  {
45889#line 1501
45890  tmp = interface_to_usbdev(intf);
45891#line 1501
45892  udev = tmp;
45893#line 1504
45894  usb_mark_last_busy(udev);
45895#line 1505
45896  __cil_tmp5 = & intf->pm_usage_cnt;
45897#line 1505
45898  atomic_dec(__cil_tmp5);
45899#line 1506
45900  __cil_tmp6 = & intf->dev;
45901#line 1506
45902  status = pm_runtime_put(__cil_tmp6);
45903  }
45904#line 1509
45905  return;
45906}
45907}
45908#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"
45909void usb_autopm_put_interface_no_suspend(struct usb_interface *intf ) 
45910{ struct usb_device *udev ;
45911  struct usb_device *tmp ;
45912  atomic_t *__cil_tmp4 ;
45913  struct device *__cil_tmp5 ;
45914
45915  {
45916  {
45917#line 1524
45918  tmp = interface_to_usbdev(intf);
45919#line 1524
45920  udev = tmp;
45921#line 1526
45922  usb_mark_last_busy(udev);
45923#line 1527
45924  __cil_tmp4 = & intf->pm_usage_cnt;
45925#line 1527
45926  atomic_dec(__cil_tmp4);
45927#line 1528
45928  __cil_tmp5 = & intf->dev;
45929#line 1528
45930  pm_runtime_put_noidle(__cil_tmp5);
45931  }
45932#line 1529
45933  return;
45934}
45935}
45936#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"
45937int usb_autopm_get_interface(struct usb_interface *intf ) 
45938{ int status ;
45939  struct device *__cil_tmp3 ;
45940  struct device *__cil_tmp4 ;
45941  atomic_t *__cil_tmp5 ;
45942
45943  {
45944  {
45945#line 1553
45946  __cil_tmp3 = & intf->dev;
45947#line 1553
45948  status = pm_runtime_get_sync(__cil_tmp3);
45949  }
45950#line 1554
45951  if (status < 0) {
45952    {
45953#line 1555
45954    __cil_tmp4 = & intf->dev;
45955#line 1555
45956    pm_runtime_put_sync(__cil_tmp4);
45957    }
45958  } else {
45959    {
45960#line 1557
45961    __cil_tmp5 = & intf->pm_usage_cnt;
45962#line 1557
45963    atomic_inc(__cil_tmp5);
45964    }
45965  }
45966#line 1561
45967  if (status > 0) {
45968#line 1562
45969    status = 0;
45970  } else {
45971
45972  }
45973#line 1563
45974  return (status);
45975}
45976}
45977#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"
45978int usb_autopm_get_interface_async(struct usb_interface *intf ) 
45979{ int status ;
45980  struct device *__cil_tmp3 ;
45981  struct device *__cil_tmp4 ;
45982  atomic_t *__cil_tmp5 ;
45983  atomic_t *__cil_tmp6 ;
45984
45985  {
45986  {
45987#line 1586
45988  __cil_tmp3 = & intf->dev;
45989#line 1586
45990  status = pm_runtime_get(__cil_tmp3);
45991  }
45992#line 1587
45993  if (status < 0) {
45994#line 1587
45995    if (status != -115) {
45996      {
45997#line 1588
45998      __cil_tmp4 = & intf->dev;
45999#line 1588
46000      pm_runtime_put_noidle(__cil_tmp4);
46001      }
46002    } else {
46003      {
46004#line 1590
46005      __cil_tmp5 = & intf->pm_usage_cnt;
46006#line 1590
46007      atomic_inc(__cil_tmp5);
46008      }
46009    }
46010  } else {
46011    {
46012#line 1590
46013    __cil_tmp6 = & intf->pm_usage_cnt;
46014#line 1590
46015    atomic_inc(__cil_tmp6);
46016    }
46017  }
46018#line 1594
46019  if (status > 0) {
46020#line 1595
46021    status = 0;
46022  } else {
46023
46024  }
46025#line 1596
46026  return (status);
46027}
46028}
46029#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"
46030void usb_autopm_get_interface_no_resume(struct usb_interface *intf ) 
46031{ struct usb_device *udev ;
46032  struct usb_device *tmp ;
46033  atomic_t *__cil_tmp4 ;
46034  struct device *__cil_tmp5 ;
46035
46036  {
46037  {
46038#line 1611
46039  tmp = interface_to_usbdev(intf);
46040#line 1611
46041  udev = tmp;
46042#line 1613
46043  usb_mark_last_busy(udev);
46044#line 1614
46045  __cil_tmp4 = & intf->pm_usage_cnt;
46046#line 1614
46047  atomic_inc(__cil_tmp4);
46048#line 1615
46049  __cil_tmp5 = & intf->dev;
46050#line 1615
46051  pm_runtime_get_noresume(__cil_tmp5);
46052  }
46053#line 1616
46054  return;
46055}
46056}
46057#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"
46058static int autosuspend_check(struct usb_device *udev ) 
46059{ int w ;
46060  int i ;
46061  struct usb_interface *intf ;
46062  int tmp ;
46063  struct usb_driver *driver ;
46064  struct device_driver  const  *__mptr ;
46065  bool tmp___0 ;
46066  int tmp___1 ;
46067  struct usb_host_config *__cil_tmp10 ;
46068  unsigned long __cil_tmp11 ;
46069  struct usb_host_config *__cil_tmp12 ;
46070  unsigned long __cil_tmp13 ;
46071  struct usb_host_config *__cil_tmp14 ;
46072  unsigned char *__cil_tmp15 ;
46073  unsigned char *__cil_tmp16 ;
46074  unsigned char __cil_tmp17 ;
46075  unsigned int __cil_tmp18 ;
46076  atomic_t *__cil_tmp19 ;
46077  atomic_t const   *__cil_tmp20 ;
46078  unsigned char __cil_tmp21 ;
46079  int __cil_tmp22 ;
46080  u32 __cil_tmp23 ;
46081  unsigned int __cil_tmp24 ;
46082  struct device_driver *__cil_tmp25 ;
46083  struct usb_driver *__cil_tmp26 ;
46084  int (*__cil_tmp27)(struct usb_interface * ) ;
46085  unsigned long __cil_tmp28 ;
46086  int (*__cil_tmp29)(struct usb_interface * ) ;
46087  unsigned long __cil_tmp30 ;
46088  unsigned char *__cil_tmp31 ;
46089  unsigned char *__cil_tmp32 ;
46090  unsigned char __cil_tmp33 ;
46091  unsigned int __cil_tmp34 ;
46092  struct usb_host_config *__cil_tmp35 ;
46093  __u8 __cil_tmp36 ;
46094  int __cil_tmp37 ;
46095  struct device *__cil_tmp38 ;
46096  struct device *__cil_tmp39 ;
46097  struct device  const  *__cil_tmp40 ;
46098
46099  {
46100#line 1628
46101  w = 0;
46102  {
46103#line 1629
46104  __cil_tmp10 = (struct usb_host_config *)0;
46105#line 1629
46106  __cil_tmp11 = (unsigned long )__cil_tmp10;
46107#line 1629
46108  __cil_tmp12 = udev->actconfig;
46109#line 1629
46110  __cil_tmp13 = (unsigned long )__cil_tmp12;
46111#line 1629
46112  if (__cil_tmp13 != __cil_tmp11) {
46113#line 1630
46114    i = 0;
46115#line 1630
46116    goto ldv_24740;
46117    ldv_24739: 
46118#line 1631
46119    __cil_tmp14 = udev->actconfig;
46120#line 1631
46121    intf = __cil_tmp14->interface[i];
46122    {
46123#line 1638
46124    __cil_tmp15 = (unsigned char *)intf;
46125#line 1638
46126    __cil_tmp16 = __cil_tmp15 + 848UL;
46127#line 1638
46128    __cil_tmp17 = *__cil_tmp16;
46129#line 1638
46130    __cil_tmp18 = (unsigned int )__cil_tmp17;
46131#line 1638
46132    if (__cil_tmp18 != 0U) {
46133#line 1639
46134      goto ldv_24735;
46135    } else {
46136
46137    }
46138    }
46139    {
46140#line 1640
46141    __cil_tmp19 = & intf->dev.power.usage_count;
46142#line 1640
46143    __cil_tmp20 = (atomic_t const   *)__cil_tmp19;
46144#line 1640
46145    tmp = atomic_read(__cil_tmp20);
46146    }
46147#line 1640
46148    if (tmp > 0) {
46149#line 1641
46150      return (-16);
46151    } else {
46152
46153    }
46154#line 1642
46155    __cil_tmp21 = intf->needs_remote_wakeup;
46156#line 1642
46157    __cil_tmp22 = (int )__cil_tmp21;
46158#line 1642
46159    w = __cil_tmp22 | w;
46160    {
46161#line 1648
46162    __cil_tmp23 = udev->quirks;
46163#line 1648
46164    __cil_tmp24 = __cil_tmp23 & 2U;
46165#line 1648
46166    if (__cil_tmp24 != 0U) {
46167#line 1651
46168      __cil_tmp25 = intf->dev.driver;
46169#line 1651
46170      __mptr = (struct device_driver  const  *)__cil_tmp25;
46171#line 1651
46172      __cil_tmp26 = (struct usb_driver *)__mptr;
46173#line 1651
46174      driver = __cil_tmp26 + 1152921504606846808UL;
46175      {
46176#line 1652
46177      __cil_tmp27 = (int (*)(struct usb_interface * ))0;
46178#line 1652
46179      __cil_tmp28 = (unsigned long )__cil_tmp27;
46180#line 1652
46181      __cil_tmp29 = driver->reset_resume;
46182#line 1652
46183      __cil_tmp30 = (unsigned long )__cil_tmp29;
46184#line 1652
46185      if (__cil_tmp30 == __cil_tmp28) {
46186#line 1654
46187        return (-95);
46188      } else {
46189        {
46190#line 1652
46191        __cil_tmp31 = (unsigned char *)intf;
46192#line 1652
46193        __cil_tmp32 = __cil_tmp31 + 40UL;
46194#line 1652
46195        __cil_tmp33 = *__cil_tmp32;
46196#line 1652
46197        __cil_tmp34 = (unsigned int )__cil_tmp33;
46198#line 1652
46199        if (__cil_tmp34 != 0U) {
46200#line 1654
46201          return (-95);
46202        } else {
46203
46204        }
46205        }
46206      }
46207      }
46208    } else {
46209
46210    }
46211    }
46212    ldv_24735: 
46213#line 1630
46214    i = i + 1;
46215    ldv_24740: ;
46216    {
46217#line 1630
46218    __cil_tmp35 = udev->actconfig;
46219#line 1630
46220    __cil_tmp36 = __cil_tmp35->desc.bNumInterfaces;
46221#line 1630
46222    __cil_tmp37 = (int )__cil_tmp36;
46223#line 1630
46224    if (__cil_tmp37 > i) {
46225#line 1631
46226      goto ldv_24739;
46227    } else {
46228#line 1633
46229      goto ldv_24741;
46230    }
46231    }
46232    ldv_24741: ;
46233  } else {
46234
46235  }
46236  }
46237#line 1658
46238  if (w != 0) {
46239    {
46240#line 1658
46241    __cil_tmp38 = & udev->dev;
46242#line 1658
46243    tmp___0 = device_can_wakeup(__cil_tmp38);
46244    }
46245#line 1658
46246    if (tmp___0) {
46247#line 1658
46248      tmp___1 = 0;
46249    } else {
46250#line 1658
46251      tmp___1 = 1;
46252    }
46253#line 1658
46254    if (tmp___1) {
46255      {
46256#line 1659
46257      __cil_tmp39 = & udev->dev;
46258#line 1659
46259      __cil_tmp40 = (struct device  const  *)__cil_tmp39;
46260#line 1659
46261      dev_printk("<7>", __cil_tmp40, "remote wakeup needed for autosuspend\n");
46262      }
46263#line 1660
46264      return (-95);
46265    } else {
46266
46267    }
46268  } else {
46269
46270  }
46271#line 1662
46272  udev->do_remote_wakeup = (unsigned char )w;
46273#line 1663
46274  return (0);
46275}
46276}
46277#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"
46278int usb_runtime_suspend(struct device *dev ) 
46279{ struct usb_device *udev ;
46280  struct device  const  *__mptr ;
46281  int status ;
46282  int tmp ;
46283  struct pm_message __constr_expr_0 ;
46284  struct usb_device *__cil_tmp7 ;
46285
46286  {
46287  {
46288#line 1668
46289  __mptr = (struct device  const  *)dev;
46290#line 1668
46291  __cil_tmp7 = (struct usb_device *)__mptr;
46292#line 1668
46293  udev = __cil_tmp7 + 1152921504606846840UL;
46294#line 1675
46295  tmp = autosuspend_check(udev);
46296  }
46297#line 1675
46298  if (tmp != 0) {
46299#line 1676
46300    return (-11);
46301  } else {
46302
46303  }
46304  {
46305#line 1678
46306  __constr_expr_0.event = 1026;
46307#line 1678
46308  status = usb_suspend_both(udev, __constr_expr_0);
46309  }
46310#line 1682
46311  if (status != 0) {
46312#line 1683
46313    return (-16);
46314  } else {
46315
46316  }
46317#line 1684
46318  return (status);
46319}
46320}
46321#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"
46322int usb_runtime_resume(struct device *dev ) 
46323{ struct usb_device *udev ;
46324  struct device  const  *__mptr ;
46325  int status ;
46326  struct pm_message __constr_expr_0 ;
46327  struct usb_device *__cil_tmp6 ;
46328
46329  {
46330  {
46331#line 1689
46332  __mptr = (struct device  const  *)dev;
46333#line 1689
46334  __cil_tmp6 = (struct usb_device *)__mptr;
46335#line 1689
46336  udev = __cil_tmp6 + 1152921504606846840UL;
46337#line 1695
46338  __constr_expr_0.event = 1040;
46339#line 1695
46340  status = usb_resume_both(udev, __constr_expr_0);
46341  }
46342#line 1696
46343  return (status);
46344}
46345}
46346#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"
46347int usb_runtime_idle(struct device *dev ) 
46348{ struct usb_device *udev ;
46349  struct device  const  *__mptr ;
46350  int tmp ;
46351  struct usb_device *__cil_tmp5 ;
46352
46353  {
46354  {
46355#line 1701
46356  __mptr = (struct device  const  *)dev;
46357#line 1701
46358  __cil_tmp5 = (struct usb_device *)__mptr;
46359#line 1701
46360  udev = __cil_tmp5 + 1152921504606846840UL;
46361#line 1706
46362  tmp = autosuspend_check(udev);
46363  }
46364#line 1706
46365  if (tmp == 0) {
46366    {
46367#line 1707
46368    pm_runtime_autosuspend(dev);
46369    }
46370  } else {
46371
46372  }
46373#line 1708
46374  return (0);
46375}
46376}
46377#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"
46378struct bus_type usb_bus_type  = 
46379#line 1713
46380     {"usb", (struct bus_attribute *)0, (struct device_attribute *)0, (struct driver_attribute *)0,
46381    & usb_device_match, & usb_uevent, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
46382    (void (*)(struct device * ))0, (int (*)(struct device * , pm_message_t  ))0, (int (*)(struct device * ))0,
46383    (struct dev_pm_ops  const  *)0, (struct subsys_private *)0};
46384#line 34 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/string_64.h"
46385extern void *__memcpy(void * , void const   * , size_t  ) ;
46386#line 488 "include/linux/usb/ch9.h"
46387__inline static int usb_endpoint_xfer_isoc(struct usb_endpoint_descriptor  const  *epd ) 
46388{ __u8 __cil_tmp2 ;
46389  int __cil_tmp3 ;
46390  int __cil_tmp4 ;
46391
46392  {
46393  {
46394#line 491
46395  __cil_tmp2 = epd->bmAttributes;
46396#line 491
46397  __cil_tmp3 = (int )__cil_tmp2;
46398#line 491
46399  __cil_tmp4 = __cil_tmp3 & 3;
46400#line 491
46401  return (__cil_tmp4 == 1);
46402  }
46403}
46404}
46405#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"
46406__inline static char const   *plural(int n ) 
46407{ char const   *tmp ;
46408
46409  {
46410#line 28
46411  if (n == 1) {
46412#line 28
46413    tmp = "";
46414  } else {
46415#line 28
46416    tmp = "s";
46417  }
46418#line 28
46419  return (tmp);
46420}
46421}
46422#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"
46423static int find_next_descriptor(unsigned char *buffer , int size , int dt1 , int dt2 ,
46424                                int *num_skipped ) 
46425{ struct usb_descriptor_header *h ;
46426  int n ;
46427  unsigned char *buffer0 ;
46428  __u8 __cil_tmp9 ;
46429  int __cil_tmp10 ;
46430  __u8 __cil_tmp11 ;
46431  int __cil_tmp12 ;
46432  __u8 __cil_tmp13 ;
46433  unsigned long __cil_tmp14 ;
46434  __u8 __cil_tmp15 ;
46435  int __cil_tmp16 ;
46436  int *__cil_tmp17 ;
46437  unsigned long __cil_tmp18 ;
46438  unsigned long __cil_tmp19 ;
46439  long __cil_tmp20 ;
46440  unsigned int __cil_tmp21 ;
46441  long __cil_tmp22 ;
46442  unsigned int __cil_tmp23 ;
46443  unsigned int __cil_tmp24 ;
46444
46445  {
46446#line 35
46447  n = 0;
46448#line 36
46449  buffer0 = buffer;
46450#line 39
46451  goto ldv_24241;
46452  ldv_24240: 
46453#line 40
46454  h = (struct usb_descriptor_header *)buffer;
46455  {
46456#line 41
46457  __cil_tmp9 = h->bDescriptorType;
46458#line 41
46459  __cil_tmp10 = (int )__cil_tmp9;
46460#line 41
46461  if (__cil_tmp10 == dt1) {
46462#line 42
46463    goto ldv_24239;
46464  } else {
46465    {
46466#line 41
46467    __cil_tmp11 = h->bDescriptorType;
46468#line 41
46469    __cil_tmp12 = (int )__cil_tmp11;
46470#line 41
46471    if (__cil_tmp12 == dt2) {
46472#line 42
46473      goto ldv_24239;
46474    } else {
46475
46476    }
46477    }
46478  }
46479  }
46480#line 43
46481  __cil_tmp13 = h->bLength;
46482#line 43
46483  __cil_tmp14 = (unsigned long )__cil_tmp13;
46484#line 43
46485  buffer = buffer + __cil_tmp14;
46486#line 44
46487  __cil_tmp15 = h->bLength;
46488#line 44
46489  __cil_tmp16 = (int )__cil_tmp15;
46490#line 44
46491  size = size - __cil_tmp16;
46492#line 45
46493  n = n + 1;
46494  ldv_24241: ;
46495#line 39
46496  if (size > 0) {
46497#line 40
46498    goto ldv_24240;
46499  } else {
46500#line 42
46501    goto ldv_24239;
46502  }
46503  ldv_24239: ;
46504  {
46505#line 50
46506  __cil_tmp17 = (int *)0;
46507#line 50
46508  __cil_tmp18 = (unsigned long )__cil_tmp17;
46509#line 50
46510  __cil_tmp19 = (unsigned long )num_skipped;
46511#line 50
46512  if (__cil_tmp19 != __cil_tmp18) {
46513#line 51
46514    *num_skipped = n;
46515  } else {
46516
46517  }
46518  }
46519  {
46520#line 52
46521  __cil_tmp20 = (long )buffer0;
46522#line 52
46523  __cil_tmp21 = (unsigned int )__cil_tmp20;
46524#line 52
46525  __cil_tmp22 = (long )buffer;
46526#line 52
46527  __cil_tmp23 = (unsigned int )__cil_tmp22;
46528#line 52
46529  __cil_tmp24 = __cil_tmp23 - __cil_tmp21;
46530#line 52
46531  return ((int )__cil_tmp24);
46532  }
46533}
46534}
46535#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"
46536static void usb_parse_ss_endpoint_companion(struct device *ddev , int cfgno , int inum ,
46537                                            int asnum , struct usb_host_endpoint *ep ,
46538                                            unsigned char *buffer , int size ) 
46539{ struct usb_ss_ep_comp_descriptor *desc ;
46540  int max_tx ;
46541  int tmp ;
46542  int tmp___0 ;
46543  size_t __len ;
46544  void *__ret ;
46545  int tmp___1 ;
46546  char *tmp___3 ;
46547  int tmp___4 ;
46548  int tmp___5 ;
46549  int tmp___6 ;
46550  int tmp___7 ;
46551  int tmp___8 ;
46552  int tmp___9 ;
46553  int tmp___10 ;
46554  char *tmp___12 ;
46555  int tmp___13 ;
46556  __u8 __cil_tmp25 ;
46557  unsigned int __cil_tmp26 ;
46558  struct device  const  *__cil_tmp27 ;
46559  __u8 __cil_tmp28 ;
46560  int __cil_tmp29 ;
46561  struct usb_endpoint_descriptor *__cil_tmp30 ;
46562  struct usb_endpoint_descriptor  const  *__cil_tmp31 ;
46563  struct usb_endpoint_descriptor *__cil_tmp32 ;
46564  struct usb_endpoint_descriptor  const  *__cil_tmp33 ;
46565  struct usb_ss_ep_comp_descriptor *__cil_tmp34 ;
46566  void *__cil_tmp35 ;
46567  void const   *__cil_tmp36 ;
46568  struct usb_ss_ep_comp_descriptor *__cil_tmp37 ;
46569  void *__cil_tmp38 ;
46570  void const   *__cil_tmp39 ;
46571  struct usb_endpoint_descriptor *__cil_tmp40 ;
46572  struct usb_endpoint_descriptor  const  *__cil_tmp41 ;
46573  __u8 __cil_tmp42 ;
46574  unsigned int __cil_tmp43 ;
46575  struct device  const  *__cil_tmp44 ;
46576  __u8 __cil_tmp45 ;
46577  int __cil_tmp46 ;
46578  __u8 __cil_tmp47 ;
46579  int __cil_tmp48 ;
46580  __u8 __cil_tmp49 ;
46581  unsigned int __cil_tmp50 ;
46582  struct device  const  *__cil_tmp51 ;
46583  __u8 __cil_tmp52 ;
46584  int __cil_tmp53 ;
46585  __u8 __cil_tmp54 ;
46586  int __cil_tmp55 ;
46587  struct usb_endpoint_descriptor *__cil_tmp56 ;
46588  struct usb_endpoint_descriptor  const  *__cil_tmp57 ;
46589  struct usb_endpoint_descriptor *__cil_tmp58 ;
46590  struct usb_endpoint_descriptor  const  *__cil_tmp59 ;
46591  __u8 __cil_tmp60 ;
46592  unsigned int __cil_tmp61 ;
46593  struct usb_endpoint_descriptor *__cil_tmp62 ;
46594  struct usb_endpoint_descriptor  const  *__cil_tmp63 ;
46595  struct device  const  *__cil_tmp64 ;
46596  __u8 __cil_tmp65 ;
46597  int __cil_tmp66 ;
46598  __u8 __cil_tmp67 ;
46599  int __cil_tmp68 ;
46600  struct usb_endpoint_descriptor *__cil_tmp69 ;
46601  struct usb_endpoint_descriptor  const  *__cil_tmp70 ;
46602  __u8 __cil_tmp71 ;
46603  unsigned int __cil_tmp72 ;
46604  struct device  const  *__cil_tmp73 ;
46605  __u8 __cil_tmp74 ;
46606  int __cil_tmp75 ;
46607  struct usb_endpoint_descriptor *__cil_tmp76 ;
46608  struct usb_endpoint_descriptor  const  *__cil_tmp77 ;
46609  __u8 __cil_tmp78 ;
46610  unsigned int __cil_tmp79 ;
46611  struct device  const  *__cil_tmp80 ;
46612  __u8 __cil_tmp81 ;
46613  int __cil_tmp82 ;
46614  int __cil_tmp83 ;
46615  __u8 __cil_tmp84 ;
46616  int __cil_tmp85 ;
46617  struct usb_endpoint_descriptor *__cil_tmp86 ;
46618  struct usb_endpoint_descriptor  const  *__cil_tmp87 ;
46619  __u8 __cil_tmp88 ;
46620  int __cil_tmp89 ;
46621  int __cil_tmp90 ;
46622  __u8 __cil_tmp91 ;
46623  int __cil_tmp92 ;
46624  int __cil_tmp93 ;
46625  __le16 __cil_tmp94 ;
46626  int __cil_tmp95 ;
46627  int __cil_tmp96 ;
46628  struct usb_endpoint_descriptor *__cil_tmp97 ;
46629  struct usb_endpoint_descriptor  const  *__cil_tmp98 ;
46630  __u8 __cil_tmp99 ;
46631  int __cil_tmp100 ;
46632  int __cil_tmp101 ;
46633  __le16 __cil_tmp102 ;
46634  int __cil_tmp103 ;
46635  __le16 __cil_tmp104 ;
46636  int __cil_tmp105 ;
46637  struct usb_endpoint_descriptor *__cil_tmp106 ;
46638  struct usb_endpoint_descriptor  const  *__cil_tmp107 ;
46639  struct device  const  *__cil_tmp108 ;
46640  __le16 __cil_tmp109 ;
46641  int __cil_tmp110 ;
46642  __u8 __cil_tmp111 ;
46643  int __cil_tmp112 ;
46644
46645  {
46646#line 65
46647  desc = (struct usb_ss_ep_comp_descriptor *)buffer;
46648  {
46649#line 66
46650  __cil_tmp25 = desc->bDescriptorType;
46651#line 66
46652  __cil_tmp26 = (unsigned int )__cil_tmp25;
46653#line 66
46654  if (__cil_tmp26 != 48U) {
46655#line 66
46656    goto _L;
46657  } else
46658#line 66
46659  if (size <= 5) {
46660    _L: 
46661    {
46662#line 68
46663    __cil_tmp27 = (struct device  const  *)ddev;
46664#line 68
46665    __cil_tmp28 = ep->desc.bEndpointAddress;
46666#line 68
46667    __cil_tmp29 = (int )__cil_tmp28;
46668#line 68
46669    dev_warn(__cil_tmp27, "No SuperSpeed endpoint companion for config %d  interface %d altsetting %d ep %d: using minimum values\n",
46670             cfgno, inum, asnum, __cil_tmp29);
46671#line 80
46672    ep->ss_ep_comp.bLength = (__u8 )6U;
46673#line 81
46674    ep->ss_ep_comp.bDescriptorType = (__u8 )48U;
46675#line 82
46676    __cil_tmp30 = & ep->desc;
46677#line 82
46678    __cil_tmp31 = (struct usb_endpoint_descriptor  const  *)__cil_tmp30;
46679#line 82
46680    tmp = usb_endpoint_xfer_isoc(__cil_tmp31);
46681    }
46682#line 82
46683    if (tmp != 0) {
46684#line 84
46685      ep->ss_ep_comp.wBytesPerInterval = ep->desc.wMaxPacketSize;
46686    } else {
46687      {
46688#line 82
46689      __cil_tmp32 = & ep->desc;
46690#line 82
46691      __cil_tmp33 = (struct usb_endpoint_descriptor  const  *)__cil_tmp32;
46692#line 82
46693      tmp___0 = usb_endpoint_xfer_int(__cil_tmp33);
46694      }
46695#line 82
46696      if (tmp___0 != 0) {
46697#line 84
46698        ep->ss_ep_comp.wBytesPerInterval = ep->desc.wMaxPacketSize;
46699      } else {
46700
46701      }
46702    }
46703#line 86
46704    return;
46705  } else {
46706
46707  }
46708  }
46709#line 89
46710  __len = 6UL;
46711#line 89
46712  if (__len > 63UL) {
46713    {
46714#line 89
46715    __cil_tmp34 = & ep->ss_ep_comp;
46716#line 89
46717    __cil_tmp35 = (void *)__cil_tmp34;
46718#line 89
46719    __cil_tmp36 = (void const   *)desc;
46720#line 89
46721    __ret = __memcpy(__cil_tmp35, __cil_tmp36, __len);
46722    }
46723  } else {
46724    {
46725#line 89
46726    __cil_tmp37 = & ep->ss_ep_comp;
46727#line 89
46728    __cil_tmp38 = (void *)__cil_tmp37;
46729#line 89
46730    __cil_tmp39 = (void const   *)desc;
46731#line 89
46732    __ret = __builtin_memcpy(__cil_tmp38, __cil_tmp39, __len);
46733    }
46734  }
46735  {
46736#line 92
46737  __cil_tmp40 = & ep->desc;
46738#line 92
46739  __cil_tmp41 = (struct usb_endpoint_descriptor  const  *)__cil_tmp40;
46740#line 92
46741  tmp___1 = usb_endpoint_xfer_control(__cil_tmp41);
46742  }
46743#line 92
46744  if (tmp___1 != 0) {
46745    {
46746#line 92
46747    __cil_tmp42 = desc->bMaxBurst;
46748#line 92
46749    __cil_tmp43 = (unsigned int )__cil_tmp42;
46750#line 92
46751    if (__cil_tmp43 != 0U) {
46752      {
46753#line 93
46754      __cil_tmp44 = (struct device  const  *)ddev;
46755#line 93
46756      __cil_tmp45 = desc->bMaxBurst;
46757#line 93
46758      __cil_tmp46 = (int )__cil_tmp45;
46759#line 93
46760      __cil_tmp47 = ep->desc.bEndpointAddress;
46761#line 93
46762      __cil_tmp48 = (int )__cil_tmp47;
46763#line 93
46764      dev_warn(__cil_tmp44, "Control endpoint with bMaxBurst = %d in config %d interface %d altsetting %d ep %d: setting to zero\n",
46765               __cil_tmp46, cfgno, inum, asnum, __cil_tmp48);
46766#line 97
46767      ep->ss_ep_comp.bMaxBurst = (__u8 )0U;
46768      }
46769    } else {
46770#line 92
46771      goto _L___0;
46772    }
46773    }
46774  } else {
46775    _L___0: 
46776    {
46777#line 98
46778    __cil_tmp49 = desc->bMaxBurst;
46779#line 98
46780    __cil_tmp50 = (unsigned int )__cil_tmp49;
46781#line 98
46782    if (__cil_tmp50 > 15U) {
46783      {
46784#line 99
46785      __cil_tmp51 = (struct device  const  *)ddev;
46786#line 99
46787      __cil_tmp52 = desc->bMaxBurst;
46788#line 99
46789      __cil_tmp53 = (int )__cil_tmp52;
46790#line 99
46791      __cil_tmp54 = ep->desc.bEndpointAddress;
46792#line 99
46793      __cil_tmp55 = (int )__cil_tmp54;
46794#line 99
46795      dev_warn(__cil_tmp51, "Endpoint with bMaxBurst = %d in config %d interface %d altsetting %d ep %d: setting to 15\n",
46796               __cil_tmp53, cfgno, inum, asnum, __cil_tmp55);
46797#line 103
46798      ep->ss_ep_comp.bMaxBurst = (__u8 )15U;
46799      }
46800    } else {
46801
46802    }
46803    }
46804  }
46805  {
46806#line 106
46807  __cil_tmp56 = & ep->desc;
46808#line 106
46809  __cil_tmp57 = (struct usb_endpoint_descriptor  const  *)__cil_tmp56;
46810#line 106
46811  tmp___7 = usb_endpoint_xfer_control(__cil_tmp57);
46812  }
46813#line 106
46814  if (tmp___7 != 0) {
46815#line 106
46816    goto _L___3;
46817  } else {
46818    {
46819#line 106
46820    __cil_tmp58 = & ep->desc;
46821#line 106
46822    __cil_tmp59 = (struct usb_endpoint_descriptor  const  *)__cil_tmp58;
46823#line 106
46824    tmp___8 = usb_endpoint_xfer_int(__cil_tmp59);
46825    }
46826#line 106
46827    if (tmp___8 != 0) {
46828      _L___3: 
46829      {
46830#line 106
46831      __cil_tmp60 = desc->bmAttributes;
46832#line 106
46833      __cil_tmp61 = (unsigned int )__cil_tmp60;
46834#line 106
46835      if (__cil_tmp61 != 0U) {
46836        {
46837#line 109
46838        __cil_tmp62 = & ep->desc;
46839#line 109
46840        __cil_tmp63 = (struct usb_endpoint_descriptor  const  *)__cil_tmp62;
46841#line 109
46842        tmp___4 = usb_endpoint_xfer_control(__cil_tmp63);
46843        }
46844#line 109
46845        if (tmp___4 != 0) {
46846#line 109
46847          tmp___3 = (char *)"Control";
46848        } else {
46849#line 109
46850          tmp___3 = (char *)"Bulk";
46851        }
46852        {
46853#line 109
46854        __cil_tmp64 = (struct device  const  *)ddev;
46855#line 109
46856        __cil_tmp65 = desc->bmAttributes;
46857#line 109
46858        __cil_tmp66 = (int )__cil_tmp65;
46859#line 109
46860        __cil_tmp67 = ep->desc.bEndpointAddress;
46861#line 109
46862        __cil_tmp68 = (int )__cil_tmp67;
46863#line 109
46864        dev_warn(__cil_tmp64, "%s endpoint with bmAttributes = %d in config %d interface %d altsetting %d ep %d: setting to zero\n",
46865                 tmp___3, __cil_tmp66, cfgno, inum, asnum, __cil_tmp68);
46866#line 115
46867        ep->ss_ep_comp.bmAttributes = (__u8 )0U;
46868        }
46869      } else {
46870#line 106
46871        goto _L___2;
46872      }
46873      }
46874    } else {
46875      _L___2: 
46876      {
46877#line 116
46878      __cil_tmp69 = & ep->desc;
46879#line 116
46880      __cil_tmp70 = (struct usb_endpoint_descriptor  const  *)__cil_tmp69;
46881#line 116
46882      tmp___6 = usb_endpoint_xfer_bulk(__cil_tmp70);
46883      }
46884#line 116
46885      if (tmp___6 != 0) {
46886        {
46887#line 116
46888        __cil_tmp71 = desc->bmAttributes;
46889#line 116
46890        __cil_tmp72 = (unsigned int )__cil_tmp71;
46891#line 116
46892        if (__cil_tmp72 > 16U) {
46893          {
46894#line 118
46895          __cil_tmp73 = (struct device  const  *)ddev;
46896#line 118
46897          __cil_tmp74 = ep->desc.bEndpointAddress;
46898#line 118
46899          __cil_tmp75 = (int )__cil_tmp74;
46900#line 118
46901          dev_warn(__cil_tmp73, "Bulk endpoint with more than 65536 streams in config %d interface %d altsetting %d ep %d: setting to max\n",
46902                   cfgno, inum, asnum, __cil_tmp75);
46903#line 122
46904          ep->ss_ep_comp.bmAttributes = (__u8 )16U;
46905          }
46906        } else {
46907#line 116
46908          goto _L___1;
46909        }
46910        }
46911      } else {
46912        _L___1: 
46913        {
46914#line 123
46915        __cil_tmp76 = & ep->desc;
46916#line 123
46917        __cil_tmp77 = (struct usb_endpoint_descriptor  const  *)__cil_tmp76;
46918#line 123
46919        tmp___5 = usb_endpoint_xfer_isoc(__cil_tmp77);
46920        }
46921#line 123
46922        if (tmp___5 != 0) {
46923          {
46924#line 123
46925          __cil_tmp78 = desc->bmAttributes;
46926#line 123
46927          __cil_tmp79 = (unsigned int )__cil_tmp78;
46928#line 123
46929          if (__cil_tmp79 > 2U) {
46930            {
46931#line 125
46932            __cil_tmp80 = (struct device  const  *)ddev;
46933#line 125
46934            __cil_tmp81 = desc->bmAttributes;
46935#line 125
46936            __cil_tmp82 = (int )__cil_tmp81;
46937#line 125
46938            __cil_tmp83 = __cil_tmp82 + 1;
46939#line 125
46940            __cil_tmp84 = ep->desc.bEndpointAddress;
46941#line 125
46942            __cil_tmp85 = (int )__cil_tmp84;
46943#line 125
46944            dev_warn(__cil_tmp80, "Isoc endpoint has Mult of %d in config %d interface %d altsetting %d ep %d: setting to 3\n",
46945                     __cil_tmp83, cfgno, inum, asnum, __cil_tmp85);
46946#line 129
46947            ep->ss_ep_comp.bmAttributes = (__u8 )2U;
46948            }
46949          } else {
46950
46951          }
46952          }
46953        } else {
46954
46955        }
46956      }
46957    }
46958  }
46959  {
46960#line 132
46961  __cil_tmp86 = & ep->desc;
46962#line 132
46963  __cil_tmp87 = (struct usb_endpoint_descriptor  const  *)__cil_tmp86;
46964#line 132
46965  tmp___10 = usb_endpoint_xfer_isoc(__cil_tmp87);
46966  }
46967#line 132
46968  if (tmp___10 != 0) {
46969#line 133
46970    __cil_tmp88 = desc->bmAttributes;
46971#line 133
46972    __cil_tmp89 = (int )__cil_tmp88;
46973#line 133
46974    __cil_tmp90 = __cil_tmp89 + 1;
46975#line 133
46976    __cil_tmp91 = desc->bMaxBurst;
46977#line 133
46978    __cil_tmp92 = (int )__cil_tmp91;
46979#line 133
46980    __cil_tmp93 = __cil_tmp92 + 1;
46981#line 133
46982    __cil_tmp94 = ep->desc.wMaxPacketSize;
46983#line 133
46984    __cil_tmp95 = (int )__cil_tmp94;
46985#line 133
46986    __cil_tmp96 = __cil_tmp95 * __cil_tmp93;
46987#line 133
46988    max_tx = __cil_tmp96 * __cil_tmp90;
46989  } else {
46990    {
46991#line 135
46992    __cil_tmp97 = & ep->desc;
46993#line 135
46994    __cil_tmp98 = (struct usb_endpoint_descriptor  const  *)__cil_tmp97;
46995#line 135
46996    tmp___9 = usb_endpoint_xfer_int(__cil_tmp98);
46997    }
46998#line 135
46999    if (tmp___9 != 0) {
47000#line 136
47001      __cil_tmp99 = desc->bMaxBurst;
47002#line 136
47003      __cil_tmp100 = (int )__cil_tmp99;
47004#line 136
47005      __cil_tmp101 = __cil_tmp100 + 1;
47006#line 136
47007      __cil_tmp102 = ep->desc.wMaxPacketSize;
47008#line 136
47009      __cil_tmp103 = (int )__cil_tmp102;
47010#line 136
47011      max_tx = __cil_tmp103 * __cil_tmp101;
47012    } else {
47013#line 138
47014      max_tx = 999999;
47015    }
47016  }
47017  {
47018#line 139
47019  __cil_tmp104 = desc->wBytesPerInterval;
47020#line 139
47021  __cil_tmp105 = (int )__cil_tmp104;
47022#line 139
47023  if (__cil_tmp105 > max_tx) {
47024    {
47025#line 140
47026    __cil_tmp106 = & ep->desc;
47027#line 140
47028    __cil_tmp107 = (struct usb_endpoint_descriptor  const  *)__cil_tmp106;
47029#line 140
47030    tmp___13 = usb_endpoint_xfer_isoc(__cil_tmp107);
47031    }
47032#line 140
47033    if (tmp___13 != 0) {
47034#line 140
47035      tmp___12 = (char *)"Isoc";
47036    } else {
47037#line 140
47038      tmp___12 = (char *)"Int";
47039    }
47040    {
47041#line 140
47042    __cil_tmp108 = (struct device  const  *)ddev;
47043#line 140
47044    __cil_tmp109 = desc->wBytesPerInterval;
47045#line 140
47046    __cil_tmp110 = (int )__cil_tmp109;
47047#line 140
47048    __cil_tmp111 = ep->desc.bEndpointAddress;
47049#line 140
47050    __cil_tmp112 = (int )__cil_tmp111;
47051#line 140
47052    dev_warn(__cil_tmp108, "%s endpoint with wBytesPerInterval of %d in config %d interface %d altsetting %d ep %d: setting to %d\n",
47053             tmp___12, __cil_tmp110, cfgno, inum, asnum, __cil_tmp112, max_tx);
47054#line 147
47055    ep->ss_ep_comp.wBytesPerInterval = (__le16 )max_tx;
47056    }
47057  } else {
47058
47059  }
47060  }
47061#line 149
47062  return;
47063}
47064}
47065#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"
47066static int usb_parse_endpoint(struct device *ddev , int cfgno , int inum , int asnum ,
47067                              struct usb_host_interface *ifp , int num_ep , unsigned char *buffer ,
47068                              int size ) 
47069{ unsigned char *buffer0 ;
47070  struct usb_endpoint_descriptor *d ;
47071  struct usb_host_endpoint *endpoint ;
47072  int n ;
47073  int i ;
47074  int j ;
47075  int retval ;
47076  size_t __len ;
47077  void *__ret ;
47078  struct device  const  *__mptr ;
47079  struct device  const  *__mptr___0 ;
47080  int tmp ;
47081  int tmp___0 ;
47082  struct device  const  *__mptr___1 ;
47083  int tmp___1 ;
47084  unsigned int maxp ;
47085  struct device  const  *__mptr___2 ;
47086  int tmp___2 ;
47087  struct device  const  *__mptr___3 ;
47088  char const   *tmp___3 ;
47089  __u8 __cil_tmp29 ;
47090  unsigned long __cil_tmp30 ;
47091  __u8 __cil_tmp31 ;
47092  int __cil_tmp32 ;
47093  __u8 __cil_tmp33 ;
47094  unsigned int __cil_tmp34 ;
47095  __u8 __cil_tmp35 ;
47096  unsigned int __cil_tmp36 ;
47097  struct device  const  *__cil_tmp37 ;
47098  __u8 __cil_tmp38 ;
47099  int __cil_tmp39 ;
47100  __u8 __cil_tmp40 ;
47101  int __cil_tmp41 ;
47102  struct device  const  *__cil_tmp42 ;
47103  __u8 __cil_tmp43 ;
47104  int __cil_tmp44 ;
47105  struct device  const  *__cil_tmp45 ;
47106  __u8 __cil_tmp46 ;
47107  int __cil_tmp47 ;
47108  __u8 __cil_tmp48 ;
47109  int __cil_tmp49 ;
47110  __u8 __cil_tmp50 ;
47111  unsigned long __cil_tmp51 ;
47112  struct usb_host_endpoint *__cil_tmp52 ;
47113  __u8 __cil_tmp53 ;
47114  int __cil_tmp54 ;
47115  int __cil_tmp55 ;
47116  struct usb_endpoint_descriptor *__cil_tmp56 ;
47117  void *__cil_tmp57 ;
47118  void const   *__cil_tmp58 ;
47119  struct list_head *__cil_tmp59 ;
47120  struct usb_endpoint_descriptor  const  *__cil_tmp60 ;
47121  struct usb_device *__cil_tmp61 ;
47122  struct usb_device *__cil_tmp62 ;
47123  enum usb_device_speed __cil_tmp63 ;
47124  unsigned int __cil_tmp64 ;
47125  int __cil_tmp65 ;
47126  struct usb_device *__cil_tmp66 ;
47127  struct usb_device *__cil_tmp67 ;
47128  enum usb_device_speed __cil_tmp68 ;
47129  unsigned int __cil_tmp69 ;
47130  int __cil_tmp70 ;
47131  __u8 __cil_tmp71 ;
47132  int __cil_tmp72 ;
47133  int __cil_tmp73 ;
47134  struct usb_endpoint_descriptor  const  *__cil_tmp74 ;
47135  struct usb_device *__cil_tmp75 ;
47136  struct usb_device *__cil_tmp76 ;
47137  enum usb_device_speed __cil_tmp77 ;
47138  unsigned int __cil_tmp78 ;
47139  int __cil_tmp79 ;
47140  __u8 __cil_tmp80 ;
47141  int __cil_tmp81 ;
47142  struct device  const  *__cil_tmp82 ;
47143  __u8 __cil_tmp83 ;
47144  int __cil_tmp84 ;
47145  __u8 __cil_tmp85 ;
47146  int __cil_tmp86 ;
47147  __u8 __cil_tmp87 ;
47148  int __cil_tmp88 ;
47149  struct device  const  *__cil_tmp89 ;
47150  __u8 __cil_tmp90 ;
47151  int __cil_tmp91 ;
47152  __u8 __cil_tmp92 ;
47153  int __cil_tmp93 ;
47154  struct usb_device *__cil_tmp94 ;
47155  struct usb_device *__cil_tmp95 ;
47156  enum usb_device_speed __cil_tmp96 ;
47157  unsigned int __cil_tmp97 ;
47158  struct usb_endpoint_descriptor  const  *__cil_tmp98 ;
47159  struct device  const  *__cil_tmp99 ;
47160  __u8 __cil_tmp100 ;
47161  int __cil_tmp101 ;
47162  __le16 __cil_tmp102 ;
47163  unsigned int __cil_tmp103 ;
47164  struct usb_device *__cil_tmp104 ;
47165  struct usb_device *__cil_tmp105 ;
47166  enum usb_device_speed __cil_tmp106 ;
47167  unsigned int __cil_tmp107 ;
47168  struct usb_endpoint_descriptor  const  *__cil_tmp108 ;
47169  __le16 __cil_tmp109 ;
47170  unsigned int __cil_tmp110 ;
47171  struct device  const  *__cil_tmp111 ;
47172  __u8 __cil_tmp112 ;
47173  int __cil_tmp113 ;
47174  struct usb_device *__cil_tmp114 ;
47175  struct usb_device *__cil_tmp115 ;
47176  enum usb_device_speed __cil_tmp116 ;
47177  unsigned int __cil_tmp117 ;
47178  unsigned int __cil_tmp118 ;
47179  long __cil_tmp119 ;
47180  unsigned int __cil_tmp120 ;
47181  long __cil_tmp121 ;
47182  unsigned int __cil_tmp122 ;
47183  unsigned int __cil_tmp123 ;
47184  unsigned int __cil_tmp124 ;
47185  struct device  const  *__cil_tmp125 ;
47186  char *__cil_tmp126 ;
47187  int *__cil_tmp127 ;
47188  unsigned int __cil_tmp128 ;
47189  long __cil_tmp129 ;
47190  unsigned int __cil_tmp130 ;
47191  long __cil_tmp131 ;
47192  unsigned int __cil_tmp132 ;
47193  unsigned int __cil_tmp133 ;
47194  unsigned int __cil_tmp134 ;
47195
47196  {
47197#line 155
47198  buffer0 = buffer;
47199#line 160
47200  d = (struct usb_endpoint_descriptor *)buffer;
47201#line 161
47202  __cil_tmp29 = d->bLength;
47203#line 161
47204  __cil_tmp30 = (unsigned long )__cil_tmp29;
47205#line 161
47206  buffer = buffer + __cil_tmp30;
47207#line 162
47208  __cil_tmp31 = d->bLength;
47209#line 162
47210  __cil_tmp32 = (int )__cil_tmp31;
47211#line 162
47212  size = size - __cil_tmp32;
47213  {
47214#line 164
47215  __cil_tmp33 = d->bLength;
47216#line 164
47217  __cil_tmp34 = (unsigned int )__cil_tmp33;
47218#line 164
47219  if (__cil_tmp34 > 8U) {
47220#line 165
47221    n = 9;
47222  } else {
47223    {
47224#line 166
47225    __cil_tmp35 = d->bLength;
47226#line 166
47227    __cil_tmp36 = (unsigned int )__cil_tmp35;
47228#line 166
47229    if (__cil_tmp36 > 6U) {
47230#line 167
47231      n = 7;
47232    } else {
47233      {
47234#line 169
47235      __cil_tmp37 = (struct device  const  *)ddev;
47236#line 169
47237      __cil_tmp38 = d->bLength;
47238#line 169
47239      __cil_tmp39 = (int )__cil_tmp38;
47240#line 169
47241      dev_warn(__cil_tmp37, "config %d interface %d altsetting %d has an invalid endpoint descriptor of length %d, skipping\n",
47242               cfgno, inum, asnum, __cil_tmp39);
47243      }
47244#line 172
47245      goto skip_to_next_endpoint_or_interface_descriptor;
47246    }
47247    }
47248  }
47249  }
47250#line 175
47251  __cil_tmp40 = d->bEndpointAddress;
47252#line 175
47253  __cil_tmp41 = (int )__cil_tmp40;
47254#line 175
47255  i = __cil_tmp41 & -129;
47256#line 176
47257  if (i > 15) {
47258    {
47259#line 177
47260    __cil_tmp42 = (struct device  const  *)ddev;
47261#line 177
47262    __cil_tmp43 = d->bEndpointAddress;
47263#line 177
47264    __cil_tmp44 = (int )__cil_tmp43;
47265#line 177
47266    dev_warn(__cil_tmp42, "config %d interface %d altsetting %d has an invalid endpoint with address 0x%X, skipping\n",
47267             cfgno, inum, asnum, __cil_tmp44);
47268    }
47269#line 180
47270    goto skip_to_next_endpoint_or_interface_descriptor;
47271  } else
47272#line 176
47273  if (i == 0) {
47274    {
47275#line 177
47276    __cil_tmp45 = (struct device  const  *)ddev;
47277#line 177
47278    __cil_tmp46 = d->bEndpointAddress;
47279#line 177
47280    __cil_tmp47 = (int )__cil_tmp46;
47281#line 177
47282    dev_warn(__cil_tmp45, "config %d interface %d altsetting %d has an invalid endpoint with address 0x%X, skipping\n",
47283             cfgno, inum, asnum, __cil_tmp47);
47284    }
47285#line 180
47286    goto skip_to_next_endpoint_or_interface_descriptor;
47287  } else {
47288
47289  }
47290  {
47291#line 184
47292  __cil_tmp48 = ifp->desc.bNumEndpoints;
47293#line 184
47294  __cil_tmp49 = (int )__cil_tmp48;
47295#line 184
47296  if (__cil_tmp49 >= num_ep) {
47297#line 185
47298    goto skip_to_next_endpoint_or_interface_descriptor;
47299  } else {
47300
47301  }
47302  }
47303  {
47304#line 187
47305  __cil_tmp50 = ifp->desc.bNumEndpoints;
47306#line 187
47307  __cil_tmp51 = (unsigned long )__cil_tmp50;
47308#line 187
47309  __cil_tmp52 = ifp->endpoint;
47310#line 187
47311  endpoint = __cil_tmp52 + __cil_tmp51;
47312#line 188
47313  __cil_tmp53 = ifp->desc.bNumEndpoints;
47314#line 188
47315  __cil_tmp54 = (int )__cil_tmp53;
47316#line 188
47317  __cil_tmp55 = __cil_tmp54 + 1;
47318#line 188
47319  ifp->desc.bNumEndpoints = (__u8 )__cil_tmp55;
47320#line 190
47321  __len = (size_t )n;
47322#line 190
47323  __cil_tmp56 = & endpoint->desc;
47324#line 190
47325  __cil_tmp57 = (void *)__cil_tmp56;
47326#line 190
47327  __cil_tmp58 = (void const   *)d;
47328#line 190
47329  __ret = __builtin_memcpy(__cil_tmp57, __cil_tmp58, __len);
47330#line 191
47331  __cil_tmp59 = & endpoint->urb_list;
47332#line 191
47333  INIT_LIST_HEAD(__cil_tmp59);
47334#line 195
47335  i = 0;
47336#line 196
47337  j = 255;
47338#line 197
47339  __cil_tmp60 = (struct usb_endpoint_descriptor  const  *)d;
47340#line 197
47341  tmp___0 = usb_endpoint_xfer_int(__cil_tmp60);
47342  }
47343#line 197
47344  if (tmp___0 != 0) {
47345#line 198
47346    i = 1;
47347#line 199
47348    __mptr = (struct device  const  *)ddev;
47349    {
47350#line 200
47351    __cil_tmp61 = (struct usb_device *)__mptr;
47352#line 200
47353    __cil_tmp62 = __cil_tmp61 + 1152921504606846840UL;
47354#line 200
47355    __cil_tmp63 = __cil_tmp62->speed;
47356#line 200
47357    __cil_tmp64 = (unsigned int )__cil_tmp63;
47358#line 200
47359    __cil_tmp65 = (int )__cil_tmp64;
47360#line 200
47361    if (__cil_tmp65 == 5) {
47362#line 200
47363      goto case_5;
47364    } else {
47365      {
47366#line 201
47367      __cil_tmp66 = (struct usb_device *)__mptr;
47368#line 201
47369      __cil_tmp67 = __cil_tmp66 + 1152921504606846840UL;
47370#line 201
47371      __cil_tmp68 = __cil_tmp67->speed;
47372#line 201
47373      __cil_tmp69 = (unsigned int )__cil_tmp68;
47374#line 201
47375      __cil_tmp70 = (int )__cil_tmp69;
47376#line 201
47377      if (__cil_tmp70 == 3) {
47378#line 201
47379        goto case_3;
47380      } else {
47381#line 211
47382        goto switch_default;
47383#line 199
47384        if (0) {
47385          case_5: ;
47386          case_3: 
47387          {
47388#line 206
47389          __cil_tmp71 = d->bInterval;
47390#line 206
47391          __cil_tmp72 = (int )__cil_tmp71;
47392#line 206
47393          __cil_tmp73 = __cil_tmp72 * 8;
47394#line 206
47395          n = fls(__cil_tmp73);
47396          }
47397#line 207
47398          if (n == 0) {
47399#line 208
47400            n = 9;
47401          } else {
47402
47403          }
47404#line 209
47405          j = 16;
47406#line 210
47407          goto ldv_24281;
47408          switch_default: 
47409#line 215
47410          n = 32;
47411#line 216
47412          goto ldv_24281;
47413        } else {
47414
47415        }
47416      }
47417      }
47418    }
47419    }
47420    ldv_24281: ;
47421  } else {
47422    {
47423#line 218
47424    __cil_tmp74 = (struct usb_endpoint_descriptor  const  *)d;
47425#line 218
47426    tmp = usb_endpoint_xfer_isoc(__cil_tmp74);
47427    }
47428#line 218
47429    if (tmp != 0) {
47430#line 219
47431      i = 1;
47432#line 220
47433      j = 16;
47434#line 221
47435      __mptr___0 = (struct device  const  *)ddev;
47436      {
47437#line 222
47438      __cil_tmp75 = (struct usb_device *)__mptr___0;
47439#line 222
47440      __cil_tmp76 = __cil_tmp75 + 1152921504606846840UL;
47441#line 222
47442      __cil_tmp77 = __cil_tmp76->speed;
47443#line 222
47444      __cil_tmp78 = (unsigned int )__cil_tmp77;
47445#line 222
47446      __cil_tmp79 = (int )__cil_tmp78;
47447#line 222
47448      if (__cil_tmp79 == 3) {
47449#line 222
47450        goto case_3___0;
47451      } else {
47452#line 225
47453        goto switch_default___0;
47454#line 221
47455        if (0) {
47456          case_3___0: 
47457#line 223
47458          n = 9;
47459#line 224
47460          goto ldv_24286;
47461          switch_default___0: 
47462#line 226
47463          n = 6;
47464#line 227
47465          goto ldv_24286;
47466        } else {
47467
47468        }
47469      }
47470      }
47471      ldv_24286: ;
47472    } else {
47473
47474    }
47475  }
47476  {
47477#line 230
47478  __cil_tmp80 = d->bInterval;
47479#line 230
47480  __cil_tmp81 = (int )__cil_tmp80;
47481#line 230
47482  if (__cil_tmp81 < i) {
47483    {
47484#line 231
47485    __cil_tmp82 = (struct device  const  *)ddev;
47486#line 231
47487    __cil_tmp83 = d->bEndpointAddress;
47488#line 231
47489    __cil_tmp84 = (int )__cil_tmp83;
47490#line 231
47491    __cil_tmp85 = d->bInterval;
47492#line 231
47493    __cil_tmp86 = (int )__cil_tmp85;
47494#line 231
47495    dev_warn(__cil_tmp82, "config %d interface %d altsetting %d endpoint 0x%X has an invalid bInterval %d, changing to %d\n",
47496             cfgno, inum, asnum, __cil_tmp84, __cil_tmp86, n);
47497#line 236
47498    endpoint->desc.bInterval = (__u8 )n;
47499    }
47500  } else {
47501    {
47502#line 230
47503    __cil_tmp87 = d->bInterval;
47504#line 230
47505    __cil_tmp88 = (int )__cil_tmp87;
47506#line 230
47507    if (__cil_tmp88 > j) {
47508      {
47509#line 231
47510      __cil_tmp89 = (struct device  const  *)ddev;
47511#line 231
47512      __cil_tmp90 = d->bEndpointAddress;
47513#line 231
47514      __cil_tmp91 = (int )__cil_tmp90;
47515#line 231
47516      __cil_tmp92 = d->bInterval;
47517#line 231
47518      __cil_tmp93 = (int )__cil_tmp92;
47519#line 231
47520      dev_warn(__cil_tmp89, "config %d interface %d altsetting %d endpoint 0x%X has an invalid bInterval %d, changing to %d\n",
47521               cfgno, inum, asnum, __cil_tmp91, __cil_tmp93, n);
47522#line 236
47523      endpoint->desc.bInterval = (__u8 )n;
47524      }
47525    } else {
47526
47527    }
47528    }
47529  }
47530  }
47531#line 243
47532  __mptr___1 = (struct device  const  *)ddev;
47533  {
47534#line 243
47535  __cil_tmp94 = (struct usb_device *)__mptr___1;
47536#line 243
47537  __cil_tmp95 = __cil_tmp94 + 1152921504606846840UL;
47538#line 243
47539  __cil_tmp96 = __cil_tmp95->speed;
47540#line 243
47541  __cil_tmp97 = (unsigned int )__cil_tmp96;
47542#line 243
47543  if (__cil_tmp97 == 1U) {
47544    {
47545#line 243
47546    __cil_tmp98 = (struct usb_endpoint_descriptor  const  *)d;
47547#line 243
47548    tmp___1 = usb_endpoint_xfer_bulk(__cil_tmp98);
47549    }
47550#line 243
47551    if (tmp___1 != 0) {
47552      {
47553#line 245
47554      __cil_tmp99 = (struct device  const  *)ddev;
47555#line 245
47556      __cil_tmp100 = d->bEndpointAddress;
47557#line 245
47558      __cil_tmp101 = (int )__cil_tmp100;
47559#line 245
47560      dev_warn(__cil_tmp99, "config %d interface %d altsetting %d endpoint 0x%X is Bulk; changing to Interrupt\n",
47561               cfgno, inum, asnum, __cil_tmp101);
47562#line 248
47563      endpoint->desc.bmAttributes = (__u8 )3U;
47564#line 249
47565      endpoint->desc.bInterval = (__u8 )1U;
47566      }
47567      {
47568#line 250
47569      __cil_tmp102 = endpoint->desc.wMaxPacketSize;
47570#line 250
47571      __cil_tmp103 = (unsigned int )__cil_tmp102;
47572#line 250
47573      if (__cil_tmp103 > 8U) {
47574#line 251
47575        endpoint->desc.wMaxPacketSize = (__le16 )8U;
47576      } else {
47577
47578      }
47579      }
47580    } else {
47581
47582    }
47583  } else {
47584
47585  }
47586  }
47587#line 259
47588  __mptr___2 = (struct device  const  *)ddev;
47589  {
47590#line 259
47591  __cil_tmp104 = (struct usb_device *)__mptr___2;
47592#line 259
47593  __cil_tmp105 = __cil_tmp104 + 1152921504606846840UL;
47594#line 259
47595  __cil_tmp106 = __cil_tmp105->speed;
47596#line 259
47597  __cil_tmp107 = (unsigned int )__cil_tmp106;
47598#line 259
47599  if (__cil_tmp107 == 3U) {
47600    {
47601#line 259
47602    __cil_tmp108 = (struct usb_endpoint_descriptor  const  *)d;
47603#line 259
47604    tmp___2 = usb_endpoint_xfer_bulk(__cil_tmp108);
47605    }
47606#line 259
47607    if (tmp___2 != 0) {
47608#line 263
47609      __cil_tmp109 = endpoint->desc.wMaxPacketSize;
47610#line 263
47611      __cil_tmp110 = (unsigned int )__cil_tmp109;
47612#line 263
47613      maxp = __cil_tmp110 & 2047U;
47614#line 264
47615      if (maxp != 512U) {
47616        {
47617#line 265
47618        __cil_tmp111 = (struct device  const  *)ddev;
47619#line 265
47620        __cil_tmp112 = d->bEndpointAddress;
47621#line 265
47622        __cil_tmp113 = (int )__cil_tmp112;
47623#line 265
47624        dev_warn(__cil_tmp111, "config %d interface %d altsetting %d bulk endpoint 0x%X has invalid maxpacket %d\n",
47625                 cfgno, inum, asnum, __cil_tmp113, maxp);
47626        }
47627      } else {
47628
47629      }
47630    } else {
47631
47632    }
47633  } else {
47634
47635  }
47636  }
47637#line 272
47638  __mptr___3 = (struct device  const  *)ddev;
47639  {
47640#line 272
47641  __cil_tmp114 = (struct usb_device *)__mptr___3;
47642#line 272
47643  __cil_tmp115 = __cil_tmp114 + 1152921504606846840UL;
47644#line 272
47645  __cil_tmp116 = __cil_tmp115->speed;
47646#line 272
47647  __cil_tmp117 = (unsigned int )__cil_tmp116;
47648#line 272
47649  if (__cil_tmp117 == 5U) {
47650    {
47651#line 273
47652    usb_parse_ss_endpoint_companion(ddev, cfgno, inum, asnum, endpoint, buffer, size);
47653    }
47654  } else {
47655
47656  }
47657  }
47658  {
47659#line 278
47660  endpoint->extra = buffer;
47661#line 279
47662  i = find_next_descriptor(buffer, size, 5, 4, & n);
47663#line 281
47664  endpoint->extralen = i;
47665#line 282
47666  __cil_tmp118 = (unsigned int )i;
47667#line 282
47668  __cil_tmp119 = (long )buffer0;
47669#line 282
47670  __cil_tmp120 = (unsigned int )__cil_tmp119;
47671#line 282
47672  __cil_tmp121 = (long )buffer;
47673#line 282
47674  __cil_tmp122 = (unsigned int )__cil_tmp121;
47675#line 282
47676  __cil_tmp123 = __cil_tmp122 - __cil_tmp120;
47677#line 282
47678  __cil_tmp124 = __cil_tmp123 + __cil_tmp118;
47679#line 282
47680  retval = (int )__cil_tmp124;
47681  }
47682#line 283
47683  if (n > 0) {
47684    {
47685#line 284
47686    tmp___3 = plural(n);
47687#line 284
47688    __cil_tmp125 = (struct device  const  *)ddev;
47689#line 284
47690    __cil_tmp126 = (char *)"endpoint";
47691#line 284
47692    dev_printk("<7>", __cil_tmp125, "skipped %d descriptor%s after %s\n", n, tmp___3,
47693               __cil_tmp126);
47694    }
47695  } else {
47696
47697  }
47698#line 286
47699  return (retval);
47700  skip_to_next_endpoint_or_interface_descriptor: 
47701  {
47702#line 289
47703  __cil_tmp127 = (int *)0;
47704#line 289
47705  i = find_next_descriptor(buffer, size, 5, 4, __cil_tmp127);
47706  }
47707  {
47708#line 291
47709  __cil_tmp128 = (unsigned int )i;
47710#line 291
47711  __cil_tmp129 = (long )buffer0;
47712#line 291
47713  __cil_tmp130 = (unsigned int )__cil_tmp129;
47714#line 291
47715  __cil_tmp131 = (long )buffer;
47716#line 291
47717  __cil_tmp132 = (unsigned int )__cil_tmp131;
47718#line 291
47719  __cil_tmp133 = __cil_tmp132 - __cil_tmp130;
47720#line 291
47721  __cil_tmp134 = __cil_tmp133 + __cil_tmp128;
47722#line 291
47723  return ((int )__cil_tmp134);
47724  }
47725}
47726}
47727#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"
47728void usb_release_interface_cache(struct kref *ref ) 
47729{ struct usb_interface_cache *intfc ;
47730  struct kref  const  *__mptr ;
47731  int j ;
47732  struct usb_host_interface *alt ;
47733  struct usb_interface_cache *__cil_tmp6 ;
47734  unsigned long __cil_tmp7 ;
47735  struct usb_host_interface (*__cil_tmp8)[0U] ;
47736  struct usb_host_interface *__cil_tmp9 ;
47737  struct usb_host_endpoint *__cil_tmp10 ;
47738  void const   *__cil_tmp11 ;
47739  char *__cil_tmp12 ;
47740  void const   *__cil_tmp13 ;
47741  unsigned int __cil_tmp14 ;
47742  unsigned int __cil_tmp15 ;
47743  void const   *__cil_tmp16 ;
47744
47745  {
47746#line 296
47747  __mptr = (struct kref  const  *)ref;
47748#line 296
47749  __cil_tmp6 = (struct usb_interface_cache *)__mptr;
47750#line 296
47751  intfc = __cil_tmp6 + 1152921504606846972UL;
47752#line 299
47753  j = 0;
47754#line 299
47755  goto ldv_24304;
47756  ldv_24303: 
47757  {
47758#line 300
47759  __cil_tmp7 = (unsigned long )j;
47760#line 300
47761  __cil_tmp8 = & intfc->altsetting;
47762#line 300
47763  __cil_tmp9 = (struct usb_host_interface *)__cil_tmp8;
47764#line 300
47765  alt = __cil_tmp9 + __cil_tmp7;
47766#line 302
47767  __cil_tmp10 = alt->endpoint;
47768#line 302
47769  __cil_tmp11 = (void const   *)__cil_tmp10;
47770#line 302
47771  kfree(__cil_tmp11);
47772#line 303
47773  __cil_tmp12 = alt->string;
47774#line 303
47775  __cil_tmp13 = (void const   *)__cil_tmp12;
47776#line 303
47777  kfree(__cil_tmp13);
47778#line 299
47779  j = j + 1;
47780  }
47781  ldv_24304: ;
47782  {
47783#line 299
47784  __cil_tmp14 = intfc->num_altsetting;
47785#line 299
47786  __cil_tmp15 = (unsigned int )j;
47787#line 299
47788  if (__cil_tmp15 < __cil_tmp14) {
47789#line 300
47790    goto ldv_24303;
47791  } else {
47792#line 302
47793    goto ldv_24305;
47794  }
47795  }
47796  ldv_24305: 
47797  {
47798#line 305
47799  __cil_tmp16 = (void const   *)intfc;
47800#line 305
47801  kfree(__cil_tmp16);
47802  }
47803#line 306
47804  return;
47805}
47806}
47807#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"
47808static int usb_parse_interface(struct device *ddev , int cfgno , struct usb_host_config *config ,
47809                               unsigned char *buffer , int size , u8 *inums , u8 *nalts ) 
47810{ unsigned char *buffer0 ;
47811  struct usb_interface_descriptor *d ;
47812  int inum ;
47813  int asnum ;
47814  struct usb_interface_cache *intfc ;
47815  struct usb_host_interface *alt ;
47816  int i ;
47817  int n ;
47818  int len ;
47819  int retval ;
47820  int num_ep ;
47821  int num_ep_orig ;
47822  size_t __len ;
47823  void *__ret ;
47824  char const   *tmp ;
47825  void *tmp___0 ;
47826  char const   *tmp___1 ;
47827  __u8 __cil_tmp25 ;
47828  unsigned long __cil_tmp26 ;
47829  __u8 __cil_tmp27 ;
47830  int __cil_tmp28 ;
47831  __u8 __cil_tmp29 ;
47832  unsigned int __cil_tmp30 ;
47833  __u8 __cil_tmp31 ;
47834  unsigned long __cil_tmp32 ;
47835  u8 *__cil_tmp33 ;
47836  u8 __cil_tmp34 ;
47837  int __cil_tmp35 ;
47838  __u8 __cil_tmp36 ;
47839  int __cil_tmp37 ;
47840  struct usb_interface_cache *__cil_tmp38 ;
47841  unsigned long __cil_tmp39 ;
47842  unsigned long __cil_tmp40 ;
47843  unsigned long __cil_tmp41 ;
47844  u8 *__cil_tmp42 ;
47845  u8 __cil_tmp43 ;
47846  unsigned int __cil_tmp44 ;
47847  unsigned int __cil_tmp45 ;
47848  __u8 __cil_tmp46 ;
47849  struct usb_host_interface (*__cil_tmp47)[0U] ;
47850  __u8 __cil_tmp48 ;
47851  int __cil_tmp49 ;
47852  struct device  const  *__cil_tmp50 ;
47853  unsigned int __cil_tmp51 ;
47854  unsigned int __cil_tmp52 ;
47855  unsigned int __cil_tmp53 ;
47856  struct usb_interface_descriptor *__cil_tmp54 ;
47857  void *__cil_tmp55 ;
47858  void const   *__cil_tmp56 ;
47859  struct usb_interface_descriptor *__cil_tmp57 ;
47860  void *__cil_tmp58 ;
47861  void const   *__cil_tmp59 ;
47862  struct device  const  *__cil_tmp60 ;
47863  char *__cil_tmp61 ;
47864  unsigned long __cil_tmp62 ;
47865  __u8 __cil_tmp63 ;
47866  struct device  const  *__cil_tmp64 ;
47867  unsigned int __cil_tmp65 ;
47868  unsigned int __cil_tmp66 ;
47869  size_t __cil_tmp67 ;
47870  struct usb_host_endpoint *__cil_tmp68 ;
47871  unsigned long __cil_tmp69 ;
47872  struct usb_host_endpoint *__cil_tmp70 ;
47873  unsigned long __cil_tmp71 ;
47874  struct usb_descriptor_header *__cil_tmp72 ;
47875  __u8 __cil_tmp73 ;
47876  unsigned int __cil_tmp74 ;
47877  unsigned long __cil_tmp75 ;
47878  struct device  const  *__cil_tmp76 ;
47879  long __cil_tmp77 ;
47880  unsigned int __cil_tmp78 ;
47881  long __cil_tmp79 ;
47882  unsigned int __cil_tmp80 ;
47883  unsigned int __cil_tmp81 ;
47884  int *__cil_tmp82 ;
47885  unsigned int __cil_tmp83 ;
47886  long __cil_tmp84 ;
47887  unsigned int __cil_tmp85 ;
47888  long __cil_tmp86 ;
47889  unsigned int __cil_tmp87 ;
47890  unsigned int __cil_tmp88 ;
47891  unsigned int __cil_tmp89 ;
47892
47893  {
47894#line 312
47895  buffer0 = buffer;
47896#line 321
47897  d = (struct usb_interface_descriptor *)buffer;
47898#line 322
47899  __cil_tmp25 = d->bLength;
47900#line 322
47901  __cil_tmp26 = (unsigned long )__cil_tmp25;
47902#line 322
47903  buffer = buffer + __cil_tmp26;
47904#line 323
47905  __cil_tmp27 = d->bLength;
47906#line 323
47907  __cil_tmp28 = (int )__cil_tmp27;
47908#line 323
47909  size = size - __cil_tmp28;
47910  {
47911#line 325
47912  __cil_tmp29 = d->bLength;
47913#line 325
47914  __cil_tmp30 = (unsigned int )__cil_tmp29;
47915#line 325
47916  if (__cil_tmp30 <= 8U) {
47917#line 326
47918    goto skip_to_next_interface_descriptor;
47919  } else {
47920
47921  }
47922  }
47923#line 329
47924  intfc = (struct usb_interface_cache *)0;
47925#line 330
47926  __cil_tmp31 = d->bInterfaceNumber;
47927#line 330
47928  inum = (int )__cil_tmp31;
47929#line 331
47930  i = 0;
47931#line 331
47932  goto ldv_24330;
47933  ldv_24329: ;
47934  {
47935#line 332
47936  __cil_tmp32 = (unsigned long )i;
47937#line 332
47938  __cil_tmp33 = inums + __cil_tmp32;
47939#line 332
47940  __cil_tmp34 = *__cil_tmp33;
47941#line 332
47942  __cil_tmp35 = (int )__cil_tmp34;
47943#line 332
47944  if (__cil_tmp35 == inum) {
47945#line 333
47946    intfc = config->intf_cache[i];
47947#line 334
47948    goto ldv_24328;
47949  } else {
47950
47951  }
47952  }
47953#line 331
47954  i = i + 1;
47955  ldv_24330: ;
47956  {
47957#line 331
47958  __cil_tmp36 = config->desc.bNumInterfaces;
47959#line 331
47960  __cil_tmp37 = (int )__cil_tmp36;
47961#line 331
47962  if (__cil_tmp37 > i) {
47963#line 332
47964    goto ldv_24329;
47965  } else {
47966#line 334
47967    goto ldv_24328;
47968  }
47969  }
47970  ldv_24328: ;
47971  {
47972#line 337
47973  __cil_tmp38 = (struct usb_interface_cache *)0;
47974#line 337
47975  __cil_tmp39 = (unsigned long )__cil_tmp38;
47976#line 337
47977  __cil_tmp40 = (unsigned long )intfc;
47978#line 337
47979  if (__cil_tmp40 == __cil_tmp39) {
47980#line 338
47981    goto skip_to_next_interface_descriptor;
47982  } else {
47983    {
47984#line 337
47985    __cil_tmp41 = (unsigned long )i;
47986#line 337
47987    __cil_tmp42 = nalts + __cil_tmp41;
47988#line 337
47989    __cil_tmp43 = *__cil_tmp42;
47990#line 337
47991    __cil_tmp44 = (unsigned int )__cil_tmp43;
47992#line 337
47993    __cil_tmp45 = intfc->num_altsetting;
47994#line 337
47995    if (__cil_tmp45 >= __cil_tmp44) {
47996#line 338
47997      goto skip_to_next_interface_descriptor;
47998    } else {
47999
48000    }
48001    }
48002  }
48003  }
48004#line 341
48005  __cil_tmp46 = d->bAlternateSetting;
48006#line 341
48007  asnum = (int )__cil_tmp46;
48008#line 342
48009  i = 0;
48010#line 342
48011  __cil_tmp47 = & intfc->altsetting;
48012#line 342
48013  alt = (struct usb_host_interface *)__cil_tmp47;
48014#line 342
48015  goto ldv_24332;
48016  ldv_24331: ;
48017  {
48018#line 345
48019  __cil_tmp48 = alt->desc.bAlternateSetting;
48020#line 345
48021  __cil_tmp49 = (int )__cil_tmp48;
48022#line 345
48023  if (__cil_tmp49 == asnum) {
48024    {
48025#line 346
48026    __cil_tmp50 = (struct device  const  *)ddev;
48027#line 346
48028    dev_warn(__cil_tmp50, "Duplicate descriptor for config %d interface %d altsetting %d, skipping\n",
48029             cfgno, inum, asnum);
48030    }
48031#line 349
48032    goto skip_to_next_interface_descriptor;
48033  } else {
48034
48035  }
48036  }
48037#line 344
48038  i = i + 1;
48039#line 344
48040  alt = alt + 1;
48041  ldv_24332: ;
48042  {
48043#line 342
48044  __cil_tmp51 = intfc->num_altsetting;
48045#line 342
48046  __cil_tmp52 = (unsigned int )i;
48047#line 342
48048  if (__cil_tmp52 < __cil_tmp51) {
48049#line 344
48050    goto ldv_24331;
48051  } else {
48052#line 346
48053    goto ldv_24333;
48054  }
48055  }
48056  ldv_24333: 
48057#line 353
48058  __cil_tmp53 = intfc->num_altsetting;
48059#line 353
48060  intfc->num_altsetting = __cil_tmp53 + 1U;
48061#line 354
48062  __len = 9UL;
48063#line 354
48064  if (__len > 63UL) {
48065    {
48066#line 354
48067    __cil_tmp54 = & alt->desc;
48068#line 354
48069    __cil_tmp55 = (void *)__cil_tmp54;
48070#line 354
48071    __cil_tmp56 = (void const   *)d;
48072#line 354
48073    __ret = __memcpy(__cil_tmp55, __cil_tmp56, __len);
48074    }
48075  } else {
48076    {
48077#line 354
48078    __cil_tmp57 = & alt->desc;
48079#line 354
48080    __cil_tmp58 = (void *)__cil_tmp57;
48081#line 354
48082    __cil_tmp59 = (void const   *)d;
48083#line 354
48084    __ret = __builtin_memcpy(__cil_tmp58, __cil_tmp59, __len);
48085    }
48086  }
48087  {
48088#line 358
48089  alt->extra = buffer;
48090#line 359
48091  i = find_next_descriptor(buffer, size, 5, 4, & n);
48092#line 361
48093  alt->extralen = i;
48094  }
48095#line 362
48096  if (n > 0) {
48097    {
48098#line 363
48099    tmp = plural(n);
48100#line 363
48101    __cil_tmp60 = (struct device  const  *)ddev;
48102#line 363
48103    __cil_tmp61 = (char *)"interface";
48104#line 363
48105    dev_printk("<7>", __cil_tmp60, "skipped %d descriptor%s after %s\n", n, tmp, __cil_tmp61);
48106    }
48107  } else {
48108
48109  }
48110#line 365
48111  __cil_tmp62 = (unsigned long )i;
48112#line 365
48113  buffer = buffer + __cil_tmp62;
48114#line 366
48115  size = size - i;
48116#line 369
48117  __cil_tmp63 = alt->desc.bNumEndpoints;
48118#line 369
48119  num_ep_orig = (int )__cil_tmp63;
48120#line 369
48121  num_ep = num_ep_orig;
48122#line 370
48123  alt->desc.bNumEndpoints = (__u8 )0U;
48124#line 371
48125  if (num_ep > 30) {
48126    {
48127#line 372
48128    __cil_tmp64 = (struct device  const  *)ddev;
48129#line 372
48130    dev_warn(__cil_tmp64, "too many endpoints for config %d interface %d altsetting %d: %d, using maximum allowed: %d\n",
48131             cfgno, inum, asnum, num_ep, 30);
48132#line 375
48133    num_ep = 30;
48134    }
48135  } else {
48136
48137  }
48138#line 378
48139  if (num_ep > 0) {
48140    {
48141#line 380
48142    __cil_tmp65 = (unsigned int )num_ep;
48143#line 380
48144    __cil_tmp66 = __cil_tmp65 * 64U;
48145#line 380
48146    len = (int )__cil_tmp66;
48147#line 381
48148    __cil_tmp67 = (size_t )len;
48149#line 381
48150    tmp___0 = kzalloc(__cil_tmp67, 208U);
48151#line 381
48152    alt->endpoint = (struct usb_host_endpoint *)tmp___0;
48153    }
48154    {
48155#line 382
48156    __cil_tmp68 = (struct usb_host_endpoint *)0;
48157#line 382
48158    __cil_tmp69 = (unsigned long )__cil_tmp68;
48159#line 382
48160    __cil_tmp70 = alt->endpoint;
48161#line 382
48162    __cil_tmp71 = (unsigned long )__cil_tmp70;
48163#line 382
48164    if (__cil_tmp71 == __cil_tmp69) {
48165#line 383
48166      return (-12);
48167    } else {
48168
48169    }
48170    }
48171  } else {
48172
48173  }
48174#line 387
48175  n = 0;
48176#line 388
48177  goto ldv_24339;
48178  ldv_24338: ;
48179  {
48180#line 389
48181  __cil_tmp72 = (struct usb_descriptor_header *)buffer;
48182#line 389
48183  __cil_tmp73 = __cil_tmp72->bDescriptorType;
48184#line 389
48185  __cil_tmp74 = (unsigned int )__cil_tmp73;
48186#line 389
48187  if (__cil_tmp74 == 4U) {
48188#line 391
48189    goto ldv_24337;
48190  } else {
48191
48192  }
48193  }
48194  {
48195#line 392
48196  retval = usb_parse_endpoint(ddev, cfgno, inum, asnum, alt, num_ep, buffer, size);
48197  }
48198#line 394
48199  if (retval < 0) {
48200#line 395
48201    return (retval);
48202  } else {
48203
48204  }
48205#line 396
48206  n = n + 1;
48207#line 398
48208  __cil_tmp75 = (unsigned long )retval;
48209#line 398
48210  buffer = buffer + __cil_tmp75;
48211#line 399
48212  size = size - retval;
48213  ldv_24339: ;
48214#line 388
48215  if (size > 0) {
48216#line 389
48217    goto ldv_24338;
48218  } else {
48219#line 391
48220    goto ldv_24337;
48221  }
48222  ldv_24337: ;
48223#line 402
48224  if (n != num_ep_orig) {
48225    {
48226#line 403
48227    tmp___1 = plural(n);
48228#line 403
48229    __cil_tmp76 = (struct device  const  *)ddev;
48230#line 403
48231    dev_warn(__cil_tmp76, "config %d interface %d altsetting %d has %d endpoint descriptor%s, different from the interface descriptor\'s value: %d\n",
48232             cfgno, inum, asnum, n, tmp___1, num_ep_orig);
48233    }
48234  } else {
48235
48236  }
48237  {
48238#line 407
48239  __cil_tmp77 = (long )buffer0;
48240#line 407
48241  __cil_tmp78 = (unsigned int )__cil_tmp77;
48242#line 407
48243  __cil_tmp79 = (long )buffer;
48244#line 407
48245  __cil_tmp80 = (unsigned int )__cil_tmp79;
48246#line 407
48247  __cil_tmp81 = __cil_tmp80 - __cil_tmp78;
48248#line 407
48249  return ((int )__cil_tmp81);
48250  }
48251  skip_to_next_interface_descriptor: 
48252  {
48253#line 410
48254  __cil_tmp82 = (int *)0;
48255#line 410
48256  i = find_next_descriptor(buffer, size, 4, 4, __cil_tmp82);
48257  }
48258  {
48259#line 412
48260  __cil_tmp83 = (unsigned int )i;
48261#line 412
48262  __cil_tmp84 = (long )buffer0;
48263#line 412
48264  __cil_tmp85 = (unsigned int )__cil_tmp84;
48265#line 412
48266  __cil_tmp86 = (long )buffer;
48267#line 412
48268  __cil_tmp87 = (unsigned int )__cil_tmp86;
48269#line 412
48270  __cil_tmp88 = __cil_tmp87 - __cil_tmp85;
48271#line 412
48272  __cil_tmp89 = __cil_tmp88 + __cil_tmp83;
48273#line 412
48274  return ((int )__cil_tmp89);
48275  }
48276}
48277}
48278#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"
48279static int usb_parse_configuration(struct usb_device *dev , int cfgidx , struct usb_host_config *config ,
48280                                   unsigned char *buffer , int size ) 
48281{ struct device *ddev ;
48282  unsigned char *buffer0 ;
48283  int cfgno ;
48284  int nintf ;
48285  int nintf_orig ;
48286  int i ;
48287  int j ;
48288  int n ;
48289  struct usb_interface_cache *intfc ;
48290  unsigned char *buffer2 ;
48291  int size2 ;
48292  struct usb_descriptor_header *header ;
48293  int len ;
48294  int retval ;
48295  u8 inums[32U] ;
48296  u8 nalts[32U] ;
48297  unsigned int iad_num ;
48298  size_t __len ;
48299  void *__ret ;
48300  char const   *tmp ;
48301  struct usb_interface_descriptor *d ;
48302  int inum ;
48303  char const   *tmp___0 ;
48304  void *tmp___1 ;
48305  char const   *tmp___2 ;
48306  struct usb_config_descriptor *__cil_tmp31 ;
48307  void *__cil_tmp32 ;
48308  void const   *__cil_tmp33 ;
48309  struct usb_config_descriptor *__cil_tmp34 ;
48310  void *__cil_tmp35 ;
48311  void const   *__cil_tmp36 ;
48312  __u8 __cil_tmp37 ;
48313  unsigned int __cil_tmp38 ;
48314  struct device  const  *__cil_tmp39 ;
48315  __u8 __cil_tmp40 ;
48316  int __cil_tmp41 ;
48317  __u8 __cil_tmp42 ;
48318  int __cil_tmp43 ;
48319  __u8 __cil_tmp44 ;
48320  unsigned int __cil_tmp45 ;
48321  struct device  const  *__cil_tmp46 ;
48322  __u8 __cil_tmp47 ;
48323  int __cil_tmp48 ;
48324  __u8 __cil_tmp49 ;
48325  int __cil_tmp50 ;
48326  __u8 __cil_tmp51 ;
48327  __u8 __cil_tmp52 ;
48328  unsigned long __cil_tmp53 ;
48329  __u8 __cil_tmp54 ;
48330  int __cil_tmp55 ;
48331  __u8 __cil_tmp56 ;
48332  struct device  const  *__cil_tmp57 ;
48333  unsigned int __cil_tmp58 ;
48334  struct device  const  *__cil_tmp59 ;
48335  __u8 __cil_tmp60 ;
48336  int __cil_tmp61 ;
48337  struct device  const  *__cil_tmp62 ;
48338  __u8 __cil_tmp63 ;
48339  int __cil_tmp64 ;
48340  __u8 __cil_tmp65 ;
48341  unsigned int __cil_tmp66 ;
48342  struct device  const  *__cil_tmp67 ;
48343  __u8 __cil_tmp68 ;
48344  int __cil_tmp69 ;
48345  __u8 __cil_tmp70 ;
48346  unsigned int __cil_tmp71 ;
48347  __u8 __cil_tmp72 ;
48348  unsigned int __cil_tmp73 ;
48349  struct device  const  *__cil_tmp74 ;
48350  __u8 __cil_tmp75 ;
48351  int __cil_tmp76 ;
48352  __u8 __cil_tmp77 ;
48353  u32 __cil_tmp78 ;
48354  unsigned int __cil_tmp79 ;
48355  struct device  const  *__cil_tmp80 ;
48356  struct device  const  *__cil_tmp81 ;
48357  int __cil_tmp82 ;
48358  int __cil_tmp83 ;
48359  unsigned int __cil_tmp84 ;
48360  int __cil_tmp85 ;
48361  int __cil_tmp86 ;
48362  __u8 __cil_tmp87 ;
48363  unsigned int __cil_tmp88 ;
48364  struct device  const  *__cil_tmp89 ;
48365  __u8 __cil_tmp90 ;
48366  unsigned int __cil_tmp91 ;
48367  struct device  const  *__cil_tmp92 ;
48368  __u8 __cil_tmp93 ;
48369  int __cil_tmp94 ;
48370  __u8 __cil_tmp95 ;
48371  unsigned int __cil_tmp96 ;
48372  struct device  const  *__cil_tmp97 ;
48373  __u8 __cil_tmp98 ;
48374  int __cil_tmp99 ;
48375  __u8 __cil_tmp100 ;
48376  unsigned long __cil_tmp101 ;
48377  __u8 __cil_tmp102 ;
48378  int __cil_tmp103 ;
48379  long __cil_tmp104 ;
48380  unsigned int __cil_tmp105 ;
48381  long __cil_tmp106 ;
48382  unsigned int __cil_tmp107 ;
48383  unsigned int __cil_tmp108 ;
48384  long __cil_tmp109 ;
48385  unsigned short __cil_tmp110 ;
48386  int __cil_tmp111 ;
48387  long __cil_tmp112 ;
48388  unsigned short __cil_tmp113 ;
48389  int __cil_tmp114 ;
48390  int __cil_tmp115 ;
48391  struct device  const  *__cil_tmp116 ;
48392  struct device  const  *__cil_tmp117 ;
48393  int __cil_tmp118 ;
48394  struct device  const  *__cil_tmp119 ;
48395  struct device  const  *__cil_tmp120 ;
48396  int __cil_tmp121 ;
48397  unsigned long __cil_tmp122 ;
48398  unsigned int __cil_tmp123 ;
48399  unsigned int __cil_tmp124 ;
48400  unsigned int __cil_tmp125 ;
48401  size_t __cil_tmp126 ;
48402  struct usb_interface_cache *__cil_tmp127 ;
48403  unsigned long __cil_tmp128 ;
48404  unsigned long __cil_tmp129 ;
48405  struct kref *__cil_tmp130 ;
48406  struct device  const  *__cil_tmp131 ;
48407  char *__cil_tmp132 ;
48408  unsigned long __cil_tmp133 ;
48409  u8 *__cil_tmp134 ;
48410  u8 *__cil_tmp135 ;
48411  unsigned long __cil_tmp136 ;
48412  __u8 __cil_tmp137 ;
48413  int __cil_tmp138 ;
48414  unsigned int __cil_tmp139 ;
48415  unsigned int __cil_tmp140 ;
48416  unsigned int __cil_tmp141 ;
48417  unsigned int __cil_tmp142 ;
48418  struct device  const  *__cil_tmp143 ;
48419  int __cil_tmp144 ;
48420  unsigned int __cil_tmp145 ;
48421  unsigned int __cil_tmp146 ;
48422
48423  {
48424#line 418
48425  ddev = & dev->dev;
48426#line 419
48427  buffer0 = buffer;
48428#line 429
48429  iad_num = 0U;
48430#line 431
48431  __len = 9UL;
48432#line 431
48433  if (__len > 63UL) {
48434    {
48435#line 431
48436    __cil_tmp31 = & config->desc;
48437#line 431
48438    __cil_tmp32 = (void *)__cil_tmp31;
48439#line 431
48440    __cil_tmp33 = (void const   *)buffer;
48441#line 431
48442    __ret = __memcpy(__cil_tmp32, __cil_tmp33, __len);
48443    }
48444  } else {
48445    {
48446#line 431
48447    __cil_tmp34 = & config->desc;
48448#line 431
48449    __cil_tmp35 = (void *)__cil_tmp34;
48450#line 431
48451    __cil_tmp36 = (void const   *)buffer;
48452#line 431
48453    __ret = __builtin_memcpy(__cil_tmp35, __cil_tmp36, __len);
48454    }
48455  }
48456  {
48457#line 432
48458  __cil_tmp37 = config->desc.bDescriptorType;
48459#line 432
48460  __cil_tmp38 = (unsigned int )__cil_tmp37;
48461#line 432
48462  if (__cil_tmp38 != 2U) {
48463    {
48464#line 434
48465    __cil_tmp39 = (struct device  const  *)ddev;
48466#line 434
48467    __cil_tmp40 = config->desc.bDescriptorType;
48468#line 434
48469    __cil_tmp41 = (int )__cil_tmp40;
48470#line 434
48471    __cil_tmp42 = config->desc.bLength;
48472#line 434
48473    __cil_tmp43 = (int )__cil_tmp42;
48474#line 434
48475    dev_err(__cil_tmp39, "invalid descriptor for config index %d: type = 0x%X, length = %d\n",
48476            cfgidx, __cil_tmp41, __cil_tmp43);
48477    }
48478#line 437
48479    return (-22);
48480  } else {
48481    {
48482#line 432
48483    __cil_tmp44 = config->desc.bLength;
48484#line 432
48485    __cil_tmp45 = (unsigned int )__cil_tmp44;
48486#line 432
48487    if (__cil_tmp45 <= 8U) {
48488      {
48489#line 434
48490      __cil_tmp46 = (struct device  const  *)ddev;
48491#line 434
48492      __cil_tmp47 = config->desc.bDescriptorType;
48493#line 434
48494      __cil_tmp48 = (int )__cil_tmp47;
48495#line 434
48496      __cil_tmp49 = config->desc.bLength;
48497#line 434
48498      __cil_tmp50 = (int )__cil_tmp49;
48499#line 434
48500      dev_err(__cil_tmp46, "invalid descriptor for config index %d: type = 0x%X, length = %d\n",
48501              cfgidx, __cil_tmp48, __cil_tmp50);
48502      }
48503#line 437
48504      return (-22);
48505    } else {
48506
48507    }
48508    }
48509  }
48510  }
48511#line 439
48512  __cil_tmp51 = config->desc.bConfigurationValue;
48513#line 439
48514  cfgno = (int )__cil_tmp51;
48515#line 441
48516  __cil_tmp52 = config->desc.bLength;
48517#line 441
48518  __cil_tmp53 = (unsigned long )__cil_tmp52;
48519#line 441
48520  buffer = buffer + __cil_tmp53;
48521#line 442
48522  __cil_tmp54 = config->desc.bLength;
48523#line 442
48524  __cil_tmp55 = (int )__cil_tmp54;
48525#line 442
48526  size = size - __cil_tmp55;
48527#line 444
48528  __cil_tmp56 = config->desc.bNumInterfaces;
48529#line 444
48530  nintf_orig = (int )__cil_tmp56;
48531#line 444
48532  nintf = nintf_orig;
48533#line 445
48534  if (nintf > 32) {
48535    {
48536#line 446
48537    __cil_tmp57 = (struct device  const  *)ddev;
48538#line 446
48539    dev_warn(__cil_tmp57, "config %d has too many interfaces: %d, using maximum allowed: %d\n",
48540             cfgno, nintf, 32);
48541#line 449
48542    nintf = 32;
48543    }
48544  } else {
48545
48546  }
48547#line 454
48548  n = 0;
48549#line 455
48550  buffer2 = buffer;
48551#line 455
48552  size2 = size;
48553#line 455
48554  goto ldv_24375;
48555  ldv_24374: ;
48556  {
48557#line 459
48558  __cil_tmp58 = (unsigned int )size2;
48559#line 459
48560  if (__cil_tmp58 <= 1U) {
48561    {
48562#line 460
48563    tmp = plural(size2);
48564#line 460
48565    __cil_tmp59 = (struct device  const  *)ddev;
48566#line 460
48567    dev_warn(__cil_tmp59, "config %d descriptor has %d excess byte%s, ignoring\n",
48568             cfgno, size2, tmp);
48569    }
48570#line 463
48571    goto ldv_24367;
48572  } else {
48573
48574  }
48575  }
48576#line 466
48577  header = (struct usb_descriptor_header *)buffer2;
48578  {
48579#line 467
48580  __cil_tmp60 = header->bLength;
48581#line 467
48582  __cil_tmp61 = (int )__cil_tmp60;
48583#line 467
48584  if (__cil_tmp61 > size2) {
48585    {
48586#line 468
48587    __cil_tmp62 = (struct device  const  *)ddev;
48588#line 468
48589    __cil_tmp63 = header->bLength;
48590#line 468
48591    __cil_tmp64 = (int )__cil_tmp63;
48592#line 468
48593    dev_warn(__cil_tmp62, "config %d has an invalid descriptor of length %d, skipping remainder of the config\n",
48594             cfgno, __cil_tmp64);
48595    }
48596#line 471
48597    goto ldv_24367;
48598  } else {
48599    {
48600#line 467
48601    __cil_tmp65 = header->bLength;
48602#line 467
48603    __cil_tmp66 = (unsigned int )__cil_tmp65;
48604#line 467
48605    if (__cil_tmp66 <= 1U) {
48606      {
48607#line 468
48608      __cil_tmp67 = (struct device  const  *)ddev;
48609#line 468
48610      __cil_tmp68 = header->bLength;
48611#line 468
48612      __cil_tmp69 = (int )__cil_tmp68;
48613#line 468
48614      dev_warn(__cil_tmp67, "config %d has an invalid descriptor of length %d, skipping remainder of the config\n",
48615               cfgno, __cil_tmp69);
48616      }
48617#line 471
48618      goto ldv_24367;
48619    } else {
48620
48621    }
48622    }
48623  }
48624  }
48625  {
48626#line 474
48627  __cil_tmp70 = header->bDescriptorType;
48628#line 474
48629  __cil_tmp71 = (unsigned int )__cil_tmp70;
48630#line 474
48631  if (__cil_tmp71 == 4U) {
48632#line 478
48633    d = (struct usb_interface_descriptor *)header;
48634    {
48635#line 479
48636    __cil_tmp72 = d->bLength;
48637#line 479
48638    __cil_tmp73 = (unsigned int )__cil_tmp72;
48639#line 479
48640    if (__cil_tmp73 <= 8U) {
48641      {
48642#line 480
48643      __cil_tmp74 = (struct device  const  *)ddev;
48644#line 480
48645      __cil_tmp75 = d->bLength;
48646#line 480
48647      __cil_tmp76 = (int )__cil_tmp75;
48648#line 480
48649      dev_warn(__cil_tmp74, "config %d has an invalid interface descriptor of length %d, skipping\n",
48650               cfgno, __cil_tmp76);
48651      }
48652#line 483
48653      goto ldv_24370;
48654    } else {
48655
48656    }
48657    }
48658#line 486
48659    __cil_tmp77 = d->bInterfaceNumber;
48660#line 486
48661    inum = (int )__cil_tmp77;
48662    {
48663#line 488
48664    __cil_tmp78 = dev->quirks;
48665#line 488
48666    __cil_tmp79 = __cil_tmp78 & 32U;
48667#line 488
48668    if (__cil_tmp79 != 0U) {
48669#line 488
48670      if (n >= nintf_orig) {
48671        {
48672#line 490
48673        __cil_tmp80 = (struct device  const  *)ddev;
48674#line 490
48675        dev_warn(__cil_tmp80, "config %d has more interface descriptors, than it declares in bNumInterfaces, ignoring interface number: %d\n",
48676                 cfgno, inum);
48677        }
48678#line 494
48679        goto ldv_24370;
48680      } else {
48681
48682      }
48683    } else {
48684
48685    }
48686    }
48687#line 497
48688    if (inum >= nintf_orig) {
48689      {
48690#line 498
48691      __cil_tmp81 = (struct device  const  *)ddev;
48692#line 498
48693      __cil_tmp82 = nintf_orig + -1;
48694#line 498
48695      dev_warn(__cil_tmp81, "config %d has an invalid interface number: %d but max is %d\n",
48696               cfgno, inum, __cil_tmp82);
48697      }
48698    } else {
48699
48700    }
48701#line 504
48702    i = 0;
48703#line 504
48704    goto ldv_24373;
48705    ldv_24372: ;
48706    {
48707#line 505
48708    __cil_tmp83 = (int )inums[i];
48709#line 505
48710    if (__cil_tmp83 == inum) {
48711#line 506
48712      goto ldv_24371;
48713    } else {
48714
48715    }
48716    }
48717#line 504
48718    i = i + 1;
48719    ldv_24373: ;
48720#line 504
48721    if (i < n) {
48722#line 505
48723      goto ldv_24372;
48724    } else {
48725#line 507
48726      goto ldv_24371;
48727    }
48728    ldv_24371: ;
48729#line 508
48730    if (i < n) {
48731      {
48732#line 509
48733      __cil_tmp84 = (unsigned int )nalts[i];
48734#line 509
48735      if (__cil_tmp84 != 255U) {
48736#line 510
48737        __cil_tmp85 = (int )nalts[i];
48738#line 510
48739        __cil_tmp86 = __cil_tmp85 + 1;
48740#line 510
48741        nalts[i] = (u8 )__cil_tmp86;
48742      } else
48743#line 511
48744      if (n <= 31) {
48745#line 512
48746        inums[n] = (u8 )inum;
48747#line 513
48748        nalts[n] = (u8 )1U;
48749#line 514
48750        n = n + 1;
48751      } else {
48752
48753      }
48754      }
48755    } else {
48756
48757    }
48758  } else {
48759    {
48760#line 517
48761    __cil_tmp87 = header->bDescriptorType;
48762#line 517
48763    __cil_tmp88 = (unsigned int )__cil_tmp87;
48764#line 517
48765    if (__cil_tmp88 == 11U) {
48766#line 519
48767      if (iad_num == 16U) {
48768        {
48769#line 520
48770        __cil_tmp89 = (struct device  const  *)ddev;
48771#line 520
48772        dev_warn(__cil_tmp89, "found more Interface Association Descriptors than allocated for in configuration %d\n",
48773                 cfgno);
48774        }
48775      } else {
48776#line 525
48777        config->intf_assoc[iad_num] = (struct usb_interface_assoc_descriptor *)header;
48778#line 528
48779        iad_num = iad_num + 1U;
48780      }
48781    } else {
48782      {
48783#line 531
48784      __cil_tmp90 = header->bDescriptorType;
48785#line 531
48786      __cil_tmp91 = (unsigned int )__cil_tmp90;
48787#line 531
48788      if (__cil_tmp91 == 1U) {
48789        {
48790#line 533
48791        __cil_tmp92 = (struct device  const  *)ddev;
48792#line 533
48793        __cil_tmp93 = header->bDescriptorType;
48794#line 533
48795        __cil_tmp94 = (int )__cil_tmp93;
48796#line 533
48797        dev_warn(__cil_tmp92, "config %d contains an unexpected descriptor of type 0x%X, skipping\n",
48798                 cfgno, __cil_tmp94);
48799        }
48800      } else {
48801        {
48802#line 531
48803        __cil_tmp95 = header->bDescriptorType;
48804#line 531
48805        __cil_tmp96 = (unsigned int )__cil_tmp95;
48806#line 531
48807        if (__cil_tmp96 == 2U) {
48808          {
48809#line 533
48810          __cil_tmp97 = (struct device  const  *)ddev;
48811#line 533
48812          __cil_tmp98 = header->bDescriptorType;
48813#line 533
48814          __cil_tmp99 = (int )__cil_tmp98;
48815#line 533
48816          dev_warn(__cil_tmp97, "config %d contains an unexpected descriptor of type 0x%X, skipping\n",
48817                   cfgno, __cil_tmp99);
48818          }
48819        } else {
48820
48821        }
48822        }
48823      }
48824      }
48825    }
48826    }
48827  }
48828  }
48829  ldv_24370: 
48830#line 457
48831  __cil_tmp100 = header->bLength;
48832#line 457
48833  __cil_tmp101 = (unsigned long )__cil_tmp100;
48834#line 457
48835  buffer2 = buffer2 + __cil_tmp101;
48836#line 457
48837  __cil_tmp102 = header->bLength;
48838#line 457
48839  __cil_tmp103 = (int )__cil_tmp102;
48840#line 457
48841  size2 = size2 - __cil_tmp103;
48842  ldv_24375: ;
48843#line 455
48844  if (size2 > 0) {
48845#line 457
48846    goto ldv_24374;
48847  } else {
48848#line 459
48849    goto ldv_24367;
48850  }
48851  ldv_24367: 
48852#line 538
48853  __cil_tmp104 = (long )buffer;
48854#line 538
48855  __cil_tmp105 = (unsigned int )__cil_tmp104;
48856#line 538
48857  __cil_tmp106 = (long )buffer2;
48858#line 538
48859  __cil_tmp107 = (unsigned int )__cil_tmp106;
48860#line 538
48861  __cil_tmp108 = __cil_tmp107 - __cil_tmp105;
48862#line 538
48863  size = (int )__cil_tmp108;
48864#line 539
48865  __cil_tmp109 = (long )buffer0;
48866#line 539
48867  __cil_tmp110 = (unsigned short )__cil_tmp109;
48868#line 539
48869  __cil_tmp111 = (int )__cil_tmp110;
48870#line 539
48871  __cil_tmp112 = (long )buffer2;
48872#line 539
48873  __cil_tmp113 = (unsigned short )__cil_tmp112;
48874#line 539
48875  __cil_tmp114 = (int )__cil_tmp113;
48876#line 539
48877  __cil_tmp115 = __cil_tmp114 - __cil_tmp111;
48878#line 539
48879  config->desc.wTotalLength = (__le16 )__cil_tmp115;
48880#line 541
48881  if (n != nintf) {
48882    {
48883#line 542
48884    tmp___0 = plural(n);
48885#line 542
48886    __cil_tmp116 = (struct device  const  *)ddev;
48887#line 542
48888    dev_warn(__cil_tmp116, "config %d has %d interface%s, different from the descriptor\'s value: %d\n",
48889             cfgno, n, tmp___0, nintf_orig);
48890    }
48891  } else
48892#line 545
48893  if (n == 0) {
48894    {
48895#line 546
48896    __cil_tmp117 = (struct device  const  *)ddev;
48897#line 546
48898    dev_warn(__cil_tmp117, "config %d has no interfaces?\n", cfgno);
48899    }
48900  } else {
48901
48902  }
48903#line 547
48904  nintf = n;
48905#line 547
48906  config->desc.bNumInterfaces = (__u8 )nintf;
48907#line 550
48908  i = 0;
48909#line 550
48910  goto ldv_24380;
48911  ldv_24379: 
48912#line 551
48913  j = 0;
48914#line 551
48915  goto ldv_24378;
48916  ldv_24377: ;
48917  {
48918#line 552
48919  __cil_tmp118 = (int )inums[j];
48920#line 552
48921  if (__cil_tmp118 == i) {
48922#line 553
48923    goto ldv_24376;
48924  } else {
48925
48926  }
48927  }
48928#line 551
48929  j = j + 1;
48930  ldv_24378: ;
48931#line 551
48932  if (j < nintf) {
48933#line 552
48934    goto ldv_24377;
48935  } else {
48936#line 554
48937    goto ldv_24376;
48938  }
48939  ldv_24376: ;
48940#line 555
48941  if (j >= nintf) {
48942    {
48943#line 556
48944    __cil_tmp119 = (struct device  const  *)ddev;
48945#line 556
48946    dev_warn(__cil_tmp119, "config %d has no interface number %d\n", cfgno, i);
48947    }
48948  } else {
48949
48950  }
48951#line 550
48952  i = i + 1;
48953  ldv_24380: ;
48954#line 550
48955  if (i < nintf) {
48956#line 551
48957    goto ldv_24379;
48958  } else {
48959#line 553
48960    goto ldv_24381;
48961  }
48962  ldv_24381: 
48963#line 561
48964  i = 0;
48965#line 561
48966  goto ldv_24383;
48967  ldv_24382: 
48968#line 562
48969  j = (int )nalts[i];
48970#line 563
48971  if (j > 128) {
48972    {
48973#line 564
48974    __cil_tmp120 = (struct device  const  *)ddev;
48975#line 564
48976    __cil_tmp121 = (int )inums[i];
48977#line 564
48978    dev_warn(__cil_tmp120, "too many alternate settings for config %d interface %d: %d, using maximum allowed: %d\n",
48979             cfgno, __cil_tmp121, j, 128);
48980#line 568
48981    j = 128;
48982#line 568
48983    nalts[i] = (u8 )128U;
48984    }
48985  } else {
48986
48987  }
48988  {
48989#line 571
48990  __cil_tmp122 = (unsigned long )j;
48991#line 571
48992  __cil_tmp123 = (unsigned int )__cil_tmp122;
48993#line 571
48994  __cil_tmp124 = __cil_tmp123 * 48U;
48995#line 571
48996  __cil_tmp125 = __cil_tmp124 + 8U;
48997#line 571
48998  len = (int )__cil_tmp125;
48999#line 572
49000  __cil_tmp126 = (size_t )len;
49001#line 572
49002  tmp___1 = kzalloc(__cil_tmp126, 208U);
49003#line 572
49004  intfc = (struct usb_interface_cache *)tmp___1;
49005#line 572
49006  config->intf_cache[i] = intfc;
49007  }
49008  {
49009#line 573
49010  __cil_tmp127 = (struct usb_interface_cache *)0;
49011#line 573
49012  __cil_tmp128 = (unsigned long )__cil_tmp127;
49013#line 573
49014  __cil_tmp129 = (unsigned long )intfc;
49015#line 573
49016  if (__cil_tmp129 == __cil_tmp128) {
49017#line 574
49018    return (-12);
49019  } else {
49020
49021  }
49022  }
49023  {
49024#line 575
49025  __cil_tmp130 = & intfc->ref;
49026#line 575
49027  kref_init(__cil_tmp130);
49028#line 561
49029  i = i + 1;
49030  }
49031  ldv_24383: ;
49032#line 561
49033  if (i < nintf) {
49034#line 562
49035    goto ldv_24382;
49036  } else {
49037#line 564
49038    goto ldv_24384;
49039  }
49040  ldv_24384: 
49041  {
49042#line 582
49043  config->extra = buffer;
49044#line 583
49045  i = find_next_descriptor(buffer, size, 4, 4, & n);
49046#line 585
49047  config->extralen = i;
49048  }
49049#line 586
49050  if (n > 0) {
49051    {
49052#line 587
49053    tmp___2 = plural(n);
49054#line 587
49055    __cil_tmp131 = (struct device  const  *)ddev;
49056#line 587
49057    __cil_tmp132 = (char *)"configuration";
49058#line 587
49059    dev_printk("<7>", __cil_tmp131, "skipped %d descriptor%s after %s\n", n, tmp___2,
49060               __cil_tmp132);
49061    }
49062  } else {
49063
49064  }
49065#line 589
49066  __cil_tmp133 = (unsigned long )i;
49067#line 589
49068  buffer = buffer + __cil_tmp133;
49069#line 590
49070  size = size - i;
49071#line 593
49072  goto ldv_24386;
49073  ldv_24385: 
49074  {
49075#line 594
49076  __cil_tmp134 = (u8 *)(& inums);
49077#line 594
49078  __cil_tmp135 = (u8 *)(& nalts);
49079#line 594
49080  retval = usb_parse_interface(ddev, cfgno, config, buffer, size, __cil_tmp134, __cil_tmp135);
49081  }
49082#line 596
49083  if (retval < 0) {
49084#line 597
49085    return (retval);
49086  } else {
49087
49088  }
49089#line 599
49090  __cil_tmp136 = (unsigned long )retval;
49091#line 599
49092  buffer = buffer + __cil_tmp136;
49093#line 600
49094  size = size - retval;
49095  ldv_24386: ;
49096#line 593
49097  if (size > 0) {
49098#line 594
49099    goto ldv_24385;
49100  } else {
49101#line 596
49102    goto ldv_24387;
49103  }
49104  ldv_24387: 
49105#line 604
49106  i = 0;
49107#line 604
49108  goto ldv_24395;
49109  ldv_24394: 
49110#line 605
49111  intfc = config->intf_cache[i];
49112#line 606
49113  j = 0;
49114#line 606
49115  goto ldv_24392;
49116  ldv_24391: 
49117#line 607
49118  n = 0;
49119#line 607
49120  goto ldv_24390;
49121  ldv_24389: ;
49122  {
49123#line 608
49124  __cil_tmp137 = intfc->altsetting[n].desc.bAlternateSetting;
49125#line 608
49126  __cil_tmp138 = (int )__cil_tmp137;
49127#line 608
49128  if (__cil_tmp138 == j) {
49129#line 610
49130    goto ldv_24388;
49131  } else {
49132
49133  }
49134  }
49135#line 607
49136  n = n + 1;
49137  ldv_24390: ;
49138  {
49139#line 607
49140  __cil_tmp139 = intfc->num_altsetting;
49141#line 607
49142  __cil_tmp140 = (unsigned int )n;
49143#line 607
49144  if (__cil_tmp140 < __cil_tmp139) {
49145#line 608
49146    goto ldv_24389;
49147  } else {
49148#line 610
49149    goto ldv_24388;
49150  }
49151  }
49152  ldv_24388: ;
49153  {
49154#line 612
49155  __cil_tmp141 = intfc->num_altsetting;
49156#line 612
49157  __cil_tmp142 = (unsigned int )n;
49158#line 612
49159  if (__cil_tmp142 >= __cil_tmp141) {
49160    {
49161#line 613
49162    __cil_tmp143 = (struct device  const  *)ddev;
49163#line 613
49164    __cil_tmp144 = (int )inums[i];
49165#line 613
49166    dev_warn(__cil_tmp143, "config %d interface %d has no altsetting %d\n", cfgno,
49167             __cil_tmp144, j);
49168    }
49169  } else {
49170
49171  }
49172  }
49173#line 606
49174  j = j + 1;
49175  ldv_24392: ;
49176  {
49177#line 606
49178  __cil_tmp145 = intfc->num_altsetting;
49179#line 606
49180  __cil_tmp146 = (unsigned int )j;
49181#line 606
49182  if (__cil_tmp146 < __cil_tmp145) {
49183#line 607
49184    goto ldv_24391;
49185  } else {
49186#line 609
49187    goto ldv_24393;
49188  }
49189  }
49190  ldv_24393: 
49191#line 604
49192  i = i + 1;
49193  ldv_24395: ;
49194#line 604
49195  if (i < nintf) {
49196#line 605
49197    goto ldv_24394;
49198  } else {
49199#line 607
49200    goto ldv_24396;
49201  }
49202  ldv_24396: ;
49203#line 618
49204  return (0);
49205}
49206}
49207#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"
49208void usb_destroy_configuration(struct usb_device *dev ) 
49209{ int c ;
49210  int i ;
49211  struct usb_host_config *cf ;
49212  struct usb_host_config *__cil_tmp5 ;
49213  unsigned long __cil_tmp6 ;
49214  struct usb_host_config *__cil_tmp7 ;
49215  unsigned long __cil_tmp8 ;
49216  char **__cil_tmp9 ;
49217  unsigned long __cil_tmp10 ;
49218  char **__cil_tmp11 ;
49219  unsigned long __cil_tmp12 ;
49220  unsigned long __cil_tmp13 ;
49221  char **__cil_tmp14 ;
49222  char **__cil_tmp15 ;
49223  char *__cil_tmp16 ;
49224  void const   *__cil_tmp17 ;
49225  __u8 __cil_tmp18 ;
49226  int __cil_tmp19 ;
49227  char **__cil_tmp20 ;
49228  void const   *__cil_tmp21 ;
49229  unsigned long __cil_tmp22 ;
49230  struct usb_host_config *__cil_tmp23 ;
49231  char *__cil_tmp24 ;
49232  void const   *__cil_tmp25 ;
49233  struct usb_interface_cache *__cil_tmp26 ;
49234  unsigned long __cil_tmp27 ;
49235  struct usb_interface_cache *__cil_tmp28 ;
49236  unsigned long __cil_tmp29 ;
49237  struct usb_interface_cache *__cil_tmp30 ;
49238  struct kref *__cil_tmp31 ;
49239  __u8 __cil_tmp32 ;
49240  int __cil_tmp33 ;
49241  __u8 __cil_tmp34 ;
49242  int __cil_tmp35 ;
49243  struct usb_host_config *__cil_tmp36 ;
49244  void const   *__cil_tmp37 ;
49245
49246  {
49247  {
49248#line 628
49249  __cil_tmp5 = (struct usb_host_config *)0;
49250#line 628
49251  __cil_tmp6 = (unsigned long )__cil_tmp5;
49252#line 628
49253  __cil_tmp7 = dev->config;
49254#line 628
49255  __cil_tmp8 = (unsigned long )__cil_tmp7;
49256#line 628
49257  if (__cil_tmp8 == __cil_tmp6) {
49258#line 629
49259    return;
49260  } else {
49261
49262  }
49263  }
49264  {
49265#line 631
49266  __cil_tmp9 = (char **)0;
49267#line 631
49268  __cil_tmp10 = (unsigned long )__cil_tmp9;
49269#line 631
49270  __cil_tmp11 = dev->rawdescriptors;
49271#line 631
49272  __cil_tmp12 = (unsigned long )__cil_tmp11;
49273#line 631
49274  if (__cil_tmp12 != __cil_tmp10) {
49275#line 632
49276    i = 0;
49277#line 632
49278    goto ldv_24403;
49279    ldv_24402: 
49280    {
49281#line 633
49282    __cil_tmp13 = (unsigned long )i;
49283#line 633
49284    __cil_tmp14 = dev->rawdescriptors;
49285#line 633
49286    __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
49287#line 633
49288    __cil_tmp16 = *__cil_tmp15;
49289#line 633
49290    __cil_tmp17 = (void const   *)__cil_tmp16;
49291#line 633
49292    kfree(__cil_tmp17);
49293#line 632
49294    i = i + 1;
49295    }
49296    ldv_24403: ;
49297    {
49298#line 632
49299    __cil_tmp18 = dev->descriptor.bNumConfigurations;
49300#line 632
49301    __cil_tmp19 = (int )__cil_tmp18;
49302#line 632
49303    if (__cil_tmp19 > i) {
49304#line 633
49305      goto ldv_24402;
49306    } else {
49307#line 635
49308      goto ldv_24404;
49309    }
49310    }
49311    ldv_24404: 
49312    {
49313#line 635
49314    __cil_tmp20 = dev->rawdescriptors;
49315#line 635
49316    __cil_tmp21 = (void const   *)__cil_tmp20;
49317#line 635
49318    kfree(__cil_tmp21);
49319#line 636
49320    dev->rawdescriptors = (char **)0;
49321    }
49322  } else {
49323
49324  }
49325  }
49326#line 639
49327  c = 0;
49328#line 639
49329  goto ldv_24410;
49330  ldv_24409: 
49331  {
49332#line 640
49333  __cil_tmp22 = (unsigned long )c;
49334#line 640
49335  __cil_tmp23 = dev->config;
49336#line 640
49337  cf = __cil_tmp23 + __cil_tmp22;
49338#line 642
49339  __cil_tmp24 = cf->string;
49340#line 642
49341  __cil_tmp25 = (void const   *)__cil_tmp24;
49342#line 642
49343  kfree(__cil_tmp25);
49344#line 643
49345  i = 0;
49346  }
49347#line 643
49348  goto ldv_24407;
49349  ldv_24406: ;
49350  {
49351#line 644
49352  __cil_tmp26 = (struct usb_interface_cache *)0;
49353#line 644
49354  __cil_tmp27 = (unsigned long )__cil_tmp26;
49355#line 644
49356  __cil_tmp28 = cf->intf_cache[i];
49357#line 644
49358  __cil_tmp29 = (unsigned long )__cil_tmp28;
49359#line 644
49360  if (__cil_tmp29 != __cil_tmp27) {
49361    {
49362#line 645
49363    __cil_tmp30 = cf->intf_cache[i];
49364#line 645
49365    __cil_tmp31 = & __cil_tmp30->ref;
49366#line 645
49367    kref_put(__cil_tmp31, & usb_release_interface_cache);
49368    }
49369  } else {
49370
49371  }
49372  }
49373#line 643
49374  i = i + 1;
49375  ldv_24407: ;
49376  {
49377#line 643
49378  __cil_tmp32 = cf->desc.bNumInterfaces;
49379#line 643
49380  __cil_tmp33 = (int )__cil_tmp32;
49381#line 643
49382  if (__cil_tmp33 > i) {
49383#line 644
49384    goto ldv_24406;
49385  } else {
49386#line 646
49387    goto ldv_24408;
49388  }
49389  }
49390  ldv_24408: 
49391#line 639
49392  c = c + 1;
49393  ldv_24410: ;
49394  {
49395#line 639
49396  __cil_tmp34 = dev->descriptor.bNumConfigurations;
49397#line 639
49398  __cil_tmp35 = (int )__cil_tmp34;
49399#line 639
49400  if (__cil_tmp35 > c) {
49401#line 640
49402    goto ldv_24409;
49403  } else {
49404#line 642
49405    goto ldv_24411;
49406  }
49407  }
49408  ldv_24411: 
49409  {
49410#line 649
49411  __cil_tmp36 = dev->config;
49412#line 649
49413  __cil_tmp37 = (void const   *)__cil_tmp36;
49414#line 649
49415  kfree(__cil_tmp37);
49416#line 650
49417  dev->config = (struct usb_host_config *)0;
49418  }
49419#line 651
49420  return;
49421}
49422}
49423#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"
49424int usb_get_configuration(struct usb_device *dev ) 
49425{ struct device *ddev ;
49426  int ncfg ;
49427  int result ;
49428  unsigned int cfgno ;
49429  unsigned int length ;
49430  unsigned char *bigbuffer ;
49431  struct usb_config_descriptor *desc ;
49432  void *tmp ;
49433  void *tmp___0 ;
49434  void *tmp___1 ;
49435  int _max1 ;
49436  int _max2 ;
49437  int tmp___2 ;
49438  void *tmp___3 ;
49439  __u8 __cil_tmp16 ;
49440  unsigned char *__cil_tmp17 ;
49441  unsigned char *__cil_tmp18 ;
49442  unsigned char __cil_tmp19 ;
49443  unsigned int __cil_tmp20 ;
49444  struct device  const  *__cil_tmp21 ;
49445  struct device  const  *__cil_tmp22 ;
49446  unsigned long __cil_tmp23 ;
49447  unsigned int __cil_tmp24 ;
49448  size_t __cil_tmp25 ;
49449  struct usb_host_config *__cil_tmp26 ;
49450  unsigned long __cil_tmp27 ;
49451  struct usb_host_config *__cil_tmp28 ;
49452  unsigned long __cil_tmp29 ;
49453  unsigned long __cil_tmp30 ;
49454  unsigned int __cil_tmp31 ;
49455  size_t __cil_tmp32 ;
49456  char **__cil_tmp33 ;
49457  unsigned long __cil_tmp34 ;
49458  char **__cil_tmp35 ;
49459  unsigned long __cil_tmp36 ;
49460  struct usb_config_descriptor *__cil_tmp37 ;
49461  unsigned long __cil_tmp38 ;
49462  unsigned long __cil_tmp39 ;
49463  unsigned char __cil_tmp40 ;
49464  int __cil_tmp41 ;
49465  unsigned char __cil_tmp42 ;
49466  void *__cil_tmp43 ;
49467  struct device  const  *__cil_tmp44 ;
49468  char *__cil_tmp45 ;
49469  struct device  const  *__cil_tmp46 ;
49470  struct device  const  *__cil_tmp47 ;
49471  __le16 __cil_tmp48 ;
49472  size_t __cil_tmp49 ;
49473  unsigned char *__cil_tmp50 ;
49474  unsigned long __cil_tmp51 ;
49475  unsigned long __cil_tmp52 ;
49476  unsigned char __cil_tmp53 ;
49477  int __cil_tmp54 ;
49478  unsigned char __cil_tmp55 ;
49479  void *__cil_tmp56 ;
49480  int __cil_tmp57 ;
49481  struct device  const  *__cil_tmp58 ;
49482  char *__cil_tmp59 ;
49483  void const   *__cil_tmp60 ;
49484  unsigned int __cil_tmp61 ;
49485  struct device  const  *__cil_tmp62 ;
49486  unsigned long __cil_tmp63 ;
49487  char **__cil_tmp64 ;
49488  char **__cil_tmp65 ;
49489  int __cil_tmp66 ;
49490  unsigned long __cil_tmp67 ;
49491  struct usb_host_config *__cil_tmp68 ;
49492  struct usb_host_config *__cil_tmp69 ;
49493  int __cil_tmp70 ;
49494  unsigned int __cil_tmp71 ;
49495  void const   *__cil_tmp72 ;
49496  struct device  const  *__cil_tmp73 ;
49497
49498  {
49499#line 666
49500  ddev = & dev->dev;
49501#line 667
49502  __cil_tmp16 = dev->descriptor.bNumConfigurations;
49503#line 667
49504  ncfg = (int )__cil_tmp16;
49505#line 668
49506  result = 0;
49507#line 673
49508  cfgno = 0U;
49509  {
49510#line 674
49511  __cil_tmp17 = (unsigned char *)dev;
49512#line 674
49513  __cil_tmp18 = __cil_tmp17 + 1556UL;
49514#line 674
49515  __cil_tmp19 = *__cil_tmp18;
49516#line 674
49517  __cil_tmp20 = (unsigned int )__cil_tmp19;
49518#line 674
49519  if (__cil_tmp20 == 0U) {
49520#line 675
49521    goto out_not_authorized;
49522  } else {
49523
49524  }
49525  }
49526#line 676
49527  result = -12;
49528#line 677
49529  if (ncfg > 8) {
49530    {
49531#line 678
49532    __cil_tmp21 = (struct device  const  *)ddev;
49533#line 678
49534    dev_warn(__cil_tmp21, "too many configurations: %d, using maximum allowed: %d\n",
49535             ncfg, 8);
49536#line 680
49537    ncfg = 8;
49538#line 680
49539    dev->descriptor.bNumConfigurations = (__u8 )8U;
49540    }
49541  } else {
49542
49543  }
49544#line 683
49545  if (ncfg <= 0) {
49546    {
49547#line 684
49548    __cil_tmp22 = (struct device  const  *)ddev;
49549#line 684
49550    dev_err(__cil_tmp22, "no configurations\n");
49551    }
49552#line 685
49553    return (-22);
49554  } else {
49555
49556  }
49557  {
49558#line 688
49559  __cil_tmp23 = (unsigned long )ncfg;
49560#line 688
49561  __cil_tmp24 = (unsigned int )__cil_tmp23;
49562#line 688
49563  length = __cil_tmp24 * 680U;
49564#line 689
49565  __cil_tmp25 = (size_t )length;
49566#line 689
49567  tmp = kzalloc(__cil_tmp25, 208U);
49568#line 689
49569  dev->config = (struct usb_host_config *)tmp;
49570  }
49571  {
49572#line 690
49573  __cil_tmp26 = (struct usb_host_config *)0;
49574#line 690
49575  __cil_tmp27 = (unsigned long )__cil_tmp26;
49576#line 690
49577  __cil_tmp28 = dev->config;
49578#line 690
49579  __cil_tmp29 = (unsigned long )__cil_tmp28;
49580#line 690
49581  if (__cil_tmp29 == __cil_tmp27) {
49582#line 691
49583    goto err2;
49584  } else {
49585
49586  }
49587  }
49588  {
49589#line 693
49590  __cil_tmp30 = (unsigned long )ncfg;
49591#line 693
49592  __cil_tmp31 = (unsigned int )__cil_tmp30;
49593#line 693
49594  length = __cil_tmp31 * 8U;
49595#line 694
49596  __cil_tmp32 = (size_t )length;
49597#line 694
49598  tmp___0 = kzalloc(__cil_tmp32, 208U);
49599#line 694
49600  dev->rawdescriptors = (char **)tmp___0;
49601  }
49602  {
49603#line 695
49604  __cil_tmp33 = (char **)0;
49605#line 695
49606  __cil_tmp34 = (unsigned long )__cil_tmp33;
49607#line 695
49608  __cil_tmp35 = dev->rawdescriptors;
49609#line 695
49610  __cil_tmp36 = (unsigned long )__cil_tmp35;
49611#line 695
49612  if (__cil_tmp36 == __cil_tmp34) {
49613#line 696
49614    goto err2;
49615  } else {
49616
49617  }
49618  }
49619  {
49620#line 698
49621  tmp___1 = kmalloc(9UL, 208U);
49622#line 698
49623  desc = (struct usb_config_descriptor *)tmp___1;
49624  }
49625  {
49626#line 699
49627  __cil_tmp37 = (struct usb_config_descriptor *)0;
49628#line 699
49629  __cil_tmp38 = (unsigned long )__cil_tmp37;
49630#line 699
49631  __cil_tmp39 = (unsigned long )desc;
49632#line 699
49633  if (__cil_tmp39 == __cil_tmp38) {
49634#line 700
49635    goto err2;
49636  } else {
49637
49638  }
49639  }
49640#line 702
49641  result = 0;
49642#line 703
49643  goto ldv_24430;
49644  ldv_24429: 
49645  {
49646#line 706
49647  __cil_tmp40 = (unsigned char )cfgno;
49648#line 706
49649  __cil_tmp41 = (int )__cil_tmp40;
49650#line 706
49651  __cil_tmp42 = (unsigned char )__cil_tmp41;
49652#line 706
49653  __cil_tmp43 = (void *)desc;
49654#line 706
49655  result = usb_get_descriptor(dev, (unsigned char)2, __cil_tmp42, __cil_tmp43, 9);
49656  }
49657#line 708
49658  if (result < 0) {
49659    {
49660#line 709
49661    __cil_tmp44 = (struct device  const  *)ddev;
49662#line 709
49663    __cil_tmp45 = (char *)"start";
49664#line 709
49665    dev_err(__cil_tmp44, "unable to read config index %d descriptor/%s: %d\n", cfgno,
49666            __cil_tmp45, result);
49667#line 711
49668    __cil_tmp46 = (struct device  const  *)ddev;
49669#line 711
49670    dev_err(__cil_tmp46, "chopping to %d config(s)\n", cfgno);
49671#line 712
49672    dev->descriptor.bNumConfigurations = (__u8 )cfgno;
49673    }
49674#line 713
49675    goto ldv_24424;
49676  } else
49677#line 714
49678  if (result <= 3) {
49679    {
49680#line 715
49681    __cil_tmp47 = (struct device  const  *)ddev;
49682#line 715
49683    dev_err(__cil_tmp47, "config index %d descriptor too short (expected %i, got %i)\n",
49684            cfgno, 9, result);
49685#line 718
49686    result = -22;
49687    }
49688#line 719
49689    goto err;
49690  } else {
49691
49692  }
49693#line 721
49694  __cil_tmp48 = desc->wTotalLength;
49695#line 721
49696  _max1 = (int )__cil_tmp48;
49697#line 721
49698  _max2 = 9;
49699#line 721
49700  if (_max1 > _max2) {
49701#line 721
49702    tmp___2 = _max1;
49703  } else {
49704#line 721
49705    tmp___2 = _max2;
49706  }
49707  {
49708#line 721
49709  length = (unsigned int )tmp___2;
49710#line 725
49711  __cil_tmp49 = (size_t )length;
49712#line 725
49713  tmp___3 = kmalloc(__cil_tmp49, 208U);
49714#line 725
49715  bigbuffer = (unsigned char *)tmp___3;
49716  }
49717  {
49718#line 726
49719  __cil_tmp50 = (unsigned char *)0;
49720#line 726
49721  __cil_tmp51 = (unsigned long )__cil_tmp50;
49722#line 726
49723  __cil_tmp52 = (unsigned long )bigbuffer;
49724#line 726
49725  if (__cil_tmp52 == __cil_tmp51) {
49726#line 727
49727    result = -12;
49728#line 728
49729    goto err;
49730  } else {
49731
49732  }
49733  }
49734  {
49735#line 730
49736  __cil_tmp53 = (unsigned char )cfgno;
49737#line 730
49738  __cil_tmp54 = (int )__cil_tmp53;
49739#line 730
49740  __cil_tmp55 = (unsigned char )__cil_tmp54;
49741#line 730
49742  __cil_tmp56 = (void *)bigbuffer;
49743#line 730
49744  __cil_tmp57 = (int )length;
49745#line 730
49746  result = usb_get_descriptor(dev, (unsigned char)2, __cil_tmp55, __cil_tmp56, __cil_tmp57);
49747  }
49748#line 732
49749  if (result < 0) {
49750    {
49751#line 733
49752    __cil_tmp58 = (struct device  const  *)ddev;
49753#line 733
49754    __cil_tmp59 = (char *)"all";
49755#line 733
49756    dev_err(__cil_tmp58, "unable to read config index %d descriptor/%s\n", cfgno,
49757            __cil_tmp59);
49758#line 735
49759    __cil_tmp60 = (void const   *)bigbuffer;
49760#line 735
49761    kfree(__cil_tmp60);
49762    }
49763#line 736
49764    goto err;
49765  } else {
49766
49767  }
49768  {
49769#line 738
49770  __cil_tmp61 = (unsigned int )result;
49771#line 738
49772  if (__cil_tmp61 < length) {
49773    {
49774#line 739
49775    __cil_tmp62 = (struct device  const  *)ddev;
49776#line 739
49777    dev_warn(__cil_tmp62, "config index %d descriptor too short (expected %i, got %i)\n",
49778             cfgno, length, result);
49779#line 741
49780    length = (unsigned int )result;
49781    }
49782  } else {
49783
49784  }
49785  }
49786  {
49787#line 744
49788  __cil_tmp63 = (unsigned long )cfgno;
49789#line 744
49790  __cil_tmp64 = dev->rawdescriptors;
49791#line 744
49792  __cil_tmp65 = __cil_tmp64 + __cil_tmp63;
49793#line 744
49794  *__cil_tmp65 = (char *)bigbuffer;
49795#line 746
49796  __cil_tmp66 = (int )cfgno;
49797#line 746
49798  __cil_tmp67 = (unsigned long )cfgno;
49799#line 746
49800  __cil_tmp68 = dev->config;
49801#line 746
49802  __cil_tmp69 = __cil_tmp68 + __cil_tmp67;
49803#line 746
49804  __cil_tmp70 = (int )length;
49805#line 746
49806  result = usb_parse_configuration(dev, __cil_tmp66, __cil_tmp69, bigbuffer, __cil_tmp70);
49807  }
49808#line 748
49809  if (result < 0) {
49810#line 749
49811    cfgno = cfgno + 1U;
49812#line 750
49813    goto err;
49814  } else {
49815
49816  }
49817#line 703
49818  cfgno = cfgno + 1U;
49819  ldv_24430: ;
49820  {
49821#line 703
49822  __cil_tmp71 = (unsigned int )ncfg;
49823#line 703
49824  if (__cil_tmp71 > cfgno) {
49825#line 704
49826    goto ldv_24429;
49827  } else {
49828#line 706
49829    goto ldv_24424;
49830  }
49831  }
49832  ldv_24424: 
49833#line 753
49834  result = 0;
49835  err: 
49836  {
49837#line 756
49838  __cil_tmp72 = (void const   *)desc;
49839#line 756
49840  kfree(__cil_tmp72);
49841  }
49842  out_not_authorized: 
49843#line 758
49844  dev->descriptor.bNumConfigurations = (__u8 )cfgno;
49845  err2: ;
49846#line 760
49847  if (result == -12) {
49848    {
49849#line 761
49850    __cil_tmp73 = (struct device  const  *)ddev;
49851#line 761
49852    dev_err(__cil_tmp73, "out of memory\n");
49853    }
49854  } else {
49855
49856  }
49857#line 762
49858  return (result);
49859}
49860}
49861#line 63 "include/linux/string.h"
49862extern char *strrchr(char const   * , int  ) ;
49863#line 27 "include/linux/err.h"
49864__inline static long PTR_ERR(void const   *ptr ) 
49865{ 
49866
49867  {
49868#line 29
49869  return ((long )ptr);
49870}
49871}
49872#line 89 "include/linux/rwsem.h"
49873extern void down_write(struct rw_semaphore * ) ;
49874#line 104
49875extern void up_write(struct rw_semaphore * ) ;
49876#line 537 "include/linux/module.h"
49877__inline static int ldv_try_module_get_1(struct module *module ) ;
49878#line 547
49879void ldv_module_put_2(struct module *ldv_func_arg1 ) ;
49880#line 551
49881void ldv_module_put_4(struct module *ldv_func_arg1 ) ;
49882#line 391 "include/linux/device.h"
49883extern struct class *__class_create(struct module * , char const   * , struct lock_class_key * ) ;
49884#line 394
49885extern void class_destroy(struct class * ) ;
49886#line 743
49887extern struct device *device_create(struct class * , struct device * , dev_t  , void * ,
49888                                    char const   *  , ...) ;
49889#line 747
49890extern void device_destroy(struct class * , dev_t  ) ;
49891#line 891 "include/linux/fs.h"
49892__inline static unsigned int iminor(struct inode  const  *inode ) 
49893{ dev_t __cil_tmp2 ;
49894  unsigned int __cil_tmp3 ;
49895
49896  {
49897  {
49898#line 893
49899  __cil_tmp2 = inode->i_rdev;
49900#line 893
49901  __cil_tmp3 = (unsigned int )__cil_tmp2;
49902#line 893
49903  return (__cil_tmp3 & 1048575U);
49904  }
49905}
49906}
49907#line 2089
49908extern int __register_chrdev(unsigned int  , unsigned int  , unsigned int  , char const   * ,
49909                             struct file_operations  const  * ) ;
49910#line 2092
49911extern void __unregister_chrdev(unsigned int  , unsigned int  , unsigned int  , char const   * ) ;
49912#line 2097 "include/linux/fs.h"
49913__inline static int register_chrdev(unsigned int major , char const   *name , struct file_operations  const  *fops ) 
49914{ int tmp ;
49915
49916  {
49917  {
49918#line 2100
49919  tmp = __register_chrdev(major, 0U, 256U, name, fops);
49920  }
49921#line 2100
49922  return (tmp);
49923}
49924}
49925#line 2103 "include/linux/fs.h"
49926__inline static void unregister_chrdev(unsigned int major , char const   *name ) 
49927{ 
49928
49929  {
49930  {
49931#line 2105
49932  __unregister_chrdev(major, 0U, 256U, name);
49933  }
49934#line 2106
49935  return;
49936}
49937}
49938#line 2336
49939extern loff_t noop_llseek(struct file * , loff_t  , int  ) ;
49940#line 941 "include/linux/usb.h"
49941int usb_register_dev(struct usb_interface *intf , struct usb_class_driver *class_driver ) ;
49942#line 943
49943void usb_deregister_dev(struct usb_interface *intf , struct usb_class_driver *class_driver ) ;
49944#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"
49945static struct file_operations  const  *usb_minors[256U]  ;
49946#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"
49947static struct rw_semaphore minor_rwsem  =    {0L, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
49948                                                                           {(struct lock_class *)0,
49949                                                                            (struct lock_class *)0},
49950                                                                           "minor_rwsem.wait_lock",
49951                                                                           0, 0UL}}}},
49952    {& minor_rwsem.wait_list, & minor_rwsem.wait_list}, {(struct lock_class_key *)0,
49953                                                         {(struct lock_class *)0,
49954                                                          (struct lock_class *)0},
49955                                                         "minor_rwsem", 0, 0UL}};
49956#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"
49957static int usb_open(struct inode *inode , struct file *file ) 
49958{ int minor ;
49959  unsigned int tmp ;
49960  struct file_operations  const  *c ;
49961  int err ;
49962  struct file_operations  const  *old_fops ;
49963  struct file_operations  const  *new_fops ;
49964  int tmp___1 ;
49965  int tmp___3 ;
49966  struct inode  const  *__cil_tmp11 ;
49967  struct file_operations  const  *__cil_tmp12 ;
49968  unsigned long __cil_tmp13 ;
49969  unsigned long __cil_tmp14 ;
49970  struct file_operations  const  *__cil_tmp15 ;
49971  unsigned long __cil_tmp16 ;
49972  unsigned long __cil_tmp17 ;
49973  struct module *__cil_tmp18 ;
49974  struct module *__cil_tmp19 ;
49975  struct file_operations  const  *__cil_tmp20 ;
49976  unsigned long __cil_tmp21 ;
49977  unsigned long __cil_tmp22 ;
49978  int (*__cil_tmp23)(struct inode * , struct file * ) ;
49979  unsigned long __cil_tmp24 ;
49980  struct file_operations  const  *__cil_tmp25 ;
49981  int (*__cil_tmp26)(struct inode * , struct file * ) ;
49982  unsigned long __cil_tmp27 ;
49983  struct file_operations  const  *__cil_tmp28 ;
49984  int (*__cil_tmp29)(struct inode * , struct file * ) ;
49985  struct file_operations  const  *__cil_tmp30 ;
49986  unsigned long __cil_tmp31 ;
49987  struct file_operations  const  *__cil_tmp32 ;
49988  unsigned long __cil_tmp33 ;
49989  struct file_operations  const  *__cil_tmp34 ;
49990  struct module *__cil_tmp35 ;
49991  struct module *__cil_tmp36 ;
49992  struct file_operations  const  *__cil_tmp37 ;
49993  unsigned long __cil_tmp38 ;
49994  unsigned long __cil_tmp39 ;
49995  struct module *__cil_tmp40 ;
49996  struct module *__cil_tmp41 ;
49997  struct file_operations  const  *__cil_tmp42 ;
49998  unsigned long __cil_tmp43 ;
49999  unsigned long __cil_tmp44 ;
50000  struct module *__cil_tmp45 ;
50001  struct module *__cil_tmp46 ;
50002
50003  {
50004  {
50005#line 40
50006  __cil_tmp11 = (struct inode  const  *)inode;
50007#line 40
50008  tmp = iminor(__cil_tmp11);
50009#line 40
50010  minor = (int )tmp;
50011#line 42
50012  err = -19;
50013#line 43
50014  new_fops = (struct file_operations  const  *)0;
50015#line 45
50016  down_read(& minor_rwsem);
50017#line 46
50018  c = usb_minors[minor];
50019  }
50020  {
50021#line 48
50022  __cil_tmp12 = (struct file_operations  const  *)0;
50023#line 48
50024  __cil_tmp13 = (unsigned long )__cil_tmp12;
50025#line 48
50026  __cil_tmp14 = (unsigned long )c;
50027#line 48
50028  if (__cil_tmp14 == __cil_tmp13) {
50029#line 49
50030    goto done;
50031  } else {
50032    {
50033#line 48
50034    __cil_tmp15 = (struct file_operations  const  *)0;
50035#line 48
50036    __cil_tmp16 = (unsigned long )__cil_tmp15;
50037#line 48
50038    __cil_tmp17 = (unsigned long )c;
50039#line 48
50040    if (__cil_tmp17 != __cil_tmp16) {
50041      {
50042#line 48
50043      __cil_tmp18 = c->owner;
50044#line 48
50045      __cil_tmp19 = (struct module *)__cil_tmp18;
50046#line 48
50047      tmp___1 = ldv_try_module_get_1(__cil_tmp19);
50048      }
50049#line 48
50050      if (tmp___1 != 0) {
50051#line 48
50052        new_fops = c;
50053      } else {
50054#line 48
50055        new_fops = (struct file_operations  const  *)0;
50056      }
50057    } else {
50058#line 48
50059      new_fops = (struct file_operations  const  *)0;
50060    }
50061    }
50062    {
50063#line 48
50064    __cil_tmp20 = (struct file_operations  const  *)0;
50065#line 48
50066    __cil_tmp21 = (unsigned long )__cil_tmp20;
50067#line 48
50068    __cil_tmp22 = (unsigned long )new_fops;
50069#line 48
50070    if (__cil_tmp22 == __cil_tmp21) {
50071#line 49
50072      goto done;
50073    } else {
50074
50075    }
50076    }
50077  }
50078  }
50079#line 51
50080  old_fops = file->f_op;
50081#line 52
50082  file->f_op = new_fops;
50083  {
50084#line 54
50085  __cil_tmp23 = (int (* const  )(struct inode * , struct file * ))0;
50086#line 54
50087  __cil_tmp24 = (unsigned long )__cil_tmp23;
50088#line 54
50089  __cil_tmp25 = file->f_op;
50090#line 54
50091  __cil_tmp26 = __cil_tmp25->open;
50092#line 54
50093  __cil_tmp27 = (unsigned long )__cil_tmp26;
50094#line 54
50095  if (__cil_tmp27 != __cil_tmp24) {
50096    {
50097#line 55
50098    __cil_tmp28 = file->f_op;
50099#line 55
50100    __cil_tmp29 = __cil_tmp28->open;
50101#line 55
50102    err = (*__cil_tmp29)(inode, file);
50103    }
50104  } else {
50105
50106  }
50107  }
50108#line 56
50109  if (err != 0) {
50110    {
50111#line 57
50112    __cil_tmp30 = (struct file_operations  const  *)0;
50113#line 57
50114    __cil_tmp31 = (unsigned long )__cil_tmp30;
50115#line 57
50116    __cil_tmp32 = file->f_op;
50117#line 57
50118    __cil_tmp33 = (unsigned long )__cil_tmp32;
50119#line 57
50120    if (__cil_tmp33 != __cil_tmp31) {
50121      {
50122#line 57
50123      __cil_tmp34 = file->f_op;
50124#line 57
50125      __cil_tmp35 = __cil_tmp34->owner;
50126#line 57
50127      __cil_tmp36 = (struct module *)__cil_tmp35;
50128#line 57
50129      ldv_module_put_2(__cil_tmp36);
50130      }
50131    } else {
50132
50133    }
50134    }
50135    {
50136#line 58
50137    __cil_tmp37 = (struct file_operations  const  *)0;
50138#line 58
50139    __cil_tmp38 = (unsigned long )__cil_tmp37;
50140#line 58
50141    __cil_tmp39 = (unsigned long )old_fops;
50142#line 58
50143    if (__cil_tmp39 != __cil_tmp38) {
50144      {
50145#line 58
50146      __cil_tmp40 = old_fops->owner;
50147#line 58
50148      __cil_tmp41 = (struct module *)__cil_tmp40;
50149#line 58
50150      tmp___3 = ldv_try_module_get_1(__cil_tmp41);
50151      }
50152#line 58
50153      if (tmp___3 != 0) {
50154#line 58
50155        file->f_op = old_fops;
50156      } else {
50157#line 58
50158        file->f_op = (struct file_operations  const  *)0;
50159      }
50160    } else {
50161#line 58
50162      file->f_op = (struct file_operations  const  *)0;
50163    }
50164    }
50165  } else {
50166
50167  }
50168  {
50169#line 60
50170  __cil_tmp42 = (struct file_operations  const  *)0;
50171#line 60
50172  __cil_tmp43 = (unsigned long )__cil_tmp42;
50173#line 60
50174  __cil_tmp44 = (unsigned long )old_fops;
50175#line 60
50176  if (__cil_tmp44 != __cil_tmp43) {
50177    {
50178#line 60
50179    __cil_tmp45 = old_fops->owner;
50180#line 60
50181    __cil_tmp46 = (struct module *)__cil_tmp45;
50182#line 60
50183    ldv_module_put_4(__cil_tmp46);
50184    }
50185  } else {
50186
50187  }
50188  }
50189  done: 
50190  {
50191#line 62
50192  up_read(& minor_rwsem);
50193  }
50194#line 63
50195  return (err);
50196}
50197}
50198#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"
50199static struct file_operations  const  usb_fops  = 
50200#line 66
50201     {& __this_module, & noop_llseek, (ssize_t (*)(struct file * , char * , size_t  ,
50202                                                 loff_t * ))0, (ssize_t (*)(struct file * ,
50203                                                                            char const   * ,
50204                                                                            size_t  ,
50205                                                                            loff_t * ))0,
50206    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
50207    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
50208    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
50209                                              u64  , unsigned int  ) ))0, (unsigned int (*)(struct file * ,
50210                                                                                            struct poll_table_struct * ))0,
50211    (long (*)(struct file * , unsigned int  , unsigned long  ))0, (long (*)(struct file * ,
50212                                                                            unsigned int  ,
50213                                                                            unsigned long  ))0,
50214    (int (*)(struct file * , struct vm_area_struct * ))0, & usb_open, (int (*)(struct file * ,
50215                                                                               fl_owner_t  ))0,
50216    (int (*)(struct inode * , struct file * ))0, (int (*)(struct file * , int  ))0,
50217    (int (*)(struct kiocb * , int  ))0, (int (*)(int  , struct file * , int  ))0,
50218    (int (*)(struct file * , int  , struct file_lock * ))0, (ssize_t (*)(struct file * ,
50219                                                                         struct page * ,
50220                                                                         int  , size_t  ,
50221                                                                         loff_t * ,
50222                                                                         int  ))0,
50223    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
50224                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
50225                                                                       int  , struct file_lock * ))0,
50226    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
50227    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
50228    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file * ,
50229                                                                        int  , loff_t  ,
50230                                                                        loff_t  ))0};
50231#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"
50232static struct usb_class *usb_class  ;
50233#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"
50234static char *usb_devnode___0(struct device *dev , mode_t *mode ) 
50235{ struct usb_class_driver *drv ;
50236  void *tmp ;
50237  char *tmp___0 ;
50238  struct device  const  *__cil_tmp6 ;
50239  struct usb_class_driver *__cil_tmp7 ;
50240  unsigned long __cil_tmp8 ;
50241  unsigned long __cil_tmp9 ;
50242  char *(*__cil_tmp10)(struct device * , mode_t * ) ;
50243  unsigned long __cil_tmp11 ;
50244  char *(*__cil_tmp12)(struct device * , mode_t * ) ;
50245  unsigned long __cil_tmp13 ;
50246  char *(*__cil_tmp14)(struct device * , mode_t * ) ;
50247
50248  {
50249  {
50250#line 81
50251  __cil_tmp6 = (struct device  const  *)dev;
50252#line 81
50253  tmp = dev_get_drvdata(__cil_tmp6);
50254#line 81
50255  drv = (struct usb_class_driver *)tmp;
50256  }
50257  {
50258#line 82
50259  __cil_tmp7 = (struct usb_class_driver *)0;
50260#line 82
50261  __cil_tmp8 = (unsigned long )__cil_tmp7;
50262#line 82
50263  __cil_tmp9 = (unsigned long )drv;
50264#line 82
50265  if (__cil_tmp9 == __cil_tmp8) {
50266#line 83
50267    return ((char *)0);
50268  } else {
50269    {
50270#line 82
50271    __cil_tmp10 = (char *(*)(struct device * , mode_t * ))0;
50272#line 82
50273    __cil_tmp11 = (unsigned long )__cil_tmp10;
50274#line 82
50275    __cil_tmp12 = drv->devnode;
50276#line 82
50277    __cil_tmp13 = (unsigned long )__cil_tmp12;
50278#line 82
50279    if (__cil_tmp13 == __cil_tmp11) {
50280#line 83
50281      return ((char *)0);
50282    } else {
50283
50284    }
50285    }
50286  }
50287  }
50288  {
50289#line 84
50290  __cil_tmp14 = drv->devnode;
50291#line 84
50292  tmp___0 = (*__cil_tmp14)(dev, mode);
50293  }
50294#line 84
50295  return (tmp___0);
50296}
50297}
50298#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"
50299static int init_usb_class(void) 
50300{ int result ;
50301  void *tmp ;
50302  struct lock_class_key __key ;
50303  struct class *tmp___0 ;
50304  long tmp___1 ;
50305  long tmp___2 ;
50306  struct usb_class *__cil_tmp7 ;
50307  unsigned long __cil_tmp8 ;
50308  unsigned long __cil_tmp9 ;
50309  struct kref *__cil_tmp10 ;
50310  struct usb_class *__cil_tmp11 ;
50311  unsigned long __cil_tmp12 ;
50312  unsigned long __cil_tmp13 ;
50313  struct kref *__cil_tmp14 ;
50314  struct class *__cil_tmp15 ;
50315  void const   *__cil_tmp16 ;
50316  struct class *__cil_tmp17 ;
50317  void const   *__cil_tmp18 ;
50318  void const   *__cil_tmp19 ;
50319  struct class *__cil_tmp20 ;
50320
50321  {
50322#line 89
50323  result = 0;
50324  {
50325#line 91
50326  __cil_tmp7 = (struct usb_class *)0;
50327#line 91
50328  __cil_tmp8 = (unsigned long )__cil_tmp7;
50329#line 91
50330  __cil_tmp9 = (unsigned long )usb_class;
50331#line 91
50332  if (__cil_tmp9 != __cil_tmp8) {
50333    {
50334#line 92
50335    __cil_tmp10 = & usb_class->kref;
50336#line 92
50337    kref_get(__cil_tmp10);
50338    }
50339#line 93
50340    goto exit;
50341  } else {
50342
50343  }
50344  }
50345  {
50346#line 96
50347  tmp = kmalloc(16UL, 208U);
50348#line 96
50349  usb_class = (struct usb_class *)tmp;
50350  }
50351  {
50352#line 97
50353  __cil_tmp11 = (struct usb_class *)0;
50354#line 97
50355  __cil_tmp12 = (unsigned long )__cil_tmp11;
50356#line 97
50357  __cil_tmp13 = (unsigned long )usb_class;
50358#line 97
50359  if (__cil_tmp13 == __cil_tmp12) {
50360#line 98
50361    result = -12;
50362#line 99
50363    goto exit;
50364  } else {
50365
50366  }
50367  }
50368  {
50369#line 102
50370  __cil_tmp14 = & usb_class->kref;
50371#line 102
50372  kref_init(__cil_tmp14);
50373#line 103
50374  tmp___0 = __class_create(& __this_module, "usb", & __key);
50375#line 103
50376  usb_class->class = tmp___0;
50377#line 104
50378  __cil_tmp15 = usb_class->class;
50379#line 104
50380  __cil_tmp16 = (void const   *)__cil_tmp15;
50381#line 104
50382  tmp___2 = IS_ERR(__cil_tmp16);
50383  }
50384#line 104
50385  if (tmp___2 != 0L) {
50386    {
50387#line 105
50388    __cil_tmp17 = usb_class->class;
50389#line 105
50390    __cil_tmp18 = (void const   *)__cil_tmp17;
50391#line 105
50392    tmp___1 = IS_ERR(__cil_tmp18);
50393#line 105
50394    result = (int )tmp___1;
50395#line 106
50396    printk("<3>class_create failed for usb devices\n");
50397#line 107
50398    __cil_tmp19 = (void const   *)usb_class;
50399#line 107
50400    kfree(__cil_tmp19);
50401#line 108
50402    usb_class = (struct usb_class *)0;
50403    }
50404#line 109
50405    goto exit;
50406  } else {
50407
50408  }
50409#line 111
50410  __cil_tmp20 = usb_class->class;
50411#line 111
50412  __cil_tmp20->devnode = & usb_devnode___0;
50413  exit: ;
50414#line 114
50415  return (result);
50416}
50417}
50418#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"
50419static void release_usb_class(struct kref *kref ) 
50420{ struct class *__cil_tmp2 ;
50421  void const   *__cil_tmp3 ;
50422
50423  {
50424  {
50425#line 120
50426  __cil_tmp2 = usb_class->class;
50427#line 120
50428  class_destroy(__cil_tmp2);
50429#line 121
50430  __cil_tmp3 = (void const   *)usb_class;
50431#line 121
50432  kfree(__cil_tmp3);
50433#line 122
50434  usb_class = (struct usb_class *)0;
50435  }
50436#line 123
50437  return;
50438}
50439}
50440#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"
50441static void destroy_usb_class(void) 
50442{ struct usb_class *__cil_tmp1 ;
50443  unsigned long __cil_tmp2 ;
50444  unsigned long __cil_tmp3 ;
50445  struct kref *__cil_tmp4 ;
50446
50447  {
50448  {
50449#line 127
50450  __cil_tmp1 = (struct usb_class *)0;
50451#line 127
50452  __cil_tmp2 = (unsigned long )__cil_tmp1;
50453#line 127
50454  __cil_tmp3 = (unsigned long )usb_class;
50455#line 127
50456  if (__cil_tmp3 != __cil_tmp2) {
50457    {
50458#line 128
50459    __cil_tmp4 = & usb_class->kref;
50460#line 128
50461    kref_put(__cil_tmp4, & release_usb_class);
50462    }
50463  } else {
50464
50465  }
50466  }
50467#line 129
50468  return;
50469}
50470}
50471#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"
50472int usb_major_init(void) 
50473{ int error ;
50474
50475  {
50476  {
50477#line 135
50478  error = register_chrdev(180U, "usb", & usb_fops);
50479  }
50480#line 136
50481  if (error != 0) {
50482    {
50483#line 137
50484    printk("<3>Unable to get major %d for usb devices\n", 180);
50485    }
50486  } else {
50487
50488  }
50489#line 140
50490  return (error);
50491}
50492}
50493#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"
50494void usb_major_cleanup(void) 
50495{ 
50496
50497  {
50498  {
50499#line 145
50500  unregister_chrdev(180U, "usb");
50501  }
50502#line 146
50503  return;
50504}
50505}
50506#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"
50507int usb_register_dev(struct usb_interface *intf , struct usb_class_driver *class_driver ) 
50508{ int retval ;
50509  int minor_base ;
50510  int minor ;
50511  char name[20U] ;
50512  char *temp ;
50513  long tmp ;
50514  long tmp___0 ;
50515  struct file_operations  const  *__cil_tmp10 ;
50516  unsigned long __cil_tmp11 ;
50517  struct file_operations  const  *__cil_tmp12 ;
50518  unsigned long __cil_tmp13 ;
50519  int __cil_tmp14 ;
50520  struct device *__cil_tmp15 ;
50521  struct device  const  *__cil_tmp16 ;
50522  struct file_operations  const  *__cil_tmp17 ;
50523  unsigned long __cil_tmp18 ;
50524  unsigned long __cil_tmp19 ;
50525  int __cil_tmp20 ;
50526  char *__cil_tmp21 ;
50527  char *__cil_tmp22 ;
50528  char const   *__cil_tmp23 ;
50529  int __cil_tmp24 ;
50530  char const   *__cil_tmp25 ;
50531  char *__cil_tmp26 ;
50532  unsigned long __cil_tmp27 ;
50533  unsigned long __cil_tmp28 ;
50534  char *__cil_tmp29 ;
50535  char __cil_tmp30 ;
50536  signed char __cil_tmp31 ;
50537  int __cil_tmp32 ;
50538  struct class *__cil_tmp33 ;
50539  struct device *__cil_tmp34 ;
50540  int __cil_tmp35 ;
50541  dev_t __cil_tmp36 ;
50542  void *__cil_tmp37 ;
50543  struct device *__cil_tmp38 ;
50544  void const   *__cil_tmp39 ;
50545  struct device *__cil_tmp40 ;
50546  void const   *__cil_tmp41 ;
50547
50548  {
50549#line 171
50550  minor_base = class_driver->minor_base;
50551#line 182
50552  minor_base = 0;
50553  {
50554#line 185
50555  __cil_tmp10 = (struct file_operations  const  *)0;
50556#line 185
50557  __cil_tmp11 = (unsigned long )__cil_tmp10;
50558#line 185
50559  __cil_tmp12 = class_driver->fops;
50560#line 185
50561  __cil_tmp13 = (unsigned long )__cil_tmp12;
50562#line 185
50563  if (__cil_tmp13 == __cil_tmp11) {
50564#line 186
50565    return (-22);
50566  } else {
50567
50568  }
50569  }
50570  {
50571#line 187
50572  __cil_tmp14 = intf->minor;
50573#line 187
50574  if (__cil_tmp14 >= 0) {
50575#line 188
50576    return (-98);
50577  } else {
50578
50579  }
50580  }
50581  {
50582#line 190
50583  retval = init_usb_class();
50584  }
50585#line 191
50586  if (retval != 0) {
50587#line 192
50588    return (retval);
50589  } else {
50590
50591  }
50592  {
50593#line 194
50594  __cil_tmp15 = & intf->dev;
50595#line 194
50596  __cil_tmp16 = (struct device  const  *)__cil_tmp15;
50597#line 194
50598  dev_printk("<7>", __cil_tmp16, "looking for a minor, starting at %d", minor_base);
50599#line 196
50600  down_write(& minor_rwsem);
50601#line 197
50602  minor = minor_base;
50603  }
50604#line 197
50605  goto ldv_23916;
50606  ldv_23915: ;
50607  {
50608#line 198
50609  __cil_tmp17 = (struct file_operations  const  *)0;
50610#line 198
50611  __cil_tmp18 = (unsigned long )__cil_tmp17;
50612#line 198
50613  __cil_tmp19 = (unsigned long )usb_minors[minor];
50614#line 198
50615  if (__cil_tmp19 != __cil_tmp18) {
50616#line 199
50617    goto ldv_23913;
50618  } else {
50619
50620  }
50621  }
50622#line 201
50623  usb_minors[minor] = class_driver->fops;
50624#line 202
50625  intf->minor = minor;
50626#line 203
50627  goto ldv_23914;
50628  ldv_23913: 
50629#line 197
50630  minor = minor + 1;
50631  ldv_23916: ;
50632#line 197
50633  if (minor <= 255) {
50634#line 198
50635    goto ldv_23915;
50636  } else {
50637#line 200
50638    goto ldv_23914;
50639  }
50640  ldv_23914: 
50641  {
50642#line 205
50643  up_write(& minor_rwsem);
50644  }
50645  {
50646#line 206
50647  __cil_tmp20 = intf->minor;
50648#line 206
50649  if (__cil_tmp20 < 0) {
50650#line 207
50651    return (-54);
50652  } else {
50653
50654  }
50655  }
50656  {
50657#line 210
50658  __cil_tmp21 = (char *)(& name);
50659#line 210
50660  __cil_tmp22 = class_driver->name;
50661#line 210
50662  __cil_tmp23 = (char const   *)__cil_tmp22;
50663#line 210
50664  __cil_tmp24 = minor - minor_base;
50665#line 210
50666  snprintf(__cil_tmp21, 20UL, __cil_tmp23, __cil_tmp24);
50667#line 211
50668  __cil_tmp25 = (char const   *)(& name);
50669#line 211
50670  temp = strrchr(__cil_tmp25, 47);
50671  }
50672  {
50673#line 212
50674  __cil_tmp26 = (char *)0;
50675#line 212
50676  __cil_tmp27 = (unsigned long )__cil_tmp26;
50677#line 212
50678  __cil_tmp28 = (unsigned long )temp;
50679#line 212
50680  if (__cil_tmp28 != __cil_tmp27) {
50681    {
50682#line 212
50683    __cil_tmp29 = temp + 1UL;
50684#line 212
50685    __cil_tmp30 = *__cil_tmp29;
50686#line 212
50687    __cil_tmp31 = (signed char )__cil_tmp30;
50688#line 212
50689    __cil_tmp32 = (int )__cil_tmp31;
50690#line 212
50691    if (__cil_tmp32 != 0) {
50692#line 213
50693      temp = temp + 1;
50694    } else {
50695#line 215
50696      temp = (char *)(& name);
50697    }
50698    }
50699  } else {
50700#line 215
50701    temp = (char *)(& name);
50702  }
50703  }
50704  {
50705#line 216
50706  __cil_tmp33 = usb_class->class;
50707#line 216
50708  __cil_tmp34 = & intf->dev;
50709#line 216
50710  __cil_tmp35 = minor | 188743680;
50711#line 216
50712  __cil_tmp36 = (dev_t )__cil_tmp35;
50713#line 216
50714  __cil_tmp37 = (void *)class_driver;
50715#line 216
50716  intf->usb_dev = device_create(__cil_tmp33, __cil_tmp34, __cil_tmp36, __cil_tmp37,
50717                                "%s", temp);
50718#line 219
50719  __cil_tmp38 = intf->usb_dev;
50720#line 219
50721  __cil_tmp39 = (void const   *)__cil_tmp38;
50722#line 219
50723  tmp___0 = IS_ERR(__cil_tmp39);
50724  }
50725#line 219
50726  if (tmp___0 != 0L) {
50727    {
50728#line 220
50729    down_write(& minor_rwsem);
50730#line 221
50731    usb_minors[minor] = (struct file_operations  const  *)0;
50732#line 222
50733    intf->minor = -1;
50734#line 223
50735    up_write(& minor_rwsem);
50736#line 224
50737    __cil_tmp40 = intf->usb_dev;
50738#line 224
50739    __cil_tmp41 = (void const   *)__cil_tmp40;
50740#line 224
50741    tmp = PTR_ERR(__cil_tmp41);
50742#line 224
50743    retval = (int )tmp;
50744    }
50745  } else {
50746
50747  }
50748#line 226
50749  return (retval);
50750}
50751}
50752#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"
50753void usb_deregister_dev(struct usb_interface *intf , struct usb_class_driver *class_driver ) 
50754{ int __cil_tmp3 ;
50755  char *__cil_tmp4 ;
50756  int __cil_tmp5 ;
50757  struct class *__cil_tmp6 ;
50758  int __cil_tmp7 ;
50759  int __cil_tmp8 ;
50760  dev_t __cil_tmp9 ;
50761
50762  {
50763  {
50764#line 247
50765  __cil_tmp3 = intf->minor;
50766#line 247
50767  if (__cil_tmp3 == -1) {
50768#line 248
50769    return;
50770  } else {
50771
50772  }
50773  }
50774  {
50775#line 250
50776  __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";
50777#line 250
50778  __cil_tmp5 = intf->minor;
50779#line 250
50780  printk("<7>%s: removing %d minor\n", __cil_tmp4, __cil_tmp5);
50781#line 252
50782  down_write(& minor_rwsem);
50783#line 253
50784  usb_minors[intf->minor] = (struct file_operations  const  *)0;
50785#line 254
50786  up_write(& minor_rwsem);
50787#line 256
50788  __cil_tmp6 = usb_class->class;
50789#line 256
50790  __cil_tmp7 = intf->minor;
50791#line 256
50792  __cil_tmp8 = __cil_tmp7 | 188743680;
50793#line 256
50794  __cil_tmp9 = (dev_t )__cil_tmp8;
50795#line 256
50796  device_destroy(__cil_tmp6, __cil_tmp9);
50797#line 257
50798  intf->usb_dev = (struct device *)0;
50799#line 258
50800  intf->minor = -1;
50801#line 259
50802  destroy_usb_class();
50803  }
50804#line 260
50805  return;
50806}
50807}
50808#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"
50809void main(void) 
50810{ struct inode *var_group1 ;
50811  struct file *var_group2 ;
50812  int res_usb_open_0 ;
50813  int ldv_s_usb_fops_file_operations ;
50814  int tmp ;
50815  int tmp___0 ;
50816
50817  {
50818  {
50819#line 332
50820  ldv_s_usb_fops_file_operations = 0;
50821#line 322
50822  LDV_IN_INTERRUPT = 1;
50823#line 331
50824  ldv_initialize();
50825  }
50826#line 335
50827  goto ldv_23956;
50828  ldv_23955: 
50829  {
50830#line 339
50831  tmp = nondet_int();
50832  }
50833#line 341
50834  if (tmp == 0) {
50835#line 341
50836    goto case_0;
50837  } else {
50838#line 366
50839    goto switch_default;
50840#line 339
50841    if (0) {
50842      case_0: ;
50843#line 344
50844      if (ldv_s_usb_fops_file_operations == 0) {
50845        {
50846#line 351
50847        res_usb_open_0 = usb_open(var_group1, var_group2);
50848#line 352
50849        ldv_check_return_value(res_usb_open_0);
50850        }
50851#line 353
50852        if (res_usb_open_0 != 0) {
50853#line 354
50854          goto ldv_module_exit;
50855        } else {
50856
50857        }
50858#line 359
50859        ldv_s_usb_fops_file_operations = 0;
50860      } else {
50861
50862      }
50863#line 365
50864      goto ldv_23953;
50865      switch_default: ;
50866#line 366
50867      goto ldv_23953;
50868    } else {
50869
50870    }
50871  }
50872  ldv_23953: ;
50873  ldv_23956: 
50874  {
50875#line 335
50876  tmp___0 = nondet_int();
50877  }
50878#line 335
50879  if (tmp___0 != 0) {
50880#line 337
50881    goto ldv_23955;
50882  } else
50883#line 335
50884  if (ldv_s_usb_fops_file_operations != 0) {
50885#line 337
50886    goto ldv_23955;
50887  } else {
50888#line 339
50889    goto ldv_23957;
50890  }
50891  ldv_23957: ;
50892  ldv_module_exit: 
50893  {
50894#line 375
50895  ldv_check_final_state();
50896  }
50897#line 378
50898  return;
50899}
50900}
50901#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"
50902__inline static int ldv_try_module_get_1(struct module *module ) 
50903{ int tmp ;
50904
50905  {
50906  {
50907#line 387
50908  tmp = ldv_try_module_get(module);
50909  }
50910#line 387
50911  return (tmp);
50912}
50913}
50914#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"
50915void ldv_module_put_2(struct module *ldv_func_arg1 ) 
50916{ 
50917
50918  {
50919  {
50920#line 395
50921  ldv_module_put(ldv_func_arg1);
50922  }
50923#line 396
50924  return;
50925}
50926}
50927#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"
50928void ldv_module_put_4(struct module *ldv_func_arg1 ) 
50929{ 
50930
50931  {
50932  {
50933#line 411
50934  ldv_module_put(ldv_func_arg1);
50935  }
50936#line 412
50937  return;
50938}
50939}
50940#line 87 "include/linux/dma-mapping.h"
50941__inline static int is_device_dma_capable(struct device *dev ) 
50942{ int tmp ;
50943  u64 *__cil_tmp3 ;
50944  unsigned long __cil_tmp4 ;
50945  u64 *__cil_tmp5 ;
50946  unsigned long __cil_tmp6 ;
50947  u64 *__cil_tmp7 ;
50948  u64 __cil_tmp8 ;
50949
50950  {
50951  {
50952#line 89
50953  __cil_tmp3 = (u64 *)0;
50954#line 89
50955  __cil_tmp4 = (unsigned long )__cil_tmp3;
50956#line 89
50957  __cil_tmp5 = dev->dma_mask;
50958#line 89
50959  __cil_tmp6 = (unsigned long )__cil_tmp5;
50960#line 89
50961  if (__cil_tmp6 != __cil_tmp4) {
50962    {
50963#line 89
50964    __cil_tmp7 = dev->dma_mask;
50965#line 89
50966    __cil_tmp8 = *__cil_tmp7;
50967#line 89
50968    if (__cil_tmp8 != 0ULL) {
50969#line 89
50970      tmp = 1;
50971    } else {
50972#line 89
50973      tmp = 0;
50974    }
50975    }
50976  } else {
50977#line 89
50978    tmp = 0;
50979  }
50980  }
50981#line 89
50982  return (tmp);
50983}
50984}
50985#line 51 "include/linux/dma-debug.h"
50986extern void debug_dma_alloc_coherent(struct device * , size_t  , dma_addr_t  , void * ) ;
50987#line 54
50988extern void debug_dma_free_coherent(struct device * , size_t  , void * , dma_addr_t  ) ;
50989#line 26 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
50990extern struct device x86_dma_fallback_dev ;
50991#line 89 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
50992__inline static unsigned long dma_alloc_coherent_mask(struct device *dev , gfp_t gfp ) 
50993{ unsigned long dma_mask ;
50994  u64 __cil_tmp4 ;
50995  int __cil_tmp5 ;
50996
50997  {
50998#line 92
50999  dma_mask = 0UL;
51000#line 94
51001  __cil_tmp4 = dev->coherent_dma_mask;
51002#line 94
51003  dma_mask = (unsigned long )__cil_tmp4;
51004#line 95
51005  if (dma_mask == 0UL) {
51006    {
51007#line 96
51008    __cil_tmp5 = (int )gfp;
51009#line 96
51010    if (__cil_tmp5 & 1) {
51011#line 96
51012      dma_mask = 16777215UL;
51013    } else {
51014#line 96
51015      dma_mask = 4294967295UL;
51016    }
51017    }
51018  } else {
51019
51020  }
51021#line 98
51022  return (dma_mask);
51023}
51024}
51025#line 101 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
51026__inline static gfp_t dma_alloc_coherent_gfp_flags(struct device *dev , gfp_t gfp ) 
51027{ unsigned long dma_mask ;
51028  unsigned long tmp ;
51029  unsigned long long __cil_tmp5 ;
51030  unsigned long long __cil_tmp6 ;
51031  unsigned int __cil_tmp7 ;
51032
51033  {
51034  {
51035#line 103
51036  tmp = dma_alloc_coherent_mask(dev, gfp);
51037#line 103
51038  dma_mask = tmp;
51039  }
51040  {
51041#line 105
51042  __cil_tmp5 = (unsigned long long )dma_mask;
51043#line 105
51044  if (__cil_tmp5 <= 16777215ULL) {
51045#line 106
51046    gfp = gfp | 1U;
51047  } else {
51048
51049  }
51050  }
51051  {
51052#line 108
51053  __cil_tmp6 = (unsigned long long )dma_mask;
51054#line 108
51055  if (__cil_tmp6 <= 4294967295ULL) {
51056    {
51057#line 108
51058    __cil_tmp7 = gfp & 1U;
51059#line 108
51060    if (__cil_tmp7 == 0U) {
51061#line 109
51062      gfp = gfp | 4U;
51063    } else {
51064
51065    }
51066    }
51067  } else {
51068
51069  }
51070  }
51071#line 111
51072  return (gfp);
51073}
51074}
51075#line 115 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
51076__inline static void *dma_alloc_coherent(struct device *dev , size_t size , dma_addr_t *dma_handle ,
51077                                         gfp_t gfp ) 
51078{ struct dma_map_ops *ops ;
51079  struct dma_map_ops *tmp ;
51080  void *memory ;
51081  int tmp___0 ;
51082  gfp_t tmp___1 ;
51083  struct device *__cil_tmp10 ;
51084  unsigned long __cil_tmp11 ;
51085  unsigned long __cil_tmp12 ;
51086  void *(*__cil_tmp13)(struct device * , size_t  , dma_addr_t * , gfp_t  ) ;
51087  unsigned long __cil_tmp14 ;
51088  void *(*__cil_tmp15)(struct device * , size_t  , dma_addr_t * , gfp_t  ) ;
51089  unsigned long __cil_tmp16 ;
51090  void *(*__cil_tmp17)(struct device * , size_t  , dma_addr_t * , gfp_t  ) ;
51091  dma_addr_t __cil_tmp18 ;
51092
51093  {
51094  {
51095#line 118
51096  tmp = get_dma_ops(dev);
51097#line 118
51098  ops = tmp;
51099#line 121
51100  gfp = gfp & 4294967288U;
51101  }
51102  {
51103#line 126
51104  __cil_tmp10 = (struct device *)0;
51105#line 126
51106  __cil_tmp11 = (unsigned long )__cil_tmp10;
51107#line 126
51108  __cil_tmp12 = (unsigned long )dev;
51109#line 126
51110  if (__cil_tmp12 == __cil_tmp11) {
51111#line 127
51112    dev = & x86_dma_fallback_dev;
51113  } else {
51114
51115  }
51116  }
51117  {
51118#line 129
51119  tmp___0 = is_device_dma_capable(dev);
51120  }
51121#line 129
51122  if (tmp___0 == 0) {
51123#line 130
51124    return ((void *)0);
51125  } else {
51126
51127  }
51128  {
51129#line 132
51130  __cil_tmp13 = (void *(*)(struct device * , size_t  , dma_addr_t * , gfp_t  ))0;
51131#line 132
51132  __cil_tmp14 = (unsigned long )__cil_tmp13;
51133#line 132
51134  __cil_tmp15 = ops->alloc_coherent;
51135#line 132
51136  __cil_tmp16 = (unsigned long )__cil_tmp15;
51137#line 132
51138  if (__cil_tmp16 == __cil_tmp14) {
51139#line 133
51140    return ((void *)0);
51141  } else {
51142
51143  }
51144  }
51145  {
51146#line 135
51147  tmp___1 = dma_alloc_coherent_gfp_flags(dev, gfp);
51148#line 135
51149  __cil_tmp17 = ops->alloc_coherent;
51150#line 135
51151  memory = (*__cil_tmp17)(dev, size, dma_handle, tmp___1);
51152#line 137
51153  __cil_tmp18 = *dma_handle;
51154#line 137
51155  debug_dma_alloc_coherent(dev, size, __cil_tmp18, memory);
51156  }
51157#line 139
51158  return (memory);
51159}
51160}
51161#line 142 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/dma-mapping.h"
51162__inline static void dma_free_coherent(struct device *dev , size_t size , void *vaddr ,
51163                                       dma_addr_t bus ) 
51164{ struct dma_map_ops *ops ;
51165  struct dma_map_ops *tmp ;
51166  int __ret_warn_on ;
51167  unsigned long _flags ;
51168  int tmp___0 ;
51169  long tmp___1 ;
51170  int __cil_tmp11 ;
51171  long __cil_tmp12 ;
51172  int __cil_tmp13 ;
51173  int __cil_tmp14 ;
51174  int __cil_tmp15 ;
51175  long __cil_tmp16 ;
51176  void (*__cil_tmp17)(struct device * , size_t  , void * , dma_addr_t  ) ;
51177  unsigned long __cil_tmp18 ;
51178  void (*__cil_tmp19)(struct device * , size_t  , void * , dma_addr_t  ) ;
51179  unsigned long __cil_tmp20 ;
51180  void (*__cil_tmp21)(struct device * , size_t  , void * , dma_addr_t  ) ;
51181
51182  {
51183  {
51184#line 145
51185  tmp = get_dma_ops(dev);
51186#line 145
51187  ops = tmp;
51188#line 147
51189  _flags = arch_local_save_flags();
51190#line 147
51191  tmp___0 = arch_irqs_disabled_flags(_flags);
51192#line 147
51193  __ret_warn_on = tmp___0 != 0;
51194#line 147
51195  __cil_tmp11 = __ret_warn_on != 0;
51196#line 147
51197  __cil_tmp12 = (long )__cil_tmp11;
51198#line 147
51199  tmp___1 = __builtin_expect(__cil_tmp12, 0L);
51200  }
51201#line 147
51202  if (tmp___1 != 0L) {
51203    {
51204#line 147
51205    __cil_tmp13 = (int const   )147;
51206#line 147
51207    __cil_tmp14 = (int )__cil_tmp13;
51208#line 147
51209    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",
51210                       __cil_tmp14);
51211    }
51212  } else {
51213
51214  }
51215  {
51216#line 147
51217  __cil_tmp15 = __ret_warn_on != 0;
51218#line 147
51219  __cil_tmp16 = (long )__cil_tmp15;
51220#line 147
51221  __builtin_expect(__cil_tmp16, 0L);
51222#line 152
51223  debug_dma_free_coherent(dev, size, vaddr, bus);
51224  }
51225  {
51226#line 153
51227  __cil_tmp17 = (void (*)(struct device * , size_t  , void * , dma_addr_t  ))0;
51228#line 153
51229  __cil_tmp18 = (unsigned long )__cil_tmp17;
51230#line 153
51231  __cil_tmp19 = ops->free_coherent;
51232#line 153
51233  __cil_tmp20 = (unsigned long )__cil_tmp19;
51234#line 153
51235  if (__cil_tmp20 != __cil_tmp18) {
51236    {
51237#line 154
51238    __cil_tmp21 = ops->free_coherent;
51239#line 154
51240    (*__cil_tmp21)(dev, size, vaddr, bus);
51241    }
51242  } else {
51243
51244  }
51245  }
51246#line 155
51247  return;
51248}
51249}
51250#line 17 "include/linux/dmapool.h"
51251extern struct dma_pool *dma_pool_create(char const   * , struct device * , size_t  ,
51252                                        size_t  , size_t  ) ;
51253#line 20
51254extern void dma_pool_destroy(struct dma_pool * ) ;
51255#line 22
51256extern void *dma_pool_alloc(struct dma_pool * , gfp_t  , dma_addr_t * ) ;
51257#line 25
51258extern void dma_pool_free(struct dma_pool * , void * , dma_addr_t  ) ;
51259#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"
51260static size_t const   pool_max[4U]  = {      (size_t const   )32UL,      (size_t const   )128UL,      (size_t const   )512UL,      (size_t const   )2048UL};
51261#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"
51262int hcd_buffer_create(struct usb_hcd *hcd ) 
51263{ char name[16U] ;
51264  int i ;
51265  int size ;
51266  u64 *__cil_tmp5 ;
51267  unsigned long __cil_tmp6 ;
51268  struct device *__cil_tmp7 ;
51269  u64 *__cil_tmp8 ;
51270  unsigned long __cil_tmp9 ;
51271  struct hc_driver  const  *__cil_tmp10 ;
51272  int __cil_tmp11 ;
51273  int __cil_tmp12 ;
51274  int __cil_tmp13 ;
51275  char *__cil_tmp14 ;
51276  char const   *__cil_tmp15 ;
51277  struct device *__cil_tmp16 ;
51278  size_t __cil_tmp17 ;
51279  size_t __cil_tmp18 ;
51280  struct dma_pool *__cil_tmp19 ;
51281  unsigned long __cil_tmp20 ;
51282  struct dma_pool *__cil_tmp21 ;
51283  unsigned long __cil_tmp22 ;
51284
51285  {
51286  {
51287#line 63
51288  __cil_tmp5 = (u64 *)0;
51289#line 63
51290  __cil_tmp6 = (unsigned long )__cil_tmp5;
51291#line 63
51292  __cil_tmp7 = hcd->self.controller;
51293#line 63
51294  __cil_tmp8 = __cil_tmp7->dma_mask;
51295#line 63
51296  __cil_tmp9 = (unsigned long )__cil_tmp8;
51297#line 63
51298  if (__cil_tmp9 == __cil_tmp6) {
51299    {
51300#line 63
51301    __cil_tmp10 = hcd->driver;
51302#line 63
51303    __cil_tmp11 = __cil_tmp10->flags;
51304#line 63
51305    __cil_tmp12 = (int )__cil_tmp11;
51306#line 63
51307    __cil_tmp13 = __cil_tmp12 & 2;
51308#line 63
51309    if (__cil_tmp13 == 0) {
51310#line 65
51311      return (0);
51312    } else {
51313
51314    }
51315    }
51316  } else {
51317
51318  }
51319  }
51320#line 67
51321  i = 0;
51322#line 67
51323  goto ldv_27250;
51324  ldv_27249: 
51325#line 68
51326  size = (int )pool_max[i];
51327#line 69
51328  if (size == 0) {
51329#line 70
51330    goto ldv_27248;
51331  } else {
51332
51333  }
51334  {
51335#line 71
51336  __cil_tmp14 = (char *)(& name);
51337#line 71
51338  snprintf(__cil_tmp14, 16UL, "buffer-%d", size);
51339#line 72
51340  __cil_tmp15 = (char const   *)(& name);
51341#line 72
51342  __cil_tmp16 = hcd->self.controller;
51343#line 72
51344  __cil_tmp17 = (size_t )size;
51345#line 72
51346  __cil_tmp18 = (size_t )size;
51347#line 72
51348  hcd->pool[i] = dma_pool_create(__cil_tmp15, __cil_tmp16, __cil_tmp17, __cil_tmp18,
51349                                 0UL);
51350  }
51351  {
51352#line 74
51353  __cil_tmp19 = (struct dma_pool *)0;
51354#line 74
51355  __cil_tmp20 = (unsigned long )__cil_tmp19;
51356#line 74
51357  __cil_tmp21 = hcd->pool[i];
51358#line 74
51359  __cil_tmp22 = (unsigned long )__cil_tmp21;
51360#line 74
51361  if (__cil_tmp22 == __cil_tmp20) {
51362    {
51363#line 75
51364    hcd_buffer_destroy(hcd);
51365    }
51366#line 76
51367    return (-12);
51368  } else {
51369
51370  }
51371  }
51372  ldv_27248: 
51373#line 67
51374  i = i + 1;
51375  ldv_27250: ;
51376#line 67
51377  if (i <= 3) {
51378#line 68
51379    goto ldv_27249;
51380  } else {
51381#line 70
51382    goto ldv_27251;
51383  }
51384  ldv_27251: ;
51385#line 79
51386  return (0);
51387}
51388}
51389#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"
51390void hcd_buffer_destroy(struct usb_hcd *hcd ) 
51391{ int i ;
51392  struct dma_pool *pool ;
51393  struct dma_pool *__cil_tmp4 ;
51394  unsigned long __cil_tmp5 ;
51395  unsigned long __cil_tmp6 ;
51396
51397  {
51398#line 94
51399  i = 0;
51400#line 94
51401  goto ldv_27258;
51402  ldv_27257: 
51403#line 95
51404  pool = hcd->pool[i];
51405  {
51406#line 96
51407  __cil_tmp4 = (struct dma_pool *)0;
51408#line 96
51409  __cil_tmp5 = (unsigned long )__cil_tmp4;
51410#line 96
51411  __cil_tmp6 = (unsigned long )pool;
51412#line 96
51413  if (__cil_tmp6 != __cil_tmp5) {
51414    {
51415#line 97
51416    dma_pool_destroy(pool);
51417#line 98
51418    hcd->pool[i] = (struct dma_pool *)0;
51419    }
51420  } else {
51421
51422  }
51423  }
51424#line 94
51425  i = i + 1;
51426  ldv_27258: ;
51427#line 94
51428  if (i <= 3) {
51429#line 95
51430    goto ldv_27257;
51431  } else {
51432#line 97
51433    goto ldv_27259;
51434  }
51435  ldv_27259: ;
51436#line 99
51437  return;
51438}
51439}
51440#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"
51441void *hcd_buffer_alloc(struct usb_bus *bus , size_t size , gfp_t mem_flags , dma_addr_t *dma ) 
51442{ struct usb_hcd *hcd ;
51443  struct usb_hcd *tmp ;
51444  int i ;
51445  void *tmp___0 ;
51446  void *tmp___1 ;
51447  void *tmp___2 ;
51448  u64 *__cil_tmp11 ;
51449  unsigned long __cil_tmp12 ;
51450  struct device *__cil_tmp13 ;
51451  u64 *__cil_tmp14 ;
51452  unsigned long __cil_tmp15 ;
51453  struct hc_driver  const  *__cil_tmp16 ;
51454  int __cil_tmp17 ;
51455  int __cil_tmp18 ;
51456  int __cil_tmp19 ;
51457  unsigned long __cil_tmp20 ;
51458  struct dma_pool *__cil_tmp21 ;
51459  struct device *__cil_tmp22 ;
51460
51461  {
51462  {
51463#line 115
51464  tmp = bus_to_hcd(bus);
51465#line 115
51466  hcd = tmp;
51467  }
51468  {
51469#line 119
51470  __cil_tmp11 = (u64 *)0;
51471#line 119
51472  __cil_tmp12 = (unsigned long )__cil_tmp11;
51473#line 119
51474  __cil_tmp13 = bus->controller;
51475#line 119
51476  __cil_tmp14 = __cil_tmp13->dma_mask;
51477#line 119
51478  __cil_tmp15 = (unsigned long )__cil_tmp14;
51479#line 119
51480  if (__cil_tmp15 == __cil_tmp12) {
51481    {
51482#line 119
51483    __cil_tmp16 = hcd->driver;
51484#line 119
51485    __cil_tmp17 = __cil_tmp16->flags;
51486#line 119
51487    __cil_tmp18 = (int )__cil_tmp17;
51488#line 119
51489    __cil_tmp19 = __cil_tmp18 & 2;
51490#line 119
51491    if (__cil_tmp19 == 0) {
51492      {
51493#line 121
51494      *dma = 1152921504606846975ULL;
51495#line 122
51496      tmp___0 = kmalloc(size, mem_flags);
51497      }
51498#line 122
51499      return (tmp___0);
51500    } else {
51501
51502    }
51503    }
51504  } else {
51505
51506  }
51507  }
51508#line 125
51509  i = 0;
51510#line 125
51511  goto ldv_27269;
51512  ldv_27268: ;
51513  {
51514#line 126
51515  __cil_tmp20 = (unsigned long )pool_max[i];
51516#line 126
51517  if (__cil_tmp20 >= size) {
51518    {
51519#line 127
51520    __cil_tmp21 = hcd->pool[i];
51521#line 127
51522    tmp___1 = dma_pool_alloc(__cil_tmp21, mem_flags, dma);
51523    }
51524#line 127
51525    return (tmp___1);
51526  } else {
51527
51528  }
51529  }
51530#line 125
51531  i = i + 1;
51532  ldv_27269: ;
51533#line 125
51534  if (i <= 3) {
51535#line 126
51536    goto ldv_27268;
51537  } else {
51538#line 128
51539    goto ldv_27270;
51540  }
51541  ldv_27270: 
51542  {
51543#line 129
51544  __cil_tmp22 = hcd->self.controller;
51545#line 129
51546  tmp___2 = dma_alloc_coherent(__cil_tmp22, size, dma, mem_flags);
51547  }
51548#line 129
51549  return (tmp___2);
51550}
51551}
51552#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"
51553void hcd_buffer_free(struct usb_bus *bus , size_t size , void *addr , dma_addr_t dma ) 
51554{ struct usb_hcd *hcd ;
51555  struct usb_hcd *tmp ;
51556  int i ;
51557  void *__cil_tmp8 ;
51558  unsigned long __cil_tmp9 ;
51559  unsigned long __cil_tmp10 ;
51560  u64 *__cil_tmp11 ;
51561  unsigned long __cil_tmp12 ;
51562  struct device *__cil_tmp13 ;
51563  u64 *__cil_tmp14 ;
51564  unsigned long __cil_tmp15 ;
51565  struct hc_driver  const  *__cil_tmp16 ;
51566  int __cil_tmp17 ;
51567  int __cil_tmp18 ;
51568  int __cil_tmp19 ;
51569  void const   *__cil_tmp20 ;
51570  unsigned long __cil_tmp21 ;
51571  struct dma_pool *__cil_tmp22 ;
51572  struct device *__cil_tmp23 ;
51573
51574  {
51575  {
51576#line 139
51577  tmp = bus_to_hcd(bus);
51578#line 139
51579  hcd = tmp;
51580  }
51581  {
51582#line 142
51583  __cil_tmp8 = (void *)0;
51584#line 142
51585  __cil_tmp9 = (unsigned long )__cil_tmp8;
51586#line 142
51587  __cil_tmp10 = (unsigned long )addr;
51588#line 142
51589  if (__cil_tmp10 == __cil_tmp9) {
51590#line 143
51591    return;
51592  } else {
51593
51594  }
51595  }
51596  {
51597#line 145
51598  __cil_tmp11 = (u64 *)0;
51599#line 145
51600  __cil_tmp12 = (unsigned long )__cil_tmp11;
51601#line 145
51602  __cil_tmp13 = bus->controller;
51603#line 145
51604  __cil_tmp14 = __cil_tmp13->dma_mask;
51605#line 145
51606  __cil_tmp15 = (unsigned long )__cil_tmp14;
51607#line 145
51608  if (__cil_tmp15 == __cil_tmp12) {
51609    {
51610#line 145
51611    __cil_tmp16 = hcd->driver;
51612#line 145
51613    __cil_tmp17 = __cil_tmp16->flags;
51614#line 145
51615    __cil_tmp18 = (int )__cil_tmp17;
51616#line 145
51617    __cil_tmp19 = __cil_tmp18 & 2;
51618#line 145
51619    if (__cil_tmp19 == 0) {
51620      {
51621#line 147
51622      __cil_tmp20 = (void const   *)addr;
51623#line 147
51624      kfree(__cil_tmp20);
51625      }
51626#line 148
51627      return;
51628    } else {
51629
51630    }
51631    }
51632  } else {
51633
51634  }
51635  }
51636#line 151
51637  i = 0;
51638#line 151
51639  goto ldv_27280;
51640  ldv_27279: ;
51641  {
51642#line 152
51643  __cil_tmp21 = (unsigned long )pool_max[i];
51644#line 152
51645  if (__cil_tmp21 >= size) {
51646    {
51647#line 153
51648    __cil_tmp22 = hcd->pool[i];
51649#line 153
51650    dma_pool_free(__cil_tmp22, addr, dma);
51651    }
51652#line 154
51653    return;
51654  } else {
51655
51656  }
51657  }
51658#line 151
51659  i = i + 1;
51660  ldv_27280: ;
51661#line 151
51662  if (i <= 3) {
51663#line 152
51664    goto ldv_27279;
51665  } else {
51666#line 154
51667    goto ldv_27281;
51668  }
51669  ldv_27281: 
51670  {
51671#line 157
51672  __cil_tmp23 = hcd->self.controller;
51673#line 157
51674  dma_free_coherent(__cil_tmp23, size, addr, dma);
51675  }
51676#line 158
51677  return;
51678}
51679}
51680#line 291 "include/linux/kernel.h"
51681extern int sprintf(char * , char const   *  , ...) ;
51682#line 45 "include/linux/string.h"
51683extern int strncmp(char const   * , char const   * , __kernel_size_t  ) ;
51684#line 115
51685extern void *memchr(void const   * , int  , __kernel_size_t  ) ;
51686#line 296 "include/linux/jiffies.h"
51687extern unsigned int jiffies_to_msecs(unsigned long  ) ;
51688#line 45 "include/linux/pm.h"
51689extern char const   power_group_name[] ;
51690#line 163 "include/linux/sysfs.h"
51691extern int sysfs_add_file_to_group(struct kobject * , struct attribute  const  * ,
51692                                   char const   * ) ;
51693#line 165
51694extern void sysfs_remove_file_from_group(struct kobject * , struct attribute  const  * ,
51695                                         char const   * ) ;
51696#line 167
51697extern int sysfs_merge_group(struct kobject * , struct attribute_group  const  * ) ;
51698#line 169
51699extern void sysfs_unmerge_group(struct kobject * , struct attribute_group  const  * ) ;
51700#line 435 "include/linux/device.h"
51701extern int device_create_file(struct device * , struct device_attribute  const  * ) ;
51702#line 437
51703extern void device_remove_file(struct device * , struct device_attribute  const  * ) ;
51704#line 439
51705extern int device_create_bin_file(struct device * , struct bin_attribute  const  * ) ;
51706#line 441
51707extern void device_remove_bin_file(struct device * , struct bin_attribute  const  * ) ;
51708#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"
51709static ssize_t show_bNumInterfaces(struct device *dev , struct device_attribute *attr ,
51710                                   char *buf ) 
51711{ struct usb_device *udev ;
51712  struct usb_host_config *actconfig ;
51713  struct device  const  *__mptr ;
51714  int tmp ;
51715  struct usb_device *__cil_tmp8 ;
51716  struct usb_host_config *__cil_tmp9 ;
51717  unsigned long __cil_tmp10 ;
51718  unsigned long __cil_tmp11 ;
51719  __u8 __cil_tmp12 ;
51720  int __cil_tmp13 ;
51721
51722  {
51723#line 48
51724  __mptr = (struct device  const  *)dev;
51725#line 48
51726  __cil_tmp8 = (struct usb_device *)__mptr;
51727#line 48
51728  udev = __cil_tmp8 + 1152921504606846840UL;
51729#line 48
51730  actconfig = udev->actconfig;
51731  {
51732#line 48
51733  __cil_tmp9 = (struct usb_host_config *)0;
51734#line 48
51735  __cil_tmp10 = (unsigned long )__cil_tmp9;
51736#line 48
51737  __cil_tmp11 = (unsigned long )actconfig;
51738#line 48
51739  if (__cil_tmp11 != __cil_tmp10) {
51740    {
51741#line 48
51742    __cil_tmp12 = actconfig->desc.bNumInterfaces;
51743#line 48
51744    __cil_tmp13 = (int )__cil_tmp12;
51745#line 48
51746    tmp = sprintf(buf, "%2d\n", __cil_tmp13);
51747    }
51748#line 48
51749    return ((ssize_t )tmp);
51750  } else {
51751#line 48
51752    return (0L);
51753  }
51754  }
51755}
51756}
51757#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"
51758static struct device_attribute dev_attr_bNumInterfaces  =    {{"bNumInterfaces", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
51759                                                           {(char)0}, {(char)0}, {(char)0},
51760                                                           {(char)0}, {(char)0}}}},
51761    & show_bNumInterfaces, (ssize_t (*)(struct device * , struct device_attribute * ,
51762                                        char const   * , size_t  ))0};
51763#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"
51764static ssize_t show_bmAttributes(struct device *dev , struct device_attribute *attr ,
51765                                 char *buf ) 
51766{ struct usb_device *udev ;
51767  struct usb_host_config *actconfig ;
51768  struct device  const  *__mptr ;
51769  int tmp ;
51770  struct usb_device *__cil_tmp8 ;
51771  struct usb_host_config *__cil_tmp9 ;
51772  unsigned long __cil_tmp10 ;
51773  unsigned long __cil_tmp11 ;
51774  __u8 __cil_tmp12 ;
51775  int __cil_tmp13 ;
51776
51777  {
51778#line 49
51779  __mptr = (struct device  const  *)dev;
51780#line 49
51781  __cil_tmp8 = (struct usb_device *)__mptr;
51782#line 49
51783  udev = __cil_tmp8 + 1152921504606846840UL;
51784#line 49
51785  actconfig = udev->actconfig;
51786  {
51787#line 49
51788  __cil_tmp9 = (struct usb_host_config *)0;
51789#line 49
51790  __cil_tmp10 = (unsigned long )__cil_tmp9;
51791#line 49
51792  __cil_tmp11 = (unsigned long )actconfig;
51793#line 49
51794  if (__cil_tmp11 != __cil_tmp10) {
51795    {
51796#line 49
51797    __cil_tmp12 = actconfig->desc.bmAttributes;
51798#line 49
51799    __cil_tmp13 = (int )__cil_tmp12;
51800#line 49
51801    tmp = sprintf(buf, "%2x\n", __cil_tmp13);
51802    }
51803#line 49
51804    return ((ssize_t )tmp);
51805  } else {
51806#line 49
51807    return (0L);
51808  }
51809  }
51810}
51811}
51812#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"
51813static struct device_attribute dev_attr_bmAttributes  =    {{"bmAttributes", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
51814                                                         {(char)0}, {(char)0}, {(char)0},
51815                                                         {(char)0}, {(char)0}}}},
51816    & show_bmAttributes, (ssize_t (*)(struct device * , struct device_attribute * ,
51817                                      char const   * , size_t  ))0};
51818#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"
51819static ssize_t show_bMaxPower(struct device *dev , struct device_attribute *attr ,
51820                              char *buf ) 
51821{ struct usb_device *udev ;
51822  struct usb_host_config *actconfig ;
51823  struct device  const  *__mptr ;
51824  int tmp ;
51825  struct usb_device *__cil_tmp8 ;
51826  struct usb_host_config *__cil_tmp9 ;
51827  unsigned long __cil_tmp10 ;
51828  unsigned long __cil_tmp11 ;
51829  __u8 __cil_tmp12 ;
51830  int __cil_tmp13 ;
51831  int __cil_tmp14 ;
51832
51833  {
51834#line 50
51835  __mptr = (struct device  const  *)dev;
51836#line 50
51837  __cil_tmp8 = (struct usb_device *)__mptr;
51838#line 50
51839  udev = __cil_tmp8 + 1152921504606846840UL;
51840#line 50
51841  actconfig = udev->actconfig;
51842  {
51843#line 50
51844  __cil_tmp9 = (struct usb_host_config *)0;
51845#line 50
51846  __cil_tmp10 = (unsigned long )__cil_tmp9;
51847#line 50
51848  __cil_tmp11 = (unsigned long )actconfig;
51849#line 50
51850  if (__cil_tmp11 != __cil_tmp10) {
51851    {
51852#line 50
51853    __cil_tmp12 = actconfig->desc.bMaxPower;
51854#line 50
51855    __cil_tmp13 = (int )__cil_tmp12;
51856#line 50
51857    __cil_tmp14 = __cil_tmp13 * 2;
51858#line 50
51859    tmp = sprintf(buf, "%3dmA\n", __cil_tmp14);
51860    }
51861#line 50
51862    return ((ssize_t )tmp);
51863  } else {
51864#line 50
51865    return (0L);
51866  }
51867  }
51868}
51869}
51870#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"
51871static struct device_attribute dev_attr_bMaxPower  =    {{"bMaxPower", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
51872                                                      {(char)0}, {(char)0}, {(char)0},
51873                                                      {(char)0}, {(char)0}}}}, & show_bMaxPower,
51874    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
51875#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"
51876static ssize_t show_configuration_string(struct device *dev , struct device_attribute *attr ,
51877                                         char *buf ) 
51878{ struct usb_device *udev ;
51879  struct usb_host_config *actconfig ;
51880  struct device  const  *__mptr ;
51881  int tmp ;
51882  struct usb_device *__cil_tmp8 ;
51883  struct usb_host_config *__cil_tmp9 ;
51884  unsigned long __cil_tmp10 ;
51885  unsigned long __cil_tmp11 ;
51886  char *__cil_tmp12 ;
51887  unsigned long __cil_tmp13 ;
51888  char *__cil_tmp14 ;
51889  unsigned long __cil_tmp15 ;
51890  char *__cil_tmp16 ;
51891
51892  {
51893#line 58
51894  __mptr = (struct device  const  *)dev;
51895#line 58
51896  __cil_tmp8 = (struct usb_device *)__mptr;
51897#line 58
51898  udev = __cil_tmp8 + 1152921504606846840UL;
51899#line 59
51900  actconfig = udev->actconfig;
51901  {
51902#line 60
51903  __cil_tmp9 = (struct usb_host_config *)0;
51904#line 60
51905  __cil_tmp10 = (unsigned long )__cil_tmp9;
51906#line 60
51907  __cil_tmp11 = (unsigned long )actconfig;
51908#line 60
51909  if (__cil_tmp11 == __cil_tmp10) {
51910#line 61
51911    return (0L);
51912  } else {
51913    {
51914#line 60
51915    __cil_tmp12 = (char *)0;
51916#line 60
51917    __cil_tmp13 = (unsigned long )__cil_tmp12;
51918#line 60
51919    __cil_tmp14 = actconfig->string;
51920#line 60
51921    __cil_tmp15 = (unsigned long )__cil_tmp14;
51922#line 60
51923    if (__cil_tmp15 == __cil_tmp13) {
51924#line 61
51925      return (0L);
51926    } else {
51927
51928    }
51929    }
51930  }
51931  }
51932  {
51933#line 62
51934  __cil_tmp16 = actconfig->string;
51935#line 62
51936  tmp = sprintf(buf, "%s\n", __cil_tmp16);
51937  }
51938#line 62
51939  return ((ssize_t )tmp);
51940}
51941}
51942#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"
51943static struct device_attribute dev_attr_configuration  =    {{"configuration", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
51944                                                          {(char)0}, {(char)0}, {(char)0},
51945                                                          {(char)0}, {(char)0}}}},
51946    & show_configuration_string, (ssize_t (*)(struct device * , struct device_attribute * ,
51947                                              char const   * , size_t  ))0};
51948#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"
51949static ssize_t show_bConfigurationValue(struct device *dev , struct device_attribute *attr ,
51950                                        char *buf ) 
51951{ struct usb_device *udev ;
51952  struct usb_host_config *actconfig ;
51953  struct device  const  *__mptr ;
51954  int tmp ;
51955  struct usb_device *__cil_tmp8 ;
51956  struct usb_host_config *__cil_tmp9 ;
51957  unsigned long __cil_tmp10 ;
51958  unsigned long __cil_tmp11 ;
51959  __u8 __cil_tmp12 ;
51960  int __cil_tmp13 ;
51961
51962  {
51963#line 67
51964  __mptr = (struct device  const  *)dev;
51965#line 67
51966  __cil_tmp8 = (struct usb_device *)__mptr;
51967#line 67
51968  udev = __cil_tmp8 + 1152921504606846840UL;
51969#line 67
51970  actconfig = udev->actconfig;
51971  {
51972#line 67
51973  __cil_tmp9 = (struct usb_host_config *)0;
51974#line 67
51975  __cil_tmp10 = (unsigned long )__cil_tmp9;
51976#line 67
51977  __cil_tmp11 = (unsigned long )actconfig;
51978#line 67
51979  if (__cil_tmp11 != __cil_tmp10) {
51980    {
51981#line 67
51982    __cil_tmp12 = actconfig->desc.bConfigurationValue;
51983#line 67
51984    __cil_tmp13 = (int )__cil_tmp12;
51985#line 67
51986    tmp = sprintf(buf, "%u\n", __cil_tmp13);
51987    }
51988#line 67
51989    return ((ssize_t )tmp);
51990  } else {
51991#line 67
51992    return (0L);
51993  }
51994  }
51995}
51996}
51997#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"
51998static ssize_t set_bConfigurationValue(struct device *dev , struct device_attribute *attr ,
51999                                       char const   *buf , size_t count ) 
52000{ struct usb_device *udev ;
52001  struct device  const  *__mptr ;
52002  int config ;
52003  int value ;
52004  int tmp ;
52005  size_t tmp___0 ;
52006  struct usb_device *__cil_tmp11 ;
52007  struct device *__cil_tmp12 ;
52008  struct device *__cil_tmp13 ;
52009
52010  {
52011  {
52012#line 73
52013  __mptr = (struct device  const  *)dev;
52014#line 73
52015  __cil_tmp11 = (struct usb_device *)__mptr;
52016#line 73
52017  udev = __cil_tmp11 + 1152921504606846840UL;
52018#line 76
52019  tmp = sscanf(buf, "%d", & config);
52020  }
52021#line 76
52022  if (tmp != 1) {
52023#line 77
52024    return (-22L);
52025  } else
52026#line 76
52027  if (config < -1) {
52028#line 77
52029    return (-22L);
52030  } else
52031#line 76
52032  if (config > 255) {
52033#line 77
52034    return (-22L);
52035  } else {
52036
52037  }
52038  {
52039#line 78
52040  __cil_tmp12 = & udev->dev;
52041#line 78
52042  device_lock(__cil_tmp12);
52043#line 79
52044  value = usb_set_configuration(udev, config);
52045#line 80
52046  __cil_tmp13 = & udev->dev;
52047#line 80
52048  device_unlock(__cil_tmp13);
52049  }
52050#line 81
52051  if (value < 0) {
52052#line 81
52053    tmp___0 = (size_t )value;
52054  } else {
52055#line 81
52056    tmp___0 = count;
52057  }
52058#line 81
52059  return ((ssize_t )tmp___0);
52060}
52061}
52062#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"
52063static struct device_attribute dev_attr_bConfigurationValue  =    {{"bConfigurationValue", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
52064                                                                {(char)0}, {(char)0},
52065                                                                {(char)0}, {(char)0},
52066                                                                {(char)0}, {(char)0}}}},
52067    & show_bConfigurationValue, & set_bConfigurationValue};
52068#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"
52069static ssize_t show_product(struct device *dev , struct device_attribute *attr , char *buf ) 
52070{ struct usb_device *udev ;
52071  int retval ;
52072  struct device  const  *__mptr ;
52073  struct usb_device *__cil_tmp7 ;
52074  struct device *__cil_tmp8 ;
52075  char *__cil_tmp9 ;
52076  struct device *__cil_tmp10 ;
52077
52078  {
52079  {
52080#line 103
52081  __mptr = (struct device  const  *)dev;
52082#line 103
52083  __cil_tmp7 = (struct usb_device *)__mptr;
52084#line 103
52085  udev = __cil_tmp7 + 1152921504606846840UL;
52086#line 103
52087  __cil_tmp8 = & udev->dev;
52088#line 103
52089  device_lock(__cil_tmp8);
52090#line 103
52091  __cil_tmp9 = udev->product;
52092#line 103
52093  retval = sprintf(buf, "%s\n", __cil_tmp9);
52094#line 103
52095  __cil_tmp10 = & udev->dev;
52096#line 103
52097  device_unlock(__cil_tmp10);
52098  }
52099#line 103
52100  return ((ssize_t )retval);
52101}
52102}
52103#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"
52104static struct device_attribute dev_attr_product  =    {{"product", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52105                                                    {(char)0}, {(char)0}, {(char)0},
52106                                                    {(char)0}, {(char)0}}}}, & show_product,
52107    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52108#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"
52109static ssize_t show_manufacturer(struct device *dev , struct device_attribute *attr ,
52110                                 char *buf ) 
52111{ struct usb_device *udev ;
52112  int retval ;
52113  struct device  const  *__mptr ;
52114  struct usb_device *__cil_tmp7 ;
52115  struct device *__cil_tmp8 ;
52116  char *__cil_tmp9 ;
52117  struct device *__cil_tmp10 ;
52118
52119  {
52120  {
52121#line 104
52122  __mptr = (struct device  const  *)dev;
52123#line 104
52124  __cil_tmp7 = (struct usb_device *)__mptr;
52125#line 104
52126  udev = __cil_tmp7 + 1152921504606846840UL;
52127#line 104
52128  __cil_tmp8 = & udev->dev;
52129#line 104
52130  device_lock(__cil_tmp8);
52131#line 104
52132  __cil_tmp9 = udev->manufacturer;
52133#line 104
52134  retval = sprintf(buf, "%s\n", __cil_tmp9);
52135#line 104
52136  __cil_tmp10 = & udev->dev;
52137#line 104
52138  device_unlock(__cil_tmp10);
52139  }
52140#line 104
52141  return ((ssize_t )retval);
52142}
52143}
52144#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"
52145static struct device_attribute dev_attr_manufacturer  =    {{"manufacturer", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52146                                                         {(char)0}, {(char)0}, {(char)0},
52147                                                         {(char)0}, {(char)0}}}},
52148    & show_manufacturer, (ssize_t (*)(struct device * , struct device_attribute * ,
52149                                      char const   * , size_t  ))0};
52150#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"
52151static ssize_t show_serial(struct device *dev , struct device_attribute *attr , char *buf ) 
52152{ struct usb_device *udev ;
52153  int retval ;
52154  struct device  const  *__mptr ;
52155  struct usb_device *__cil_tmp7 ;
52156  struct device *__cil_tmp8 ;
52157  char *__cil_tmp9 ;
52158  struct device *__cil_tmp10 ;
52159
52160  {
52161  {
52162#line 105
52163  __mptr = (struct device  const  *)dev;
52164#line 105
52165  __cil_tmp7 = (struct usb_device *)__mptr;
52166#line 105
52167  udev = __cil_tmp7 + 1152921504606846840UL;
52168#line 105
52169  __cil_tmp8 = & udev->dev;
52170#line 105
52171  device_lock(__cil_tmp8);
52172#line 105
52173  __cil_tmp9 = udev->serial;
52174#line 105
52175  retval = sprintf(buf, "%s\n", __cil_tmp9);
52176#line 105
52177  __cil_tmp10 = & udev->dev;
52178#line 105
52179  device_unlock(__cil_tmp10);
52180  }
52181#line 105
52182  return ((ssize_t )retval);
52183}
52184}
52185#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"
52186static struct device_attribute dev_attr_serial  =    {{"serial", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52187                                                   {(char)0}, {(char)0}, {(char)0},
52188                                                   {(char)0}, {(char)0}}}}, & show_serial,
52189    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52190#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"
52191static ssize_t show_speed(struct device *dev , struct device_attribute *attr , char *buf ) 
52192{ struct usb_device *udev ;
52193  char *speed ;
52194  struct device  const  *__mptr ;
52195  int tmp ;
52196  struct usb_device *__cil_tmp8 ;
52197  enum usb_device_speed __cil_tmp9 ;
52198  unsigned int __cil_tmp10 ;
52199  int __cil_tmp11 ;
52200  enum usb_device_speed __cil_tmp12 ;
52201  unsigned int __cil_tmp13 ;
52202  int __cil_tmp14 ;
52203  enum usb_device_speed __cil_tmp15 ;
52204  unsigned int __cil_tmp16 ;
52205  int __cil_tmp17 ;
52206  enum usb_device_speed __cil_tmp18 ;
52207  unsigned int __cil_tmp19 ;
52208  int __cil_tmp20 ;
52209  enum usb_device_speed __cil_tmp21 ;
52210  unsigned int __cil_tmp22 ;
52211  int __cil_tmp23 ;
52212  enum usb_device_speed __cil_tmp24 ;
52213  unsigned int __cil_tmp25 ;
52214  int __cil_tmp26 ;
52215
52216  {
52217#line 113
52218  __mptr = (struct device  const  *)dev;
52219#line 113
52220  __cil_tmp8 = (struct usb_device *)__mptr;
52221#line 113
52222  udev = __cil_tmp8 + 1152921504606846840UL;
52223  {
52224#line 116
52225  __cil_tmp9 = udev->speed;
52226#line 116
52227  __cil_tmp10 = (unsigned int )__cil_tmp9;
52228#line 116
52229  __cil_tmp11 = (int )__cil_tmp10;
52230#line 116
52231  if (__cil_tmp11 == 1) {
52232#line 116
52233    goto case_1;
52234  } else {
52235    {
52236#line 119
52237    __cil_tmp12 = udev->speed;
52238#line 119
52239    __cil_tmp13 = (unsigned int )__cil_tmp12;
52240#line 119
52241    __cil_tmp14 = (int )__cil_tmp13;
52242#line 119
52243    if (__cil_tmp14 == 0) {
52244#line 119
52245      goto case_0;
52246    } else {
52247      {
52248#line 120
52249      __cil_tmp15 = udev->speed;
52250#line 120
52251      __cil_tmp16 = (unsigned int )__cil_tmp15;
52252#line 120
52253      __cil_tmp17 = (int )__cil_tmp16;
52254#line 120
52255      if (__cil_tmp17 == 2) {
52256#line 120
52257        goto case_2;
52258      } else {
52259        {
52260#line 123
52261        __cil_tmp18 = udev->speed;
52262#line 123
52263        __cil_tmp19 = (unsigned int )__cil_tmp18;
52264#line 123
52265        __cil_tmp20 = (int )__cil_tmp19;
52266#line 123
52267        if (__cil_tmp20 == 3) {
52268#line 123
52269          goto case_3;
52270        } else {
52271          {
52272#line 126
52273          __cil_tmp21 = udev->speed;
52274#line 126
52275          __cil_tmp22 = (unsigned int )__cil_tmp21;
52276#line 126
52277          __cil_tmp23 = (int )__cil_tmp22;
52278#line 126
52279          if (__cil_tmp23 == 4) {
52280#line 126
52281            goto case_4;
52282          } else {
52283            {
52284#line 129
52285            __cil_tmp24 = udev->speed;
52286#line 129
52287            __cil_tmp25 = (unsigned int )__cil_tmp24;
52288#line 129
52289            __cil_tmp26 = (int )__cil_tmp25;
52290#line 129
52291            if (__cil_tmp26 == 5) {
52292#line 129
52293              goto case_5;
52294            } else {
52295#line 132
52296              goto switch_default;
52297#line 115
52298              if (0) {
52299                case_1: 
52300#line 117
52301                speed = (char *)"1.5";
52302#line 118
52303                goto ldv_23722;
52304                case_0: ;
52305                case_2: 
52306#line 121
52307                speed = (char *)"12";
52308#line 122
52309                goto ldv_23722;
52310                case_3: 
52311#line 124
52312                speed = (char *)"480";
52313#line 125
52314                goto ldv_23722;
52315                case_4: 
52316#line 127
52317                speed = (char *)"480";
52318#line 128
52319                goto ldv_23722;
52320                case_5: 
52321#line 130
52322                speed = (char *)"5000";
52323#line 131
52324                goto ldv_23722;
52325                switch_default: 
52326#line 133
52327                speed = (char *)"unknown";
52328              } else {
52329
52330              }
52331            }
52332            }
52333          }
52334          }
52335        }
52336        }
52337      }
52338      }
52339    }
52340    }
52341  }
52342  }
52343  ldv_23722: 
52344  {
52345#line 135
52346  tmp = sprintf(buf, "%s\n", speed);
52347  }
52348#line 135
52349  return ((ssize_t )tmp);
52350}
52351}
52352#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"
52353static struct device_attribute dev_attr_speed  =    {{"speed", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52354                                                  {(char)0}, {(char)0}, {(char)0},
52355                                                  {(char)0}, {(char)0}}}}, & show_speed,
52356    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52357#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"
52358static ssize_t show_busnum(struct device *dev , struct device_attribute *attr , char *buf ) 
52359{ struct usb_device *udev ;
52360  struct device  const  *__mptr ;
52361  int tmp ;
52362  struct usb_device *__cil_tmp7 ;
52363  struct usb_bus *__cil_tmp8 ;
52364  int __cil_tmp9 ;
52365
52366  {
52367  {
52368#line 144
52369  __mptr = (struct device  const  *)dev;
52370#line 144
52371  __cil_tmp7 = (struct usb_device *)__mptr;
52372#line 144
52373  udev = __cil_tmp7 + 1152921504606846840UL;
52374#line 145
52375  __cil_tmp8 = udev->bus;
52376#line 145
52377  __cil_tmp9 = __cil_tmp8->busnum;
52378#line 145
52379  tmp = sprintf(buf, "%d\n", __cil_tmp9);
52380  }
52381#line 145
52382  return ((ssize_t )tmp);
52383}
52384}
52385#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"
52386static struct device_attribute dev_attr_busnum  =    {{"busnum", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52387                                                   {(char)0}, {(char)0}, {(char)0},
52388                                                   {(char)0}, {(char)0}}}}, & show_busnum,
52389    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52390#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"
52391static ssize_t show_devnum(struct device *dev , struct device_attribute *attr , char *buf ) 
52392{ struct usb_device *udev ;
52393  struct device  const  *__mptr ;
52394  int tmp ;
52395  struct usb_device *__cil_tmp7 ;
52396  int __cil_tmp8 ;
52397
52398  {
52399  {
52400#line 154
52401  __mptr = (struct device  const  *)dev;
52402#line 154
52403  __cil_tmp7 = (struct usb_device *)__mptr;
52404#line 154
52405  udev = __cil_tmp7 + 1152921504606846840UL;
52406#line 155
52407  __cil_tmp8 = udev->devnum;
52408#line 155
52409  tmp = sprintf(buf, "%d\n", __cil_tmp8);
52410  }
52411#line 155
52412  return ((ssize_t )tmp);
52413}
52414}
52415#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"
52416static struct device_attribute dev_attr_devnum  =    {{"devnum", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52417                                                   {(char)0}, {(char)0}, {(char)0},
52418                                                   {(char)0}, {(char)0}}}}, & show_devnum,
52419    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52420#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"
52421static ssize_t show_devpath(struct device *dev , struct device_attribute *attr , char *buf ) 
52422{ struct usb_device *udev ;
52423  struct device  const  *__mptr ;
52424  int tmp ;
52425  struct usb_device *__cil_tmp7 ;
52426  char (*__cil_tmp8)[16U] ;
52427  char *__cil_tmp9 ;
52428
52429  {
52430  {
52431#line 164
52432  __mptr = (struct device  const  *)dev;
52433#line 164
52434  __cil_tmp7 = (struct usb_device *)__mptr;
52435#line 164
52436  udev = __cil_tmp7 + 1152921504606846840UL;
52437#line 165
52438  __cil_tmp8 = & udev->devpath;
52439#line 165
52440  __cil_tmp9 = (char *)__cil_tmp8;
52441#line 165
52442  tmp = sprintf(buf, "%s\n", __cil_tmp9);
52443  }
52444#line 165
52445  return ((ssize_t )tmp);
52446}
52447}
52448#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"
52449static struct device_attribute dev_attr_devpath  =    {{"devpath", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52450                                                    {(char)0}, {(char)0}, {(char)0},
52451                                                    {(char)0}, {(char)0}}}}, & show_devpath,
52452    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52453#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"
52454static ssize_t show_version(struct device *dev , struct device_attribute *attr , char *buf ) 
52455{ struct usb_device *udev ;
52456  u16 bcdUSB ;
52457  struct device  const  *__mptr ;
52458  int tmp ;
52459  struct usb_device *__cil_tmp8 ;
52460  int __cil_tmp9 ;
52461  int __cil_tmp10 ;
52462  int __cil_tmp11 ;
52463  int __cil_tmp12 ;
52464
52465  {
52466  {
52467#line 175
52468  __mptr = (struct device  const  *)dev;
52469#line 175
52470  __cil_tmp8 = (struct usb_device *)__mptr;
52471#line 175
52472  udev = __cil_tmp8 + 1152921504606846840UL;
52473#line 176
52474  bcdUSB = udev->descriptor.bcdUSB;
52475#line 177
52476  __cil_tmp9 = (int )bcdUSB;
52477#line 177
52478  __cil_tmp10 = __cil_tmp9 >> 8;
52479#line 177
52480  __cil_tmp11 = (int )bcdUSB;
52481#line 177
52482  __cil_tmp12 = __cil_tmp11 & 255;
52483#line 177
52484  tmp = sprintf(buf, "%2x.%02x\n", __cil_tmp10, __cil_tmp12);
52485  }
52486#line 177
52487  return ((ssize_t )tmp);
52488}
52489}
52490#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"
52491static struct device_attribute dev_attr_version  =    {{"version", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52492                                                    {(char)0}, {(char)0}, {(char)0},
52493                                                    {(char)0}, {(char)0}}}}, & show_version,
52494    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52495#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"
52496static ssize_t show_maxchild(struct device *dev , struct device_attribute *attr ,
52497                             char *buf ) 
52498{ struct usb_device *udev ;
52499  struct device  const  *__mptr ;
52500  int tmp ;
52501  struct usb_device *__cil_tmp7 ;
52502  int __cil_tmp8 ;
52503
52504  {
52505  {
52506#line 186
52507  __mptr = (struct device  const  *)dev;
52508#line 186
52509  __cil_tmp7 = (struct usb_device *)__mptr;
52510#line 186
52511  udev = __cil_tmp7 + 1152921504606846840UL;
52512#line 187
52513  __cil_tmp8 = udev->maxchild;
52514#line 187
52515  tmp = sprintf(buf, "%d\n", __cil_tmp8);
52516  }
52517#line 187
52518  return ((ssize_t )tmp);
52519}
52520}
52521#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"
52522static struct device_attribute dev_attr_maxchild  =    {{"maxchild", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52523                                                     {(char)0}, {(char)0}, {(char)0},
52524                                                     {(char)0}, {(char)0}}}}, & show_maxchild,
52525    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52526#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"
52527static ssize_t show_quirks(struct device *dev , struct device_attribute *attr , char *buf ) 
52528{ struct usb_device *udev ;
52529  struct device  const  *__mptr ;
52530  int tmp ;
52531  struct usb_device *__cil_tmp7 ;
52532  u32 __cil_tmp8 ;
52533
52534  {
52535  {
52536#line 196
52537  __mptr = (struct device  const  *)dev;
52538#line 196
52539  __cil_tmp7 = (struct usb_device *)__mptr;
52540#line 196
52541  udev = __cil_tmp7 + 1152921504606846840UL;
52542#line 197
52543  __cil_tmp8 = udev->quirks;
52544#line 197
52545  tmp = sprintf(buf, "0x%x\n", __cil_tmp8);
52546  }
52547#line 197
52548  return ((ssize_t )tmp);
52549}
52550}
52551#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"
52552static struct device_attribute dev_attr_quirks  =    {{"quirks", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52553                                                   {(char)0}, {(char)0}, {(char)0},
52554                                                   {(char)0}, {(char)0}}}}, & show_quirks,
52555    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52556#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"
52557static ssize_t show_avoid_reset_quirk(struct device *dev , struct device_attribute *attr ,
52558                                      char *buf ) 
52559{ struct usb_device *udev ;
52560  struct device  const  *__mptr ;
52561  int tmp ;
52562  struct usb_device *__cil_tmp7 ;
52563  u32 __cil_tmp8 ;
52564  unsigned int __cil_tmp9 ;
52565  int __cil_tmp10 ;
52566
52567  {
52568  {
52569#line 206
52570  __mptr = (struct device  const  *)dev;
52571#line 206
52572  __cil_tmp7 = (struct usb_device *)__mptr;
52573#line 206
52574  udev = __cil_tmp7 + 1152921504606846840UL;
52575#line 207
52576  __cil_tmp8 = udev->quirks;
52577#line 207
52578  __cil_tmp9 = __cil_tmp8 & 16U;
52579#line 207
52580  __cil_tmp10 = __cil_tmp9 != 0U;
52581#line 207
52582  tmp = sprintf(buf, "%d\n", __cil_tmp10);
52583  }
52584#line 207
52585  return ((ssize_t )tmp);
52586}
52587}
52588#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"
52589static ssize_t set_avoid_reset_quirk(struct device *dev , struct device_attribute *attr ,
52590                                     char const   *buf , size_t count ) 
52591{ struct usb_device *udev ;
52592  struct device  const  *__mptr ;
52593  int config ;
52594  int tmp ;
52595  struct usb_device *__cil_tmp9 ;
52596  struct device *__cil_tmp10 ;
52597  u32 __cil_tmp11 ;
52598  u32 __cil_tmp12 ;
52599  struct device *__cil_tmp13 ;
52600
52601  {
52602  {
52603#line 214
52604  __mptr = (struct device  const  *)dev;
52605#line 214
52606  __cil_tmp9 = (struct usb_device *)__mptr;
52607#line 214
52608  udev = __cil_tmp9 + 1152921504606846840UL;
52609#line 217
52610  tmp = sscanf(buf, "%d", & config);
52611  }
52612#line 217
52613  if (tmp != 1) {
52614#line 218
52615    return (-22L);
52616  } else
52617#line 217
52618  if (config < 0) {
52619#line 218
52620    return (-22L);
52621  } else
52622#line 217
52623  if (config > 1) {
52624#line 218
52625    return (-22L);
52626  } else {
52627
52628  }
52629  {
52630#line 219
52631  __cil_tmp10 = & udev->dev;
52632#line 219
52633  device_lock(__cil_tmp10);
52634  }
52635#line 220
52636  if (config != 0) {
52637#line 221
52638    __cil_tmp11 = udev->quirks;
52639#line 221
52640    udev->quirks = __cil_tmp11 | 16U;
52641  } else {
52642#line 223
52643    __cil_tmp12 = udev->quirks;
52644#line 223
52645    udev->quirks = __cil_tmp12 & 4294967279U;
52646  }
52647  {
52648#line 224
52649  __cil_tmp13 = & udev->dev;
52650#line 224
52651  device_unlock(__cil_tmp13);
52652  }
52653#line 225
52654  return ((ssize_t )count);
52655}
52656}
52657#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"
52658static struct device_attribute dev_attr_avoid_reset_quirk  =    {{"avoid_reset_quirk", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
52659                                                              {(char)0}, {(char)0},
52660                                                              {(char)0}, {(char)0},
52661                                                              {(char)0}, {(char)0}}}},
52662    & show_avoid_reset_quirk, & set_avoid_reset_quirk};
52663#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"
52664static ssize_t show_urbnum(struct device *dev , struct device_attribute *attr , char *buf ) 
52665{ struct usb_device *udev ;
52666  struct device  const  *__mptr ;
52667  int tmp ;
52668  int tmp___0 ;
52669  struct usb_device *__cil_tmp8 ;
52670  atomic_t *__cil_tmp9 ;
52671  atomic_t const   *__cil_tmp10 ;
52672
52673  {
52674  {
52675#line 236
52676  __mptr = (struct device  const  *)dev;
52677#line 236
52678  __cil_tmp8 = (struct usb_device *)__mptr;
52679#line 236
52680  udev = __cil_tmp8 + 1152921504606846840UL;
52681#line 237
52682  __cil_tmp9 = & udev->urbnum;
52683#line 237
52684  __cil_tmp10 = (atomic_t const   *)__cil_tmp9;
52685#line 237
52686  tmp = atomic_read(__cil_tmp10);
52687#line 237
52688  tmp___0 = sprintf(buf, "%d\n", tmp);
52689  }
52690#line 237
52691  return ((ssize_t )tmp___0);
52692}
52693}
52694#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"
52695static struct device_attribute dev_attr_urbnum  =    {{"urbnum", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52696                                                   {(char)0}, {(char)0}, {(char)0},
52697                                                   {(char)0}, {(char)0}}}}, & show_urbnum,
52698    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
52699#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"
52700static ssize_t show_persist(struct device *dev , struct device_attribute *attr , char *buf ) 
52701{ struct usb_device *udev ;
52702  struct device  const  *__mptr ;
52703  int tmp ;
52704  struct usb_device *__cil_tmp7 ;
52705  unsigned char __cil_tmp8 ;
52706  int __cil_tmp9 ;
52707
52708  {
52709  {
52710#line 247
52711  __mptr = (struct device  const  *)dev;
52712#line 247
52713  __cil_tmp7 = (struct usb_device *)__mptr;
52714#line 247
52715  udev = __cil_tmp7 + 1152921504606846840UL;
52716#line 249
52717  __cil_tmp8 = udev->persist_enabled;
52718#line 249
52719  __cil_tmp9 = (int )__cil_tmp8;
52720#line 249
52721  tmp = sprintf(buf, "%d\n", __cil_tmp9);
52722  }
52723#line 249
52724  return ((ssize_t )tmp);
52725}
52726}
52727#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"
52728static ssize_t set_persist(struct device *dev , struct device_attribute *attr , char const   *buf ,
52729                           size_t count ) 
52730{ struct usb_device *udev ;
52731  struct device  const  *__mptr ;
52732  int value ;
52733  int tmp ;
52734  struct usb_device *__cil_tmp9 ;
52735  __u8 __cil_tmp10 ;
52736  unsigned int __cil_tmp11 ;
52737  struct device *__cil_tmp12 ;
52738  int __cil_tmp13 ;
52739  struct device *__cil_tmp14 ;
52740
52741  {
52742#line 256
52743  __mptr = (struct device  const  *)dev;
52744#line 256
52745  __cil_tmp9 = (struct usb_device *)__mptr;
52746#line 256
52747  udev = __cil_tmp9 + 1152921504606846840UL;
52748  {
52749#line 260
52750  __cil_tmp10 = udev->descriptor.bDeviceClass;
52751#line 260
52752  __cil_tmp11 = (unsigned int )__cil_tmp10;
52753#line 260
52754  if (__cil_tmp11 == 9U) {
52755#line 261
52756    return (-1L);
52757  } else {
52758
52759  }
52760  }
52761  {
52762#line 263
52763  tmp = sscanf(buf, "%d", & value);
52764  }
52765#line 263
52766  if (tmp != 1) {
52767#line 264
52768    return (-22L);
52769  } else {
52770
52771  }
52772  {
52773#line 266
52774  __cil_tmp12 = & udev->dev;
52775#line 266
52776  device_lock(__cil_tmp12);
52777#line 267
52778  __cil_tmp13 = value != 0;
52779#line 267
52780  udev->persist_enabled = (unsigned char )__cil_tmp13;
52781#line 268
52782  __cil_tmp14 = & udev->dev;
52783#line 268
52784  device_unlock(__cil_tmp14);
52785  }
52786#line 269
52787  return ((ssize_t )count);
52788}
52789}
52790#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"
52791static struct device_attribute dev_attr_persist  =    {{"persist", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
52792                                                    {(char)0}, {(char)0}, {(char)0},
52793                                                    {(char)0}, {(char)0}}}}, & show_persist,
52794    & set_persist};
52795#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"
52796static int add_persist_attributes(struct device *dev ) 
52797{ int rc ;
52798  struct usb_device *udev ;
52799  struct device  const  *__mptr ;
52800  int tmp ;
52801  struct device  const  *__cil_tmp6 ;
52802  struct usb_device *__cil_tmp7 ;
52803  __u8 __cil_tmp8 ;
52804  unsigned int __cil_tmp9 ;
52805  struct kobject *__cil_tmp10 ;
52806  struct attribute *__cil_tmp11 ;
52807  struct attribute  const  *__cil_tmp12 ;
52808  char const   *__cil_tmp13 ;
52809
52810  {
52811  {
52812#line 276
52813  rc = 0;
52814#line 278
52815  __cil_tmp6 = (struct device  const  *)dev;
52816#line 278
52817  tmp = is_usb_device(__cil_tmp6);
52818  }
52819#line 278
52820  if (tmp != 0) {
52821#line 279
52822    __mptr = (struct device  const  *)dev;
52823#line 279
52824    __cil_tmp7 = (struct usb_device *)__mptr;
52825#line 279
52826    udev = __cil_tmp7 + 1152921504606846840UL;
52827    {
52828#line 284
52829    __cil_tmp8 = udev->descriptor.bDeviceClass;
52830#line 284
52831    __cil_tmp9 = (unsigned int )__cil_tmp8;
52832#line 284
52833    if (__cil_tmp9 != 9U) {
52834      {
52835#line 285
52836      __cil_tmp10 = & dev->kobj;
52837#line 285
52838      __cil_tmp11 = & dev_attr_persist.attr;
52839#line 285
52840      __cil_tmp12 = (struct attribute  const  *)__cil_tmp11;
52841#line 285
52842      __cil_tmp13 = (char const   *)(& power_group_name);
52843#line 285
52844      rc = sysfs_add_file_to_group(__cil_tmp10, __cil_tmp12, __cil_tmp13);
52845      }
52846    } else {
52847
52848    }
52849    }
52850  } else {
52851
52852  }
52853#line 289
52854  return (rc);
52855}
52856}
52857#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"
52858static void remove_persist_attributes(struct device *dev ) 
52859{ struct kobject *__cil_tmp2 ;
52860  struct attribute *__cil_tmp3 ;
52861  struct attribute  const  *__cil_tmp4 ;
52862  char const   *__cil_tmp5 ;
52863
52864  {
52865  {
52866#line 294
52867  __cil_tmp2 = & dev->kobj;
52868#line 294
52869  __cil_tmp3 = & dev_attr_persist.attr;
52870#line 294
52871  __cil_tmp4 = (struct attribute  const  *)__cil_tmp3;
52872#line 294
52873  __cil_tmp5 = (char const   *)(& power_group_name);
52874#line 294
52875  sysfs_remove_file_from_group(__cil_tmp2, __cil_tmp4, __cil_tmp5);
52876  }
52877#line 297
52878  return;
52879}
52880}
52881#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"
52882static ssize_t show_connected_duration(struct device *dev , struct device_attribute *attr ,
52883                                       char *buf ) 
52884{ struct usb_device *udev ;
52885  struct device  const  *__mptr ;
52886  unsigned int tmp ;
52887  int tmp___0 ;
52888  struct usb_device *__cil_tmp8 ;
52889  unsigned long __cil_tmp9 ;
52890  unsigned long __cil_tmp10 ;
52891  unsigned long __cil_tmp11 ;
52892  unsigned long __cil_tmp12 ;
52893  unsigned long __cil_tmp13 ;
52894
52895  {
52896  {
52897#line 311
52898  __mptr = (struct device  const  *)dev;
52899#line 311
52900  __cil_tmp8 = (struct usb_device *)__mptr;
52901#line 311
52902  udev = __cil_tmp8 + 1152921504606846840UL;
52903#line 313
52904  __cil_tmp9 = udev->connect_time;
52905#line 313
52906  __cil_tmp10 = (unsigned long )jiffies;
52907#line 313
52908  __cil_tmp11 = __cil_tmp10 - __cil_tmp9;
52909#line 313
52910  __cil_tmp12 = (unsigned long const   )__cil_tmp11;
52911#line 313
52912  __cil_tmp13 = (unsigned long )__cil_tmp12;
52913#line 313
52914  tmp = jiffies_to_msecs(__cil_tmp13);
52915#line 313
52916  tmp___0 = sprintf(buf, "%u\n", tmp);
52917  }
52918#line 313
52919  return ((ssize_t )tmp___0);
52920}
52921}
52922#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"
52923static struct device_attribute dev_attr_connected_duration  =    {{"connected_duration", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
52924                                                               {(char)0}, {(char)0},
52925                                                               {(char)0}, {(char)0},
52926                                                               {(char)0}, {(char)0}}}},
52927    & show_connected_duration, (ssize_t (*)(struct device * , struct device_attribute * ,
52928                                            char const   * , size_t  ))0};
52929#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"
52930static ssize_t show_active_duration(struct device *dev , struct device_attribute *attr ,
52931                                    char *buf ) 
52932{ struct usb_device *udev ;
52933  struct device  const  *__mptr ;
52934  int duration ;
52935  unsigned int tmp ;
52936  unsigned int tmp___0 ;
52937  int tmp___1 ;
52938  struct usb_device *__cil_tmp10 ;
52939  enum usb_device_state __cil_tmp11 ;
52940  unsigned int __cil_tmp12 ;
52941  unsigned long __cil_tmp13 ;
52942  unsigned long __cil_tmp14 ;
52943  unsigned long __cil_tmp15 ;
52944  unsigned long __cil_tmp16 ;
52945  unsigned long __cil_tmp17 ;
52946  unsigned long __cil_tmp18 ;
52947  unsigned long __cil_tmp19 ;
52948  unsigned long __cil_tmp20 ;
52949
52950  {
52951#line 330
52952  __mptr = (struct device  const  *)dev;
52953#line 330
52954  __cil_tmp10 = (struct usb_device *)__mptr;
52955#line 330
52956  udev = __cil_tmp10 + 1152921504606846840UL;
52957  {
52958#line 333
52959  __cil_tmp11 = udev->state;
52960#line 333
52961  __cil_tmp12 = (unsigned int )__cil_tmp11;
52962#line 333
52963  if (__cil_tmp12 != 8U) {
52964    {
52965#line 334
52966    __cil_tmp13 = (unsigned long )jiffies;
52967#line 334
52968    __cil_tmp14 = udev->active_duration;
52969#line 334
52970    __cil_tmp15 = __cil_tmp14 + __cil_tmp13;
52971#line 334
52972    __cil_tmp16 = (unsigned long const   )__cil_tmp15;
52973#line 334
52974    __cil_tmp17 = (unsigned long )__cil_tmp16;
52975#line 334
52976    tmp = jiffies_to_msecs(__cil_tmp17);
52977#line 334
52978    duration = (int )tmp;
52979    }
52980  } else {
52981    {
52982#line 336
52983    __cil_tmp18 = udev->active_duration;
52984#line 336
52985    __cil_tmp19 = (unsigned long const   )__cil_tmp18;
52986#line 336
52987    __cil_tmp20 = (unsigned long )__cil_tmp19;
52988#line 336
52989    tmp___0 = jiffies_to_msecs(__cil_tmp20);
52990#line 336
52991    duration = (int )tmp___0;
52992    }
52993  }
52994  }
52995  {
52996#line 337
52997  tmp___1 = sprintf(buf, "%u\n", duration);
52998  }
52999#line 337
53000  return ((ssize_t )tmp___1);
53001}
53002}
53003#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"
53004static struct device_attribute dev_attr_active_duration  =    {{"active_duration", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53005                                                            {(char)0}, {(char)0},
53006                                                            {(char)0}, {(char)0},
53007                                                            {(char)0}, {(char)0}}}},
53008    & show_active_duration, (ssize_t (*)(struct device * , struct device_attribute * ,
53009                                         char const   * , size_t  ))0};
53010#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"
53011static ssize_t show_autosuspend(struct device *dev , struct device_attribute *attr ,
53012                                char *buf ) 
53013{ int tmp ;
53014  int __cil_tmp5 ;
53015  int __cil_tmp6 ;
53016
53017  {
53018  {
53019#line 345
53020  __cil_tmp5 = dev->power.autosuspend_delay;
53021#line 345
53022  __cil_tmp6 = __cil_tmp5 / 1000;
53023#line 345
53024  tmp = sprintf(buf, "%d\n", __cil_tmp6);
53025  }
53026#line 345
53027  return ((ssize_t )tmp);
53028}
53029}
53030#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"
53031static ssize_t set_autosuspend(struct device *dev , struct device_attribute *attr ,
53032                               char const   *buf , size_t count ) 
53033{ int value ;
53034  int tmp ;
53035  int __cil_tmp7 ;
53036
53037  {
53038  {
53039#line 354
53040  tmp = sscanf(buf, "%d", & value);
53041  }
53042#line 354
53043  if (tmp != 1) {
53044#line 356
53045    return (-22L);
53046  } else
53047#line 354
53048  if (value > 2147482) {
53049#line 356
53050    return (-22L);
53051  } else
53052#line 354
53053  if (value < -2147482) {
53054#line 356
53055    return (-22L);
53056  } else {
53057
53058  }
53059  {
53060#line 358
53061  __cil_tmp7 = value * 1000;
53062#line 358
53063  pm_runtime_set_autosuspend_delay(dev, __cil_tmp7);
53064  }
53065#line 359
53066  return ((ssize_t )count);
53067}
53068}
53069#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"
53070static struct device_attribute dev_attr_autosuspend  =    {{"autosuspend", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53071                                                        {(char)0}, {(char)0}, {(char)0},
53072                                                        {(char)0}, {(char)0}}}}, & show_autosuspend,
53073    & set_autosuspend};
53074#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"
53075static char const   on_string[3U]  = {      (char const   )'o',      (char const   )'n',      (char const   )'\000'};
53076#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"
53077static char const   auto_string[5U]  = {      (char const   )'a',      (char const   )'u',      (char const   )'t',      (char const   )'o', 
53078        (char const   )'\000'};
53079#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"
53080static void warn_level(void) 
53081{ int level_warned ;
53082
53083  {
53084#line 371
53085  if (level_warned == 0) {
53086    {
53087#line 372
53088    level_warned = 1;
53089#line 373
53090    printk("<4>WARNING! power/level is deprecated; use power/control instead\n");
53091    }
53092  } else {
53093
53094  }
53095#line 375
53096  return;
53097}
53098}
53099#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"
53100static ssize_t show_level(struct device *dev , struct device_attribute *attr , char *buf ) 
53101{ struct usb_device *udev ;
53102  struct device  const  *__mptr ;
53103  char const   *p ;
53104  int tmp ;
53105  struct usb_device *__cil_tmp8 ;
53106  enum usb_device_state __cil_tmp9 ;
53107  unsigned int __cil_tmp10 ;
53108  unsigned char *__cil_tmp11 ;
53109  unsigned char *__cil_tmp12 ;
53110  unsigned char __cil_tmp13 ;
53111  unsigned int __cil_tmp14 ;
53112
53113  {
53114  {
53115#line 381
53116  __mptr = (struct device  const  *)dev;
53117#line 381
53118  __cil_tmp8 = (struct usb_device *)__mptr;
53119#line 381
53120  udev = __cil_tmp8 + 1152921504606846840UL;
53121#line 382
53122  p = (char const   *)(& auto_string);
53123#line 384
53124  warn_level();
53125  }
53126  {
53127#line 385
53128  __cil_tmp9 = udev->state;
53129#line 385
53130  __cil_tmp10 = (unsigned int )__cil_tmp9;
53131#line 385
53132  if (__cil_tmp10 != 8U) {
53133    {
53134#line 385
53135    __cil_tmp11 = (unsigned char *)udev;
53136#line 385
53137    __cil_tmp12 = __cil_tmp11 + 937UL;
53138#line 385
53139    __cil_tmp13 = *__cil_tmp12;
53140#line 385
53141    __cil_tmp14 = (unsigned int )__cil_tmp13;
53142#line 385
53143    if (__cil_tmp14 == 0U) {
53144#line 386
53145      p = (char const   *)(& on_string);
53146    } else {
53147
53148    }
53149    }
53150  } else {
53151
53152  }
53153  }
53154  {
53155#line 387
53156  tmp = sprintf(buf, "%s\n", p);
53157  }
53158#line 387
53159  return ((ssize_t )tmp);
53160}
53161}
53162#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"
53163static ssize_t set_level(struct device *dev , struct device_attribute *attr , char const   *buf ,
53164                         size_t count ) 
53165{ struct usb_device *udev ;
53166  struct device  const  *__mptr ;
53167  int len ;
53168  char *cp ;
53169  int rc ;
53170  void *tmp ;
53171  int tmp___0 ;
53172  int tmp___1 ;
53173  struct usb_device *__cil_tmp13 ;
53174  void const   *__cil_tmp14 ;
53175  char *__cil_tmp15 ;
53176  unsigned long __cil_tmp16 ;
53177  unsigned long __cil_tmp17 ;
53178  long __cil_tmp18 ;
53179  unsigned int __cil_tmp19 ;
53180  long __cil_tmp20 ;
53181  unsigned int __cil_tmp21 ;
53182  unsigned int __cil_tmp22 ;
53183  struct device *__cil_tmp23 ;
53184  char const   *__cil_tmp24 ;
53185  __kernel_size_t __cil_tmp25 ;
53186  char const   *__cil_tmp26 ;
53187  __kernel_size_t __cil_tmp27 ;
53188  struct device *__cil_tmp28 ;
53189
53190  {
53191  {
53192#line 394
53193  __mptr = (struct device  const  *)dev;
53194#line 394
53195  __cil_tmp13 = (struct usb_device *)__mptr;
53196#line 394
53197  udev = __cil_tmp13 + 1152921504606846840UL;
53198#line 395
53199  len = (int )count;
53200#line 397
53201  rc = (int )count;
53202#line 399
53203  warn_level();
53204#line 400
53205  __cil_tmp14 = (void const   *)buf;
53206#line 400
53207  tmp = memchr(__cil_tmp14, 10, count);
53208#line 400
53209  cp = (char *)tmp;
53210  }
53211  {
53212#line 401
53213  __cil_tmp15 = (char *)0;
53214#line 401
53215  __cil_tmp16 = (unsigned long )__cil_tmp15;
53216#line 401
53217  __cil_tmp17 = (unsigned long )cp;
53218#line 401
53219  if (__cil_tmp17 != __cil_tmp16) {
53220#line 402
53221    __cil_tmp18 = (long )buf;
53222#line 402
53223    __cil_tmp19 = (unsigned int )__cil_tmp18;
53224#line 402
53225    __cil_tmp20 = (long )cp;
53226#line 402
53227    __cil_tmp21 = (unsigned int )__cil_tmp20;
53228#line 402
53229    __cil_tmp22 = __cil_tmp21 - __cil_tmp19;
53230#line 402
53231    len = (int )__cil_tmp22;
53232  } else {
53233
53234  }
53235  }
53236  {
53237#line 404
53238  __cil_tmp23 = & udev->dev;
53239#line 404
53240  device_lock(__cil_tmp23);
53241  }
53242#line 406
53243  if (len == 2) {
53244    {
53245#line 406
53246    __cil_tmp24 = (char const   *)(& on_string);
53247#line 406
53248    __cil_tmp25 = (__kernel_size_t )len;
53249#line 406
53250    tmp___1 = strncmp(buf, __cil_tmp24, __cil_tmp25);
53251    }
53252#line 406
53253    if (tmp___1 == 0) {
53254      {
53255#line 408
53256      usb_disable_autosuspend(udev);
53257      }
53258    } else {
53259#line 406
53260      goto _L;
53261    }
53262  } else
53263  _L: 
53264#line 410
53265  if (len == 4) {
53266    {
53267#line 410
53268    __cil_tmp26 = (char const   *)(& auto_string);
53269#line 410
53270    __cil_tmp27 = (__kernel_size_t )len;
53271#line 410
53272    tmp___0 = strncmp(buf, __cil_tmp26, __cil_tmp27);
53273    }
53274#line 410
53275    if (tmp___0 == 0) {
53276      {
53277#line 412
53278      usb_enable_autosuspend(udev);
53279      }
53280    } else {
53281#line 415
53282      rc = -22;
53283    }
53284  } else {
53285#line 415
53286    rc = -22;
53287  }
53288  {
53289#line 417
53290  __cil_tmp28 = & udev->dev;
53291#line 417
53292  device_unlock(__cil_tmp28);
53293  }
53294#line 418
53295  return ((ssize_t )rc);
53296}
53297}
53298#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"
53299static struct device_attribute dev_attr_level  =    {{"level", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53300                                                  {(char)0}, {(char)0}, {(char)0},
53301                                                  {(char)0}, {(char)0}}}}, & show_level,
53302    & set_level};
53303#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"
53304static struct attribute *power_attrs[5U]  = {      & dev_attr_autosuspend.attr,      & dev_attr_level.attr,      & dev_attr_connected_duration.attr,      & dev_attr_active_duration.attr, 
53305        (struct attribute *)0};
53306#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"
53307static struct attribute_group power_attr_group  =    {(char const   *)(& power_group_name), (mode_t (*)(struct kobject * , struct attribute * ,
53308                                                      int  ))0, (struct attribute **)(& power_attrs)};
53309#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"
53310static int add_power_attributes(struct device *dev ) 
53311{ int rc ;
53312  int tmp ;
53313  struct device  const  *__cil_tmp4 ;
53314  struct kobject *__cil_tmp5 ;
53315  struct attribute_group  const  *__cil_tmp6 ;
53316
53317  {
53318  {
53319#line 437
53320  rc = 0;
53321#line 439
53322  __cil_tmp4 = (struct device  const  *)dev;
53323#line 439
53324  tmp = is_usb_device(__cil_tmp4);
53325  }
53326#line 439
53327  if (tmp != 0) {
53328    {
53329#line 440
53330    __cil_tmp5 = & dev->kobj;
53331#line 440
53332    __cil_tmp6 = (struct attribute_group  const  *)(& power_attr_group);
53333#line 440
53334    rc = sysfs_merge_group(__cil_tmp5, __cil_tmp6);
53335    }
53336  } else {
53337
53338  }
53339#line 441
53340  return (rc);
53341}
53342}
53343#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"
53344static void remove_power_attributes(struct device *dev ) 
53345{ struct kobject *__cil_tmp2 ;
53346  struct attribute_group  const  *__cil_tmp3 ;
53347
53348  {
53349  {
53350#line 446
53351  __cil_tmp2 = & dev->kobj;
53352#line 446
53353  __cil_tmp3 = (struct attribute_group  const  *)(& power_attr_group);
53354#line 446
53355  sysfs_unmerge_group(__cil_tmp2, __cil_tmp3);
53356  }
53357#line 447
53358  return;
53359}
53360}
53361#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"
53362static ssize_t show_idVendor(struct device *dev , struct device_attribute *attr ,
53363                             char *buf ) 
53364{ struct usb_device *udev ;
53365  struct device  const  *__mptr ;
53366  int tmp ;
53367  struct usb_device *__cil_tmp7 ;
53368  __le16 __cil_tmp8 ;
53369  int __cil_tmp9 ;
53370
53371  {
53372  {
53373#line 471
53374  __mptr = (struct device  const  *)dev;
53375#line 471
53376  __cil_tmp7 = (struct usb_device *)__mptr;
53377#line 471
53378  udev = __cil_tmp7 + 1152921504606846840UL;
53379#line 471
53380  __cil_tmp8 = udev->descriptor.idVendor;
53381#line 471
53382  __cil_tmp9 = (int )__cil_tmp8;
53383#line 471
53384  tmp = sprintf(buf, "%04x\n", __cil_tmp9);
53385  }
53386#line 471
53387  return ((ssize_t )tmp);
53388}
53389}
53390#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"
53391static struct device_attribute dev_attr_idVendor  =    {{"idVendor", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53392                                                     {(char)0}, {(char)0}, {(char)0},
53393                                                     {(char)0}, {(char)0}}}}, & show_idVendor,
53394    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
53395#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"
53396static ssize_t show_idProduct(struct device *dev , struct device_attribute *attr ,
53397                              char *buf ) 
53398{ struct usb_device *udev ;
53399  struct device  const  *__mptr ;
53400  int tmp ;
53401  struct usb_device *__cil_tmp7 ;
53402  __le16 __cil_tmp8 ;
53403  int __cil_tmp9 ;
53404
53405  {
53406  {
53407#line 472
53408  __mptr = (struct device  const  *)dev;
53409#line 472
53410  __cil_tmp7 = (struct usb_device *)__mptr;
53411#line 472
53412  udev = __cil_tmp7 + 1152921504606846840UL;
53413#line 472
53414  __cil_tmp8 = udev->descriptor.idProduct;
53415#line 472
53416  __cil_tmp9 = (int )__cil_tmp8;
53417#line 472
53418  tmp = sprintf(buf, "%04x\n", __cil_tmp9);
53419  }
53420#line 472
53421  return ((ssize_t )tmp);
53422}
53423}
53424#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"
53425static struct device_attribute dev_attr_idProduct  =    {{"idProduct", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53426                                                      {(char)0}, {(char)0}, {(char)0},
53427                                                      {(char)0}, {(char)0}}}}, & show_idProduct,
53428    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
53429#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"
53430static ssize_t show_bcdDevice(struct device *dev , struct device_attribute *attr ,
53431                              char *buf ) 
53432{ struct usb_device *udev ;
53433  struct device  const  *__mptr ;
53434  int tmp ;
53435  struct usb_device *__cil_tmp7 ;
53436  __le16 __cil_tmp8 ;
53437  int __cil_tmp9 ;
53438
53439  {
53440  {
53441#line 473
53442  __mptr = (struct device  const  *)dev;
53443#line 473
53444  __cil_tmp7 = (struct usb_device *)__mptr;
53445#line 473
53446  udev = __cil_tmp7 + 1152921504606846840UL;
53447#line 473
53448  __cil_tmp8 = udev->descriptor.bcdDevice;
53449#line 473
53450  __cil_tmp9 = (int )__cil_tmp8;
53451#line 473
53452  tmp = sprintf(buf, "%04x\n", __cil_tmp9);
53453  }
53454#line 473
53455  return ((ssize_t )tmp);
53456}
53457}
53458#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"
53459static struct device_attribute dev_attr_bcdDevice  =    {{"bcdDevice", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53460                                                      {(char)0}, {(char)0}, {(char)0},
53461                                                      {(char)0}, {(char)0}}}}, & show_bcdDevice,
53462    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
53463#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"
53464static ssize_t show_bDeviceClass(struct device *dev , struct device_attribute *attr ,
53465                                 char *buf ) 
53466{ struct usb_device *udev ;
53467  struct device  const  *__mptr ;
53468  int tmp ;
53469  struct usb_device *__cil_tmp7 ;
53470  __u8 __cil_tmp8 ;
53471  int __cil_tmp9 ;
53472
53473  {
53474  {
53475#line 487
53476  __mptr = (struct device  const  *)dev;
53477#line 487
53478  __cil_tmp7 = (struct usb_device *)__mptr;
53479#line 487
53480  udev = __cil_tmp7 + 1152921504606846840UL;
53481#line 487
53482  __cil_tmp8 = udev->descriptor.bDeviceClass;
53483#line 487
53484  __cil_tmp9 = (int )__cil_tmp8;
53485#line 487
53486  tmp = sprintf(buf, "%02x\n", __cil_tmp9);
53487  }
53488#line 487
53489  return ((ssize_t )tmp);
53490}
53491}
53492#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"
53493static struct device_attribute dev_attr_bDeviceClass  =    {{"bDeviceClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53494                                                         {(char)0}, {(char)0}, {(char)0},
53495                                                         {(char)0}, {(char)0}}}},
53496    & show_bDeviceClass, (ssize_t (*)(struct device * , struct device_attribute * ,
53497                                      char const   * , size_t  ))0};
53498#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"
53499static ssize_t show_bDeviceSubClass(struct device *dev , struct device_attribute *attr ,
53500                                    char *buf ) 
53501{ struct usb_device *udev ;
53502  struct device  const  *__mptr ;
53503  int tmp ;
53504  struct usb_device *__cil_tmp7 ;
53505  __u8 __cil_tmp8 ;
53506  int __cil_tmp9 ;
53507
53508  {
53509  {
53510#line 488
53511  __mptr = (struct device  const  *)dev;
53512#line 488
53513  __cil_tmp7 = (struct usb_device *)__mptr;
53514#line 488
53515  udev = __cil_tmp7 + 1152921504606846840UL;
53516#line 488
53517  __cil_tmp8 = udev->descriptor.bDeviceSubClass;
53518#line 488
53519  __cil_tmp9 = (int )__cil_tmp8;
53520#line 488
53521  tmp = sprintf(buf, "%02x\n", __cil_tmp9);
53522  }
53523#line 488
53524  return ((ssize_t )tmp);
53525}
53526}
53527#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"
53528static struct device_attribute dev_attr_bDeviceSubClass  =    {{"bDeviceSubClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53529                                                            {(char)0}, {(char)0},
53530                                                            {(char)0}, {(char)0},
53531                                                            {(char)0}, {(char)0}}}},
53532    & show_bDeviceSubClass, (ssize_t (*)(struct device * , struct device_attribute * ,
53533                                         char const   * , size_t  ))0};
53534#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"
53535static ssize_t show_bDeviceProtocol(struct device *dev , struct device_attribute *attr ,
53536                                    char *buf ) 
53537{ struct usb_device *udev ;
53538  struct device  const  *__mptr ;
53539  int tmp ;
53540  struct usb_device *__cil_tmp7 ;
53541  __u8 __cil_tmp8 ;
53542  int __cil_tmp9 ;
53543
53544  {
53545  {
53546#line 489
53547  __mptr = (struct device  const  *)dev;
53548#line 489
53549  __cil_tmp7 = (struct usb_device *)__mptr;
53550#line 489
53551  udev = __cil_tmp7 + 1152921504606846840UL;
53552#line 489
53553  __cil_tmp8 = udev->descriptor.bDeviceProtocol;
53554#line 489
53555  __cil_tmp9 = (int )__cil_tmp8;
53556#line 489
53557  tmp = sprintf(buf, "%02x\n", __cil_tmp9);
53558  }
53559#line 489
53560  return ((ssize_t )tmp);
53561}
53562}
53563#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"
53564static struct device_attribute dev_attr_bDeviceProtocol  =    {{"bDeviceProtocol", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53565                                                            {(char)0}, {(char)0},
53566                                                            {(char)0}, {(char)0},
53567                                                            {(char)0}, {(char)0}}}},
53568    & show_bDeviceProtocol, (ssize_t (*)(struct device * , struct device_attribute * ,
53569                                         char const   * , size_t  ))0};
53570#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"
53571static ssize_t show_bNumConfigurations(struct device *dev , struct device_attribute *attr ,
53572                                       char *buf ) 
53573{ struct usb_device *udev ;
53574  struct device  const  *__mptr ;
53575  int tmp ;
53576  struct usb_device *__cil_tmp7 ;
53577  __u8 __cil_tmp8 ;
53578  int __cil_tmp9 ;
53579
53580  {
53581  {
53582#line 490
53583  __mptr = (struct device  const  *)dev;
53584#line 490
53585  __cil_tmp7 = (struct usb_device *)__mptr;
53586#line 490
53587  udev = __cil_tmp7 + 1152921504606846840UL;
53588#line 490
53589  __cil_tmp8 = udev->descriptor.bNumConfigurations;
53590#line 490
53591  __cil_tmp9 = (int )__cil_tmp8;
53592#line 490
53593  tmp = sprintf(buf, "%d\n", __cil_tmp9);
53594  }
53595#line 490
53596  return ((ssize_t )tmp);
53597}
53598}
53599#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"
53600static struct device_attribute dev_attr_bNumConfigurations  =    {{"bNumConfigurations", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53601                                                               {(char)0}, {(char)0},
53602                                                               {(char)0}, {(char)0},
53603                                                               {(char)0}, {(char)0}}}},
53604    & show_bNumConfigurations, (ssize_t (*)(struct device * , struct device_attribute * ,
53605                                            char const   * , size_t  ))0};
53606#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"
53607static ssize_t show_bMaxPacketSize0(struct device *dev , struct device_attribute *attr ,
53608                                    char *buf ) 
53609{ struct usb_device *udev ;
53610  struct device  const  *__mptr ;
53611  int tmp ;
53612  struct usb_device *__cil_tmp7 ;
53613  __u8 __cil_tmp8 ;
53614  int __cil_tmp9 ;
53615
53616  {
53617  {
53618#line 491
53619  __mptr = (struct device  const  *)dev;
53620#line 491
53621  __cil_tmp7 = (struct usb_device *)__mptr;
53622#line 491
53623  udev = __cil_tmp7 + 1152921504606846840UL;
53624#line 491
53625  __cil_tmp8 = udev->descriptor.bMaxPacketSize0;
53626#line 491
53627  __cil_tmp9 = (int )__cil_tmp8;
53628#line 491
53629  tmp = sprintf(buf, "%d\n", __cil_tmp9);
53630  }
53631#line 491
53632  return ((ssize_t )tmp);
53633}
53634}
53635#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"
53636static struct device_attribute dev_attr_bMaxPacketSize0  =    {{"bMaxPacketSize0", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
53637                                                            {(char)0}, {(char)0},
53638                                                            {(char)0}, {(char)0},
53639                                                            {(char)0}, {(char)0}}}},
53640    & show_bMaxPacketSize0, (ssize_t (*)(struct device * , struct device_attribute * ,
53641                                         char const   * , size_t  ))0};
53642#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"
53643static ssize_t usb_dev_authorized_show(struct device *dev , struct device_attribute *attr ,
53644                                       char *buf ) 
53645{ struct usb_device *usb_dev ;
53646  struct device  const  *__mptr ;
53647  int tmp ;
53648  struct usb_device *__cil_tmp7 ;
53649  unsigned char __cil_tmp8 ;
53650  int __cil_tmp9 ;
53651
53652  {
53653  {
53654#line 500
53655  __mptr = (struct device  const  *)dev;
53656#line 500
53657  __cil_tmp7 = (struct usb_device *)__mptr;
53658#line 500
53659  usb_dev = __cil_tmp7 + 1152921504606846840UL;
53660#line 501
53661  __cil_tmp8 = usb_dev->authorized;
53662#line 501
53663  __cil_tmp9 = (int )__cil_tmp8;
53664#line 501
53665  tmp = snprintf(buf, 4096UL, "%u\n", __cil_tmp9);
53666  }
53667#line 501
53668  return ((ssize_t )tmp);
53669}
53670}
53671#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"
53672static ssize_t usb_dev_authorized_store(struct device *dev , struct device_attribute *attr ,
53673                                        char const   *buf , size_t size ) 
53674{ ssize_t result ;
53675  struct usb_device *usb_dev ;
53676  struct device  const  *__mptr ;
53677  unsigned int val ;
53678  int tmp ;
53679  int tmp___0 ;
53680  int tmp___1 ;
53681  ssize_t tmp___2 ;
53682  struct usb_device *__cil_tmp13 ;
53683
53684  {
53685  {
53686#line 515
53687  __mptr = (struct device  const  *)dev;
53688#line 515
53689  __cil_tmp13 = (struct usb_device *)__mptr;
53690#line 515
53691  usb_dev = __cil_tmp13 + 1152921504606846840UL;
53692#line 517
53693  tmp = sscanf(buf, "%u\n", & val);
53694#line 517
53695  result = (ssize_t )tmp;
53696  }
53697#line 518
53698  if (result != 1L) {
53699#line 519
53700    result = -22L;
53701  } else
53702#line 520
53703  if (val == 0U) {
53704    {
53705#line 521
53706    tmp___0 = usb_deauthorize_device(usb_dev);
53707#line 521
53708    result = (ssize_t )tmp___0;
53709    }
53710  } else {
53711    {
53712#line 523
53713    tmp___1 = usb_authorize_device(usb_dev);
53714#line 523
53715    result = (ssize_t )tmp___1;
53716    }
53717  }
53718#line 524
53719  if (result >= 0L) {
53720#line 524
53721    tmp___2 = (ssize_t )size;
53722  } else {
53723#line 524
53724    tmp___2 = result;
53725  }
53726#line 524
53727  return (tmp___2);
53728}
53729}
53730#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"
53731static struct device_attribute dev_attr_authorized  =    {{"authorized", 420U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53732                                                       {(char)0}, {(char)0}, {(char)0},
53733                                                       {(char)0}, {(char)0}}}}, & usb_dev_authorized_show,
53734    & usb_dev_authorized_store};
53735#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"
53736static ssize_t usb_remove_store(struct device *dev , struct device_attribute *attr ,
53737                                char const   *buf , size_t count ) 
53738{ struct usb_device *udev ;
53739  struct device  const  *__mptr ;
53740  int rc ;
53741  struct usb_device *__cil_tmp8 ;
53742  struct device *__cil_tmp9 ;
53743  enum usb_device_state __cil_tmp10 ;
53744  unsigned int __cil_tmp11 ;
53745  struct device *__cil_tmp12 ;
53746
53747  {
53748  {
53749#line 535
53750  __mptr = (struct device  const  *)dev;
53751#line 535
53752  __cil_tmp8 = (struct usb_device *)__mptr;
53753#line 535
53754  udev = __cil_tmp8 + 1152921504606846840UL;
53755#line 536
53756  rc = 0;
53757#line 538
53758  __cil_tmp9 = & udev->dev;
53759#line 538
53760  device_lock(__cil_tmp9);
53761  }
53762  {
53763#line 539
53764  __cil_tmp10 = udev->state;
53765#line 539
53766  __cil_tmp11 = (unsigned int )__cil_tmp10;
53767#line 539
53768  if (__cil_tmp11 != 0U) {
53769    {
53770#line 542
53771    usb_set_configuration(udev, -1);
53772#line 543
53773    rc = usb_remove_device(udev);
53774    }
53775  } else {
53776
53777  }
53778  }
53779#line 545
53780  if (rc == 0) {
53781#line 546
53782    rc = (int )count;
53783  } else {
53784
53785  }
53786  {
53787#line 547
53788  __cil_tmp12 = & udev->dev;
53789#line 547
53790  device_unlock(__cil_tmp12);
53791  }
53792#line 548
53793  return ((ssize_t )rc);
53794}
53795}
53796#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"
53797static struct device_attribute dev_attr_remove  =    {{"remove", 128U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
53798                                                   {(char)0}, {(char)0}, {(char)0},
53799                                                   {(char)0}, {(char)0}}}}, (ssize_t (*)(struct device * ,
53800                                                                                         struct device_attribute * ,
53801                                                                                         char * ))0,
53802    & usb_remove_store};
53803#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"
53804static struct attribute *dev_attrs[25U]  = 
53805#line 553
53806  {      & dev_attr_configuration.attr,      & dev_attr_bNumInterfaces.attr,      & dev_attr_bConfigurationValue.attr,      & dev_attr_bmAttributes.attr, 
53807        & dev_attr_bMaxPower.attr,      & dev_attr_urbnum.attr,      & dev_attr_idVendor.attr,      & dev_attr_idProduct.attr, 
53808        & dev_attr_bcdDevice.attr,      & dev_attr_bDeviceClass.attr,      & dev_attr_bDeviceSubClass.attr,      & dev_attr_bDeviceProtocol.attr, 
53809        & dev_attr_bNumConfigurations.attr,      & dev_attr_bMaxPacketSize0.attr,      & dev_attr_speed.attr,      & dev_attr_busnum.attr, 
53810        & dev_attr_devnum.attr,      & dev_attr_devpath.attr,      & dev_attr_version.attr,      & dev_attr_maxchild.attr, 
53811        & dev_attr_quirks.attr,      & dev_attr_avoid_reset_quirk.attr,      & dev_attr_authorized.attr,      & dev_attr_remove.attr, 
53812        (struct attribute *)0};
53813#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"
53814static struct attribute_group dev_attr_grp  =    {(char const   *)0, (mode_t (*)(struct kobject * , struct attribute * , int  ))0,
53815    (struct attribute **)(& dev_attrs)};
53816#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"
53817static struct attribute *dev_string_attrs[4U]  = {      & dev_attr_manufacturer.attr,      & dev_attr_product.attr,      & dev_attr_serial.attr,      (struct attribute *)0};
53818#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"
53819static mode_t dev_string_attrs_are_visible(struct kobject *kobj , struct attribute *a ,
53820                                           int n ) 
53821{ struct device *dev ;
53822  struct kobject  const  *__mptr ;
53823  struct usb_device *udev ;
53824  struct device  const  *__mptr___0 ;
53825  struct device *__cil_tmp8 ;
53826  struct usb_device *__cil_tmp9 ;
53827  struct attribute *__cil_tmp10 ;
53828  unsigned long __cil_tmp11 ;
53829  unsigned long __cil_tmp12 ;
53830  char *__cil_tmp13 ;
53831  unsigned long __cil_tmp14 ;
53832  char *__cil_tmp15 ;
53833  unsigned long __cil_tmp16 ;
53834  struct attribute *__cil_tmp17 ;
53835  unsigned long __cil_tmp18 ;
53836  unsigned long __cil_tmp19 ;
53837  char *__cil_tmp20 ;
53838  unsigned long __cil_tmp21 ;
53839  char *__cil_tmp22 ;
53840  unsigned long __cil_tmp23 ;
53841  struct attribute *__cil_tmp24 ;
53842  unsigned long __cil_tmp25 ;
53843  unsigned long __cil_tmp26 ;
53844  char *__cil_tmp27 ;
53845  unsigned long __cil_tmp28 ;
53846  char *__cil_tmp29 ;
53847  unsigned long __cil_tmp30 ;
53848
53849  {
53850#line 599
53851  __mptr = (struct kobject  const  *)kobj;
53852#line 599
53853  __cil_tmp8 = (struct device *)__mptr;
53854#line 599
53855  dev = __cil_tmp8 + 1152921504606846960UL;
53856#line 600
53857  __mptr___0 = (struct device  const  *)dev;
53858#line 600
53859  __cil_tmp9 = (struct usb_device *)__mptr___0;
53860#line 600
53861  udev = __cil_tmp9 + 1152921504606846840UL;
53862  {
53863#line 602
53864  __cil_tmp10 = & dev_attr_manufacturer.attr;
53865#line 602
53866  __cil_tmp11 = (unsigned long )__cil_tmp10;
53867#line 602
53868  __cil_tmp12 = (unsigned long )a;
53869#line 602
53870  if (__cil_tmp12 == __cil_tmp11) {
53871    {
53872#line 603
53873    __cil_tmp13 = (char *)0;
53874#line 603
53875    __cil_tmp14 = (unsigned long )__cil_tmp13;
53876#line 603
53877    __cil_tmp15 = udev->manufacturer;
53878#line 603
53879    __cil_tmp16 = (unsigned long )__cil_tmp15;
53880#line 603
53881    if (__cil_tmp16 == __cil_tmp14) {
53882#line 604
53883      return (0U);
53884    } else {
53885      {
53886#line 605
53887      __cil_tmp17 = & dev_attr_product.attr;
53888#line 605
53889      __cil_tmp18 = (unsigned long )__cil_tmp17;
53890#line 605
53891      __cil_tmp19 = (unsigned long )a;
53892#line 605
53893      if (__cil_tmp19 == __cil_tmp18) {
53894        {
53895#line 606
53896        __cil_tmp20 = (char *)0;
53897#line 606
53898        __cil_tmp21 = (unsigned long )__cil_tmp20;
53899#line 606
53900        __cil_tmp22 = udev->product;
53901#line 606
53902        __cil_tmp23 = (unsigned long )__cil_tmp22;
53903#line 606
53904        if (__cil_tmp23 == __cil_tmp21) {
53905#line 607
53906          return (0U);
53907        } else {
53908          {
53909#line 608
53910          __cil_tmp24 = & dev_attr_serial.attr;
53911#line 608
53912          __cil_tmp25 = (unsigned long )__cil_tmp24;
53913#line 608
53914          __cil_tmp26 = (unsigned long )a;
53915#line 608
53916          if (__cil_tmp26 == __cil_tmp25) {
53917            {
53918#line 609
53919            __cil_tmp27 = (char *)0;
53920#line 609
53921            __cil_tmp28 = (unsigned long )__cil_tmp27;
53922#line 609
53923            __cil_tmp29 = udev->serial;
53924#line 609
53925            __cil_tmp30 = (unsigned long )__cil_tmp29;
53926#line 609
53927            if (__cil_tmp30 == __cil_tmp28) {
53928#line 610
53929              return (0U);
53930            } else {
53931
53932            }
53933            }
53934          } else {
53935
53936          }
53937          }
53938        }
53939        }
53940      } else {
53941
53942      }
53943      }
53944    }
53945    }
53946  } else {
53947
53948  }
53949  }
53950#line 612
53951  return (a->mode);
53952}
53953}
53954#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"
53955static struct attribute_group dev_string_attr_grp  =    {(char const   *)0, & dev_string_attrs_are_visible, (struct attribute **)(& dev_string_attrs)};
53956#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"
53957struct 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};
53958#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"
53959static ssize_t read_descriptors(struct file *filp , struct kobject *kobj , struct bin_attribute *attr ,
53960                                char *buf , loff_t off , size_t count ) 
53961{ struct device *dev ;
53962  struct kobject  const  *__mptr ;
53963  struct usb_device *udev ;
53964  struct device  const  *__mptr___0 ;
53965  size_t nleft ;
53966  size_t srclen ;
53967  size_t n ;
53968  int cfgno ;
53969  void *src ;
53970  size_t _min1 ;
53971  unsigned long _min2 ;
53972  unsigned long tmp ;
53973  size_t __len ;
53974  void *__ret ;
53975  struct device *__cil_tmp21 ;
53976  struct usb_device *__cil_tmp22 ;
53977  struct usb_device_descriptor *__cil_tmp23 ;
53978  unsigned long __cil_tmp24 ;
53979  char **__cil_tmp25 ;
53980  char **__cil_tmp26 ;
53981  char *__cil_tmp27 ;
53982  unsigned long __cil_tmp28 ;
53983  struct usb_host_config *__cil_tmp29 ;
53984  struct usb_host_config *__cil_tmp30 ;
53985  __le16 __cil_tmp31 ;
53986  unsigned long long __cil_tmp32 ;
53987  unsigned long long __cil_tmp33 ;
53988  unsigned long __cil_tmp34 ;
53989  void *__cil_tmp35 ;
53990  unsigned long __cil_tmp36 ;
53991  void const   *__cil_tmp37 ;
53992  void const   *__cil_tmp38 ;
53993  unsigned long long __cil_tmp39 ;
53994  unsigned long long __cil_tmp40 ;
53995  unsigned long long __cil_tmp41 ;
53996  __u8 __cil_tmp42 ;
53997  int __cil_tmp43 ;
53998  size_t __cil_tmp44 ;
53999
54000  {
54001#line 633
54002  __mptr = (struct kobject  const  *)kobj;
54003#line 633
54004  __cil_tmp21 = (struct device *)__mptr;
54005#line 633
54006  dev = __cil_tmp21 + 1152921504606846960UL;
54007#line 634
54008  __mptr___0 = (struct device  const  *)dev;
54009#line 634
54010  __cil_tmp22 = (struct usb_device *)__mptr___0;
54011#line 634
54012  udev = __cil_tmp22 + 1152921504606846840UL;
54013#line 635
54014  nleft = count;
54015#line 644
54016  cfgno = -1;
54017#line 644
54018  goto ldv_24056;
54019  ldv_24055: ;
54020#line 646
54021  if (cfgno < 0) {
54022#line 647
54023    __cil_tmp23 = & udev->descriptor;
54024#line 647
54025    src = (void *)__cil_tmp23;
54026#line 648
54027    srclen = 18UL;
54028  } else {
54029#line 650
54030    __cil_tmp24 = (unsigned long )cfgno;
54031#line 650
54032    __cil_tmp25 = udev->rawdescriptors;
54033#line 650
54034    __cil_tmp26 = __cil_tmp25 + __cil_tmp24;
54035#line 650
54036    __cil_tmp27 = *__cil_tmp26;
54037#line 650
54038    src = (void *)__cil_tmp27;
54039#line 651
54040    __cil_tmp28 = (unsigned long )cfgno;
54041#line 651
54042    __cil_tmp29 = udev->config;
54043#line 651
54044    __cil_tmp30 = __cil_tmp29 + __cil_tmp28;
54045#line 651
54046    __cil_tmp31 = __cil_tmp30->desc.wTotalLength;
54047#line 651
54048    srclen = (size_t )__cil_tmp31;
54049  }
54050  {
54051#line 654
54052  __cil_tmp32 = (unsigned long long )srclen;
54053#line 654
54054  __cil_tmp33 = (unsigned long long )off;
54055#line 654
54056  if (__cil_tmp33 < __cil_tmp32) {
54057#line 655
54058    _min1 = nleft;
54059#line 655
54060    __cil_tmp34 = (unsigned long )off;
54061#line 655
54062    _min2 = srclen - __cil_tmp34;
54063#line 655
54064    if (_min1 < _min2) {
54065#line 655
54066      tmp = _min1;
54067    } else {
54068#line 655
54069      tmp = _min2;
54070    }
54071    {
54072#line 655
54073    n = tmp;
54074#line 656
54075    __len = n;
54076#line 656
54077    __cil_tmp35 = (void *)buf;
54078#line 656
54079    __cil_tmp36 = (unsigned long )off;
54080#line 656
54081    __cil_tmp37 = (void const   *)src;
54082#line 656
54083    __cil_tmp38 = __cil_tmp37 + __cil_tmp36;
54084#line 656
54085    __ret = __builtin_memcpy(__cil_tmp35, __cil_tmp38, __len);
54086#line 657
54087    nleft = nleft - n;
54088#line 658
54089    buf = buf + n;
54090#line 659
54091    off = 0LL;
54092    }
54093  } else {
54094#line 661
54095    __cil_tmp39 = (unsigned long long )srclen;
54096#line 661
54097    __cil_tmp40 = (unsigned long long )off;
54098#line 661
54099    __cil_tmp41 = __cil_tmp40 - __cil_tmp39;
54100#line 661
54101    off = (loff_t )__cil_tmp41;
54102  }
54103  }
54104#line 645
54105  cfgno = cfgno + 1;
54106  ldv_24056: ;
54107  {
54108#line 644
54109  __cil_tmp42 = udev->descriptor.bNumConfigurations;
54110#line 644
54111  __cil_tmp43 = (int )__cil_tmp42;
54112#line 644
54113  if (__cil_tmp43 > cfgno) {
54114#line 644
54115    if (nleft != 0UL) {
54116#line 646
54117      goto ldv_24055;
54118    } else {
54119#line 648
54120      goto ldv_24057;
54121    }
54122  } else {
54123#line 648
54124    goto ldv_24057;
54125  }
54126  }
54127  ldv_24057: ;
54128  {
54129#line 664
54130  __cil_tmp44 = count - nleft;
54131#line 664
54132  return ((ssize_t )__cil_tmp44);
54133  }
54134}
54135}
54136#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"
54137static struct bin_attribute dev_bin_attr_descriptors  =    {{"descriptors", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
54138                                                        {(char)0}, {(char)0}, {(char)0},
54139                                                        {(char)0}, {(char)0}}}}, 65553UL,
54140    (void *)0, & read_descriptors, (ssize_t (*)(struct file * , struct kobject * ,
54141                                                struct bin_attribute * , char * ,
54142                                                loff_t  , size_t  ))0, (int (*)(struct file * ,
54143                                                                                struct kobject * ,
54144                                                                                struct bin_attribute * ,
54145                                                                                struct vm_area_struct * ))0};
54146#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"
54147int usb_create_sysfs_dev_files(struct usb_device *udev ) 
54148{ struct device *dev ;
54149  int retval ;
54150  struct bin_attribute  const  *__cil_tmp4 ;
54151
54152  {
54153  {
54154#line 675
54155  dev = & udev->dev;
54156#line 678
54157  __cil_tmp4 = (struct bin_attribute  const  *)(& dev_bin_attr_descriptors);
54158#line 678
54159  retval = device_create_bin_file(dev, __cil_tmp4);
54160  }
54161#line 679
54162  if (retval != 0) {
54163#line 680
54164    goto error;
54165  } else {
54166
54167  }
54168  {
54169#line 682
54170  retval = add_persist_attributes(dev);
54171  }
54172#line 683
54173  if (retval != 0) {
54174#line 684
54175    goto error;
54176  } else {
54177
54178  }
54179  {
54180#line 686
54181  retval = add_power_attributes(dev);
54182  }
54183#line 687
54184  if (retval != 0) {
54185#line 688
54186    goto error;
54187  } else {
54188
54189  }
54190#line 689
54191  return (retval);
54192  error: 
54193  {
54194#line 691
54195  usb_remove_sysfs_dev_files(udev);
54196  }
54197#line 692
54198  return (retval);
54199}
54200}
54201#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"
54202void usb_remove_sysfs_dev_files(struct usb_device *udev ) 
54203{ struct device *dev ;
54204  struct bin_attribute  const  *__cil_tmp3 ;
54205
54206  {
54207  {
54208#line 697
54209  dev = & udev->dev;
54210#line 699
54211  remove_power_attributes(dev);
54212#line 700
54213  remove_persist_attributes(dev);
54214#line 701
54215  __cil_tmp3 = (struct bin_attribute  const  *)(& dev_bin_attr_descriptors);
54216#line 701
54217  device_remove_bin_file(dev, __cil_tmp3);
54218  }
54219#line 702
54220  return;
54221}
54222}
54223#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"
54224static ssize_t show_iad_bFirstInterface(struct device *dev , struct device_attribute *attr ,
54225                                        char *buf ) 
54226{ struct usb_interface *intf ;
54227  struct device  const  *__mptr ;
54228  int tmp ;
54229  struct usb_interface *__cil_tmp7 ;
54230  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54231  __u8 __cil_tmp9 ;
54232  int __cil_tmp10 ;
54233
54234  {
54235  {
54236#line 717
54237  __mptr = (struct device  const  *)dev;
54238#line 717
54239  __cil_tmp7 = (struct usb_interface *)__mptr;
54240#line 717
54241  intf = __cil_tmp7 + 1152921504606846928UL;
54242#line 717
54243  __cil_tmp8 = intf->intf_assoc;
54244#line 717
54245  __cil_tmp9 = __cil_tmp8->bFirstInterface;
54246#line 717
54247  __cil_tmp10 = (int )__cil_tmp9;
54248#line 717
54249  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54250  }
54251#line 717
54252  return ((ssize_t )tmp);
54253}
54254}
54255#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"
54256static struct device_attribute dev_attr_iad_bFirstInterface  =    {{"iad_bFirstInterface", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54257                                                                {(char)0}, {(char)0},
54258                                                                {(char)0}, {(char)0},
54259                                                                {(char)0}, {(char)0}}}},
54260    & show_iad_bFirstInterface, (ssize_t (*)(struct device * , struct device_attribute * ,
54261                                             char const   * , size_t  ))0};
54262#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"
54263static ssize_t show_iad_bInterfaceCount(struct device *dev , struct device_attribute *attr ,
54264                                        char *buf ) 
54265{ struct usb_interface *intf ;
54266  struct device  const  *__mptr ;
54267  int tmp ;
54268  struct usb_interface *__cil_tmp7 ;
54269  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54270  __u8 __cil_tmp9 ;
54271  int __cil_tmp10 ;
54272
54273  {
54274  {
54275#line 718
54276  __mptr = (struct device  const  *)dev;
54277#line 718
54278  __cil_tmp7 = (struct usb_interface *)__mptr;
54279#line 718
54280  intf = __cil_tmp7 + 1152921504606846928UL;
54281#line 718
54282  __cil_tmp8 = intf->intf_assoc;
54283#line 718
54284  __cil_tmp9 = __cil_tmp8->bInterfaceCount;
54285#line 718
54286  __cil_tmp10 = (int )__cil_tmp9;
54287#line 718
54288  tmp = sprintf(buf, "%02d\n", __cil_tmp10);
54289  }
54290#line 718
54291  return ((ssize_t )tmp);
54292}
54293}
54294#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"
54295static struct device_attribute dev_attr_iad_bInterfaceCount  =    {{"iad_bInterfaceCount", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54296                                                                {(char)0}, {(char)0},
54297                                                                {(char)0}, {(char)0},
54298                                                                {(char)0}, {(char)0}}}},
54299    & show_iad_bInterfaceCount, (ssize_t (*)(struct device * , struct device_attribute * ,
54300                                             char const   * , size_t  ))0};
54301#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"
54302static ssize_t show_iad_bFunctionClass(struct device *dev , struct device_attribute *attr ,
54303                                       char *buf ) 
54304{ struct usb_interface *intf ;
54305  struct device  const  *__mptr ;
54306  int tmp ;
54307  struct usb_interface *__cil_tmp7 ;
54308  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54309  __u8 __cil_tmp9 ;
54310  int __cil_tmp10 ;
54311
54312  {
54313  {
54314#line 719
54315  __mptr = (struct device  const  *)dev;
54316#line 719
54317  __cil_tmp7 = (struct usb_interface *)__mptr;
54318#line 719
54319  intf = __cil_tmp7 + 1152921504606846928UL;
54320#line 719
54321  __cil_tmp8 = intf->intf_assoc;
54322#line 719
54323  __cil_tmp9 = __cil_tmp8->bFunctionClass;
54324#line 719
54325  __cil_tmp10 = (int )__cil_tmp9;
54326#line 719
54327  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54328  }
54329#line 719
54330  return ((ssize_t )tmp);
54331}
54332}
54333#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"
54334static struct device_attribute dev_attr_iad_bFunctionClass  =    {{"iad_bFunctionClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54335                                                               {(char)0}, {(char)0},
54336                                                               {(char)0}, {(char)0},
54337                                                               {(char)0}, {(char)0}}}},
54338    & show_iad_bFunctionClass, (ssize_t (*)(struct device * , struct device_attribute * ,
54339                                            char const   * , size_t  ))0};
54340#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"
54341static ssize_t show_iad_bFunctionSubClass(struct device *dev , struct device_attribute *attr ,
54342                                          char *buf ) 
54343{ struct usb_interface *intf ;
54344  struct device  const  *__mptr ;
54345  int tmp ;
54346  struct usb_interface *__cil_tmp7 ;
54347  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54348  __u8 __cil_tmp9 ;
54349  int __cil_tmp10 ;
54350
54351  {
54352  {
54353#line 720
54354  __mptr = (struct device  const  *)dev;
54355#line 720
54356  __cil_tmp7 = (struct usb_interface *)__mptr;
54357#line 720
54358  intf = __cil_tmp7 + 1152921504606846928UL;
54359#line 720
54360  __cil_tmp8 = intf->intf_assoc;
54361#line 720
54362  __cil_tmp9 = __cil_tmp8->bFunctionSubClass;
54363#line 720
54364  __cil_tmp10 = (int )__cil_tmp9;
54365#line 720
54366  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54367  }
54368#line 720
54369  return ((ssize_t )tmp);
54370}
54371}
54372#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"
54373static struct device_attribute dev_attr_iad_bFunctionSubClass  =    {{"iad_bFunctionSubClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54374                                                                  {(char)0}, {(char)0},
54375                                                                  {(char)0}, {(char)0},
54376                                                                  {(char)0}, {(char)0}}}},
54377    & show_iad_bFunctionSubClass, (ssize_t (*)(struct device * , struct device_attribute * ,
54378                                               char const   * , size_t  ))0};
54379#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"
54380static ssize_t show_iad_bFunctionProtocol(struct device *dev , struct device_attribute *attr ,
54381                                          char *buf ) 
54382{ struct usb_interface *intf ;
54383  struct device  const  *__mptr ;
54384  int tmp ;
54385  struct usb_interface *__cil_tmp7 ;
54386  struct usb_interface_assoc_descriptor *__cil_tmp8 ;
54387  __u8 __cil_tmp9 ;
54388  int __cil_tmp10 ;
54389
54390  {
54391  {
54392#line 721
54393  __mptr = (struct device  const  *)dev;
54394#line 721
54395  __cil_tmp7 = (struct usb_interface *)__mptr;
54396#line 721
54397  intf = __cil_tmp7 + 1152921504606846928UL;
54398#line 721
54399  __cil_tmp8 = intf->intf_assoc;
54400#line 721
54401  __cil_tmp9 = __cil_tmp8->bFunctionProtocol;
54402#line 721
54403  __cil_tmp10 = (int )__cil_tmp9;
54404#line 721
54405  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54406  }
54407#line 721
54408  return ((ssize_t )tmp);
54409}
54410}
54411#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"
54412static struct device_attribute dev_attr_iad_bFunctionProtocol  =    {{"iad_bFunctionProtocol", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54413                                                                  {(char)0}, {(char)0},
54414                                                                  {(char)0}, {(char)0},
54415                                                                  {(char)0}, {(char)0}}}},
54416    & show_iad_bFunctionProtocol, (ssize_t (*)(struct device * , struct device_attribute * ,
54417                                               char const   * , size_t  ))0};
54418#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"
54419static ssize_t show_bInterfaceNumber(struct device *dev , struct device_attribute *attr ,
54420                                     char *buf ) 
54421{ struct usb_interface *intf ;
54422  struct device  const  *__mptr ;
54423  int tmp ;
54424  struct usb_interface *__cil_tmp7 ;
54425  struct usb_host_interface *__cil_tmp8 ;
54426  __u8 __cil_tmp9 ;
54427  int __cil_tmp10 ;
54428
54429  {
54430  {
54431#line 736
54432  __mptr = (struct device  const  *)dev;
54433#line 736
54434  __cil_tmp7 = (struct usb_interface *)__mptr;
54435#line 736
54436  intf = __cil_tmp7 + 1152921504606846928UL;
54437#line 736
54438  __cil_tmp8 = intf->cur_altsetting;
54439#line 736
54440  __cil_tmp9 = __cil_tmp8->desc.bInterfaceNumber;
54441#line 736
54442  __cil_tmp10 = (int )__cil_tmp9;
54443#line 736
54444  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54445  }
54446#line 736
54447  return ((ssize_t )tmp);
54448}
54449}
54450#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"
54451static struct device_attribute dev_attr_bInterfaceNumber  =    {{"bInterfaceNumber", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54452                                                             {(char)0}, {(char)0},
54453                                                             {(char)0}, {(char)0},
54454                                                             {(char)0}, {(char)0}}}},
54455    & show_bInterfaceNumber, (ssize_t (*)(struct device * , struct device_attribute * ,
54456                                          char const   * , size_t  ))0};
54457#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"
54458static ssize_t show_bAlternateSetting(struct device *dev , struct device_attribute *attr ,
54459                                      char *buf ) 
54460{ struct usb_interface *intf ;
54461  struct device  const  *__mptr ;
54462  int tmp ;
54463  struct usb_interface *__cil_tmp7 ;
54464  struct usb_host_interface *__cil_tmp8 ;
54465  __u8 __cil_tmp9 ;
54466  int __cil_tmp10 ;
54467
54468  {
54469  {
54470#line 737
54471  __mptr = (struct device  const  *)dev;
54472#line 737
54473  __cil_tmp7 = (struct usb_interface *)__mptr;
54474#line 737
54475  intf = __cil_tmp7 + 1152921504606846928UL;
54476#line 737
54477  __cil_tmp8 = intf->cur_altsetting;
54478#line 737
54479  __cil_tmp9 = __cil_tmp8->desc.bAlternateSetting;
54480#line 737
54481  __cil_tmp10 = (int )__cil_tmp9;
54482#line 737
54483  tmp = sprintf(buf, "%2d\n", __cil_tmp10);
54484  }
54485#line 737
54486  return ((ssize_t )tmp);
54487}
54488}
54489#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"
54490static struct device_attribute dev_attr_bAlternateSetting  =    {{"bAlternateSetting", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54491                                                              {(char)0}, {(char)0},
54492                                                              {(char)0}, {(char)0},
54493                                                              {(char)0}, {(char)0}}}},
54494    & show_bAlternateSetting, (ssize_t (*)(struct device * , struct device_attribute * ,
54495                                           char const   * , size_t  ))0};
54496#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"
54497static ssize_t show_bNumEndpoints(struct device *dev , struct device_attribute *attr ,
54498                                  char *buf ) 
54499{ struct usb_interface *intf ;
54500  struct device  const  *__mptr ;
54501  int tmp ;
54502  struct usb_interface *__cil_tmp7 ;
54503  struct usb_host_interface *__cil_tmp8 ;
54504  __u8 __cil_tmp9 ;
54505  int __cil_tmp10 ;
54506
54507  {
54508  {
54509#line 738
54510  __mptr = (struct device  const  *)dev;
54511#line 738
54512  __cil_tmp7 = (struct usb_interface *)__mptr;
54513#line 738
54514  intf = __cil_tmp7 + 1152921504606846928UL;
54515#line 738
54516  __cil_tmp8 = intf->cur_altsetting;
54517#line 738
54518  __cil_tmp9 = __cil_tmp8->desc.bNumEndpoints;
54519#line 738
54520  __cil_tmp10 = (int )__cil_tmp9;
54521#line 738
54522  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54523  }
54524#line 738
54525  return ((ssize_t )tmp);
54526}
54527}
54528#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"
54529static struct device_attribute dev_attr_bNumEndpoints  =    {{"bNumEndpoints", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
54530                                                          {(char)0}, {(char)0}, {(char)0},
54531                                                          {(char)0}, {(char)0}}}},
54532    & show_bNumEndpoints, (ssize_t (*)(struct device * , struct device_attribute * ,
54533                                       char const   * , size_t  ))0};
54534#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"
54535static ssize_t show_bInterfaceClass(struct device *dev , struct device_attribute *attr ,
54536                                    char *buf ) 
54537{ struct usb_interface *intf ;
54538  struct device  const  *__mptr ;
54539  int tmp ;
54540  struct usb_interface *__cil_tmp7 ;
54541  struct usb_host_interface *__cil_tmp8 ;
54542  __u8 __cil_tmp9 ;
54543  int __cil_tmp10 ;
54544
54545  {
54546  {
54547#line 739
54548  __mptr = (struct device  const  *)dev;
54549#line 739
54550  __cil_tmp7 = (struct usb_interface *)__mptr;
54551#line 739
54552  intf = __cil_tmp7 + 1152921504606846928UL;
54553#line 739
54554  __cil_tmp8 = intf->cur_altsetting;
54555#line 739
54556  __cil_tmp9 = __cil_tmp8->desc.bInterfaceClass;
54557#line 739
54558  __cil_tmp10 = (int )__cil_tmp9;
54559#line 739
54560  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54561  }
54562#line 739
54563  return ((ssize_t )tmp);
54564}
54565}
54566#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"
54567static struct device_attribute dev_attr_bInterfaceClass  =    {{"bInterfaceClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54568                                                            {(char)0}, {(char)0},
54569                                                            {(char)0}, {(char)0},
54570                                                            {(char)0}, {(char)0}}}},
54571    & show_bInterfaceClass, (ssize_t (*)(struct device * , struct device_attribute * ,
54572                                         char const   * , size_t  ))0};
54573#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"
54574static ssize_t show_bInterfaceSubClass(struct device *dev , struct device_attribute *attr ,
54575                                       char *buf ) 
54576{ struct usb_interface *intf ;
54577  struct device  const  *__mptr ;
54578  int tmp ;
54579  struct usb_interface *__cil_tmp7 ;
54580  struct usb_host_interface *__cil_tmp8 ;
54581  __u8 __cil_tmp9 ;
54582  int __cil_tmp10 ;
54583
54584  {
54585  {
54586#line 740
54587  __mptr = (struct device  const  *)dev;
54588#line 740
54589  __cil_tmp7 = (struct usb_interface *)__mptr;
54590#line 740
54591  intf = __cil_tmp7 + 1152921504606846928UL;
54592#line 740
54593  __cil_tmp8 = intf->cur_altsetting;
54594#line 740
54595  __cil_tmp9 = __cil_tmp8->desc.bInterfaceSubClass;
54596#line 740
54597  __cil_tmp10 = (int )__cil_tmp9;
54598#line 740
54599  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54600  }
54601#line 740
54602  return ((ssize_t )tmp);
54603}
54604}
54605#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"
54606static struct device_attribute dev_attr_bInterfaceSubClass  =    {{"bInterfaceSubClass", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54607                                                               {(char)0}, {(char)0},
54608                                                               {(char)0}, {(char)0},
54609                                                               {(char)0}, {(char)0}}}},
54610    & show_bInterfaceSubClass, (ssize_t (*)(struct device * , struct device_attribute * ,
54611                                            char const   * , size_t  ))0};
54612#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"
54613static ssize_t show_bInterfaceProtocol(struct device *dev , struct device_attribute *attr ,
54614                                       char *buf ) 
54615{ struct usb_interface *intf ;
54616  struct device  const  *__mptr ;
54617  int tmp ;
54618  struct usb_interface *__cil_tmp7 ;
54619  struct usb_host_interface *__cil_tmp8 ;
54620  __u8 __cil_tmp9 ;
54621  int __cil_tmp10 ;
54622
54623  {
54624  {
54625#line 741
54626  __mptr = (struct device  const  *)dev;
54627#line 741
54628  __cil_tmp7 = (struct usb_interface *)__mptr;
54629#line 741
54630  intf = __cil_tmp7 + 1152921504606846928UL;
54631#line 741
54632  __cil_tmp8 = intf->cur_altsetting;
54633#line 741
54634  __cil_tmp9 = __cil_tmp8->desc.bInterfaceProtocol;
54635#line 741
54636  __cil_tmp10 = (int )__cil_tmp9;
54637#line 741
54638  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
54639  }
54640#line 741
54641  return ((ssize_t )tmp);
54642}
54643}
54644#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"
54645static struct device_attribute dev_attr_bInterfaceProtocol  =    {{"bInterfaceProtocol", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54646                                                               {(char)0}, {(char)0},
54647                                                               {(char)0}, {(char)0},
54648                                                               {(char)0}, {(char)0}}}},
54649    & show_bInterfaceProtocol, (ssize_t (*)(struct device * , struct device_attribute * ,
54650                                            char const   * , size_t  ))0};
54651#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"
54652static ssize_t show_interface_string(struct device *dev , struct device_attribute *attr ,
54653                                     char *buf ) 
54654{ struct usb_interface *intf ;
54655  char *string ;
54656  struct device  const  *__mptr ;
54657  int tmp ;
54658  struct usb_interface *__cil_tmp8 ;
54659  struct usb_host_interface *__cil_tmp9 ;
54660  char *__cil_tmp10 ;
54661  unsigned long __cil_tmp11 ;
54662  unsigned long __cil_tmp12 ;
54663
54664  {
54665#line 749
54666  __mptr = (struct device  const  *)dev;
54667#line 749
54668  __cil_tmp8 = (struct usb_interface *)__mptr;
54669#line 749
54670  intf = __cil_tmp8 + 1152921504606846928UL;
54671#line 750
54672  __cil_tmp9 = intf->cur_altsetting;
54673#line 750
54674  string = __cil_tmp9->string;
54675#line 751
54676  __asm__  volatile   ("": : : "memory");
54677  {
54678#line 753
54679  __cil_tmp10 = (char *)0;
54680#line 753
54681  __cil_tmp11 = (unsigned long )__cil_tmp10;
54682#line 753
54683  __cil_tmp12 = (unsigned long )string;
54684#line 753
54685  if (__cil_tmp12 == __cil_tmp11) {
54686#line 754
54687    return (0L);
54688  } else {
54689
54690  }
54691  }
54692  {
54693#line 755
54694  tmp = sprintf(buf, "%s\n", string);
54695  }
54696#line 755
54697  return ((ssize_t )tmp);
54698}
54699}
54700#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"
54701static struct device_attribute dev_attr_interface  =    {{"interface", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
54702                                                      {(char)0}, {(char)0}, {(char)0},
54703                                                      {(char)0}, {(char)0}}}}, & show_interface_string,
54704    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
54705#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"
54706static ssize_t show_modalias(struct device *dev , struct device_attribute *attr ,
54707                             char *buf ) 
54708{ struct usb_interface *intf ;
54709  struct usb_device *udev ;
54710  struct usb_host_interface *alt ;
54711  struct device  const  *__mptr ;
54712  int tmp ;
54713  struct usb_interface *__cil_tmp9 ;
54714  __le16 __cil_tmp10 ;
54715  int __cil_tmp11 ;
54716  __le16 __cil_tmp12 ;
54717  int __cil_tmp13 ;
54718  __le16 __cil_tmp14 ;
54719  int __cil_tmp15 ;
54720  __u8 __cil_tmp16 ;
54721  int __cil_tmp17 ;
54722  __u8 __cil_tmp18 ;
54723  int __cil_tmp19 ;
54724  __u8 __cil_tmp20 ;
54725  int __cil_tmp21 ;
54726  __u8 __cil_tmp22 ;
54727  int __cil_tmp23 ;
54728  __u8 __cil_tmp24 ;
54729  int __cil_tmp25 ;
54730  __u8 __cil_tmp26 ;
54731  int __cil_tmp27 ;
54732
54733  {
54734  {
54735#line 766
54736  __mptr = (struct device  const  *)dev;
54737#line 766
54738  __cil_tmp9 = (struct usb_interface *)__mptr;
54739#line 766
54740  intf = __cil_tmp9 + 1152921504606846928UL;
54741#line 767
54742  udev = interface_to_usbdev(intf);
54743#line 768
54744  alt = intf->cur_altsetting;
54745#line 770
54746  __cil_tmp10 = udev->descriptor.idVendor;
54747#line 770
54748  __cil_tmp11 = (int )__cil_tmp10;
54749#line 770
54750  __cil_tmp12 = udev->descriptor.idProduct;
54751#line 770
54752  __cil_tmp13 = (int )__cil_tmp12;
54753#line 770
54754  __cil_tmp14 = udev->descriptor.bcdDevice;
54755#line 770
54756  __cil_tmp15 = (int )__cil_tmp14;
54757#line 770
54758  __cil_tmp16 = udev->descriptor.bDeviceClass;
54759#line 770
54760  __cil_tmp17 = (int )__cil_tmp16;
54761#line 770
54762  __cil_tmp18 = udev->descriptor.bDeviceSubClass;
54763#line 770
54764  __cil_tmp19 = (int )__cil_tmp18;
54765#line 770
54766  __cil_tmp20 = udev->descriptor.bDeviceProtocol;
54767#line 770
54768  __cil_tmp21 = (int )__cil_tmp20;
54769#line 770
54770  __cil_tmp22 = alt->desc.bInterfaceClass;
54771#line 770
54772  __cil_tmp23 = (int )__cil_tmp22;
54773#line 770
54774  __cil_tmp24 = alt->desc.bInterfaceSubClass;
54775#line 770
54776  __cil_tmp25 = (int )__cil_tmp24;
54777#line 770
54778  __cil_tmp26 = alt->desc.bInterfaceProtocol;
54779#line 770
54780  __cil_tmp27 = (int )__cil_tmp26;
54781#line 770
54782  tmp = sprintf(buf, "usb:v%04Xp%04Xd%04Xdc%02Xdsc%02Xdp%02Xic%02Xisc%02Xip%02X\n",
54783                __cil_tmp11, __cil_tmp13, __cil_tmp15, __cil_tmp17, __cil_tmp19, __cil_tmp21,
54784                __cil_tmp23, __cil_tmp25, __cil_tmp27);
54785  }
54786#line 770
54787  return ((ssize_t )tmp);
54788}
54789}
54790#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"
54791static struct device_attribute dev_attr_modalias  =    {{"modalias", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
54792                                                     {(char)0}, {(char)0}, {(char)0},
54793                                                     {(char)0}, {(char)0}}}}, & show_modalias,
54794    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
54795#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"
54796static ssize_t show_supports_autosuspend(struct device *dev , struct device_attribute *attr ,
54797                                         char *buf ) 
54798{ struct usb_interface *intf ;
54799  struct usb_device *udev ;
54800  int ret ;
54801  struct device  const  *__mptr ;
54802  struct device_driver  const  *__mptr___0 ;
54803  struct usb_interface *__cil_tmp9 ;
54804  struct device *__cil_tmp10 ;
54805  struct device_driver *__cil_tmp11 ;
54806  unsigned long __cil_tmp12 ;
54807  struct device_driver *__cil_tmp13 ;
54808  unsigned long __cil_tmp14 ;
54809  struct device_driver *__cil_tmp15 ;
54810  struct usb_driver *__cil_tmp16 ;
54811  struct usb_driver *__cil_tmp17 ;
54812  unsigned char *__cil_tmp18 ;
54813  unsigned char *__cil_tmp19 ;
54814  unsigned char __cil_tmp20 ;
54815  unsigned int __cil_tmp21 ;
54816  struct device *__cil_tmp22 ;
54817
54818  {
54819  {
54820#line 791
54821  __mptr = (struct device  const  *)dev;
54822#line 791
54823  __cil_tmp9 = (struct usb_interface *)__mptr;
54824#line 791
54825  intf = __cil_tmp9 + 1152921504606846928UL;
54826#line 792
54827  udev = interface_to_usbdev(intf);
54828#line 794
54829  __cil_tmp10 = & udev->dev;
54830#line 794
54831  device_lock(__cil_tmp10);
54832  }
54833  {
54834#line 797
54835  __cil_tmp11 = (struct device_driver *)0;
54836#line 797
54837  __cil_tmp12 = (unsigned long )__cil_tmp11;
54838#line 797
54839  __cil_tmp13 = intf->dev.driver;
54840#line 797
54841  __cil_tmp14 = (unsigned long )__cil_tmp13;
54842#line 797
54843  if (__cil_tmp14 == __cil_tmp12) {
54844    {
54845#line 798
54846    ret = sprintf(buf, "%u\n", 1);
54847    }
54848  } else {
54849#line 797
54850    __cil_tmp15 = intf->dev.driver;
54851#line 797
54852    __mptr___0 = (struct device_driver  const  *)__cil_tmp15;
54853    {
54854#line 797
54855    __cil_tmp16 = (struct usb_driver *)__mptr___0;
54856#line 797
54857    __cil_tmp17 = __cil_tmp16 + 1152921504606846808UL;
54858#line 797
54859    __cil_tmp18 = (unsigned char *)__cil_tmp17;
54860#line 797
54861    __cil_tmp19 = __cil_tmp18 + 288UL;
54862#line 797
54863    __cil_tmp20 = *__cil_tmp19;
54864#line 797
54865    __cil_tmp21 = (unsigned int )__cil_tmp20;
54866#line 797
54867    if (__cil_tmp21 != 0U) {
54868      {
54869#line 798
54870      ret = sprintf(buf, "%u\n", 1);
54871      }
54872    } else {
54873      {
54874#line 800
54875      ret = sprintf(buf, "%u\n", 0);
54876      }
54877    }
54878    }
54879  }
54880  }
54881  {
54882#line 801
54883  __cil_tmp22 = & udev->dev;
54884#line 801
54885  device_unlock(__cil_tmp22);
54886  }
54887#line 803
54888  return ((ssize_t )ret);
54889}
54890}
54891#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"
54892static struct device_attribute dev_attr_supports_autosuspend  =    {{"supports_autosuspend", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
54893                                                                 {(char)0}, {(char)0},
54894                                                                 {(char)0}, {(char)0},
54895                                                                 {(char)0}, {(char)0}}}},
54896    & show_supports_autosuspend, (ssize_t (*)(struct device * , struct device_attribute * ,
54897                                              char const   * , size_t  ))0};
54898#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"
54899static struct attribute *intf_attrs[9U]  = 
54900#line 807
54901  {      & dev_attr_bInterfaceNumber.attr,      & dev_attr_bAlternateSetting.attr,      & dev_attr_bNumEndpoints.attr,      & dev_attr_bInterfaceClass.attr, 
54902        & dev_attr_bInterfaceSubClass.attr,      & dev_attr_bInterfaceProtocol.attr,      & dev_attr_modalias.attr,      & dev_attr_supports_autosuspend.attr, 
54903        (struct attribute *)0};
54904#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"
54905static struct attribute_group intf_attr_grp  =    {(char const   *)0, (mode_t (*)(struct kobject * , struct attribute * , int  ))0,
54906    (struct attribute **)(& intf_attrs)};
54907#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"
54908static 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, 
54909        & dev_attr_iad_bFunctionProtocol.attr,      (struct attribute *)0};
54910#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"
54911static mode_t intf_assoc_attrs_are_visible(struct kobject *kobj , struct attribute *a ,
54912                                           int n ) 
54913{ struct device *dev ;
54914  struct kobject  const  *__mptr ;
54915  struct usb_interface *intf ;
54916  struct device  const  *__mptr___0 ;
54917  struct device *__cil_tmp8 ;
54918  struct usb_interface *__cil_tmp9 ;
54919  struct usb_interface_assoc_descriptor *__cil_tmp10 ;
54920  unsigned long __cil_tmp11 ;
54921  struct usb_interface_assoc_descriptor *__cil_tmp12 ;
54922  unsigned long __cil_tmp13 ;
54923
54924  {
54925#line 834
54926  __mptr = (struct kobject  const  *)kobj;
54927#line 834
54928  __cil_tmp8 = (struct device *)__mptr;
54929#line 834
54930  dev = __cil_tmp8 + 1152921504606846960UL;
54931#line 835
54932  __mptr___0 = (struct device  const  *)dev;
54933#line 835
54934  __cil_tmp9 = (struct usb_interface *)__mptr___0;
54935#line 835
54936  intf = __cil_tmp9 + 1152921504606846928UL;
54937  {
54938#line 837
54939  __cil_tmp10 = (struct usb_interface_assoc_descriptor *)0;
54940#line 837
54941  __cil_tmp11 = (unsigned long )__cil_tmp10;
54942#line 837
54943  __cil_tmp12 = intf->intf_assoc;
54944#line 837
54945  __cil_tmp13 = (unsigned long )__cil_tmp12;
54946#line 837
54947  if (__cil_tmp13 == __cil_tmp11) {
54948#line 838
54949    return (0U);
54950  } else {
54951
54952  }
54953  }
54954#line 839
54955  return (a->mode);
54956}
54957}
54958#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"
54959static struct attribute_group intf_assoc_attr_grp  =    {(char const   *)0, & intf_assoc_attrs_are_visible, (struct attribute **)(& intf_assoc_attrs)};
54960#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"
54961struct 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};
54962#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"
54963void usb_create_sysfs_intf_files(struct usb_interface *intf ) 
54964{ struct usb_device *udev ;
54965  struct usb_device *tmp ;
54966  struct usb_host_interface *alt ;
54967  int tmp___0 ;
54968  int tmp___1 ;
54969  unsigned char *__cil_tmp7 ;
54970  unsigned char *__cil_tmp8 ;
54971  unsigned char __cil_tmp9 ;
54972  unsigned int __cil_tmp10 ;
54973  unsigned char *__cil_tmp11 ;
54974  unsigned char *__cil_tmp12 ;
54975  unsigned char __cil_tmp13 ;
54976  unsigned int __cil_tmp14 ;
54977  char *__cil_tmp15 ;
54978  unsigned long __cil_tmp16 ;
54979  char *__cil_tmp17 ;
54980  unsigned long __cil_tmp18 ;
54981  u32 __cil_tmp19 ;
54982  unsigned int __cil_tmp20 ;
54983  __u8 __cil_tmp21 ;
54984  int __cil_tmp22 ;
54985  char *__cil_tmp23 ;
54986  unsigned long __cil_tmp24 ;
54987  char *__cil_tmp25 ;
54988  unsigned long __cil_tmp26 ;
54989  struct device *__cil_tmp27 ;
54990  struct device_attribute  const  *__cil_tmp28 ;
54991
54992  {
54993  {
54994#line 855
54995  tmp = interface_to_usbdev(intf);
54996#line 855
54997  udev = tmp;
54998#line 856
54999  alt = intf->cur_altsetting;
55000  }
55001  {
55002#line 858
55003  __cil_tmp7 = (unsigned char *)intf;
55004#line 858
55005  __cil_tmp8 = __cil_tmp7 + 40UL;
55006#line 858
55007  __cil_tmp9 = *__cil_tmp8;
55008#line 858
55009  __cil_tmp10 = (unsigned int )__cil_tmp9;
55010#line 858
55011  if (__cil_tmp10 != 0U) {
55012#line 859
55013    return;
55014  } else {
55015    {
55016#line 858
55017    __cil_tmp11 = (unsigned char *)intf;
55018#line 858
55019    __cil_tmp12 = __cil_tmp11 + 40UL;
55020#line 858
55021    __cil_tmp13 = *__cil_tmp12;
55022#line 858
55023    __cil_tmp14 = (unsigned int )__cil_tmp13;
55024#line 858
55025    if (__cil_tmp14 != 0U) {
55026#line 859
55027      return;
55028    } else {
55029
55030    }
55031    }
55032  }
55033  }
55034  {
55035#line 861
55036  __cil_tmp15 = (char *)0;
55037#line 861
55038  __cil_tmp16 = (unsigned long )__cil_tmp15;
55039#line 861
55040  __cil_tmp17 = alt->string;
55041#line 861
55042  __cil_tmp18 = (unsigned long )__cil_tmp17;
55043#line 861
55044  if (__cil_tmp18 == __cil_tmp16) {
55045    {
55046#line 861
55047    __cil_tmp19 = udev->quirks;
55048#line 861
55049    __cil_tmp20 = __cil_tmp19 & 8U;
55050#line 861
55051    if (__cil_tmp20 == 0U) {
55052      {
55053#line 862
55054      __cil_tmp21 = alt->desc.iInterface;
55055#line 862
55056      __cil_tmp22 = (int )__cil_tmp21;
55057#line 862
55058      alt->string = usb_cache_string(udev, __cil_tmp22);
55059      }
55060    } else {
55061
55062    }
55063    }
55064  } else {
55065
55066  }
55067  }
55068  {
55069#line 863
55070  __cil_tmp23 = (char *)0;
55071#line 863
55072  __cil_tmp24 = (unsigned long )__cil_tmp23;
55073#line 863
55074  __cil_tmp25 = alt->string;
55075#line 863
55076  __cil_tmp26 = (unsigned long )__cil_tmp25;
55077#line 863
55078  if (__cil_tmp26 != __cil_tmp24) {
55079    {
55080#line 863
55081    __cil_tmp27 = & intf->dev;
55082#line 863
55083    __cil_tmp28 = (struct device_attribute  const  *)(& dev_attr_interface);
55084#line 863
55085    tmp___0 = device_create_file(__cil_tmp27, __cil_tmp28);
55086    }
55087#line 863
55088    if (tmp___0 != 0) {
55089#line 863
55090      tmp___1 = 1;
55091    } else {
55092#line 863
55093      tmp___1 = 0;
55094    }
55095  } else {
55096#line 863
55097    tmp___1 = 0;
55098  }
55099  }
55100#line 865
55101  intf->sysfs_files_created = (unsigned char)1;
55102#line 866
55103  return;
55104}
55105}
55106#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"
55107void usb_remove_sysfs_intf_files(struct usb_interface *intf ) 
55108{ unsigned char *__cil_tmp2 ;
55109  unsigned char *__cil_tmp3 ;
55110  unsigned char __cil_tmp4 ;
55111  unsigned int __cil_tmp5 ;
55112  struct device *__cil_tmp6 ;
55113  struct device_attribute  const  *__cil_tmp7 ;
55114
55115  {
55116  {
55117#line 870
55118  __cil_tmp2 = (unsigned char *)intf;
55119#line 870
55120  __cil_tmp3 = __cil_tmp2 + 40UL;
55121#line 870
55122  __cil_tmp4 = *__cil_tmp3;
55123#line 870
55124  __cil_tmp5 = (unsigned int )__cil_tmp4;
55125#line 870
55126  if (__cil_tmp5 == 0U) {
55127#line 871
55128    return;
55129  } else {
55130
55131  }
55132  }
55133  {
55134#line 873
55135  __cil_tmp6 = & intf->dev;
55136#line 873
55137  __cil_tmp7 = (struct device_attribute  const  *)(& dev_attr_interface);
55138#line 873
55139  device_remove_file(__cil_tmp6, __cil_tmp7);
55140#line 874
55141  intf->sysfs_files_created = (unsigned char)0;
55142  }
55143#line 875
55144  return;
55145}
55146}
55147#line 691 "include/linux/device.h"
55148extern int device_register(struct device * ) ;
55149#line 692
55150extern void device_unregister(struct device * ) ;
55151#line 102 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
55152struct device_type usb_ep_device_type ;
55153#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"
55154struct device_type usb_ep_device_type  =    {"usb_endpoint", (struct attribute_group  const  **)0, (int (*)(struct device * ,
55155                                                                   struct kobj_uevent_env * ))0,
55156    (char *(*)(struct device * , mode_t * ))0, (void (*)(struct device * ))0, (struct dev_pm_ops  const  *)0};
55157#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"
55158static ssize_t show_ep_bLength(struct device *dev , struct device_attribute *attr ,
55159                               char *buf ) 
55160{ struct ep_device *ep ;
55161  struct device  const  *__mptr ;
55162  int tmp ;
55163  struct ep_device *__cil_tmp7 ;
55164  struct usb_endpoint_descriptor *__cil_tmp8 ;
55165  __u8 __cil_tmp9 ;
55166  int __cil_tmp10 ;
55167
55168  {
55169  {
55170#line 57
55171  __mptr = (struct device  const  *)dev;
55172#line 57
55173  __cil_tmp7 = (struct ep_device *)__mptr;
55174#line 57
55175  ep = __cil_tmp7 + 1152921504606846960UL;
55176#line 57
55177  __cil_tmp8 = ep->desc;
55178#line 57
55179  __cil_tmp9 = __cil_tmp8->bLength;
55180#line 57
55181  __cil_tmp10 = (int )__cil_tmp9;
55182#line 57
55183  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
55184  }
55185#line 57
55186  return ((ssize_t )tmp);
55187}
55188}
55189#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"
55190static struct device_attribute dev_attr_bLength  =    {{"bLength", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55191                                                    {(char)0}, {(char)0}, {(char)0},
55192                                                    {(char)0}, {(char)0}}}}, & show_ep_bLength,
55193    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55194#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"
55195static ssize_t show_ep_bEndpointAddress(struct device *dev , struct device_attribute *attr ,
55196                                        char *buf ) 
55197{ struct ep_device *ep ;
55198  struct device  const  *__mptr ;
55199  int tmp ;
55200  struct ep_device *__cil_tmp7 ;
55201  struct usb_endpoint_descriptor *__cil_tmp8 ;
55202  __u8 __cil_tmp9 ;
55203  int __cil_tmp10 ;
55204
55205  {
55206  {
55207#line 58
55208  __mptr = (struct device  const  *)dev;
55209#line 58
55210  __cil_tmp7 = (struct ep_device *)__mptr;
55211#line 58
55212  ep = __cil_tmp7 + 1152921504606846960UL;
55213#line 58
55214  __cil_tmp8 = ep->desc;
55215#line 58
55216  __cil_tmp9 = __cil_tmp8->bEndpointAddress;
55217#line 58
55218  __cil_tmp10 = (int )__cil_tmp9;
55219#line 58
55220  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
55221  }
55222#line 58
55223  return ((ssize_t )tmp);
55224}
55225}
55226#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"
55227static struct device_attribute dev_attr_bEndpointAddress  =    {{"bEndpointAddress", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0},
55228                                                             {(char)0}, {(char)0},
55229                                                             {(char)0}, {(char)0},
55230                                                             {(char)0}, {(char)0}}}},
55231    & show_ep_bEndpointAddress, (ssize_t (*)(struct device * , struct device_attribute * ,
55232                                             char const   * , size_t  ))0};
55233#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"
55234static ssize_t show_ep_bmAttributes(struct device *dev , struct device_attribute *attr ,
55235                                    char *buf ) 
55236{ struct ep_device *ep ;
55237  struct device  const  *__mptr ;
55238  int tmp ;
55239  struct ep_device *__cil_tmp7 ;
55240  struct usb_endpoint_descriptor *__cil_tmp8 ;
55241  __u8 __cil_tmp9 ;
55242  int __cil_tmp10 ;
55243
55244  {
55245  {
55246#line 59
55247  __mptr = (struct device  const  *)dev;
55248#line 59
55249  __cil_tmp7 = (struct ep_device *)__mptr;
55250#line 59
55251  ep = __cil_tmp7 + 1152921504606846960UL;
55252#line 59
55253  __cil_tmp8 = ep->desc;
55254#line 59
55255  __cil_tmp9 = __cil_tmp8->bmAttributes;
55256#line 59
55257  __cil_tmp10 = (int )__cil_tmp9;
55258#line 59
55259  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
55260  }
55261#line 59
55262  return ((ssize_t )tmp);
55263}
55264}
55265#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"
55266static struct device_attribute dev_attr_bmAttributes___0  =    {{"bmAttributes", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55267                                                         {(char)0}, {(char)0}, {(char)0},
55268                                                         {(char)0}, {(char)0}}}},
55269    & show_ep_bmAttributes, (ssize_t (*)(struct device * , struct device_attribute * ,
55270                                         char const   * , size_t  ))0};
55271#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"
55272static ssize_t show_ep_bInterval(struct device *dev , struct device_attribute *attr ,
55273                                 char *buf ) 
55274{ struct ep_device *ep ;
55275  struct device  const  *__mptr ;
55276  int tmp ;
55277  struct ep_device *__cil_tmp7 ;
55278  struct usb_endpoint_descriptor *__cil_tmp8 ;
55279  __u8 __cil_tmp9 ;
55280  int __cil_tmp10 ;
55281
55282  {
55283  {
55284#line 60
55285  __mptr = (struct device  const  *)dev;
55286#line 60
55287  __cil_tmp7 = (struct ep_device *)__mptr;
55288#line 60
55289  ep = __cil_tmp7 + 1152921504606846960UL;
55290#line 60
55291  __cil_tmp8 = ep->desc;
55292#line 60
55293  __cil_tmp9 = __cil_tmp8->bInterval;
55294#line 60
55295  __cil_tmp10 = (int )__cil_tmp9;
55296#line 60
55297  tmp = sprintf(buf, "%02x\n", __cil_tmp10);
55298  }
55299#line 60
55300  return ((ssize_t )tmp);
55301}
55302}
55303#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"
55304static struct device_attribute dev_attr_bInterval  =    {{"bInterval", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55305                                                      {(char)0}, {(char)0}, {(char)0},
55306                                                      {(char)0}, {(char)0}}}}, & show_ep_bInterval,
55307    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55308#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"
55309static ssize_t show_ep_wMaxPacketSize(struct device *dev , struct device_attribute *attr ,
55310                                      char *buf ) 
55311{ struct ep_device *ep ;
55312  struct device  const  *__mptr ;
55313  int tmp ;
55314  struct ep_device *__cil_tmp7 ;
55315  struct usb_endpoint_descriptor *__cil_tmp8 ;
55316  __le16 __cil_tmp9 ;
55317  int __cil_tmp10 ;
55318  int __cil_tmp11 ;
55319
55320  {
55321  {
55322#line 65
55323  __mptr = (struct device  const  *)dev;
55324#line 65
55325  __cil_tmp7 = (struct ep_device *)__mptr;
55326#line 65
55327  ep = __cil_tmp7 + 1152921504606846960UL;
55328#line 66
55329  __cil_tmp8 = ep->desc;
55330#line 66
55331  __cil_tmp9 = __cil_tmp8->wMaxPacketSize;
55332#line 66
55333  __cil_tmp10 = (int )__cil_tmp9;
55334#line 66
55335  __cil_tmp11 = __cil_tmp10 & 2047;
55336#line 66
55337  tmp = sprintf(buf, "%04x\n", __cil_tmp11);
55338  }
55339#line 66
55340  return ((ssize_t )tmp);
55341}
55342}
55343#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"
55344static struct device_attribute dev_attr_wMaxPacketSize  =    {{"wMaxPacketSize", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55345                                                           {(char)0}, {(char)0}, {(char)0},
55346                                                           {(char)0}, {(char)0}}}},
55347    & show_ep_wMaxPacketSize, (ssize_t (*)(struct device * , struct device_attribute * ,
55348                                           char const   * , size_t  ))0};
55349#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"
55350static ssize_t show_ep_type(struct device *dev , struct device_attribute *attr , char *buf ) 
55351{ struct ep_device *ep ;
55352  struct device  const  *__mptr ;
55353  char *type ;
55354  int tmp ;
55355  int tmp___0 ;
55356  struct ep_device *__cil_tmp9 ;
55357  struct usb_endpoint_descriptor *__cil_tmp10 ;
55358  struct usb_endpoint_descriptor  const  *__cil_tmp11 ;
55359
55360  {
55361  {
55362#line 74
55363  __mptr = (struct device  const  *)dev;
55364#line 74
55365  __cil_tmp9 = (struct ep_device *)__mptr;
55366#line 74
55367  ep = __cil_tmp9 + 1152921504606846960UL;
55368#line 75
55369  type = (char *)"unknown";
55370#line 77
55371  __cil_tmp10 = ep->desc;
55372#line 77
55373  __cil_tmp11 = (struct usb_endpoint_descriptor  const  *)__cil_tmp10;
55374#line 77
55375  tmp = usb_endpoint_type(__cil_tmp11);
55376  }
55377#line 78
55378  if (tmp == 0) {
55379#line 78
55380    goto case_0;
55381  } else
55382#line 81
55383  if (tmp == 1) {
55384#line 81
55385    goto case_1;
55386  } else
55387#line 84
55388  if (tmp == 2) {
55389#line 84
55390    goto case_2;
55391  } else
55392#line 87
55393  if (tmp == 3) {
55394#line 87
55395    goto case_3;
55396  } else
55397#line 77
55398  if (0) {
55399    case_0: 
55400#line 79
55401    type = (char *)"Control";
55402#line 80
55403    goto ldv_23983;
55404    case_1: 
55405#line 82
55406    type = (char *)"Isoc";
55407#line 83
55408    goto ldv_23983;
55409    case_2: 
55410#line 85
55411    type = (char *)"Bulk";
55412#line 86
55413    goto ldv_23983;
55414    case_3: 
55415#line 88
55416    type = (char *)"Interrupt";
55417#line 89
55418    goto ldv_23983;
55419  } else {
55420
55421  }
55422  ldv_23983: 
55423  {
55424#line 91
55425  tmp___0 = sprintf(buf, "%s\n", type);
55426  }
55427#line 91
55428  return ((ssize_t )tmp___0);
55429}
55430}
55431#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"
55432static struct device_attribute dev_attr_type  =    {{"type", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55433                                                 {(char)0}, {(char)0}, {(char)0},
55434                                                 {(char)0}, {(char)0}}}}, & show_ep_type,
55435    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55436#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"
55437static ssize_t show_ep_interval(struct device *dev , struct device_attribute *attr ,
55438                                char *buf ) 
55439{ struct ep_device *ep ;
55440  struct device  const  *__mptr ;
55441  char unit ;
55442  unsigned int interval ;
55443  unsigned int in ;
55444  int tmp ;
55445  unsigned int tmp___0 ;
55446  int tmp___1 ;
55447  struct ep_device *__cil_tmp12 ;
55448  struct usb_endpoint_descriptor *__cil_tmp13 ;
55449  __u8 __cil_tmp14 ;
55450  unsigned int __cil_tmp15 ;
55451  struct usb_endpoint_descriptor *__cil_tmp16 ;
55452  struct usb_endpoint_descriptor  const  *__cil_tmp17 ;
55453  struct usb_device *__cil_tmp18 ;
55454  enum usb_device_speed __cil_tmp19 ;
55455  unsigned int __cil_tmp20 ;
55456  struct usb_endpoint_descriptor *__cil_tmp21 ;
55457  __u8 __cil_tmp22 ;
55458  struct usb_endpoint_descriptor *__cil_tmp23 ;
55459  __u8 __cil_tmp24 ;
55460  int __cil_tmp25 ;
55461  int __cil_tmp26 ;
55462  int __cil_tmp27 ;
55463  struct usb_device *__cil_tmp28 ;
55464  enum usb_device_speed __cil_tmp29 ;
55465  unsigned int __cil_tmp30 ;
55466  struct usb_endpoint_descriptor *__cil_tmp31 ;
55467  __u8 __cil_tmp32 ;
55468  struct usb_device *__cil_tmp33 ;
55469  enum usb_device_speed __cil_tmp34 ;
55470  unsigned int __cil_tmp35 ;
55471  struct usb_endpoint_descriptor *__cil_tmp36 ;
55472  __u8 __cil_tmp37 ;
55473  int __cil_tmp38 ;
55474  int __cil_tmp39 ;
55475  int __cil_tmp40 ;
55476  struct usb_endpoint_descriptor *__cil_tmp41 ;
55477  __u8 __cil_tmp42 ;
55478  struct usb_device *__cil_tmp43 ;
55479  enum usb_device_speed __cil_tmp44 ;
55480  unsigned int __cil_tmp45 ;
55481  unsigned int __cil_tmp46 ;
55482  int __cil_tmp47 ;
55483
55484  {
55485  {
55486#line 98
55487  __mptr = (struct device  const  *)dev;
55488#line 98
55489  __cil_tmp12 = (struct ep_device *)__mptr;
55490#line 98
55491  ep = __cil_tmp12 + 1152921504606846960UL;
55492#line 100
55493  interval = 0U;
55494#line 103
55495  __cil_tmp13 = ep->desc;
55496#line 103
55497  __cil_tmp14 = __cil_tmp13->bEndpointAddress;
55498#line 103
55499  __cil_tmp15 = (unsigned int )__cil_tmp14;
55500#line 103
55501  in = __cil_tmp15 & 128U;
55502#line 105
55503  __cil_tmp16 = ep->desc;
55504#line 105
55505  __cil_tmp17 = (struct usb_endpoint_descriptor  const  *)__cil_tmp16;
55506#line 105
55507  tmp = usb_endpoint_type(__cil_tmp17);
55508  }
55509#line 106
55510  if (tmp == 0) {
55511#line 106
55512    goto case_0;
55513  } else
55514#line 112
55515  if (tmp == 1) {
55516#line 112
55517    goto case_1;
55518  } else
55519#line 116
55520  if (tmp == 2) {
55521#line 116
55522    goto case_2;
55523  } else
55524#line 122
55525  if (tmp == 3) {
55526#line 122
55527    goto case_3;
55528  } else
55529#line 105
55530  if (0) {
55531    case_0: ;
55532    {
55533#line 107
55534    __cil_tmp18 = ep->udev;
55535#line 107
55536    __cil_tmp19 = __cil_tmp18->speed;
55537#line 107
55538    __cil_tmp20 = (unsigned int )__cil_tmp19;
55539#line 107
55540    if (__cil_tmp20 == 3U) {
55541#line 109
55542      __cil_tmp21 = ep->desc;
55543#line 109
55544      __cil_tmp22 = __cil_tmp21->bInterval;
55545#line 109
55546      interval = (unsigned int )__cil_tmp22;
55547    } else {
55548
55549    }
55550    }
55551#line 110
55552    goto ldv_24000;
55553    case_1: 
55554#line 113
55555    __cil_tmp23 = ep->desc;
55556#line 113
55557    __cil_tmp24 = __cil_tmp23->bInterval;
55558#line 113
55559    __cil_tmp25 = (int )__cil_tmp24;
55560#line 113
55561    __cil_tmp26 = __cil_tmp25 + -1;
55562#line 113
55563    __cil_tmp27 = 1 << __cil_tmp26;
55564#line 113
55565    interval = (unsigned int )__cil_tmp27;
55566#line 114
55567    goto ldv_24000;
55568    case_2: ;
55569    {
55570#line 117
55571    __cil_tmp28 = ep->udev;
55572#line 117
55573    __cil_tmp29 = __cil_tmp28->speed;
55574#line 117
55575    __cil_tmp30 = (unsigned int )__cil_tmp29;
55576#line 117
55577    if (__cil_tmp30 == 3U) {
55578#line 117
55579      if (in == 0U) {
55580#line 119
55581        __cil_tmp31 = ep->desc;
55582#line 119
55583        __cil_tmp32 = __cil_tmp31->bInterval;
55584#line 119
55585        interval = (unsigned int )__cil_tmp32;
55586      } else {
55587
55588      }
55589    } else {
55590
55591    }
55592    }
55593#line 120
55594    goto ldv_24000;
55595    case_3: ;
55596    {
55597#line 123
55598    __cil_tmp33 = ep->udev;
55599#line 123
55600    __cil_tmp34 = __cil_tmp33->speed;
55601#line 123
55602    __cil_tmp35 = (unsigned int )__cil_tmp34;
55603#line 123
55604    if (__cil_tmp35 == 3U) {
55605#line 124
55606      __cil_tmp36 = ep->desc;
55607#line 124
55608      __cil_tmp37 = __cil_tmp36->bInterval;
55609#line 124
55610      __cil_tmp38 = (int )__cil_tmp37;
55611#line 124
55612      __cil_tmp39 = __cil_tmp38 + -1;
55613#line 124
55614      __cil_tmp40 = 1 << __cil_tmp39;
55615#line 124
55616      interval = (unsigned int )__cil_tmp40;
55617    } else {
55618#line 126
55619      __cil_tmp41 = ep->desc;
55620#line 126
55621      __cil_tmp42 = __cil_tmp41->bInterval;
55622#line 126
55623      interval = (unsigned int )__cil_tmp42;
55624    }
55625    }
55626#line 127
55627    goto ldv_24000;
55628  } else {
55629
55630  }
55631  ldv_24000: ;
55632  {
55633#line 129
55634  __cil_tmp43 = ep->udev;
55635#line 129
55636  __cil_tmp44 = __cil_tmp43->speed;
55637#line 129
55638  __cil_tmp45 = (unsigned int )__cil_tmp44;
55639#line 129
55640  if (__cil_tmp45 == 3U) {
55641#line 129
55642    tmp___0 = 125U;
55643  } else {
55644#line 129
55645    tmp___0 = 1000U;
55646  }
55647  }
55648#line 129
55649  interval = tmp___0 * interval;
55650  {
55651#line 130
55652  __cil_tmp46 = interval % 1000U;
55653#line 130
55654  if (__cil_tmp46 != 0U) {
55655#line 131
55656    unit = (char)117;
55657  } else {
55658#line 133
55659    unit = (char)109;
55660#line 134
55661    interval = interval / 1000U;
55662  }
55663  }
55664  {
55665#line 137
55666  __cil_tmp47 = (int )unit;
55667#line 137
55668  tmp___1 = sprintf(buf, "%d%cs\n", interval, __cil_tmp47);
55669  }
55670#line 137
55671  return ((ssize_t )tmp___1);
55672}
55673}
55674#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"
55675static struct device_attribute dev_attr_interval  =    {{"interval", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55676                                                     {(char)0}, {(char)0}, {(char)0},
55677                                                     {(char)0}, {(char)0}}}}, & show_ep_interval,
55678    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55679#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"
55680static ssize_t show_ep_direction(struct device *dev , struct device_attribute *attr ,
55681                                 char *buf ) 
55682{ struct ep_device *ep ;
55683  struct device  const  *__mptr ;
55684  char *direction ;
55685  int tmp ;
55686  int tmp___0 ;
55687  int tmp___1 ;
55688  struct ep_device *__cil_tmp10 ;
55689  struct usb_endpoint_descriptor *__cil_tmp11 ;
55690  struct usb_endpoint_descriptor  const  *__cil_tmp12 ;
55691  struct usb_endpoint_descriptor *__cil_tmp13 ;
55692  struct usb_endpoint_descriptor  const  *__cil_tmp14 ;
55693
55694  {
55695  {
55696#line 144
55697  __mptr = (struct device  const  *)dev;
55698#line 144
55699  __cil_tmp10 = (struct ep_device *)__mptr;
55700#line 144
55701  ep = __cil_tmp10 + 1152921504606846960UL;
55702#line 147
55703  __cil_tmp11 = ep->desc;
55704#line 147
55705  __cil_tmp12 = (struct usb_endpoint_descriptor  const  *)__cil_tmp11;
55706#line 147
55707  tmp___0 = usb_endpoint_xfer_control(__cil_tmp12);
55708  }
55709#line 147
55710  if (tmp___0 != 0) {
55711#line 148
55712    direction = (char *)"both";
55713  } else {
55714    {
55715#line 149
55716    __cil_tmp13 = ep->desc;
55717#line 149
55718    __cil_tmp14 = (struct usb_endpoint_descriptor  const  *)__cil_tmp13;
55719#line 149
55720    tmp = usb_endpoint_dir_in(__cil_tmp14);
55721    }
55722#line 149
55723    if (tmp != 0) {
55724#line 150
55725      direction = (char *)"in";
55726    } else {
55727#line 152
55728      direction = (char *)"out";
55729    }
55730  }
55731  {
55732#line 153
55733  tmp___1 = sprintf(buf, "%s\n", direction);
55734  }
55735#line 153
55736  return ((ssize_t )tmp___1);
55737}
55738}
55739#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"
55740static struct device_attribute dev_attr_direction  =    {{"direction", 292U, (struct lock_class_key *)0, {{{(char)0}, {(char)0}, {(char)0},
55741                                                      {(char)0}, {(char)0}, {(char)0},
55742                                                      {(char)0}, {(char)0}}}}, & show_ep_direction,
55743    (ssize_t (*)(struct device * , struct device_attribute * , char const   * , size_t  ))0};
55744#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"
55745static struct attribute *ep_dev_attrs[9U]  = 
55746#line 157
55747  {      & dev_attr_bLength.attr,      & dev_attr_bEndpointAddress.attr,      & dev_attr_bmAttributes___0.attr,      & dev_attr_bInterval.attr, 
55748        & dev_attr_wMaxPacketSize.attr,      & dev_attr_interval.attr,      & dev_attr_type.attr,      & dev_attr_direction.attr, 
55749        (struct attribute *)0};
55750#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"
55751static struct attribute_group ep_dev_attr_grp  =    {(char const   *)0, (mode_t (*)(struct kobject * , struct attribute * , int  ))0,
55752    (struct attribute **)(& ep_dev_attrs)};
55753#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"
55754static struct attribute_group  const  *ep_dev_groups[2U]  = {      (struct attribute_group  const  *)(& ep_dev_attr_grp),      (struct attribute_group  const  *)0};
55755#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"
55756static void ep_device_release(struct device *dev ) 
55757{ struct ep_device *ep_dev ;
55758  struct device  const  *__mptr ;
55759  struct ep_device *__cil_tmp4 ;
55760  void const   *__cil_tmp5 ;
55761
55762  {
55763  {
55764#line 178
55765  __mptr = (struct device  const  *)dev;
55766#line 178
55767  __cil_tmp4 = (struct ep_device *)__mptr;
55768#line 178
55769  ep_dev = __cil_tmp4 + 1152921504606846960UL;
55770#line 180
55771  __cil_tmp5 = (void const   *)ep_dev;
55772#line 180
55773  kfree(__cil_tmp5);
55774  }
55775#line 181
55776  return;
55777}
55778}
55779#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"
55780int usb_create_ep_devs(struct device *parent , struct usb_host_endpoint *endpoint ,
55781                       struct usb_device *udev ) 
55782{ struct ep_device *ep_dev ;
55783  int retval ;
55784  void *tmp ;
55785  struct ep_device *__cil_tmp7 ;
55786  unsigned long __cil_tmp8 ;
55787  unsigned long __cil_tmp9 ;
55788  struct device *__cil_tmp10 ;
55789  __u8 __cil_tmp11 ;
55790  int __cil_tmp12 ;
55791  struct device *__cil_tmp13 ;
55792  struct device *__cil_tmp14 ;
55793  struct device *__cil_tmp15 ;
55794
55795  {
55796  {
55797#line 190
55798  tmp = kzalloc(1128UL, 208U);
55799#line 190
55800  ep_dev = (struct ep_device *)tmp;
55801  }
55802  {
55803#line 191
55804  __cil_tmp7 = (struct ep_device *)0;
55805#line 191
55806  __cil_tmp8 = (unsigned long )__cil_tmp7;
55807#line 191
55808  __cil_tmp9 = (unsigned long )ep_dev;
55809#line 191
55810  if (__cil_tmp9 == __cil_tmp8) {
55811#line 192
55812    retval = -12;
55813#line 193
55814    goto exit;
55815  } else {
55816
55817  }
55818  }
55819  {
55820#line 196
55821  ep_dev->desc = & endpoint->desc;
55822#line 197
55823  ep_dev->udev = udev;
55824#line 198
55825  ep_dev->dev.groups = (struct attribute_group  const  **)(& ep_dev_groups);
55826#line 199
55827  ep_dev->dev.type = (struct device_type  const  *)(& usb_ep_device_type);
55828#line 200
55829  ep_dev->dev.parent = parent;
55830#line 201
55831  ep_dev->dev.release = & ep_device_release;
55832#line 202
55833  __cil_tmp10 = & ep_dev->dev;
55834#line 202
55835  __cil_tmp11 = endpoint->desc.bEndpointAddress;
55836#line 202
55837  __cil_tmp12 = (int )__cil_tmp11;
55838#line 202
55839  dev_set_name(__cil_tmp10, "ep_%02x", __cil_tmp12);
55840#line 204
55841  __cil_tmp13 = & ep_dev->dev;
55842#line 204
55843  retval = device_register(__cil_tmp13);
55844  }
55845#line 205
55846  if (retval != 0) {
55847#line 206
55848    goto error_register;
55849  } else {
55850
55851  }
55852  {
55853#line 208
55854  __cil_tmp14 = & ep_dev->dev;
55855#line 208
55856  device_enable_async_suspend(__cil_tmp14);
55857#line 209
55858  endpoint->ep_dev = ep_dev;
55859  }
55860#line 210
55861  return (retval);
55862  error_register: 
55863  {
55864#line 213
55865  __cil_tmp15 = & ep_dev->dev;
55866#line 213
55867  put_device(__cil_tmp15);
55868  }
55869  exit: ;
55870#line 215
55871  return (retval);
55872}
55873}
55874#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"
55875void usb_remove_ep_devs(struct usb_host_endpoint *endpoint ) 
55876{ struct ep_device *ep_dev ;
55877  struct ep_device *__cil_tmp3 ;
55878  unsigned long __cil_tmp4 ;
55879  unsigned long __cil_tmp5 ;
55880  struct device *__cil_tmp6 ;
55881
55882  {
55883#line 220
55884  ep_dev = endpoint->ep_dev;
55885  {
55886#line 222
55887  __cil_tmp3 = (struct ep_device *)0;
55888#line 222
55889  __cil_tmp4 = (unsigned long )__cil_tmp3;
55890#line 222
55891  __cil_tmp5 = (unsigned long )ep_dev;
55892#line 222
55893  if (__cil_tmp5 != __cil_tmp4) {
55894    {
55895#line 223
55896    __cil_tmp6 = & ep_dev->dev;
55897#line 223
55898    device_unregister(__cil_tmp6);
55899#line 224
55900    endpoint->ep_dev = (struct ep_device *)0;
55901    }
55902  } else {
55903
55904  }
55905  }
55906#line 226
55907  return;
55908}
55909}
55910#line 164 "include/linux/list.h"
55911__inline static void list_move_tail(struct list_head *list , struct list_head *head ) 
55912{ 
55913
55914  {
55915  {
55916#line 167
55917  __list_del_entry(list);
55918#line 168
55919  list_add_tail(list, head);
55920  }
55921#line 169
55922  return;
55923}
55924}
55925#line 63 "include/linux/byteorder/little_endian.h"
55926__inline static __u16 __le16_to_cpup(__le16 const   *p ) 
55927{ __le16 __cil_tmp2 ;
55928
55929  {
55930  {
55931#line 65
55932  __cil_tmp2 = *p;
55933#line 65
55934  return ((__u16 )__cil_tmp2);
55935  }
55936}
55937}
55938#line 291 "include/linux/printk.h"
55939extern void print_hex_dump(char const   * , char const   * , int  , int  , int  ,
55940                           void const   * , size_t  , bool  ) ;
55941#line 64 "include/asm-generic/bug.h"
55942extern void warn_slowpath_fmt(char const   * , int  , char const   *  , ...) ;
55943#line 170 "include/linux/kernel.h"
55944extern void might_fault(void) ;
55945#line 11 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/cmpxchg_64.h"
55946extern void __xchg_wrong_size(void) ;
55947#line 27 "include/linux/string.h"
55948extern char *strncpy(char * , char const   * , __kernel_size_t  ) ;
55949#line 217 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
55950extern unsigned long kernel_stack ;
55951#line 219 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/thread_info.h"
55952__inline static struct thread_info *current_thread_info(void) 
55953{ struct thread_info *ti ;
55954  unsigned long pfo_ret__ ;
55955  unsigned long __cil_tmp3 ;
55956
55957  {
55958#line 222
55959  if (1) {
55960#line 222
55961    goto case_8;
55962  } else {
55963#line 222
55964    goto switch_default;
55965#line 222
55966    if (0) {
55967#line 222
55968      __asm__  ("movb %%gs:%P1,%0": "=q" (pfo_ret__): "p" (& kernel_stack));
55969#line 222
55970      goto ldv_5782;
55971#line 222
55972      __asm__  ("movw %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack));
55973#line 222
55974      goto ldv_5782;
55975#line 222
55976      __asm__  ("movl %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack));
55977#line 222
55978      goto ldv_5782;
55979      case_8: 
55980#line 222
55981      __asm__  ("movq %%gs:%P1,%0": "=r" (pfo_ret__): "p" (& kernel_stack));
55982#line 222
55983      goto ldv_5782;
55984      switch_default: 
55985      {
55986#line 222
55987      __bad_percpu_size();
55988      }
55989    } else {
55990
55991    }
55992  }
55993  ldv_5782: 
55994#line 222
55995  __cil_tmp3 = pfo_ret__ - 8152UL;
55996#line 222
55997  ti = (struct thread_info *)__cil_tmp3;
55998#line 224
55999  return (ti);
56000}
56001}
56002#line 124 "include/linux/time.h"
56003extern struct timespec current_kernel_time(void) ;
56004#line 30 "include/linux/wait.h"
56005extern int default_wake_function(wait_queue_t * , unsigned int  , int  , void * ) ;
56006#line 118
56007extern void add_wait_queue(wait_queue_head_t * , wait_queue_t * ) ;
56008#line 120
56009extern void remove_wait_queue(wait_queue_head_t * , wait_queue_t * ) ;
56010#line 344 "include/linux/gfp.h"
56011extern unsigned long __get_free_pages(gfp_t  , unsigned int  ) ;
56012#line 359
56013extern void free_pages(unsigned long  , unsigned int  ) ;
56014#line 75 "include/linux/pid.h"
56015__inline static struct pid *get_pid(struct pid *pid ) 
56016{ struct pid *__cil_tmp2 ;
56017  unsigned long __cil_tmp3 ;
56018  unsigned long __cil_tmp4 ;
56019  atomic_t *__cil_tmp5 ;
56020
56021  {
56022  {
56023#line 77
56024  __cil_tmp2 = (struct pid *)0;
56025#line 77
56026  __cil_tmp3 = (unsigned long )__cil_tmp2;
56027#line 77
56028  __cil_tmp4 = (unsigned long )pid;
56029#line 77
56030  if (__cil_tmp4 != __cil_tmp3) {
56031    {
56032#line 78
56033    __cil_tmp5 = & pid->count;
56034#line 78
56035    atomic_inc(__cil_tmp5);
56036    }
56037  } else {
56038
56039  }
56040  }
56041#line 79
56042  return (pid);
56043}
56044}
56045#line 82
56046extern void put_pid(struct pid * ) ;
56047#line 896 "include/linux/fs.h"
56048__inline static unsigned int imajor(struct inode  const  *inode ) 
56049{ dev_t __cil_tmp2 ;
56050  dev_t __cil_tmp3 ;
56051
56052  {
56053  {
56054#line 898
56055  __cil_tmp2 = inode->i_rdev;
56056#line 898
56057  __cil_tmp3 = __cil_tmp2 >> 20;
56058#line 898
56059  return ((unsigned int )__cil_tmp3);
56060  }
56061}
56062}
56063#line 2088
56064extern int register_chrdev_region(dev_t  , unsigned int  , char const   * ) ;
56065#line 2094
56066extern void unregister_chrdev_region(dev_t  , unsigned int  ) ;
56067#line 119 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess.h"
56068extern int __get_user_bad(void) ;
56069#line 40 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
56070extern unsigned long _copy_to_user(void * , void const   * , unsigned int  ) ;
56071#line 42
56072extern unsigned long _copy_from_user(void * , void const   * , unsigned int  ) ;
56073#line 44
56074extern unsigned long copy_in_user(void * , void const   * , unsigned int  ) ;
56075#line 46 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
56076__inline static unsigned long copy_from_user(void *to , void const   *from , unsigned long n ) 
56077{ int sz ;
56078  unsigned long tmp ;
56079  int __ret_warn_on ;
56080  long tmp___0 ;
56081  long tmp___1 ;
56082  long tmp___2 ;
56083  void const   *__cil_tmp10 ;
56084  void *__cil_tmp11 ;
56085  int __cil_tmp12 ;
56086  long __cil_tmp13 ;
56087  unsigned int __cil_tmp14 ;
56088  unsigned long __cil_tmp15 ;
56089  int __cil_tmp16 ;
56090  long __cil_tmp17 ;
56091  unsigned int __cil_tmp18 ;
56092  int __cil_tmp19 ;
56093  long __cil_tmp20 ;
56094  int __cil_tmp21 ;
56095  int __cil_tmp22 ;
56096  int __cil_tmp23 ;
56097  long __cil_tmp24 ;
56098
56099  {
56100  {
56101#line 50
56102  __cil_tmp10 = (void const   *)to;
56103#line 50
56104  __cil_tmp11 = (void *)__cil_tmp10;
56105#line 50
56106  tmp = __builtin_object_size(__cil_tmp11, 0);
56107#line 50
56108  sz = (int )tmp;
56109#line 52
56110  might_fault();
56111#line 53
56112  __cil_tmp12 = sz == -1;
56113#line 53
56114  __cil_tmp13 = (long )__cil_tmp12;
56115#line 53
56116  tmp___1 = __builtin_expect(__cil_tmp13, 1L);
56117  }
56118#line 53
56119  if (tmp___1 != 0L) {
56120    {
56121#line 54
56122    __cil_tmp14 = (unsigned int )n;
56123#line 54
56124    n = _copy_from_user(to, from, __cil_tmp14);
56125    }
56126  } else {
56127    {
56128#line 53
56129    __cil_tmp15 = (unsigned long )sz;
56130#line 53
56131    __cil_tmp16 = __cil_tmp15 >= n;
56132#line 53
56133    __cil_tmp17 = (long )__cil_tmp16;
56134#line 53
56135    tmp___2 = __builtin_expect(__cil_tmp17, 1L);
56136    }
56137#line 53
56138    if (tmp___2 != 0L) {
56139      {
56140#line 54
56141      __cil_tmp18 = (unsigned int )n;
56142#line 54
56143      n = _copy_from_user(to, from, __cil_tmp18);
56144      }
56145    } else {
56146      {
56147#line 57
56148      __ret_warn_on = 1;
56149#line 57
56150      __cil_tmp19 = __ret_warn_on != 0;
56151#line 57
56152      __cil_tmp20 = (long )__cil_tmp19;
56153#line 57
56154      tmp___0 = __builtin_expect(__cil_tmp20, 0L);
56155      }
56156#line 57
56157      if (tmp___0 != 0L) {
56158        {
56159#line 57
56160        __cil_tmp21 = (int const   )57;
56161#line 57
56162        __cil_tmp22 = (int )__cil_tmp21;
56163#line 57
56164        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",
56165                          __cil_tmp22, "Buffer overflow detected!\n");
56166        }
56167      } else {
56168
56169      }
56170      {
56171#line 57
56172      __cil_tmp23 = __ret_warn_on != 0;
56173#line 57
56174      __cil_tmp24 = (long )__cil_tmp23;
56175#line 57
56176      __builtin_expect(__cil_tmp24, 0L);
56177      }
56178    }
56179  }
56180#line 59
56181  return (n);
56182}
56183}
56184#line 63 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/uaccess_64.h"
56185__inline static int copy_to_user(void *dst , void const   *src , unsigned int size ) 
56186{ unsigned long tmp ;
56187
56188  {
56189  {
56190#line 65
56191  might_fault();
56192#line 67
56193  tmp = _copy_to_user(dst, src, size);
56194  }
56195#line 67
56196  return ((int )tmp);
56197}
56198}
56199#line 40 "include/linux/poll.h"
56200__inline static void poll_wait(struct file *filp , wait_queue_head_t *wait_address ,
56201                               poll_table *p ) 
56202{ poll_table *__cil_tmp4 ;
56203  unsigned long __cil_tmp5 ;
56204  unsigned long __cil_tmp6 ;
56205  wait_queue_head_t *__cil_tmp7 ;
56206  unsigned long __cil_tmp8 ;
56207  unsigned long __cil_tmp9 ;
56208  void (*__cil_tmp10)(struct file * , wait_queue_head_t * , struct poll_table_struct * ) ;
56209
56210  {
56211  {
56212#line 42
56213  __cil_tmp4 = (poll_table *)0;
56214#line 42
56215  __cil_tmp5 = (unsigned long )__cil_tmp4;
56216#line 42
56217  __cil_tmp6 = (unsigned long )p;
56218#line 42
56219  if (__cil_tmp6 != __cil_tmp5) {
56220    {
56221#line 42
56222    __cil_tmp7 = (wait_queue_head_t *)0;
56223#line 42
56224    __cil_tmp8 = (unsigned long )__cil_tmp7;
56225#line 42
56226    __cil_tmp9 = (unsigned long )wait_address;
56227#line 42
56228    if (__cil_tmp9 != __cil_tmp8) {
56229      {
56230#line 43
56231      __cil_tmp10 = p->qproc;
56232#line 43
56233      (*__cil_tmp10)(filp, wait_address, p);
56234      }
56235    } else {
56236
56237    }
56238    }
56239  } else {
56240
56241  }
56242  }
56243#line 44
56244  return;
56245}
56246}
56247#line 1609 "include/linux/sched.h"
56248__inline static struct pid *task_pid(struct task_struct *task ) 
56249{ 
56250
56251  {
56252#line 1611
56253  return (task->pids[0].pid);
56254}
56255}
56256#line 1652 "include/linux/sched.h"
56257__inline static pid_t task_pid_nr(struct task_struct *tsk ) 
56258{ 
56259
56260  {
56261#line 1654
56262  return (tsk->pid);
56263}
56264}
56265#line 2150
56266extern int kill_pid_info_as_uid(int  , struct siginfo * , struct pid * , uid_t  ,
56267                                uid_t  , u32  ) ;
56268#line 589 "include/linux/usb.h"
56269__inline static int usb_interface_claimed(struct usb_interface *iface ) 
56270{ struct device_driver *__cil_tmp2 ;
56271  unsigned long __cil_tmp3 ;
56272  struct device_driver *__cil_tmp4 ;
56273  unsigned long __cil_tmp5 ;
56274
56275  {
56276  {
56277#line 591
56278  __cil_tmp2 = (struct device_driver *)0;
56279#line 591
56280  __cil_tmp3 = (unsigned long )__cil_tmp2;
56281#line 591
56282  __cil_tmp4 = iface->dev.driver;
56283#line 591
56284  __cil_tmp5 = (unsigned long )__cil_tmp4;
56285#line 591
56286  return (__cil_tmp5 != __cil_tmp3);
56287  }
56288}
56289}
56290#line 1587
56291void usb_register_notify(struct notifier_block *nb ) ;
56292#line 1588
56293void usb_unregister_notify(struct notifier_block *nb ) ;
56294#line 198 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
56295__inline static void *compat_ptr(compat_uptr_t uptr ) 
56296{ unsigned long __cil_tmp2 ;
56297
56298  {
56299  {
56300#line 200
56301  __cil_tmp2 = (unsigned long )uptr;
56302#line 200
56303  return ((void *)__cil_tmp2);
56304  }
56305}
56306}
56307#line 203 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/compat.h"
56308__inline static compat_uptr_t ptr_to_compat(void *uptr ) 
56309{ long __cil_tmp2 ;
56310
56311  {
56312  {
56313#line 205
56314  __cil_tmp2 = (long )uptr;
56315#line 205
56316  return ((compat_uptr_t )__cil_tmp2);
56317  }
56318}
56319}
56320#line 562 "include/linux/compat.h"
56321extern void *compat_alloc_user_space(unsigned long  ) ;
56322#line 21 "include/linux/cdev.h"
56323extern void cdev_init(struct cdev * , struct file_operations  const  * ) ;
56324#line 27
56325extern int cdev_add(struct cdev * , dev_t  , unsigned int  ) ;
56326#line 29
56327extern void cdev_del(struct cdev * ) ;
56328#line 1768 "include/linux/security.h"
56329extern void security_task_getsecid(struct task_struct * , u32 * ) ;
56330#line 150 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
56331struct mutex usbfs_mutex ;
56332#line 153
56333struct file_operations  const  usbdev_file_operations ;
56334#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"
56335struct mutex usbfs_mutex  =    {{1}, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
56336                                                                            {(struct lock_class *)0,
56337                                                                             (struct lock_class *)0},
56338                                                                            "usbfs_mutex.wait_lock",
56339                                                                            0, 0UL}}}},
56340    {& usbfs_mutex.wait_list, & usbfs_mutex.wait_list}, (struct task_struct *)0, (char const   *)0,
56341    (void *)(& usbfs_mutex), {(struct lock_class_key *)0, {(struct lock_class *)0,
56342                                                           (struct lock_class *)0},
56343                              "usbfs_mutex", 0, 0UL}};
56344#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"
56345static int usbfs_snoop  ;
56346#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"
56347static int connected(struct dev_state *ps ) 
56348{ int tmp ;
56349  int tmp___0 ;
56350  struct list_head *__cil_tmp4 ;
56351  struct list_head  const  *__cil_tmp5 ;
56352  struct usb_device *__cil_tmp6 ;
56353  enum usb_device_state __cil_tmp7 ;
56354  unsigned int __cil_tmp8 ;
56355
56356  {
56357  {
56358#line 123
56359  __cil_tmp4 = & ps->list;
56360#line 123
56361  __cil_tmp5 = (struct list_head  const  *)__cil_tmp4;
56362#line 123
56363  tmp = list_empty(__cil_tmp5);
56364  }
56365#line 123
56366  if (tmp == 0) {
56367    {
56368#line 123
56369    __cil_tmp6 = ps->dev;
56370#line 123
56371    __cil_tmp7 = __cil_tmp6->state;
56372#line 123
56373    __cil_tmp8 = (unsigned int )__cil_tmp7;
56374#line 123
56375    if (__cil_tmp8 != 0U) {
56376#line 123
56377      tmp___0 = 1;
56378    } else {
56379#line 123
56380      tmp___0 = 0;
56381    }
56382    }
56383  } else {
56384#line 123
56385    tmp___0 = 0;
56386  }
56387#line 123
56388  return (tmp___0);
56389}
56390}
56391#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"
56392static loff_t usbdev_lseek(struct file *file , loff_t offset , int orig ) 
56393{ loff_t ret ;
56394  struct dentry *__cil_tmp5 ;
56395  struct inode *__cil_tmp6 ;
56396  struct mutex *__cil_tmp7 ;
56397  loff_t __cil_tmp8 ;
56398  struct dentry *__cil_tmp9 ;
56399  struct inode *__cil_tmp10 ;
56400  struct mutex *__cil_tmp11 ;
56401
56402  {
56403  {
56404#line 131
56405  __cil_tmp5 = file->f_path.dentry;
56406#line 131
56407  __cil_tmp6 = __cil_tmp5->d_inode;
56408#line 131
56409  __cil_tmp7 = & __cil_tmp6->i_mutex;
56410#line 131
56411  mutex_lock_nested(__cil_tmp7, 0U);
56412  }
56413#line 134
56414  if (orig == 0) {
56415#line 134
56416    goto case_0;
56417  } else
56418#line 138
56419  if (orig == 1) {
56420#line 138
56421    goto case_1;
56422  } else
56423#line 142
56424  if (orig == 2) {
56425#line 142
56426    goto case_2;
56427  } else {
56428#line 143
56429    goto switch_default;
56430#line 133
56431    if (0) {
56432      case_0: 
56433#line 135
56434      file->f_pos = offset;
56435#line 136
56436      ret = file->f_pos;
56437#line 137
56438      goto ldv_30592;
56439      case_1: 
56440#line 139
56441      __cil_tmp8 = file->f_pos;
56442#line 139
56443      file->f_pos = __cil_tmp8 + offset;
56444#line 140
56445      ret = file->f_pos;
56446#line 141
56447      goto ldv_30592;
56448      case_2: ;
56449      switch_default: 
56450#line 144
56451      ret = -22LL;
56452    } else {
56453
56454    }
56455  }
56456  ldv_30592: 
56457  {
56458#line 147
56459  __cil_tmp9 = file->f_path.dentry;
56460#line 147
56461  __cil_tmp10 = __cil_tmp9->d_inode;
56462#line 147
56463  __cil_tmp11 = & __cil_tmp10->i_mutex;
56464#line 147
56465  mutex_unlock(__cil_tmp11);
56466  }
56467#line 148
56468  return (ret);
56469}
56470}
56471#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"
56472static ssize_t usbdev_read(struct file *file , char *buf , size_t nbytes , loff_t *ppos ) 
56473{ struct dev_state *ps ;
56474  struct usb_device *dev ;
56475  ssize_t ret ;
56476  unsigned int len ;
56477  loff_t pos ;
56478  int i ;
56479  int tmp ;
56480  struct usb_device_descriptor temp_desc ;
56481  size_t __len ;
56482  void *__ret ;
56483  int tmp___0 ;
56484  struct usb_config_descriptor *config ;
56485  unsigned int length ;
56486  unsigned int alloclen ;
56487  unsigned int _min1 ;
56488  unsigned int _min2 ;
56489  unsigned int tmp___1 ;
56490  int tmp___2 ;
56491  void *__cil_tmp23 ;
56492  struct device *__cil_tmp24 ;
56493  unsigned long long __cil_tmp25 ;
56494  void *__cil_tmp26 ;
56495  struct usb_device_descriptor *__cil_tmp27 ;
56496  void const   *__cil_tmp28 ;
56497  void *__cil_tmp29 ;
56498  struct usb_device_descriptor *__cil_tmp30 ;
56499  void const   *__cil_tmp31 ;
56500  unsigned int __cil_tmp32 ;
56501  size_t __cil_tmp33 ;
56502  void *__cil_tmp34 ;
56503  unsigned long __cil_tmp35 ;
56504  void const   *__cil_tmp36 ;
56505  void const   *__cil_tmp37 ;
56506  loff_t __cil_tmp38 ;
56507  loff_t __cil_tmp39 ;
56508  unsigned long __cil_tmp40 ;
56509  size_t __cil_tmp41 ;
56510  ssize_t __cil_tmp42 ;
56511  unsigned long __cil_tmp43 ;
56512  char **__cil_tmp44 ;
56513  char **__cil_tmp45 ;
56514  char *__cil_tmp46 ;
56515  __le16 __cil_tmp47 ;
56516  loff_t __cil_tmp48 ;
56517  loff_t __cil_tmp49 ;
56518  loff_t __cil_tmp50 ;
56519  unsigned long __cil_tmp51 ;
56520  struct usb_host_config *__cil_tmp52 ;
56521  struct usb_host_config *__cil_tmp53 ;
56522  __le16 __cil_tmp54 ;
56523  loff_t __cil_tmp55 ;
56524  unsigned int __cil_tmp56 ;
56525  unsigned int __cil_tmp57 ;
56526  unsigned int __cil_tmp58 ;
56527  size_t __cil_tmp59 ;
56528  loff_t __cil_tmp60 ;
56529  loff_t __cil_tmp61 ;
56530  loff_t __cil_tmp62 ;
56531  loff_t __cil_tmp63 ;
56532  unsigned int __cil_tmp64 ;
56533  unsigned int __cil_tmp65 ;
56534  unsigned int __cil_tmp66 ;
56535  void *__cil_tmp67 ;
56536  loff_t __cil_tmp68 ;
56537  loff_t __cil_tmp69 ;
56538  unsigned long __cil_tmp70 ;
56539  unsigned long __cil_tmp71 ;
56540  char **__cil_tmp72 ;
56541  char **__cil_tmp73 ;
56542  char *__cil_tmp74 ;
56543  void const   *__cil_tmp75 ;
56544  void const   *__cil_tmp76 ;
56545  loff_t __cil_tmp77 ;
56546  loff_t __cil_tmp78 ;
56547  unsigned long __cil_tmp79 ;
56548  size_t __cil_tmp80 ;
56549  ssize_t __cil_tmp81 ;
56550  loff_t __cil_tmp82 ;
56551  __u8 __cil_tmp83 ;
56552  int __cil_tmp84 ;
56553  struct device *__cil_tmp85 ;
56554
56555  {
56556  {
56557#line 154
56558  __cil_tmp23 = file->private_data;
56559#line 154
56560  ps = (struct dev_state *)__cil_tmp23;
56561#line 155
56562  dev = ps->dev;
56563#line 156
56564  ret = 0L;
56565#line 161
56566  pos = *ppos;
56567#line 162
56568  __cil_tmp24 = & dev->dev;
56569#line 162
56570  device_lock(__cil_tmp24);
56571#line 163
56572  tmp = connected(ps);
56573  }
56574#line 163
56575  if (tmp == 0) {
56576#line 164
56577    ret = -19L;
56578#line 165
56579    goto err;
56580  } else
56581#line 166
56582  if (pos < 0LL) {
56583#line 167
56584    ret = -22L;
56585#line 168
56586    goto err;
56587  } else {
56588
56589  }
56590  {
56591#line 171
56592  __cil_tmp25 = (unsigned long long )pos;
56593#line 171
56594  if (__cil_tmp25 <= 17ULL) {
56595#line 175
56596    __len = 18UL;
56597#line 175
56598    if (__len > 63UL) {
56599      {
56600#line 175
56601      __cil_tmp26 = (void *)(& temp_desc);
56602#line 175
56603      __cil_tmp27 = & dev->descriptor;
56604#line 175
56605      __cil_tmp28 = (void const   *)__cil_tmp27;
56606#line 175
56607      __ret = __memcpy(__cil_tmp26, __cil_tmp28, __len);
56608      }
56609    } else {
56610      {
56611#line 175
56612      __cil_tmp29 = (void *)(& temp_desc);
56613#line 175
56614      __cil_tmp30 = & dev->descriptor;
56615#line 175
56616      __cil_tmp31 = (void const   *)__cil_tmp30;
56617#line 175
56618      __ret = __builtin_memcpy(__cil_tmp29, __cil_tmp31, __len);
56619      }
56620    }
56621#line 181
56622    __cil_tmp32 = (unsigned int )pos;
56623#line 181
56624    len = 18U - __cil_tmp32;
56625    {
56626#line 182
56627    __cil_tmp33 = (size_t )len;
56628#line 182
56629    if (__cil_tmp33 > nbytes) {
56630#line 183
56631      len = (unsigned int )nbytes;
56632    } else {
56633
56634    }
56635    }
56636    {
56637#line 184
56638    __cil_tmp34 = (void *)buf;
56639#line 184
56640    __cil_tmp35 = (unsigned long )pos;
56641#line 184
56642    __cil_tmp36 = (void const   *)(& temp_desc);
56643#line 184
56644    __cil_tmp37 = __cil_tmp36 + __cil_tmp35;
56645#line 184
56646    tmp___0 = copy_to_user(__cil_tmp34, __cil_tmp37, len);
56647    }
56648#line 184
56649    if (tmp___0 != 0) {
56650#line 185
56651      ret = -14L;
56652#line 186
56653      goto err;
56654    } else {
56655
56656    }
56657#line 189
56658    __cil_tmp38 = (loff_t )len;
56659#line 189
56660    __cil_tmp39 = *ppos;
56661#line 189
56662    *ppos = __cil_tmp39 + __cil_tmp38;
56663#line 190
56664    __cil_tmp40 = (unsigned long )len;
56665#line 190
56666    buf = buf + __cil_tmp40;
56667#line 191
56668    __cil_tmp41 = (size_t )len;
56669#line 191
56670    nbytes = nbytes - __cil_tmp41;
56671#line 192
56672    __cil_tmp42 = (ssize_t )len;
56673#line 192
56674    ret = __cil_tmp42 + ret;
56675  } else {
56676
56677  }
56678  }
56679#line 195
56680  pos = 18LL;
56681#line 196
56682  i = 0;
56683#line 196
56684  goto ldv_30620;
56685  ldv_30619: 
56686#line 197
56687  __cil_tmp43 = (unsigned long )i;
56688#line 197
56689  __cil_tmp44 = dev->rawdescriptors;
56690#line 197
56691  __cil_tmp45 = __cil_tmp44 + __cil_tmp43;
56692#line 197
56693  __cil_tmp46 = *__cil_tmp45;
56694#line 197
56695  config = (struct usb_config_descriptor *)__cil_tmp46;
56696#line 199
56697  __cil_tmp47 = config->wTotalLength;
56698#line 199
56699  length = (unsigned int )__cil_tmp47;
56700  {
56701#line 201
56702  __cil_tmp48 = (loff_t )length;
56703#line 201
56704  __cil_tmp49 = __cil_tmp48 + pos;
56705#line 201
56706  __cil_tmp50 = *ppos;
56707#line 201
56708  if (__cil_tmp50 < __cil_tmp49) {
56709#line 205
56710    __cil_tmp51 = (unsigned long )i;
56711#line 205
56712    __cil_tmp52 = dev->config;
56713#line 205
56714    __cil_tmp53 = __cil_tmp52 + __cil_tmp51;
56715#line 205
56716    __cil_tmp54 = __cil_tmp53->desc.wTotalLength;
56717#line 205
56718    alloclen = (unsigned int )__cil_tmp54;
56719#line 208
56720    __cil_tmp55 = *ppos;
56721#line 208
56722    __cil_tmp56 = (unsigned int )__cil_tmp55;
56723#line 208
56724    __cil_tmp57 = (unsigned int )pos;
56725#line 208
56726    __cil_tmp58 = __cil_tmp57 - __cil_tmp56;
56727#line 208
56728    len = __cil_tmp58 + length;
56729    {
56730#line 209
56731    __cil_tmp59 = (size_t )len;
56732#line 209
56733    if (__cil_tmp59 > nbytes) {
56734#line 210
56735      len = (unsigned int )nbytes;
56736    } else {
56737
56738    }
56739    }
56740    {
56741#line 213
56742    __cil_tmp60 = *ppos;
56743#line 213
56744    __cil_tmp61 = __cil_tmp60 - pos;
56745#line 213
56746    __cil_tmp62 = (loff_t )alloclen;
56747#line 213
56748    if (__cil_tmp62 > __cil_tmp61) {
56749#line 214
56750      __cil_tmp63 = *ppos;
56751#line 214
56752      __cil_tmp64 = (unsigned int )__cil_tmp63;
56753#line 214
56754      __cil_tmp65 = (unsigned int )pos;
56755#line 214
56756      __cil_tmp66 = __cil_tmp65 - __cil_tmp64;
56757#line 214
56758      alloclen = __cil_tmp66 + alloclen;
56759#line 217
56760      _min1 = len;
56761#line 217
56762      _min2 = alloclen;
56763#line 217
56764      if (_min1 < _min2) {
56765#line 217
56766        tmp___1 = _min1;
56767      } else {
56768#line 217
56769        tmp___1 = _min2;
56770      }
56771      {
56772#line 217
56773      __cil_tmp67 = (void *)buf;
56774#line 217
56775      __cil_tmp68 = *ppos;
56776#line 217
56777      __cil_tmp69 = __cil_tmp68 - pos;
56778#line 217
56779      __cil_tmp70 = (unsigned long )__cil_tmp69;
56780#line 217
56781      __cil_tmp71 = (unsigned long )i;
56782#line 217
56783      __cil_tmp72 = dev->rawdescriptors;
56784#line 217
56785      __cil_tmp73 = __cil_tmp72 + __cil_tmp71;
56786#line 217
56787      __cil_tmp74 = *__cil_tmp73;
56788#line 217
56789      __cil_tmp75 = (void const   *)__cil_tmp74;
56790#line 217
56791      __cil_tmp76 = __cil_tmp75 + __cil_tmp70;
56792#line 217
56793      tmp___2 = copy_to_user(__cil_tmp67, __cil_tmp76, tmp___1);
56794      }
56795#line 217
56796      if (tmp___2 != 0) {
56797#line 218
56798        ret = -14L;
56799#line 219
56800        goto err;
56801      } else {
56802
56803      }
56804    } else {
56805
56806    }
56807    }
56808#line 223
56809    __cil_tmp77 = (loff_t )len;
56810#line 223
56811    __cil_tmp78 = *ppos;
56812#line 223
56813    *ppos = __cil_tmp78 + __cil_tmp77;
56814#line 224
56815    __cil_tmp79 = (unsigned long )len;
56816#line 224
56817    buf = buf + __cil_tmp79;
56818#line 225
56819    __cil_tmp80 = (size_t )len;
56820#line 225
56821    nbytes = nbytes - __cil_tmp80;
56822#line 226
56823    __cil_tmp81 = (ssize_t )len;
56824#line 226
56825    ret = __cil_tmp81 + ret;
56826  } else {
56827
56828  }
56829  }
56830#line 229
56831  __cil_tmp82 = (loff_t )length;
56832#line 229
56833  pos = __cil_tmp82 + pos;
56834#line 196
56835  i = i + 1;
56836  ldv_30620: ;
56837#line 196
56838  if (nbytes != 0UL) {
56839    {
56840#line 196
56841    __cil_tmp83 = dev->descriptor.bNumConfigurations;
56842#line 196
56843    __cil_tmp84 = (int )__cil_tmp83;
56844#line 196
56845    if (__cil_tmp84 > i) {
56846#line 197
56847      goto ldv_30619;
56848    } else {
56849#line 199
56850      goto ldv_30621;
56851    }
56852    }
56853  } else {
56854#line 199
56855    goto ldv_30621;
56856  }
56857  ldv_30621: ;
56858  err: 
56859  {
56860#line 233
56861  __cil_tmp85 = & dev->dev;
56862#line 233
56863  device_unlock(__cil_tmp85);
56864  }
56865#line 234
56866  return (ret);
56867}
56868}
56869#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"
56870static struct async *alloc_async(unsigned int numisoframes ) 
56871{ struct async *as ;
56872  void *tmp ;
56873  struct async *__cil_tmp4 ;
56874  unsigned long __cil_tmp5 ;
56875  unsigned long __cil_tmp6 ;
56876  int __cil_tmp7 ;
56877  struct urb *__cil_tmp8 ;
56878  unsigned long __cil_tmp9 ;
56879  struct urb *__cil_tmp10 ;
56880  unsigned long __cil_tmp11 ;
56881  void const   *__cil_tmp12 ;
56882
56883  {
56884  {
56885#line 245
56886  tmp = kzalloc(88UL, 208U);
56887#line 245
56888  as = (struct async *)tmp;
56889  }
56890  {
56891#line 246
56892  __cil_tmp4 = (struct async *)0;
56893#line 246
56894  __cil_tmp5 = (unsigned long )__cil_tmp4;
56895#line 246
56896  __cil_tmp6 = (unsigned long )as;
56897#line 246
56898  if (__cil_tmp6 == __cil_tmp5) {
56899#line 247
56900    return ((struct async *)0);
56901  } else {
56902
56903  }
56904  }
56905  {
56906#line 248
56907  __cil_tmp7 = (int )numisoframes;
56908#line 248
56909  as->urb = usb_alloc_urb(__cil_tmp7, 208U);
56910  }
56911  {
56912#line 249
56913  __cil_tmp8 = (struct urb *)0;
56914#line 249
56915  __cil_tmp9 = (unsigned long )__cil_tmp8;
56916#line 249
56917  __cil_tmp10 = as->urb;
56918#line 249
56919  __cil_tmp11 = (unsigned long )__cil_tmp10;
56920#line 249
56921  if (__cil_tmp11 == __cil_tmp9) {
56922    {
56923#line 250
56924    __cil_tmp12 = (void const   *)as;
56925#line 250
56926    kfree(__cil_tmp12);
56927    }
56928#line 251
56929    return ((struct async *)0);
56930  } else {
56931
56932  }
56933  }
56934#line 253
56935  return (as);
56936}
56937}
56938#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"
56939static void free_async(struct async *as ) 
56940{ struct pid *__cil_tmp2 ;
56941  struct urb *__cil_tmp3 ;
56942  void *__cil_tmp4 ;
56943  void const   *__cil_tmp5 ;
56944  struct urb *__cil_tmp6 ;
56945  unsigned char *__cil_tmp7 ;
56946  void const   *__cil_tmp8 ;
56947  struct urb *__cil_tmp9 ;
56948  void const   *__cil_tmp10 ;
56949
56950  {
56951  {
56952#line 258
56953  __cil_tmp2 = as->pid;
56954#line 258
56955  put_pid(__cil_tmp2);
56956#line 259
56957  __cil_tmp3 = as->urb;
56958#line 259
56959  __cil_tmp4 = __cil_tmp3->transfer_buffer;
56960#line 259
56961  __cil_tmp5 = (void const   *)__cil_tmp4;
56962#line 259
56963  kfree(__cil_tmp5);
56964#line 260
56965  __cil_tmp6 = as->urb;
56966#line 260
56967  __cil_tmp7 = __cil_tmp6->setup_packet;
56968#line 260
56969  __cil_tmp8 = (void const   *)__cil_tmp7;
56970#line 260
56971  kfree(__cil_tmp8);
56972#line 261
56973  __cil_tmp9 = as->urb;
56974#line 261
56975  usb_free_urb(__cil_tmp9);
56976#line 262
56977  __cil_tmp10 = (void const   *)as;
56978#line 262
56979  kfree(__cil_tmp10);
56980  }
56981#line 263
56982  return;
56983}
56984}
56985#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"
56986static void async_newpending(struct async *as ) 
56987{ struct dev_state *ps ;
56988  unsigned long flags ;
56989  raw_spinlock_t *tmp ;
56990  spinlock_t *__cil_tmp5 ;
56991  struct list_head *__cil_tmp6 ;
56992  struct list_head *__cil_tmp7 ;
56993  spinlock_t *__cil_tmp8 ;
56994
56995  {
56996  {
56997#line 267
56998  ps = as->ps;
56999#line 270
57000  __cil_tmp5 = & ps->lock;
57001#line 270
57002  tmp = spinlock_check(__cil_tmp5);
57003#line 270
57004  flags = _raw_spin_lock_irqsave(tmp);
57005#line 271
57006  __cil_tmp6 = & as->asynclist;
57007#line 271
57008  __cil_tmp7 = & ps->async_pending;
57009#line 271
57010  list_add_tail(__cil_tmp6, __cil_tmp7);
57011#line 272
57012  __cil_tmp8 = & ps->lock;
57013#line 272
57014  spin_unlock_irqrestore(__cil_tmp8, flags);
57015  }
57016#line 273
57017  return;
57018}
57019}
57020#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"
57021static void async_removepending(struct async *as ) 
57022{ struct dev_state *ps ;
57023  unsigned long flags ;
57024  raw_spinlock_t *tmp ;
57025  spinlock_t *__cil_tmp5 ;
57026  struct list_head *__cil_tmp6 ;
57027  spinlock_t *__cil_tmp7 ;
57028
57029  {
57030  {
57031#line 277
57032  ps = as->ps;
57033#line 280
57034  __cil_tmp5 = & ps->lock;
57035#line 280
57036  tmp = spinlock_check(__cil_tmp5);
57037#line 280
57038  flags = _raw_spin_lock_irqsave(tmp);
57039#line 281
57040  __cil_tmp6 = & as->asynclist;
57041#line 281
57042  list_del_init(__cil_tmp6);
57043#line 282
57044  __cil_tmp7 = & ps->lock;
57045#line 282
57046  spin_unlock_irqrestore(__cil_tmp7, flags);
57047  }
57048#line 283
57049  return;
57050}
57051}
57052#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"
57053static struct async *async_getcompleted(struct dev_state *ps ) 
57054{ unsigned long flags ;
57055  struct async *as ;
57056  raw_spinlock_t *tmp ;
57057  struct list_head  const  *__mptr ;
57058  int tmp___0 ;
57059  spinlock_t *__cil_tmp7 ;
57060  struct list_head *__cil_tmp8 ;
57061  struct list_head  const  *__cil_tmp9 ;
57062  struct list_head *__cil_tmp10 ;
57063  struct list_head *__cil_tmp11 ;
57064  spinlock_t *__cil_tmp12 ;
57065
57066  {
57067  {
57068#line 288
57069  as = (struct async *)0;
57070#line 290
57071  __cil_tmp7 = & ps->lock;
57072#line 290
57073  tmp = spinlock_check(__cil_tmp7);
57074#line 290
57075  flags = _raw_spin_lock_irqsave(tmp);
57076#line 291
57077  __cil_tmp8 = & ps->async_completed;
57078#line 291
57079  __cil_tmp9 = (struct list_head  const  *)__cil_tmp8;
57080#line 291
57081  tmp___0 = list_empty(__cil_tmp9);
57082  }
57083#line 291
57084  if (tmp___0 == 0) {
57085    {
57086#line 292
57087    __cil_tmp10 = ps->async_completed.next;
57088#line 292
57089    __mptr = (struct list_head  const  *)__cil_tmp10;
57090#line 292
57091    as = (struct async *)__mptr;
57092#line 294
57093    __cil_tmp11 = & as->asynclist;
57094#line 294
57095    list_del_init(__cil_tmp11);
57096    }
57097  } else {
57098
57099  }
57100  {
57101#line 296
57102  __cil_tmp12 = & ps->lock;
57103#line 296
57104  spin_unlock_irqrestore(__cil_tmp12, flags);
57105  }
57106#line 297
57107  return (as);
57108}
57109}
57110#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"
57111static struct async *async_getpending(struct dev_state *ps , void *userurb ) 
57112{ unsigned long flags ;
57113  struct async *as ;
57114  raw_spinlock_t *tmp ;
57115  struct list_head  const  *__mptr ;
57116  struct list_head  const  *__mptr___0 ;
57117  spinlock_t *__cil_tmp8 ;
57118  struct list_head *__cil_tmp9 ;
57119  unsigned long __cil_tmp10 ;
57120  void *__cil_tmp11 ;
57121  unsigned long __cil_tmp12 ;
57122  struct list_head *__cil_tmp13 ;
57123  spinlock_t *__cil_tmp14 ;
57124  struct list_head *__cil_tmp15 ;
57125  struct list_head *__cil_tmp16 ;
57126  unsigned long __cil_tmp17 ;
57127  struct list_head *__cil_tmp18 ;
57128  unsigned long __cil_tmp19 ;
57129  spinlock_t *__cil_tmp20 ;
57130
57131  {
57132  {
57133#line 306
57134  __cil_tmp8 = & ps->lock;
57135#line 306
57136  tmp = spinlock_check(__cil_tmp8);
57137#line 306
57138  flags = _raw_spin_lock_irqsave(tmp);
57139#line 307
57140  __cil_tmp9 = ps->async_pending.next;
57141#line 307
57142  __mptr = (struct list_head  const  *)__cil_tmp9;
57143#line 307
57144  as = (struct async *)__mptr;
57145  }
57146#line 307
57147  goto ldv_30669;
57148  ldv_30668: ;
57149  {
57150#line 308
57151  __cil_tmp10 = (unsigned long )userurb;
57152#line 308
57153  __cil_tmp11 = as->userurb;
57154#line 308
57155  __cil_tmp12 = (unsigned long )__cil_tmp11;
57156#line 308
57157  if (__cil_tmp12 == __cil_tmp10) {
57158    {
57159#line 309
57160    __cil_tmp13 = & as->asynclist;
57161#line 309
57162    list_del_init(__cil_tmp13);
57163#line 310
57164    __cil_tmp14 = & ps->lock;
57165#line 310
57166    spin_unlock_irqrestore(__cil_tmp14, flags);
57167    }
57168#line 311
57169    return (as);
57170  } else {
57171
57172  }
57173  }
57174#line 307
57175  __cil_tmp15 = as->asynclist.next;
57176#line 307
57177  __mptr___0 = (struct list_head  const  *)__cil_tmp15;
57178#line 307
57179  as = (struct async *)__mptr___0;
57180  ldv_30669: ;
57181  {
57182#line 307
57183  __cil_tmp16 = & ps->async_pending;
57184#line 307
57185  __cil_tmp17 = (unsigned long )__cil_tmp16;
57186#line 307
57187  __cil_tmp18 = & as->asynclist;
57188#line 307
57189  __cil_tmp19 = (unsigned long )__cil_tmp18;
57190#line 307
57191  if (__cil_tmp19 != __cil_tmp17) {
57192#line 308
57193    goto ldv_30668;
57194  } else {
57195#line 310
57196    goto ldv_30670;
57197  }
57198  }
57199  ldv_30670: 
57200  {
57201#line 313
57202  __cil_tmp20 = & ps->lock;
57203#line 313
57204  spin_unlock_irqrestore(__cil_tmp20, flags);
57205  }
57206#line 314
57207  return ((struct async *)0);
57208}
57209}
57210#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"
57211static void snoop_urb(struct usb_device *udev , void *userurb , int pipe , unsigned int length ,
57212                      int timeout_or_status , enum snoop_when when , unsigned char *data ,
57213                      unsigned int data_len ) 
57214{ char const   *types[4U] ;
57215  char const   *dirs[2U] ;
57216  int ep ;
57217  char const   *t ;
57218  char const   *d ;
57219  int __cil_tmp14 ;
57220  void *__cil_tmp15 ;
57221  unsigned long __cil_tmp16 ;
57222  unsigned long __cil_tmp17 ;
57223  unsigned int __cil_tmp18 ;
57224  struct device *__cil_tmp19 ;
57225  struct device  const  *__cil_tmp20 ;
57226  struct device *__cil_tmp21 ;
57227  struct device  const  *__cil_tmp22 ;
57228  unsigned int __cil_tmp23 ;
57229  struct device *__cil_tmp24 ;
57230  struct device  const  *__cil_tmp25 ;
57231  struct device *__cil_tmp26 ;
57232  struct device  const  *__cil_tmp27 ;
57233  unsigned char *__cil_tmp28 ;
57234  unsigned long __cil_tmp29 ;
57235  unsigned long __cil_tmp30 ;
57236  void const   *__cil_tmp31 ;
57237  size_t __cil_tmp32 ;
57238  bool __cil_tmp33 ;
57239
57240  {
57241#line 322
57242  types[0] = "isoc";
57243#line 322
57244  types[1] = "int";
57245#line 322
57246  types[2] = "ctrl";
57247#line 322
57248  types[3] = "bulk";
57249#line 323
57250  dirs[0] = "out";
57251#line 323
57252  dirs[1] = "in";
57253#line 327
57254  if (usbfs_snoop == 0) {
57255#line 328
57256    return;
57257  } else {
57258
57259  }
57260#line 330
57261  __cil_tmp14 = pipe >> 15;
57262#line 330
57263  ep = __cil_tmp14 & 15;
57264#line 331
57265  t = types[(int )((unsigned int )pipe >> 30)];
57266#line 332
57267  d = dirs[(pipe & 128) != 0];
57268  {
57269#line 334
57270  __cil_tmp15 = (void *)0;
57271#line 334
57272  __cil_tmp16 = (unsigned long )__cil_tmp15;
57273#line 334
57274  __cil_tmp17 = (unsigned long )userurb;
57275#line 334
57276  if (__cil_tmp17 != __cil_tmp16) {
57277    {
57278#line 335
57279    __cil_tmp18 = (unsigned int )when;
57280#line 335
57281    if (__cil_tmp18 == 0U) {
57282      {
57283#line 336
57284      __cil_tmp19 = & udev->dev;
57285#line 336
57286      __cil_tmp20 = (struct device  const  *)__cil_tmp19;
57287#line 336
57288      _dev_info(__cil_tmp20, "userurb %p, ep%d %s-%s, length %u\n", userurb, ep, t,
57289                d, length);
57290      }
57291    } else {
57292      {
57293#line 340
57294      __cil_tmp21 = & udev->dev;
57295#line 340
57296      __cil_tmp22 = (struct device  const  *)__cil_tmp21;
57297#line 340
57298      _dev_info(__cil_tmp22, "userurb %p, ep%d %s-%s, actual_length %u status %d\n",
57299                userurb, ep, t, d, length, timeout_or_status);
57300      }
57301    }
57302    }
57303  } else {
57304    {
57305#line 345
57306    __cil_tmp23 = (unsigned int )when;
57307#line 345
57308    if (__cil_tmp23 == 0U) {
57309      {
57310#line 346
57311      __cil_tmp24 = & udev->dev;
57312#line 346
57313      __cil_tmp25 = (struct device  const  *)__cil_tmp24;
57314#line 346
57315      _dev_info(__cil_tmp25, "ep%d %s-%s, length %u, timeout %d\n", ep, t, d, length,
57316                timeout_or_status);
57317      }
57318    } else {
57319      {
57320#line 350
57321      __cil_tmp26 = & udev->dev;
57322#line 350
57323      __cil_tmp27 = (struct device  const  *)__cil_tmp26;
57324#line 350
57325      _dev_info(__cil_tmp27, "ep%d %s-%s, actual_length %u, status %d\n", ep, t, d,
57326                length, timeout_or_status);
57327      }
57328    }
57329    }
57330  }
57331  }
57332  {
57333#line 355
57334  __cil_tmp28 = (unsigned char *)0;
57335#line 355
57336  __cil_tmp29 = (unsigned long )__cil_tmp28;
57337#line 355
57338  __cil_tmp30 = (unsigned long )data;
57339#line 355
57340  if (__cil_tmp30 != __cil_tmp29) {
57341#line 355
57342    if (data_len != 0U) {
57343      {
57344#line 356
57345      __cil_tmp31 = (void const   *)data;
57346#line 356
57347      __cil_tmp32 = (size_t )data_len;
57348#line 356
57349      __cil_tmp33 = (bool )1;
57350#line 356
57351      print_hex_dump("<7>", "data: ", 0, 32, 1, __cil_tmp31, __cil_tmp32, __cil_tmp33);
57352      }
57353    } else {
57354
57355    }
57356  } else {
57357
57358  }
57359  }
57360#line 357
57361  return;
57362}
57363}
57364#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"
57365static void cancel_bulk_urbs(struct dev_state *ps , unsigned int bulk_addr ) 
57366{ struct async *as ;
57367  struct list_head  const  *__mptr ;
57368  struct list_head  const  *__mptr___0 ;
57369  struct list_head  const  *__mptr___1 ;
57370  struct list_head  const  *__mptr___2 ;
57371  struct list_head *__cil_tmp8 ;
57372  u8 __cil_tmp9 ;
57373  unsigned int __cil_tmp10 ;
57374  u8 __cil_tmp11 ;
57375  unsigned int __cil_tmp12 ;
57376  struct list_head *__cil_tmp13 ;
57377  struct list_head *__cil_tmp14 ;
57378  unsigned long __cil_tmp15 ;
57379  struct list_head *__cil_tmp16 ;
57380  unsigned long __cil_tmp17 ;
57381  int __cil_tmp18 ;
57382  int __cil_tmp19 ;
57383  u32 __cil_tmp20 ;
57384  u32 __cil_tmp21 ;
57385  struct list_head *__cil_tmp22 ;
57386  u8 __cil_tmp23 ;
57387  unsigned int __cil_tmp24 ;
57388  spinlock_t *__cil_tmp25 ;
57389  struct urb *__cil_tmp26 ;
57390  spinlock_t *__cil_tmp27 ;
57391  struct list_head *__cil_tmp28 ;
57392  struct list_head *__cil_tmp29 ;
57393  unsigned long __cil_tmp30 ;
57394  struct list_head *__cil_tmp31 ;
57395  unsigned long __cil_tmp32 ;
57396
57397  {
57398#line 375
57399  __cil_tmp8 = ps->async_pending.next;
57400#line 375
57401  __mptr = (struct list_head  const  *)__cil_tmp8;
57402#line 375
57403  as = (struct async *)__mptr;
57404#line 375
57405  goto ldv_30697;
57406  ldv_30696: ;
57407  {
57408#line 376
57409  __cil_tmp9 = as->bulk_addr;
57410#line 376
57411  __cil_tmp10 = (unsigned int )__cil_tmp9;
57412#line 376
57413  if (__cil_tmp10 == bulk_addr) {
57414    {
57415#line 377
57416    __cil_tmp11 = as->bulk_status;
57417#line 377
57418    __cil_tmp12 = (unsigned int )__cil_tmp11;
57419#line 377
57420    if (__cil_tmp12 != 1U) {
57421#line 378
57422      goto rescan;
57423    } else {
57424
57425    }
57426    }
57427#line 379
57428    as->bulk_status = (u8 )2U;
57429#line 380
57430    as->bulk_addr = (u8 )0U;
57431  } else {
57432
57433  }
57434  }
57435#line 375
57436  __cil_tmp13 = as->asynclist.next;
57437#line 375
57438  __mptr___0 = (struct list_head  const  *)__cil_tmp13;
57439#line 375
57440  as = (struct async *)__mptr___0;
57441  ldv_30697: ;
57442  {
57443#line 375
57444  __cil_tmp14 = & ps->async_pending;
57445#line 375
57446  __cil_tmp15 = (unsigned long )__cil_tmp14;
57447#line 375
57448  __cil_tmp16 = & as->asynclist;
57449#line 375
57450  __cil_tmp17 = (unsigned long )__cil_tmp16;
57451#line 375
57452  if (__cil_tmp17 != __cil_tmp15) {
57453#line 376
57454    goto ldv_30696;
57455  } else {
57456#line 378
57457    goto ldv_30698;
57458  }
57459  }
57460  ldv_30698: 
57461#line 383
57462  __cil_tmp18 = (int )bulk_addr;
57463#line 383
57464  __cil_tmp19 = 1 << __cil_tmp18;
57465#line 383
57466  __cil_tmp20 = (u32 )__cil_tmp19;
57467#line 383
57468  __cil_tmp21 = ps->disabled_bulk_eps;
57469#line 383
57470  ps->disabled_bulk_eps = __cil_tmp21 | __cil_tmp20;
57471  rescan: 
57472#line 387
57473  __cil_tmp22 = ps->async_pending.next;
57474#line 387
57475  __mptr___1 = (struct list_head  const  *)__cil_tmp22;
57476#line 387
57477  as = (struct async *)__mptr___1;
57478#line 387
57479  goto ldv_30704;
57480  ldv_30703: ;
57481  {
57482#line 388
57483  __cil_tmp23 = as->bulk_status;
57484#line 388
57485  __cil_tmp24 = (unsigned int )__cil_tmp23;
57486#line 388
57487  if (__cil_tmp24 == 2U) {
57488    {
57489#line 389
57490    as->bulk_status = (u8 )0U;
57491#line 390
57492    __cil_tmp25 = & ps->lock;
57493#line 390
57494    spin_unlock(__cil_tmp25);
57495#line 391
57496    __cil_tmp26 = as->urb;
57497#line 391
57498    usb_unlink_urb(__cil_tmp26);
57499#line 392
57500    __cil_tmp27 = & ps->lock;
57501#line 392
57502    spin_lock(__cil_tmp27);
57503    }
57504#line 393
57505    goto rescan;
57506  } else {
57507
57508  }
57509  }
57510#line 387
57511  __cil_tmp28 = as->asynclist.next;
57512#line 387
57513  __mptr___2 = (struct list_head  const  *)__cil_tmp28;
57514#line 387
57515  as = (struct async *)__mptr___2;
57516  ldv_30704: ;
57517  {
57518#line 387
57519  __cil_tmp29 = & ps->async_pending;
57520#line 387
57521  __cil_tmp30 = (unsigned long )__cil_tmp29;
57522#line 387
57523  __cil_tmp31 = & as->asynclist;
57524#line 387
57525  __cil_tmp32 = (unsigned long )__cil_tmp31;
57526#line 387
57527  if (__cil_tmp32 != __cil_tmp30) {
57528#line 388
57529    goto ldv_30703;
57530  } else {
57531#line 390
57532    goto ldv_30705;
57533  }
57534  }
57535  ldv_30705: ;
57536#line 392
57537  return;
57538}
57539}
57540#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"
57541static void async_completed(struct urb *urb ) 
57542{ struct async *as ;
57543  struct dev_state *ps ;
57544  struct siginfo sinfo ;
57545  struct pid *pid ;
57546  uid_t uid ;
57547  uid_t euid ;
57548  u32 secid ;
57549  int signr ;
57550  unsigned char *tmp ;
57551  void *__cil_tmp11 ;
57552  spinlock_t *__cil_tmp12 ;
57553  struct list_head *__cil_tmp13 ;
57554  struct list_head *__cil_tmp14 ;
57555  unsigned int __cil_tmp15 ;
57556  unsigned int __cil_tmp16 ;
57557  struct usb_device *__cil_tmp17 ;
57558  struct device *__cil_tmp18 ;
57559  struct device  const  *__cil_tmp19 ;
57560  unsigned int __cil_tmp20 ;
57561  unsigned int __cil_tmp21 ;
57562  void *__cil_tmp22 ;
57563  struct usb_device *__cil_tmp23 ;
57564  void *__cil_tmp24 ;
57565  unsigned int __cil_tmp25 ;
57566  int __cil_tmp26 ;
57567  u32 __cil_tmp27 ;
57568  int __cil_tmp28 ;
57569  enum snoop_when __cil_tmp29 ;
57570  u32 __cil_tmp30 ;
57571  int __cil_tmp31 ;
57572  u8 __cil_tmp32 ;
57573  unsigned int __cil_tmp33 ;
57574  int __cil_tmp34 ;
57575  int __cil_tmp35 ;
57576  u8 __cil_tmp36 ;
57577  unsigned int __cil_tmp37 ;
57578  spinlock_t *__cil_tmp38 ;
57579  wait_queue_head_t *__cil_tmp39 ;
57580  void *__cil_tmp40 ;
57581
57582  {
57583  {
57584#line 400
57585  __cil_tmp11 = urb->context;
57586#line 400
57587  as = (struct async *)__cil_tmp11;
57588#line 401
57589  ps = as->ps;
57590#line 403
57591  pid = (struct pid *)0;
57592#line 404
57593  uid = 0U;
57594#line 405
57595  euid = 0U;
57596#line 406
57597  secid = 0U;
57598#line 409
57599  __cil_tmp12 = & ps->lock;
57600#line 409
57601  spin_lock(__cil_tmp12);
57602#line 410
57603  __cil_tmp13 = & as->asynclist;
57604#line 410
57605  __cil_tmp14 = & ps->async_completed;
57606#line 410
57607  list_move_tail(__cil_tmp13, __cil_tmp14);
57608#line 411
57609  as->status = urb->status;
57610#line 412
57611  __cil_tmp15 = as->signr;
57612#line 412
57613  signr = (int )__cil_tmp15;
57614  }
57615#line 413
57616  if (signr != 0) {
57617#line 414
57618    __cil_tmp16 = as->signr;
57619#line 414
57620    sinfo.si_signo = (int )__cil_tmp16;
57621#line 415
57622    sinfo.si_errno = as->status;
57623#line 416
57624    sinfo.si_code = -4;
57625#line 417
57626    sinfo._sifields._sigfault._addr = as->userurb;
57627#line 418
57628    pid = as->pid;
57629#line 419
57630    uid = as->uid;
57631#line 420
57632    euid = as->euid;
57633#line 421
57634    secid = as->secid;
57635  } else {
57636
57637  }
57638#line 423
57639  if (usbfs_snoop != 0) {
57640    {
57641#line 423
57642    __cil_tmp17 = urb->dev;
57643#line 423
57644    __cil_tmp18 = & __cil_tmp17->dev;
57645#line 423
57646    __cil_tmp19 = (struct device  const  *)__cil_tmp18;
57647#line 423
57648    _dev_info(__cil_tmp19, "urb complete\n");
57649    }
57650  } else {
57651
57652  }
57653  {
57654#line 424
57655  __cil_tmp20 = urb->transfer_flags;
57656#line 424
57657  __cil_tmp21 = __cil_tmp20 & 512U;
57658#line 424
57659  if (__cil_tmp21 != 0U) {
57660#line 424
57661    __cil_tmp22 = urb->transfer_buffer;
57662#line 424
57663    tmp = (unsigned char *)__cil_tmp22;
57664  } else {
57665#line 424
57666    tmp = (unsigned char *)0;
57667  }
57668  }
57669  {
57670#line 424
57671  __cil_tmp23 = urb->dev;
57672#line 424
57673  __cil_tmp24 = as->userurb;
57674#line 424
57675  __cil_tmp25 = urb->pipe;
57676#line 424
57677  __cil_tmp26 = (int )__cil_tmp25;
57678#line 424
57679  __cil_tmp27 = urb->actual_length;
57680#line 424
57681  __cil_tmp28 = as->status;
57682#line 424
57683  __cil_tmp29 = (enum snoop_when )1;
57684#line 424
57685  __cil_tmp30 = urb->actual_length;
57686#line 424
57687  snoop_urb(__cil_tmp23, __cil_tmp24, __cil_tmp26, __cil_tmp27, __cil_tmp28, __cil_tmp29,
57688            tmp, __cil_tmp30);
57689  }
57690  {
57691#line 428
57692  __cil_tmp31 = as->status;
57693#line 428
57694  if (__cil_tmp31 < 0) {
57695    {
57696#line 428
57697    __cil_tmp32 = as->bulk_addr;
57698#line 428
57699    __cil_tmp33 = (unsigned int )__cil_tmp32;
57700#line 428
57701    if (__cil_tmp33 != 0U) {
57702      {
57703#line 428
57704      __cil_tmp34 = as->status;
57705#line 428
57706      if (__cil_tmp34 != -104) {
57707        {
57708#line 428
57709        __cil_tmp35 = as->status;
57710#line 428
57711        if (__cil_tmp35 != -2) {
57712          {
57713#line 430
57714          __cil_tmp36 = as->bulk_addr;
57715#line 430
57716          __cil_tmp37 = (unsigned int )__cil_tmp36;
57717#line 430
57718          cancel_bulk_urbs(ps, __cil_tmp37);
57719          }
57720        } else {
57721
57722        }
57723        }
57724      } else {
57725
57726      }
57727      }
57728    } else {
57729
57730    }
57731    }
57732  } else {
57733
57734  }
57735  }
57736  {
57737#line 431
57738  __cil_tmp38 = & ps->lock;
57739#line 431
57740  spin_unlock(__cil_tmp38);
57741  }
57742#line 433
57743  if (signr != 0) {
57744    {
57745#line 434
57746    kill_pid_info_as_uid(sinfo.si_signo, & sinfo, pid, uid, euid, secid);
57747    }
57748  } else {
57749
57750  }
57751  {
57752#line 437
57753  __cil_tmp39 = & ps->wait;
57754#line 437
57755  __cil_tmp40 = (void *)0;
57756#line 437
57757  __wake_up(__cil_tmp39, 3U, 1, __cil_tmp40);
57758  }
57759#line 438
57760  return;
57761}
57762}
57763#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"
57764static void destroy_async(struct dev_state *ps , struct list_head *list ) 
57765{ struct async *as ;
57766  unsigned long flags ;
57767  raw_spinlock_t *tmp ;
57768  struct list_head  const  *__mptr ;
57769  raw_spinlock_t *tmp___0 ;
57770  int tmp___1 ;
57771  spinlock_t *__cil_tmp9 ;
57772  struct list_head *__cil_tmp10 ;
57773  struct list_head *__cil_tmp11 ;
57774  spinlock_t *__cil_tmp12 ;
57775  struct urb *__cil_tmp13 ;
57776  spinlock_t *__cil_tmp14 ;
57777  struct list_head  const  *__cil_tmp15 ;
57778  spinlock_t *__cil_tmp16 ;
57779
57780  {
57781  {
57782#line 445
57783  __cil_tmp9 = & ps->lock;
57784#line 445
57785  tmp = spinlock_check(__cil_tmp9);
57786#line 445
57787  flags = _raw_spin_lock_irqsave(tmp);
57788  }
57789#line 446
57790  goto ldv_30732;
57791  ldv_30731: 
57792  {
57793#line 447
57794  __cil_tmp10 = list->next;
57795#line 447
57796  __mptr = (struct list_head  const  *)__cil_tmp10;
57797#line 447
57798  as = (struct async *)__mptr;
57799#line 448
57800  __cil_tmp11 = & as->asynclist;
57801#line 448
57802  list_del_init(__cil_tmp11);
57803#line 451
57804  __cil_tmp12 = & ps->lock;
57805#line 451
57806  spin_unlock_irqrestore(__cil_tmp12, flags);
57807#line 452
57808  __cil_tmp13 = as->urb;
57809#line 452
57810  usb_kill_urb(__cil_tmp13);
57811#line 453
57812  __cil_tmp14 = & ps->lock;
57813#line 453
57814  tmp___0 = spinlock_check(__cil_tmp14);
57815#line 453
57816  flags = _raw_spin_lock_irqsave(tmp___0);
57817  }
57818  ldv_30732: 
57819  {
57820#line 446
57821  __cil_tmp15 = (struct list_head  const  *)list;
57822#line 446
57823  tmp___1 = list_empty(__cil_tmp15);
57824  }
57825#line 446
57826  if (tmp___1 == 0) {
57827#line 447
57828    goto ldv_30731;
57829  } else {
57830#line 449
57831    goto ldv_30733;
57832  }
57833  ldv_30733: 
57834  {
57835#line 455
57836  __cil_tmp16 = & ps->lock;
57837#line 455
57838  spin_unlock_irqrestore(__cil_tmp16, flags);
57839  }
57840#line 456
57841  return;
57842}
57843}
57844#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"
57845static void destroy_async_on_interface(struct dev_state *ps , unsigned int ifnum ) 
57846{ struct list_head *p ;
57847  struct list_head *q ;
57848  struct list_head hitlist ;
57849  unsigned long flags ;
57850  raw_spinlock_t *tmp ;
57851  struct list_head  const  *__mptr ;
57852  spinlock_t *__cil_tmp9 ;
57853  struct async *__cil_tmp10 ;
57854  unsigned int __cil_tmp11 ;
57855  unsigned long __cil_tmp12 ;
57856  struct list_head *__cil_tmp13 ;
57857  unsigned long __cil_tmp14 ;
57858  spinlock_t *__cil_tmp15 ;
57859
57860  {
57861  {
57862#line 464
57863  INIT_LIST_HEAD(& hitlist);
57864#line 465
57865  __cil_tmp9 = & ps->lock;
57866#line 465
57867  tmp = spinlock_check(__cil_tmp9);
57868#line 465
57869  flags = _raw_spin_lock_irqsave(tmp);
57870#line 466
57871  p = ps->async_pending.next;
57872#line 466
57873  q = p->next;
57874  }
57875#line 466
57876  goto ldv_30748;
57877  ldv_30747: 
57878#line 467
57879  __mptr = (struct list_head  const  *)p;
57880  {
57881#line 467
57882  __cil_tmp10 = (struct async *)__mptr;
57883#line 467
57884  __cil_tmp11 = __cil_tmp10->ifnum;
57885#line 467
57886  if (__cil_tmp11 == ifnum) {
57887    {
57888#line 468
57889    list_move_tail(p, & hitlist);
57890    }
57891  } else {
57892
57893  }
57894  }
57895#line 466
57896  p = q;
57897#line 466
57898  q = p->next;
57899  ldv_30748: ;
57900  {
57901#line 466
57902  __cil_tmp12 = (unsigned long )p;
57903#line 466
57904  __cil_tmp13 = & ps->async_pending;
57905#line 466
57906  __cil_tmp14 = (unsigned long )__cil_tmp13;
57907#line 466
57908  if (__cil_tmp14 != __cil_tmp12) {
57909#line 467
57910    goto ldv_30747;
57911  } else {
57912#line 469
57913    goto ldv_30749;
57914  }
57915  }
57916  ldv_30749: 
57917  {
57918#line 469
57919  __cil_tmp15 = & ps->lock;
57920#line 469
57921  spin_unlock_irqrestore(__cil_tmp15, flags);
57922#line 470
57923  destroy_async(ps, & hitlist);
57924  }
57925#line 471
57926  return;
57927}
57928}
57929#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"
57930static void destroy_all_async(struct dev_state *ps ) 
57931{ struct list_head *__cil_tmp2 ;
57932
57933  {
57934  {
57935#line 475
57936  __cil_tmp2 = & ps->async_pending;
57937#line 475
57938  destroy_async(ps, __cil_tmp2);
57939  }
57940#line 476
57941  return;
57942}
57943}
57944#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"
57945static int driver_probe(struct usb_interface *intf , struct usb_device_id  const  *id ) 
57946{ 
57947
57948  {
57949#line 487
57950  return (-19);
57951}
57952}
57953#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"
57954static void driver_disconnect(struct usb_interface *intf ) 
57955{ struct dev_state *ps ;
57956  void *tmp ;
57957  unsigned int ifnum ;
57958  long tmp___0 ;
57959  struct usb_host_interface *__cil_tmp6 ;
57960  __u8 __cil_tmp7 ;
57961  struct dev_state *__cil_tmp8 ;
57962  unsigned long __cil_tmp9 ;
57963  unsigned long __cil_tmp10 ;
57964  int __cil_tmp11 ;
57965  long __cil_tmp12 ;
57966  int __cil_tmp13 ;
57967  unsigned long *__cil_tmp14 ;
57968  unsigned long volatile   *__cil_tmp15 ;
57969  struct device *__cil_tmp16 ;
57970  struct device  const  *__cil_tmp17 ;
57971  void *__cil_tmp18 ;
57972
57973  {
57974  {
57975#line 492
57976  tmp = usb_get_intfdata(intf);
57977#line 492
57978  ps = (struct dev_state *)tmp;
57979#line 493
57980  __cil_tmp6 = intf->altsetting;
57981#line 493
57982  __cil_tmp7 = __cil_tmp6->desc.bInterfaceNumber;
57983#line 493
57984  ifnum = (unsigned int )__cil_tmp7;
57985  }
57986  {
57987#line 495
57988  __cil_tmp8 = (struct dev_state *)0;
57989#line 495
57990  __cil_tmp9 = (unsigned long )__cil_tmp8;
57991#line 495
57992  __cil_tmp10 = (unsigned long )ps;
57993#line 495
57994  if (__cil_tmp10 == __cil_tmp9) {
57995#line 496
57996    return;
57997  } else {
57998
57999  }
58000  }
58001  {
58002#line 502
58003  __cil_tmp11 = ifnum <= 63U;
58004#line 502
58005  __cil_tmp12 = (long )__cil_tmp11;
58006#line 502
58007  tmp___0 = __builtin_expect(__cil_tmp12, 1L);
58008  }
58009#line 502
58010  if (tmp___0 != 0L) {
58011    {
58012#line 503
58013    __cil_tmp13 = (int )ifnum;
58014#line 503
58015    __cil_tmp14 = & ps->ifclaimed;
58016#line 503
58017    __cil_tmp15 = (unsigned long volatile   *)__cil_tmp14;
58018#line 503
58019    clear_bit(__cil_tmp13, __cil_tmp15);
58020    }
58021  } else {
58022    {
58023#line 505
58024    __cil_tmp16 = & intf->dev;
58025#line 505
58026    __cil_tmp17 = (struct device  const  *)__cil_tmp16;
58027#line 505
58028    dev_warn(__cil_tmp17, "interface number %u out of range\n", ifnum);
58029    }
58030  }
58031  {
58032#line 508
58033  __cil_tmp18 = (void *)0;
58034#line 508
58035  usb_set_intfdata(intf, __cil_tmp18);
58036#line 511
58037  destroy_async_on_interface(ps, ifnum);
58038  }
58039#line 512
58040  return;
58041}
58042}
58043#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"
58044static int driver_suspend(struct usb_interface *intf , pm_message_t msg ) 
58045{ 
58046
58047  {
58048#line 519
58049  return (0);
58050}
58051}
58052#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"
58053static int driver_resume(struct usb_interface *intf ) 
58054{ 
58055
58056  {
58057#line 524
58058  return (0);
58059}
58060}
58061#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"
58062struct usb_driver usbfs_driver  = 
58063#line 527
58064     {"usbfs", & driver_probe, & driver_disconnect, (int (*)(struct usb_interface * ,
58065                                                           unsigned int  , void * ))0,
58066    & driver_suspend, & driver_resume, (int (*)(struct usb_interface * ))0, (int (*)(struct usb_interface * ))0,
58067    (int (*)(struct usb_interface * ))0, (struct usb_device_id  const  *)0, {{{{{0U},
58068                                                                                0U,
58069                                                                                0U,
58070                                                                                (void *)0,
58071                                                                                {(struct lock_class_key *)0,
58072                                                                                 {(struct lock_class *)0,
58073                                                                                  (struct lock_class *)0},
58074                                                                                 (char const   *)0,
58075                                                                                 0,
58076                                                                                 0UL}}}},
58077                                                                             {(struct list_head *)0,
58078                                                                              (struct list_head *)0}},
58079    {{(char const   *)0, (struct bus_type *)0, (struct module *)0, (char const   *)0,
58080      (_Bool)0, (struct of_device_id  const  *)0, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
58081      (void (*)(struct device * ))0, (int (*)(struct device * , pm_message_t  ))0,
58082      (int (*)(struct device * ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
58083      (struct driver_private *)0}, 0}, (unsigned char)0, (unsigned char)0, (unsigned char)0};
58084#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"
58085static int claimintf(struct dev_state *ps , unsigned int ifnum ) 
58086{ struct usb_device *dev ;
58087  struct usb_interface *intf ;
58088  int err ;
58089  int tmp ;
58090  int __cil_tmp7 ;
58091  unsigned long *__cil_tmp8 ;
58092  unsigned long const volatile   *__cil_tmp9 ;
58093  struct usb_device  const  *__cil_tmp10 ;
58094  struct usb_interface *__cil_tmp11 ;
58095  unsigned long __cil_tmp12 ;
58096  unsigned long __cil_tmp13 ;
58097  void *__cil_tmp14 ;
58098  unsigned long *__cil_tmp15 ;
58099  unsigned long volatile   *__cil_tmp16 ;
58100
58101  {
58102#line 537
58103  dev = ps->dev;
58104#line 541
58105  if (ifnum > 63U) {
58106#line 542
58107    return (-22);
58108  } else {
58109
58110  }
58111  {
58112#line 544
58113  __cil_tmp7 = (int )ifnum;
58114#line 544
58115  __cil_tmp8 = & ps->ifclaimed;
58116#line 544
58117  __cil_tmp9 = (unsigned long const volatile   *)__cil_tmp8;
58118#line 544
58119  tmp = variable_test_bit(__cil_tmp7, __cil_tmp9);
58120  }
58121#line 544
58122  if (tmp != 0) {
58123#line 545
58124    return (0);
58125  } else {
58126
58127  }
58128  {
58129#line 547
58130  __cil_tmp10 = (struct usb_device  const  *)dev;
58131#line 547
58132  intf = usb_ifnum_to_if(__cil_tmp10, ifnum);
58133  }
58134  {
58135#line 548
58136  __cil_tmp11 = (struct usb_interface *)0;
58137#line 548
58138  __cil_tmp12 = (unsigned long )__cil_tmp11;
58139#line 548
58140  __cil_tmp13 = (unsigned long )intf;
58141#line 548
58142  if (__cil_tmp13 == __cil_tmp12) {
58143#line 549
58144    err = -2;
58145  } else {
58146    {
58147#line 551
58148    __cil_tmp14 = (void *)ps;
58149#line 551
58150    err = usb_driver_claim_interface(& usbfs_driver, intf, __cil_tmp14);
58151    }
58152  }
58153  }
58154#line 552
58155  if (err == 0) {
58156    {
58157#line 553
58158    __cil_tmp15 = & ps->ifclaimed;
58159#line 553
58160    __cil_tmp16 = (unsigned long volatile   *)__cil_tmp15;
58161#line 553
58162    set_bit(ifnum, __cil_tmp16);
58163    }
58164  } else {
58165
58166  }
58167#line 554
58168  return (err);
58169}
58170}
58171#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"
58172static int releaseintf(struct dev_state *ps , unsigned int ifnum ) 
58173{ struct usb_device *dev ;
58174  struct usb_interface *intf ;
58175  int err ;
58176  int tmp ;
58177  struct usb_device  const  *__cil_tmp7 ;
58178  struct usb_interface *__cil_tmp8 ;
58179  unsigned long __cil_tmp9 ;
58180  unsigned long __cil_tmp10 ;
58181  int __cil_tmp11 ;
58182  unsigned long *__cil_tmp12 ;
58183  unsigned long volatile   *__cil_tmp13 ;
58184
58185  {
58186#line 563
58187  err = -22;
58188#line 564
58189  if (ifnum > 63U) {
58190#line 565
58191    return (err);
58192  } else {
58193
58194  }
58195  {
58196#line 566
58197  dev = ps->dev;
58198#line 567
58199  __cil_tmp7 = (struct usb_device  const  *)dev;
58200#line 567
58201  intf = usb_ifnum_to_if(__cil_tmp7, ifnum);
58202  }
58203  {
58204#line 568
58205  __cil_tmp8 = (struct usb_interface *)0;
58206#line 568
58207  __cil_tmp9 = (unsigned long )__cil_tmp8;
58208#line 568
58209  __cil_tmp10 = (unsigned long )intf;
58210#line 568
58211  if (__cil_tmp10 == __cil_tmp9) {
58212#line 569
58213    err = -2;
58214  } else {
58215    {
58216#line 570
58217    __cil_tmp11 = (int )ifnum;
58218#line 570
58219    __cil_tmp12 = & ps->ifclaimed;
58220#line 570
58221    __cil_tmp13 = (unsigned long volatile   *)__cil_tmp12;
58222#line 570
58223    tmp = test_and_clear_bit(__cil_tmp11, __cil_tmp13);
58224    }
58225#line 570
58226    if (tmp != 0) {
58227      {
58228#line 571
58229      usb_driver_release_interface(& usbfs_driver, intf);
58230#line 572
58231      err = 0;
58232      }
58233    } else {
58234
58235    }
58236  }
58237  }
58238#line 574
58239  return (err);
58240}
58241}
58242#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"
58243static int checkintf(struct dev_state *ps , unsigned int ifnum ) 
58244{ int tmp ;
58245  struct task_struct *tmp___0 ;
58246  struct task_struct *tmp___1 ;
58247  pid_t tmp___2 ;
58248  int tmp___3 ;
58249  struct usb_device *__cil_tmp8 ;
58250  enum usb_device_state __cil_tmp9 ;
58251  unsigned int __cil_tmp10 ;
58252  int __cil_tmp11 ;
58253  unsigned long *__cil_tmp12 ;
58254  unsigned long const volatile   *__cil_tmp13 ;
58255  struct usb_device *__cil_tmp14 ;
58256  struct device *__cil_tmp15 ;
58257  struct device  const  *__cil_tmp16 ;
58258  char (*__cil_tmp17)[16U] ;
58259  char *__cil_tmp18 ;
58260
58261  {
58262  {
58263#line 579
58264  __cil_tmp8 = ps->dev;
58265#line 579
58266  __cil_tmp9 = __cil_tmp8->state;
58267#line 579
58268  __cil_tmp10 = (unsigned int )__cil_tmp9;
58269#line 579
58270  if (__cil_tmp10 != 7U) {
58271#line 580
58272    return (-113);
58273  } else {
58274
58275  }
58276  }
58277#line 581
58278  if (ifnum > 63U) {
58279#line 582
58280    return (-22);
58281  } else {
58282
58283  }
58284  {
58285#line 583
58286  __cil_tmp11 = (int )ifnum;
58287#line 583
58288  __cil_tmp12 = & ps->ifclaimed;
58289#line 583
58290  __cil_tmp13 = (unsigned long const volatile   *)__cil_tmp12;
58291#line 583
58292  tmp = variable_test_bit(__cil_tmp11, __cil_tmp13);
58293  }
58294#line 583
58295  if (tmp != 0) {
58296#line 584
58297    return (0);
58298  } else {
58299
58300  }
58301  {
58302#line 586
58303  tmp___0 = get_current();
58304#line 586
58305  tmp___1 = get_current();
58306#line 586
58307  tmp___2 = task_pid_nr(tmp___1);
58308#line 586
58309  __cil_tmp14 = ps->dev;
58310#line 586
58311  __cil_tmp15 = & __cil_tmp14->dev;
58312#line 586
58313  __cil_tmp16 = (struct device  const  *)__cil_tmp15;
58314#line 586
58315  __cil_tmp17 = & tmp___0->comm;
58316#line 586
58317  __cil_tmp18 = (char *)__cil_tmp17;
58318#line 586
58319  dev_warn(__cil_tmp16, "usbfs: process %d (%s) did not claim interface %u before use\n",
58320           tmp___2, __cil_tmp18, ifnum);
58321#line 589
58322  tmp___3 = claimintf(ps, ifnum);
58323  }
58324#line 589
58325  return (tmp___3);
58326}
58327}
58328#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"
58329static int findintfep(struct usb_device *dev , unsigned int ep ) 
58330{ unsigned int i ;
58331  unsigned int j ;
58332  unsigned int e ;
58333  struct usb_interface *intf ;
58334  struct usb_host_interface *alts ;
58335  struct usb_endpoint_descriptor *endpt ;
58336  unsigned int __cil_tmp9 ;
58337  struct usb_host_config *__cil_tmp10 ;
58338  unsigned long __cil_tmp11 ;
58339  struct usb_host_config *__cil_tmp12 ;
58340  unsigned long __cil_tmp13 ;
58341  struct usb_host_config *__cil_tmp14 ;
58342  unsigned long __cil_tmp15 ;
58343  struct usb_host_interface *__cil_tmp16 ;
58344  unsigned long __cil_tmp17 ;
58345  struct usb_host_endpoint *__cil_tmp18 ;
58346  struct usb_host_endpoint *__cil_tmp19 ;
58347  __u8 __cil_tmp20 ;
58348  unsigned int __cil_tmp21 ;
58349  __u8 __cil_tmp22 ;
58350  __u8 __cil_tmp23 ;
58351  unsigned int __cil_tmp24 ;
58352  unsigned int __cil_tmp25 ;
58353  struct usb_host_config *__cil_tmp26 ;
58354  __u8 __cil_tmp27 ;
58355  unsigned int __cil_tmp28 ;
58356
58357  {
58358  {
58359#line 599
58360  __cil_tmp9 = ep & 4294967152U;
58361#line 599
58362  if (__cil_tmp9 != 0U) {
58363#line 600
58364    return (-22);
58365  } else {
58366
58367  }
58368  }
58369  {
58370#line 601
58371  __cil_tmp10 = (struct usb_host_config *)0;
58372#line 601
58373  __cil_tmp11 = (unsigned long )__cil_tmp10;
58374#line 601
58375  __cil_tmp12 = dev->actconfig;
58376#line 601
58377  __cil_tmp13 = (unsigned long )__cil_tmp12;
58378#line 601
58379  if (__cil_tmp13 == __cil_tmp11) {
58380#line 602
58381    return (-3);
58382  } else {
58383
58384  }
58385  }
58386#line 603
58387  i = 0U;
58388#line 603
58389  goto ldv_30805;
58390  ldv_30804: 
58391#line 604
58392  __cil_tmp14 = dev->actconfig;
58393#line 604
58394  intf = __cil_tmp14->interface[i];
58395#line 605
58396  j = 0U;
58397#line 605
58398  goto ldv_30802;
58399  ldv_30801: 
58400#line 606
58401  __cil_tmp15 = (unsigned long )j;
58402#line 606
58403  __cil_tmp16 = intf->altsetting;
58404#line 606
58405  alts = __cil_tmp16 + __cil_tmp15;
58406#line 607
58407  e = 0U;
58408#line 607
58409  goto ldv_30799;
58410  ldv_30798: 
58411#line 608
58412  __cil_tmp17 = (unsigned long )e;
58413#line 608
58414  __cil_tmp18 = alts->endpoint;
58415#line 608
58416  __cil_tmp19 = __cil_tmp18 + __cil_tmp17;
58417#line 608
58418  endpt = & __cil_tmp19->desc;
58419  {
58420#line 609
58421  __cil_tmp20 = endpt->bEndpointAddress;
58422#line 609
58423  __cil_tmp21 = (unsigned int )__cil_tmp20;
58424#line 609
58425  if (__cil_tmp21 == ep) {
58426    {
58427#line 610
58428    __cil_tmp22 = alts->desc.bInterfaceNumber;
58429#line 610
58430    return ((int )__cil_tmp22);
58431    }
58432  } else {
58433
58434  }
58435  }
58436#line 607
58437  e = e + 1U;
58438  ldv_30799: ;
58439  {
58440#line 607
58441  __cil_tmp23 = alts->desc.bNumEndpoints;
58442#line 607
58443  __cil_tmp24 = (unsigned int )__cil_tmp23;
58444#line 607
58445  if (__cil_tmp24 > e) {
58446#line 608
58447    goto ldv_30798;
58448  } else {
58449#line 610
58450    goto ldv_30800;
58451  }
58452  }
58453  ldv_30800: 
58454#line 605
58455  j = j + 1U;
58456  ldv_30802: ;
58457  {
58458#line 605
58459  __cil_tmp25 = intf->num_altsetting;
58460#line 605
58461  if (__cil_tmp25 > j) {
58462#line 606
58463    goto ldv_30801;
58464  } else {
58465#line 608
58466    goto ldv_30803;
58467  }
58468  }
58469  ldv_30803: 
58470#line 603
58471  i = i + 1U;
58472  ldv_30805: ;
58473  {
58474#line 603
58475  __cil_tmp26 = dev->actconfig;
58476#line 603
58477  __cil_tmp27 = __cil_tmp26->desc.bNumInterfaces;
58478#line 603
58479  __cil_tmp28 = (unsigned int )__cil_tmp27;
58480#line 603
58481  if (__cil_tmp28 > i) {
58482#line 604
58483    goto ldv_30804;
58484  } else {
58485#line 606
58486    goto ldv_30806;
58487  }
58488  }
58489  ldv_30806: ;
58490#line 614
58491  return (-2);
58492}
58493}
58494#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"
58495static int check_ctrlrecip(struct dev_state *ps , unsigned int requesttype , unsigned int index ) 
58496{ int ret ;
58497  struct usb_device *__cil_tmp5 ;
58498  enum usb_device_state __cil_tmp6 ;
58499  unsigned int __cil_tmp7 ;
58500  struct usb_device *__cil_tmp8 ;
58501  enum usb_device_state __cil_tmp9 ;
58502  unsigned int __cil_tmp10 ;
58503  struct usb_device *__cil_tmp11 ;
58504  enum usb_device_state __cil_tmp12 ;
58505  unsigned int __cil_tmp13 ;
58506  unsigned int __cil_tmp14 ;
58507  unsigned int __cil_tmp15 ;
58508  int __cil_tmp16 ;
58509  unsigned int __cil_tmp17 ;
58510  int __cil_tmp18 ;
58511  struct usb_device *__cil_tmp19 ;
58512  unsigned int __cil_tmp20 ;
58513
58514  {
58515#line 620
58516  ret = 0;
58517  {
58518#line 622
58519  __cil_tmp5 = ps->dev;
58520#line 622
58521  __cil_tmp6 = __cil_tmp5->state;
58522#line 622
58523  __cil_tmp7 = (unsigned int )__cil_tmp6;
58524#line 622
58525  if (__cil_tmp7 != 4U) {
58526    {
58527#line 622
58528    __cil_tmp8 = ps->dev;
58529#line 622
58530    __cil_tmp9 = __cil_tmp8->state;
58531#line 622
58532    __cil_tmp10 = (unsigned int )__cil_tmp9;
58533#line 622
58534    if (__cil_tmp10 != 6U) {
58535      {
58536#line 622
58537      __cil_tmp11 = ps->dev;
58538#line 622
58539      __cil_tmp12 = __cil_tmp11->state;
58540#line 622
58541      __cil_tmp13 = (unsigned int )__cil_tmp12;
58542#line 622
58543      if (__cil_tmp13 != 7U) {
58544#line 625
58545        return (-113);
58546      } else {
58547
58548      }
58549      }
58550    } else {
58551
58552    }
58553    }
58554  } else {
58555
58556  }
58557  }
58558  {
58559#line 626
58560  __cil_tmp14 = requesttype & 96U;
58561#line 626
58562  if (__cil_tmp14 == 64U) {
58563#line 627
58564    return (0);
58565  } else {
58566
58567  }
58568  }
58569#line 629
58570  index = index & 255U;
58571  {
58572#line 631
58573  __cil_tmp15 = requesttype & 31U;
58574#line 631
58575  __cil_tmp16 = (int )__cil_tmp15;
58576#line 631
58577  if (__cil_tmp16 == 2) {
58578#line 631
58579    goto case_2;
58580  } else {
58581    {
58582#line 637
58583    __cil_tmp17 = requesttype & 31U;
58584#line 637
58585    __cil_tmp18 = (int )__cil_tmp17;
58586#line 637
58587    if (__cil_tmp18 == 1) {
58588#line 637
58589      goto case_1;
58590    } else
58591#line 630
58592    if (0) {
58593      case_2: 
58594      {
58595#line 632
58596      __cil_tmp19 = ps->dev;
58597#line 632
58598      ret = findintfep(__cil_tmp19, index);
58599      }
58600#line 633
58601      if (ret >= 0) {
58602        {
58603#line 634
58604        __cil_tmp20 = (unsigned int )ret;
58605#line 634
58606        ret = checkintf(ps, __cil_tmp20);
58607        }
58608      } else {
58609
58610      }
58611#line 635
58612      goto ldv_30814;
58613      case_1: 
58614      {
58615#line 638
58616      ret = checkintf(ps, index);
58617      }
58618#line 639
58619      goto ldv_30814;
58620    } else {
58621
58622    }
58623    }
58624  }
58625  }
58626  ldv_30814: ;
58627#line 641
58628  return (ret);
58629}
58630}
58631#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"
58632static int match_devt(struct device *dev , void *data ) 
58633{ long __cil_tmp3 ;
58634  dev_t __cil_tmp4 ;
58635  dev_t __cil_tmp5 ;
58636
58637  {
58638  {
58639#line 646
58640  __cil_tmp3 = (long )data;
58641#line 646
58642  __cil_tmp4 = (dev_t )__cil_tmp3;
58643#line 646
58644  __cil_tmp5 = dev->devt;
58645#line 646
58646  return (__cil_tmp5 == __cil_tmp4);
58647  }
58648}
58649}
58650#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"
58651static struct usb_device *usbdev_lookup_by_devt(dev_t devt ) 
58652{ struct device *dev ;
58653  struct device  const  *__mptr ;
58654  struct device *__cil_tmp4 ;
58655  unsigned long __cil_tmp5 ;
58656  void *__cil_tmp6 ;
58657  struct device *__cil_tmp7 ;
58658  unsigned long __cil_tmp8 ;
58659  unsigned long __cil_tmp9 ;
58660  struct usb_device *__cil_tmp10 ;
58661
58662  {
58663  {
58664#line 653
58665  __cil_tmp4 = (struct device *)0;
58666#line 653
58667  __cil_tmp5 = (unsigned long )devt;
58668#line 653
58669  __cil_tmp6 = (void *)__cil_tmp5;
58670#line 653
58671  dev = bus_find_device(& usb_bus_type, __cil_tmp4, __cil_tmp6, & match_devt);
58672  }
58673  {
58674#line 655
58675  __cil_tmp7 = (struct device *)0;
58676#line 655
58677  __cil_tmp8 = (unsigned long )__cil_tmp7;
58678#line 655
58679  __cil_tmp9 = (unsigned long )dev;
58680#line 655
58681  if (__cil_tmp9 == __cil_tmp8) {
58682#line 656
58683    return ((struct usb_device *)0);
58684  } else {
58685
58686  }
58687  }
58688#line 657
58689  __mptr = (struct device  const  *)dev;
58690  {
58691#line 657
58692  __cil_tmp10 = (struct usb_device *)__mptr;
58693#line 657
58694  return (__cil_tmp10 + 1152921504606846840UL);
58695  }
58696}
58697}
58698#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"
58699static int usbdev_open(struct inode *inode , struct file *file ) 
58700{ struct usb_device *dev ;
58701  struct dev_state *ps ;
58702  struct cred  const  *cred ;
58703  struct task_struct *tmp ;
58704  int ret ;
58705  void *tmp___0 ;
58706  unsigned int tmp___1 ;
58707  struct lock_class_key __key ;
58708  struct lock_class_key __key___0 ;
58709  struct task_struct *tmp___2 ;
58710  struct pid *tmp___3 ;
58711  struct task_struct *tmp___4 ;
58712  struct task_struct *tmp___5 ;
58713  struct task_struct *tmp___6 ;
58714  pid_t tmp___7 ;
58715  struct dev_state *__cil_tmp18 ;
58716  unsigned long __cil_tmp19 ;
58717  unsigned long __cil_tmp20 ;
58718  struct inode  const  *__cil_tmp21 ;
58719  dev_t __cil_tmp22 ;
58720  struct usb_device *__cil_tmp23 ;
58721  unsigned long __cil_tmp24 ;
58722  unsigned long __cil_tmp25 ;
58723  void *__cil_tmp26 ;
58724  struct usb_device *__cil_tmp27 ;
58725  unsigned long __cil_tmp28 ;
58726  unsigned long __cil_tmp29 ;
58727  struct dentry *__cil_tmp30 ;
58728  unsigned long __cil_tmp31 ;
58729  struct dentry *__cil_tmp32 ;
58730  unsigned long __cil_tmp33 ;
58731  unsigned long __cil_tmp34 ;
58732  struct dentry *__cil_tmp35 ;
58733  struct inode *__cil_tmp36 ;
58734  unsigned long __cil_tmp37 ;
58735  struct usb_device *__cil_tmp38 ;
58736  unsigned long __cil_tmp39 ;
58737  unsigned long __cil_tmp40 ;
58738  struct device *__cil_tmp41 ;
58739  enum usb_device_state __cil_tmp42 ;
58740  unsigned int __cil_tmp43 ;
58741  spinlock_t *__cil_tmp44 ;
58742  struct raw_spinlock *__cil_tmp45 ;
58743  struct list_head *__cil_tmp46 ;
58744  struct list_head *__cil_tmp47 ;
58745  struct list_head *__cil_tmp48 ;
58746  wait_queue_head_t *__cil_tmp49 ;
58747  uid_t __cil_tmp50 ;
58748  uid_t __cil_tmp51 ;
58749  u32 *__cil_tmp52 ;
58750  struct list_head *__cil_tmp53 ;
58751  struct list_head *__cil_tmp54 ;
58752  struct device *__cil_tmp55 ;
58753  struct device *__cil_tmp56 ;
58754  struct device  const  *__cil_tmp57 ;
58755  char (*__cil_tmp58)[16U] ;
58756  char *__cil_tmp59 ;
58757  struct device *__cil_tmp60 ;
58758  void const   *__cil_tmp61 ;
58759
58760  {
58761  {
58762#line 665
58763  dev = (struct usb_device *)0;
58764#line 667
58765  tmp = get_current();
58766#line 667
58767  cred = tmp->cred;
58768#line 670
58769  ret = -12;
58770#line 671
58771  tmp___0 = kmalloc(272UL, 208U);
58772#line 671
58773  ps = (struct dev_state *)tmp___0;
58774  }
58775  {
58776#line 672
58777  __cil_tmp18 = (struct dev_state *)0;
58778#line 672
58779  __cil_tmp19 = (unsigned long )__cil_tmp18;
58780#line 672
58781  __cil_tmp20 = (unsigned long )ps;
58782#line 672
58783  if (__cil_tmp20 == __cil_tmp19) {
58784#line 673
58785    goto out_free_ps;
58786  } else {
58787
58788  }
58789  }
58790  {
58791#line 675
58792  ret = -19;
58793#line 678
58794  mutex_lock_nested(& usbfs_mutex, 0U);
58795#line 681
58796  __cil_tmp21 = (struct inode  const  *)inode;
58797#line 681
58798  tmp___1 = imajor(__cil_tmp21);
58799  }
58800#line 681
58801  if (tmp___1 == 189U) {
58802    {
58803#line 682
58804    __cil_tmp22 = inode->i_rdev;
58805#line 682
58806    dev = usbdev_lookup_by_devt(__cil_tmp22);
58807    }
58808  } else {
58809
58810  }
58811  {
58812#line 686
58813  __cil_tmp23 = (struct usb_device *)0;
58814#line 686
58815  __cil_tmp24 = (unsigned long )__cil_tmp23;
58816#line 686
58817  __cil_tmp25 = (unsigned long )dev;
58818#line 686
58819  if (__cil_tmp25 == __cil_tmp24) {
58820#line 687
58821    __cil_tmp26 = inode->i_private;
58822#line 687
58823    dev = (struct usb_device *)__cil_tmp26;
58824    {
58825#line 688
58826    __cil_tmp27 = (struct usb_device *)0;
58827#line 688
58828    __cil_tmp28 = (unsigned long )__cil_tmp27;
58829#line 688
58830    __cil_tmp29 = (unsigned long )dev;
58831#line 688
58832    if (__cil_tmp29 != __cil_tmp28) {
58833      {
58834#line 688
58835      __cil_tmp30 = (struct dentry *)0;
58836#line 688
58837      __cil_tmp31 = (unsigned long )__cil_tmp30;
58838#line 688
58839      __cil_tmp32 = dev->usbfs_dentry;
58840#line 688
58841      __cil_tmp33 = (unsigned long )__cil_tmp32;
58842#line 688
58843      if (__cil_tmp33 != __cil_tmp31) {
58844        {
58845#line 688
58846        __cil_tmp34 = (unsigned long )inode;
58847#line 688
58848        __cil_tmp35 = dev->usbfs_dentry;
58849#line 688
58850        __cil_tmp36 = __cil_tmp35->d_inode;
58851#line 688
58852        __cil_tmp37 = (unsigned long )__cil_tmp36;
58853#line 688
58854        if (__cil_tmp37 == __cil_tmp34) {
58855          {
58856#line 690
58857          usb_get_dev(dev);
58858          }
58859        } else {
58860#line 692
58861          dev = (struct usb_device *)0;
58862        }
58863        }
58864      } else {
58865#line 692
58866        dev = (struct usb_device *)0;
58867      }
58868      }
58869    } else {
58870#line 692
58871      dev = (struct usb_device *)0;
58872    }
58873    }
58874  } else {
58875
58876  }
58877  }
58878  {
58879#line 695
58880  mutex_unlock(& usbfs_mutex);
58881  }
58882  {
58883#line 697
58884  __cil_tmp38 = (struct usb_device *)0;
58885#line 697
58886  __cil_tmp39 = (unsigned long )__cil_tmp38;
58887#line 697
58888  __cil_tmp40 = (unsigned long )dev;
58889#line 697
58890  if (__cil_tmp40 == __cil_tmp39) {
58891#line 698
58892    goto out_free_ps;
58893  } else {
58894
58895  }
58896  }
58897  {
58898#line 700
58899  __cil_tmp41 = & dev->dev;
58900#line 700
58901  device_lock(__cil_tmp41);
58902  }
58903  {
58904#line 701
58905  __cil_tmp42 = dev->state;
58906#line 701
58907  __cil_tmp43 = (unsigned int )__cil_tmp42;
58908#line 701
58909  if (__cil_tmp43 == 0U) {
58910#line 702
58911    goto out_unlock_device;
58912  } else {
58913
58914  }
58915  }
58916  {
58917#line 704
58918  ret = usb_autoresume_device(dev);
58919  }
58920#line 705
58921  if (ret != 0) {
58922#line 706
58923    goto out_unlock_device;
58924  } else {
58925
58926  }
58927  {
58928#line 708
58929  ps->dev = dev;
58930#line 709
58931  ps->file = file;
58932#line 710
58933  __cil_tmp44 = & ps->lock;
58934#line 710
58935  spinlock_check(__cil_tmp44);
58936#line 710
58937  __cil_tmp45 = & ps->lock.ldv_6060.rlock;
58938#line 710
58939  __raw_spin_lock_init(__cil_tmp45, "&(&ps->lock)->rlock", & __key);
58940#line 711
58941  __cil_tmp46 = & ps->list;
58942#line 711
58943  INIT_LIST_HEAD(__cil_tmp46);
58944#line 712
58945  __cil_tmp47 = & ps->async_pending;
58946#line 712
58947  INIT_LIST_HEAD(__cil_tmp47);
58948#line 713
58949  __cil_tmp48 = & ps->async_completed;
58950#line 713
58951  INIT_LIST_HEAD(__cil_tmp48);
58952#line 714
58953  __cil_tmp49 = & ps->wait;
58954#line 714
58955  __init_waitqueue_head(__cil_tmp49, & __key___0);
58956#line 715
58957  ps->discsignr = 0U;
58958#line 716
58959  tmp___2 = get_current();
58960#line 716
58961  tmp___3 = task_pid(tmp___2);
58962#line 716
58963  ps->disc_pid = get_pid(tmp___3);
58964#line 717
58965  __cil_tmp50 = cred->uid;
58966#line 717
58967  ps->disc_uid = (uid_t )__cil_tmp50;
58968#line 718
58969  __cil_tmp51 = cred->euid;
58970#line 718
58971  ps->disc_euid = (uid_t )__cil_tmp51;
58972#line 719
58973  ps->disccontext = (void *)0;
58974#line 720
58975  ps->ifclaimed = 0UL;
58976#line 721
58977  tmp___4 = get_current();
58978#line 721
58979  __cil_tmp52 = & ps->secid;
58980#line 721
58981  security_task_getsecid(tmp___4, __cil_tmp52);
58982#line 722
58983  __asm__  volatile   ("": : : "memory");
58984#line 723
58985  __cil_tmp53 = & ps->list;
58986#line 723
58987  __cil_tmp54 = & dev->filelist;
58988#line 723
58989  list_add_tail(__cil_tmp53, __cil_tmp54);
58990#line 724
58991  file->private_data = (void *)ps;
58992#line 725
58993  __cil_tmp55 = & dev->dev;
58994#line 725
58995  device_unlock(__cil_tmp55);
58996  }
58997#line 726
58998  if (usbfs_snoop != 0) {
58999    {
59000#line 726
59001    tmp___5 = get_current();
59002#line 726
59003    tmp___6 = get_current();
59004#line 726
59005    tmp___7 = task_pid_nr(tmp___6);
59006#line 726
59007    __cil_tmp56 = & dev->dev;
59008#line 726
59009    __cil_tmp57 = (struct device  const  *)__cil_tmp56;
59010#line 726
59011    __cil_tmp58 = & tmp___5->comm;
59012#line 726
59013    __cil_tmp59 = (char *)__cil_tmp58;
59014#line 726
59015    _dev_info(__cil_tmp57, "opened by process %d: %s\n", tmp___7, __cil_tmp59);
59016    }
59017  } else {
59018
59019  }
59020#line 728
59021  return (ret);
59022  out_unlock_device: 
59023  {
59024#line 731
59025  __cil_tmp60 = & dev->dev;
59026#line 731
59027  device_unlock(__cil_tmp60);
59028#line 732
59029  usb_put_dev(dev);
59030  }
59031  out_free_ps: 
59032  {
59033#line 734
59034  __cil_tmp61 = (void const   *)ps;
59035#line 734
59036  kfree(__cil_tmp61);
59037  }
59038#line 735
59039  return (ret);
59040}
59041}
59042#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"
59043static int usbdev_release(struct inode *inode , struct file *file ) 
59044{ struct dev_state *ps ;
59045  struct usb_device *dev ;
59046  unsigned int ifnum ;
59047  struct async *as ;
59048  int tmp ;
59049  void *__cil_tmp8 ;
59050  struct device *__cil_tmp9 ;
59051  void *__cil_tmp10 ;
59052  struct list_head *__cil_tmp11 ;
59053  int __cil_tmp12 ;
59054  unsigned long *__cil_tmp13 ;
59055  unsigned long const volatile   *__cil_tmp14 ;
59056  unsigned long __cil_tmp15 ;
59057  struct device *__cil_tmp16 ;
59058  struct pid *__cil_tmp17 ;
59059  struct async *__cil_tmp18 ;
59060  unsigned long __cil_tmp19 ;
59061  unsigned long __cil_tmp20 ;
59062  void const   *__cil_tmp21 ;
59063
59064  {
59065  {
59066#line 740
59067  __cil_tmp8 = file->private_data;
59068#line 740
59069  ps = (struct dev_state *)__cil_tmp8;
59070#line 741
59071  dev = ps->dev;
59072#line 745
59073  __cil_tmp9 = & dev->dev;
59074#line 745
59075  device_lock(__cil_tmp9);
59076#line 746
59077  __cil_tmp10 = (void *)ps;
59078#line 746
59079  usb_hub_release_all_ports(dev, __cil_tmp10);
59080#line 748
59081  __cil_tmp11 = & ps->list;
59082#line 748
59083  list_del_init(__cil_tmp11);
59084#line 750
59085  ifnum = 0U;
59086  }
59087#line 750
59088  goto ldv_30847;
59089  ldv_30846: 
59090  {
59091#line 752
59092  __cil_tmp12 = (int )ifnum;
59093#line 752
59094  __cil_tmp13 = & ps->ifclaimed;
59095#line 752
59096  __cil_tmp14 = (unsigned long const volatile   *)__cil_tmp13;
59097#line 752
59098  tmp = variable_test_bit(__cil_tmp12, __cil_tmp14);
59099  }
59100#line 752
59101  if (tmp != 0) {
59102    {
59103#line 753
59104    releaseintf(ps, ifnum);
59105    }
59106  } else {
59107
59108  }
59109#line 751
59110  ifnum = ifnum + 1U;
59111  ldv_30847: ;
59112  {
59113#line 750
59114  __cil_tmp15 = ps->ifclaimed;
59115#line 750
59116  if (__cil_tmp15 != 0UL) {
59117#line 750
59118    if (ifnum <= 63U) {
59119#line 751
59120      goto ldv_30846;
59121    } else {
59122#line 753
59123      goto ldv_30848;
59124    }
59125  } else {
59126#line 753
59127    goto ldv_30848;
59128  }
59129  }
59130  ldv_30848: 
59131  {
59132#line 755
59133  destroy_all_async(ps);
59134#line 756
59135  usb_autosuspend_device(dev);
59136#line 757
59137  __cil_tmp16 = & dev->dev;
59138#line 757
59139  device_unlock(__cil_tmp16);
59140#line 758
59141  usb_put_dev(dev);
59142#line 759
59143  __cil_tmp17 = ps->disc_pid;
59144#line 759
59145  put_pid(__cil_tmp17);
59146#line 761
59147  as = async_getcompleted(ps);
59148  }
59149#line 762
59150  goto ldv_30850;
59151  ldv_30849: 
59152  {
59153#line 763
59154  free_async(as);
59155#line 764
59156  as = async_getcompleted(ps);
59157  }
59158  ldv_30850: ;
59159  {
59160#line 762
59161  __cil_tmp18 = (struct async *)0;
59162#line 762
59163  __cil_tmp19 = (unsigned long )__cil_tmp18;
59164#line 762
59165  __cil_tmp20 = (unsigned long )as;
59166#line 762
59167  if (__cil_tmp20 != __cil_tmp19) {
59168#line 763
59169    goto ldv_30849;
59170  } else {
59171#line 765
59172    goto ldv_30851;
59173  }
59174  }
59175  ldv_30851: 
59176  {
59177#line 766
59178  __cil_tmp21 = (void const   *)ps;
59179#line 766
59180  kfree(__cil_tmp21);
59181  }
59182#line 767
59183  return (0);
59184}
59185}
59186#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"
59187static int proc_control(struct dev_state *ps , void *arg ) 
59188{ struct usb_device *dev ;
59189  struct usbdevfs_ctrltransfer ctrl ;
59190  unsigned int tmo ;
59191  unsigned char *tbuf ;
59192  unsigned int wLength ;
59193  int i ;
59194  int pipe ;
59195  int ret ;
59196  unsigned long tmp ;
59197  unsigned long tmp___0 ;
59198  __u16 tmp___1 ;
59199  __u16 tmp___2 ;
59200  __u16 tmp___3 ;
59201  unsigned long flag ;
59202  unsigned long roksum ;
59203  struct thread_info *tmp___4 ;
59204  long tmp___5 ;
59205  unsigned int tmp___6 ;
59206  int _max1 ;
59207  int _max2 ;
59208  int tmp___7 ;
59209  int _min1 ;
59210  int _min2 ;
59211  int tmp___8 ;
59212  int _max1___0 ;
59213  int _max2___0 ;
59214  int tmp___9 ;
59215  int tmp___10 ;
59216  unsigned long tmp___11 ;
59217  unsigned int tmp___12 ;
59218  unsigned int tmp___13 ;
59219  int _min1___0 ;
59220  int _min2___0 ;
59221  int tmp___14 ;
59222  int _max1___1 ;
59223  int _max2___1 ;
59224  int tmp___15 ;
59225  struct task_struct *tmp___16 ;
59226  void *__cil_tmp41 ;
59227  void const   *__cil_tmp42 ;
59228  unsigned int __cil_tmp43 ;
59229  unsigned int __cil_tmp44 ;
59230  unsigned char *__cil_tmp45 ;
59231  unsigned long __cil_tmp46 ;
59232  unsigned long __cil_tmp47 ;
59233  __u16 *__cil_tmp48 ;
59234  __le16 const   *__cil_tmp49 ;
59235  __u16 *__cil_tmp50 ;
59236  __le16 const   *__cil_tmp51 ;
59237  __u16 *__cil_tmp52 ;
59238  __le16 const   *__cil_tmp53 ;
59239  struct device *__cil_tmp54 ;
59240  struct device  const  *__cil_tmp55 ;
59241  int __cil_tmp56 ;
59242  int __cil_tmp57 ;
59243  int __cil_tmp58 ;
59244  int __cil_tmp59 ;
59245  int __cil_tmp60 ;
59246  signed char __cil_tmp61 ;
59247  int __cil_tmp62 ;
59248  unsigned int __cil_tmp63 ;
59249  int __cil_tmp64 ;
59250  long __cil_tmp65 ;
59251  unsigned long __cil_tmp66 ;
59252  unsigned int __cil_tmp67 ;
59253  void *__cil_tmp68 ;
59254  unsigned int __cil_tmp69 ;
59255  int __cil_tmp70 ;
59256  enum snoop_when __cil_tmp71 ;
59257  unsigned char *__cil_tmp72 ;
59258  struct device *__cil_tmp73 ;
59259  unsigned int __cil_tmp74 ;
59260  int __cil_tmp75 ;
59261  __u8 __cil_tmp76 ;
59262  int __cil_tmp77 ;
59263  __u8 __cil_tmp78 ;
59264  int __cil_tmp79 ;
59265  __u16 __cil_tmp80 ;
59266  int __cil_tmp81 ;
59267  __u16 __cil_tmp82 ;
59268  void *__cil_tmp83 ;
59269  int __cil_tmp84 ;
59270  __u16 __cil_tmp85 ;
59271  int __cil_tmp86 ;
59272  struct device *__cil_tmp87 ;
59273  void *__cil_tmp88 ;
59274  unsigned int __cil_tmp89 ;
59275  enum snoop_when __cil_tmp90 ;
59276  unsigned int __cil_tmp91 ;
59277  unsigned int __cil_tmp92 ;
59278  void const   *__cil_tmp93 ;
59279  unsigned int __cil_tmp94 ;
59280  unsigned long __cil_tmp95 ;
59281  unsigned int __cil_tmp96 ;
59282  void *__cil_tmp97 ;
59283  void const   *__cil_tmp98 ;
59284  unsigned long __cil_tmp99 ;
59285  unsigned long __cil_tmp100 ;
59286  unsigned int __cil_tmp101 ;
59287  void *__cil_tmp102 ;
59288  unsigned int __cil_tmp103 ;
59289  int __cil_tmp104 ;
59290  enum snoop_when __cil_tmp105 ;
59291  unsigned int __cil_tmp106 ;
59292  struct device *__cil_tmp107 ;
59293  unsigned int __cil_tmp108 ;
59294  int __cil_tmp109 ;
59295  __u8 __cil_tmp110 ;
59296  int __cil_tmp111 ;
59297  __u8 __cil_tmp112 ;
59298  int __cil_tmp113 ;
59299  __u16 __cil_tmp114 ;
59300  int __cil_tmp115 ;
59301  __u16 __cil_tmp116 ;
59302  void *__cil_tmp117 ;
59303  int __cil_tmp118 ;
59304  __u16 __cil_tmp119 ;
59305  int __cil_tmp120 ;
59306  struct device *__cil_tmp121 ;
59307  void *__cil_tmp122 ;
59308  unsigned int __cil_tmp123 ;
59309  enum snoop_when __cil_tmp124 ;
59310  unsigned char *__cil_tmp125 ;
59311  unsigned long __cil_tmp126 ;
59312  struct device *__cil_tmp127 ;
59313  struct device  const  *__cil_tmp128 ;
59314  char (*__cil_tmp129)[16U] ;
59315  char *__cil_tmp130 ;
59316  int __cil_tmp131 ;
59317  int __cil_tmp132 ;
59318  int __cil_tmp133 ;
59319
59320  {
59321  {
59322#line 772
59323  dev = ps->dev;
59324#line 779
59325  __cil_tmp41 = (void *)(& ctrl);
59326#line 779
59327  __cil_tmp42 = (void const   *)arg;
59328#line 779
59329  tmp = copy_from_user(__cil_tmp41, __cil_tmp42, 24UL);
59330  }
59331#line 779
59332  if (tmp != 0UL) {
59333#line 780
59334    return (-14);
59335  } else {
59336
59337  }
59338  {
59339#line 781
59340  __cil_tmp43 = (unsigned int )ctrl.bRequestType;
59341#line 781
59342  __cil_tmp44 = (unsigned int )ctrl.wIndex;
59343#line 781
59344  ret = check_ctrlrecip(ps, __cil_tmp43, __cil_tmp44);
59345  }
59346#line 782
59347  if (ret != 0) {
59348#line 783
59349    return (ret);
59350  } else {
59351
59352  }
59353#line 784
59354  wLength = (unsigned int )ctrl.wLength;
59355#line 785
59356  if (wLength > 4096U) {
59357#line 786
59358    return (-22);
59359  } else {
59360
59361  }
59362  {
59363#line 787
59364  tmp___0 = __get_free_pages(208U, 0U);
59365#line 787
59366  tbuf = (unsigned char *)tmp___0;
59367  }
59368  {
59369#line 788
59370  __cil_tmp45 = (unsigned char *)0;
59371#line 788
59372  __cil_tmp46 = (unsigned long )__cil_tmp45;
59373#line 788
59374  __cil_tmp47 = (unsigned long )tbuf;
59375#line 788
59376  if (__cil_tmp47 == __cil_tmp46) {
59377#line 789
59378    return (-12);
59379  } else {
59380
59381  }
59382  }
59383#line 790
59384  tmo = ctrl.timeout;
59385#line 791
59386  if (usbfs_snoop != 0) {
59387    {
59388#line 791
59389    __cil_tmp48 = & ctrl.wLength;
59390#line 791
59391    __cil_tmp49 = (__le16 const   *)__cil_tmp48;
59392#line 791
59393    tmp___1 = __le16_to_cpup(__cil_tmp49);
59394#line 791
59395    __cil_tmp50 = & ctrl.wIndex;
59396#line 791
59397    __cil_tmp51 = (__le16 const   *)__cil_tmp50;
59398#line 791
59399    tmp___2 = __le16_to_cpup(__cil_tmp51);
59400#line 791
59401    __cil_tmp52 = & ctrl.wValue;
59402#line 791
59403    __cil_tmp53 = (__le16 const   *)__cil_tmp52;
59404#line 791
59405    tmp___3 = __le16_to_cpup(__cil_tmp53);
59406#line 791
59407    __cil_tmp54 = & dev->dev;
59408#line 791
59409    __cil_tmp55 = (struct device  const  *)__cil_tmp54;
59410#line 791
59411    __cil_tmp56 = (int )ctrl.bRequestType;
59412#line 791
59413    __cil_tmp57 = (int )ctrl.bRequest;
59414#line 791
59415    __cil_tmp58 = (int )tmp___3;
59416#line 791
59417    __cil_tmp59 = (int )tmp___2;
59418#line 791
59419    __cil_tmp60 = (int )tmp___1;
59420#line 791
59421    _dev_info(__cil_tmp55, "control urb: bRequestType=%02x bRequest=%02x wValue=%04x wIndex=%04x wLength=%04x\n",
59422              __cil_tmp56, __cil_tmp57, __cil_tmp58, __cil_tmp59, __cil_tmp60);
59423    }
59424  } else {
59425
59426  }
59427  {
59428#line 798
59429  __cil_tmp61 = (signed char )ctrl.bRequestType;
59430#line 798
59431  __cil_tmp62 = (int )__cil_tmp61;
59432#line 798
59433  if (__cil_tmp62 < 0) {
59434    {
59435#line 799
59436    __cil_tmp63 = (unsigned int )ctrl.wLength;
59437#line 799
59438    if (__cil_tmp63 != 0U) {
59439      {
59440#line 799
59441      tmp___4 = current_thread_info();
59442#line 799
59443      __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (ctrl.data),
59444                "g" ((long )ctrl.wLength), "rm" (tmp___4->addr_limit.seg));
59445#line 799
59446      __cil_tmp64 = flag == 0UL;
59447#line 799
59448      __cil_tmp65 = (long )__cil_tmp64;
59449#line 799
59450      tmp___5 = __builtin_expect(__cil_tmp65, 1L);
59451      }
59452#line 799
59453      if (tmp___5 == 0L) {
59454        {
59455#line 801
59456        __cil_tmp66 = (unsigned long )tbuf;
59457#line 801
59458        free_pages(__cil_tmp66, 0U);
59459        }
59460#line 802
59461        return (-22);
59462      } else {
59463
59464      }
59465    } else {
59466
59467    }
59468    }
59469    {
59470#line 804
59471    tmp___6 = __create_pipe(dev, 0U);
59472#line 804
59473    __cil_tmp67 = tmp___6 | 2147483776U;
59474#line 804
59475    pipe = (int )__cil_tmp67;
59476#line 805
59477    __cil_tmp68 = (void *)0;
59478#line 805
59479    __cil_tmp69 = (unsigned int )ctrl.wLength;
59480#line 805
59481    __cil_tmp70 = (int )tmo;
59482#line 805
59483    __cil_tmp71 = (enum snoop_when )0;
59484#line 805
59485    __cil_tmp72 = (unsigned char *)0;
59486#line 805
59487    snoop_urb(dev, __cil_tmp68, pipe, __cil_tmp69, __cil_tmp70, __cil_tmp71, __cil_tmp72,
59488              0U);
59489#line 807
59490    __cil_tmp73 = & dev->dev;
59491#line 807
59492    device_unlock(__cil_tmp73);
59493#line 808
59494    __cil_tmp74 = (unsigned int )pipe;
59495#line 808
59496    __cil_tmp75 = (int )ctrl.bRequest;
59497#line 808
59498    __cil_tmp76 = (__u8 )__cil_tmp75;
59499#line 808
59500    __cil_tmp77 = (int )ctrl.bRequestType;
59501#line 808
59502    __cil_tmp78 = (__u8 )__cil_tmp77;
59503#line 808
59504    __cil_tmp79 = (int )ctrl.wValue;
59505#line 808
59506    __cil_tmp80 = (__u16 )__cil_tmp79;
59507#line 808
59508    __cil_tmp81 = (int )ctrl.wIndex;
59509#line 808
59510    __cil_tmp82 = (__u16 )__cil_tmp81;
59511#line 808
59512    __cil_tmp83 = (void *)tbuf;
59513#line 808
59514    __cil_tmp84 = (int )ctrl.wLength;
59515#line 808
59516    __cil_tmp85 = (__u16 )__cil_tmp84;
59517#line 808
59518    __cil_tmp86 = (int )tmo;
59519#line 808
59520    i = usb_control_msg(dev, __cil_tmp74, __cil_tmp76, __cil_tmp78, __cil_tmp80, __cil_tmp82,
59521                        __cil_tmp83, __cil_tmp85, __cil_tmp86);
59522#line 811
59523    __cil_tmp87 = & dev->dev;
59524#line 811
59525    device_lock(__cil_tmp87);
59526#line 813
59527    _max1 = i;
59528#line 813
59529    _max2 = 0;
59530    }
59531#line 813
59532    if (_max1 > _max2) {
59533#line 813
59534      tmp___7 = _max1;
59535    } else {
59536#line 813
59537      tmp___7 = _max2;
59538    }
59539#line 812
59540    _min1 = i;
59541#line 812
59542    _min2 = 0;
59543#line 812
59544    if (_min1 < _min2) {
59545#line 812
59546      tmp___8 = _min1;
59547    } else {
59548#line 812
59549      tmp___8 = _min2;
59550    }
59551#line 812
59552    _max1___0 = i;
59553#line 812
59554    _max2___0 = 0;
59555#line 812
59556    if (_max1___0 > _max2___0) {
59557#line 812
59558      tmp___9 = _max1___0;
59559    } else {
59560#line 812
59561      tmp___9 = _max2___0;
59562    }
59563    {
59564#line 812
59565    __cil_tmp88 = (void *)0;
59566#line 812
59567    __cil_tmp89 = (unsigned int )tmp___9;
59568#line 812
59569    __cil_tmp90 = (enum snoop_when )1;
59570#line 812
59571    __cil_tmp91 = (unsigned int )tmp___7;
59572#line 812
59573    snoop_urb(dev, __cil_tmp88, pipe, __cil_tmp89, tmp___8, __cil_tmp90, tbuf, __cil_tmp91);
59574    }
59575#line 814
59576    if (i > 0) {
59577      {
59578#line 814
59579      __cil_tmp92 = (unsigned int )ctrl.wLength;
59580#line 814
59581      if (__cil_tmp92 != 0U) {
59582        {
59583#line 815
59584        __cil_tmp93 = (void const   *)tbuf;
59585#line 815
59586        __cil_tmp94 = (unsigned int )i;
59587#line 815
59588        tmp___10 = copy_to_user(ctrl.data, __cil_tmp93, __cil_tmp94);
59589        }
59590#line 815
59591        if (tmp___10 != 0) {
59592          {
59593#line 816
59594          __cil_tmp95 = (unsigned long )tbuf;
59595#line 816
59596          free_pages(__cil_tmp95, 0U);
59597          }
59598#line 817
59599          return (-14);
59600        } else {
59601
59602        }
59603      } else {
59604
59605      }
59606      }
59607    } else {
59608
59609    }
59610  } else {
59611    {
59612#line 821
59613    __cil_tmp96 = (unsigned int )ctrl.wLength;
59614#line 821
59615    if (__cil_tmp96 != 0U) {
59616      {
59617#line 822
59618      __cil_tmp97 = (void *)tbuf;
59619#line 822
59620      __cil_tmp98 = (void const   *)ctrl.data;
59621#line 822
59622      __cil_tmp99 = (unsigned long )ctrl.wLength;
59623#line 822
59624      tmp___11 = copy_from_user(__cil_tmp97, __cil_tmp98, __cil_tmp99);
59625      }
59626#line 822
59627      if (tmp___11 != 0UL) {
59628        {
59629#line 823
59630        __cil_tmp100 = (unsigned long )tbuf;
59631#line 823
59632        free_pages(__cil_tmp100, 0U);
59633        }
59634#line 824
59635        return (-14);
59636      } else {
59637
59638      }
59639    } else {
59640
59641    }
59642    }
59643    {
59644#line 827
59645    tmp___12 = __create_pipe(dev, 0U);
59646#line 827
59647    __cil_tmp101 = tmp___12 | 2147483648U;
59648#line 827
59649    pipe = (int )__cil_tmp101;
59650#line 828
59651    __cil_tmp102 = (void *)0;
59652#line 828
59653    __cil_tmp103 = (unsigned int )ctrl.wLength;
59654#line 828
59655    __cil_tmp104 = (int )tmo;
59656#line 828
59657    __cil_tmp105 = (enum snoop_when )0;
59658#line 828
59659    __cil_tmp106 = (unsigned int )ctrl.wLength;
59660#line 828
59661    snoop_urb(dev, __cil_tmp102, pipe, __cil_tmp103, __cil_tmp104, __cil_tmp105, tbuf,
59662              __cil_tmp106);
59663#line 831
59664    __cil_tmp107 = & dev->dev;
59665#line 831
59666    device_unlock(__cil_tmp107);
59667#line 832
59668    tmp___13 = __create_pipe(dev, 0U);
59669#line 832
59670    __cil_tmp108 = tmp___13 | 2147483648U;
59671#line 832
59672    __cil_tmp109 = (int )ctrl.bRequest;
59673#line 832
59674    __cil_tmp110 = (__u8 )__cil_tmp109;
59675#line 832
59676    __cil_tmp111 = (int )ctrl.bRequestType;
59677#line 832
59678    __cil_tmp112 = (__u8 )__cil_tmp111;
59679#line 832
59680    __cil_tmp113 = (int )ctrl.wValue;
59681#line 832
59682    __cil_tmp114 = (__u16 )__cil_tmp113;
59683#line 832
59684    __cil_tmp115 = (int )ctrl.wIndex;
59685#line 832
59686    __cil_tmp116 = (__u16 )__cil_tmp115;
59687#line 832
59688    __cil_tmp117 = (void *)tbuf;
59689#line 832
59690    __cil_tmp118 = (int )ctrl.wLength;
59691#line 832
59692    __cil_tmp119 = (__u16 )__cil_tmp118;
59693#line 832
59694    __cil_tmp120 = (int )tmo;
59695#line 832
59696    i = usb_control_msg(dev, __cil_tmp108, __cil_tmp110, __cil_tmp112, __cil_tmp114,
59697                        __cil_tmp116, __cil_tmp117, __cil_tmp119, __cil_tmp120);
59698#line 835
59699    __cil_tmp121 = & dev->dev;
59700#line 835
59701    device_lock(__cil_tmp121);
59702#line 836
59703    _min1___0 = i;
59704#line 836
59705    _min2___0 = 0;
59706    }
59707#line 836
59708    if (_min1___0 < _min2___0) {
59709#line 836
59710      tmp___14 = _min1___0;
59711    } else {
59712#line 836
59713      tmp___14 = _min2___0;
59714    }
59715#line 836
59716    _max1___1 = i;
59717#line 836
59718    _max2___1 = 0;
59719#line 836
59720    if (_max1___1 > _max2___1) {
59721#line 836
59722      tmp___15 = _max1___1;
59723    } else {
59724#line 836
59725      tmp___15 = _max2___1;
59726    }
59727    {
59728#line 836
59729    __cil_tmp122 = (void *)0;
59730#line 836
59731    __cil_tmp123 = (unsigned int )tmp___15;
59732#line 836
59733    __cil_tmp124 = (enum snoop_when )1;
59734#line 836
59735    __cil_tmp125 = (unsigned char *)0;
59736#line 836
59737    snoop_urb(dev, __cil_tmp122, pipe, __cil_tmp123, tmp___14, __cil_tmp124, __cil_tmp125,
59738              0U);
59739    }
59740  }
59741  }
59742  {
59743#line 838
59744  __cil_tmp126 = (unsigned long )tbuf;
59745#line 838
59746  free_pages(__cil_tmp126, 0U);
59747  }
59748#line 839
59749  if (i < 0) {
59750#line 839
59751    if (i != -32) {
59752      {
59753#line 840
59754      tmp___16 = get_current();
59755#line 840
59756      __cil_tmp127 = & dev->dev;
59757#line 840
59758      __cil_tmp128 = (struct device  const  *)__cil_tmp127;
59759#line 840
59760      __cil_tmp129 = & tmp___16->comm;
59761#line 840
59762      __cil_tmp130 = (char *)__cil_tmp129;
59763#line 840
59764      __cil_tmp131 = (int )ctrl.bRequestType;
59765#line 840
59766      __cil_tmp132 = (int )ctrl.bRequest;
59767#line 840
59768      __cil_tmp133 = (int )ctrl.wLength;
59769#line 840
59770      dev_printk("<7>", __cil_tmp128, "usbfs: USBDEVFS_CONTROL failed cmd %s rqt %u rq %u len %u ret %d\n",
59771                 __cil_tmp130, __cil_tmp131, __cil_tmp132, __cil_tmp133, i);
59772      }
59773    } else {
59774
59775    }
59776  } else {
59777
59778  }
59779#line 845
59780  return (i);
59781}
59782}
59783#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"
59784static int proc_bulk(struct dev_state *ps , void *arg ) 
59785{ struct usb_device *dev ;
59786  struct usbdevfs_bulktransfer bulk ;
59787  unsigned int tmo ;
59788  unsigned int len1 ;
59789  unsigned int pipe ;
59790  int len2 ;
59791  unsigned char *tbuf ;
59792  int i ;
59793  int ret ;
59794  unsigned long tmp ;
59795  unsigned int tmp___0 ;
59796  unsigned int tmp___1 ;
59797  __u16 tmp___2 ;
59798  void *tmp___3 ;
59799  unsigned long flag ;
59800  unsigned long roksum ;
59801  struct thread_info *tmp___4 ;
59802  long tmp___5 ;
59803  int tmp___6 ;
59804  unsigned long tmp___7 ;
59805  void *__cil_tmp23 ;
59806  void const   *__cil_tmp24 ;
59807  struct usb_device *__cil_tmp25 ;
59808  unsigned int __cil_tmp26 ;
59809  unsigned int __cil_tmp27 ;
59810  unsigned int __cil_tmp28 ;
59811  unsigned int __cil_tmp29 ;
59812  int __cil_tmp30 ;
59813  unsigned int __cil_tmp31 ;
59814  int __cil_tmp32 ;
59815  unsigned int __cil_tmp33 ;
59816  size_t __cil_tmp34 ;
59817  unsigned char *__cil_tmp35 ;
59818  unsigned long __cil_tmp36 ;
59819  unsigned long __cil_tmp37 ;
59820  unsigned int __cil_tmp38 ;
59821  int __cil_tmp39 ;
59822  long __cil_tmp40 ;
59823  void const   *__cil_tmp41 ;
59824  void *__cil_tmp42 ;
59825  int __cil_tmp43 ;
59826  int __cil_tmp44 ;
59827  enum snoop_when __cil_tmp45 ;
59828  unsigned char *__cil_tmp46 ;
59829  struct device *__cil_tmp47 ;
59830  void *__cil_tmp48 ;
59831  int __cil_tmp49 ;
59832  int __cil_tmp50 ;
59833  struct device *__cil_tmp51 ;
59834  void *__cil_tmp52 ;
59835  int __cil_tmp53 ;
59836  unsigned int __cil_tmp54 ;
59837  enum snoop_when __cil_tmp55 ;
59838  unsigned int __cil_tmp56 ;
59839  void const   *__cil_tmp57 ;
59840  unsigned int __cil_tmp58 ;
59841  void const   *__cil_tmp59 ;
59842  void *__cil_tmp60 ;
59843  void const   *__cil_tmp61 ;
59844  unsigned long __cil_tmp62 ;
59845  void const   *__cil_tmp63 ;
59846  void *__cil_tmp64 ;
59847  int __cil_tmp65 ;
59848  int __cil_tmp66 ;
59849  enum snoop_when __cil_tmp67 ;
59850  struct device *__cil_tmp68 ;
59851  void *__cil_tmp69 ;
59852  int __cil_tmp70 ;
59853  int __cil_tmp71 ;
59854  struct device *__cil_tmp72 ;
59855  void *__cil_tmp73 ;
59856  int __cil_tmp74 ;
59857  unsigned int __cil_tmp75 ;
59858  enum snoop_when __cil_tmp76 ;
59859  unsigned char *__cil_tmp77 ;
59860  void const   *__cil_tmp78 ;
59861
59862  {
59863  {
59864#line 850
59865  dev = ps->dev;
59866#line 857
59867  __cil_tmp23 = (void *)(& bulk);
59868#line 857
59869  __cil_tmp24 = (void const   *)arg;
59870#line 857
59871  tmp = copy_from_user(__cil_tmp23, __cil_tmp24, 24UL);
59872  }
59873#line 857
59874  if (tmp != 0UL) {
59875#line 858
59876    return (-14);
59877  } else {
59878
59879  }
59880  {
59881#line 859
59882  __cil_tmp25 = ps->dev;
59883#line 859
59884  ret = findintfep(__cil_tmp25, bulk.ep);
59885  }
59886#line 860
59887  if (ret < 0) {
59888#line 861
59889    return (ret);
59890  } else {
59891
59892  }
59893  {
59894#line 862
59895  __cil_tmp26 = (unsigned int )ret;
59896#line 862
59897  ret = checkintf(ps, __cil_tmp26);
59898  }
59899#line 863
59900  if (ret != 0) {
59901#line 864
59902    return (ret);
59903  } else {
59904
59905  }
59906  {
59907#line 865
59908  __cil_tmp27 = bulk.ep & 128U;
59909#line 865
59910  if (__cil_tmp27 != 0U) {
59911    {
59912#line 866
59913    __cil_tmp28 = bulk.ep & 127U;
59914#line 866
59915    tmp___0 = __create_pipe(dev, __cil_tmp28);
59916#line 866
59917    pipe = tmp___0 | 3221225600U;
59918    }
59919  } else {
59920    {
59921#line 868
59922    __cil_tmp29 = bulk.ep & 127U;
59923#line 868
59924    tmp___1 = __create_pipe(dev, __cil_tmp29);
59925#line 868
59926    pipe = tmp___1 | 3221225472U;
59927    }
59928  }
59929  }
59930  {
59931#line 869
59932  __cil_tmp30 = (int )pipe;
59933#line 869
59934  __cil_tmp31 = bulk.ep & 128U;
59935#line 869
59936  __cil_tmp32 = __cil_tmp31 == 0U;
59937#line 869
59938  tmp___2 = usb_maxpacket(dev, __cil_tmp30, __cil_tmp32);
59939  }
59940  {
59941#line 869
59942  __cil_tmp33 = (unsigned int )tmp___2;
59943#line 869
59944  if (__cil_tmp33 == 0U) {
59945#line 870
59946    return (-22);
59947  } else {
59948
59949  }
59950  }
59951#line 871
59952  len1 = bulk.len;
59953#line 872
59954  if (len1 > 16384U) {
59955#line 873
59956    return (-22);
59957  } else {
59958
59959  }
59960  {
59961#line 874
59962  __cil_tmp34 = (size_t )len1;
59963#line 874
59964  tmp___3 = kmalloc(__cil_tmp34, 208U);
59965#line 874
59966  tbuf = (unsigned char *)tmp___3;
59967  }
59968  {
59969#line 874
59970  __cil_tmp35 = (unsigned char *)0;
59971#line 874
59972  __cil_tmp36 = (unsigned long )__cil_tmp35;
59973#line 874
59974  __cil_tmp37 = (unsigned long )tbuf;
59975#line 874
59976  if (__cil_tmp37 == __cil_tmp36) {
59977#line 875
59978    return (-12);
59979  } else {
59980
59981  }
59982  }
59983#line 876
59984  tmo = bulk.timeout;
59985  {
59986#line 877
59987  __cil_tmp38 = bulk.ep & 128U;
59988#line 877
59989  if (__cil_tmp38 != 0U) {
59990#line 878
59991    if (len1 != 0U) {
59992      {
59993#line 878
59994      tmp___4 = current_thread_info();
59995#line 878
59996      __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (bulk.data),
59997                "g" ((long )len1), "rm" (tmp___4->addr_limit.seg));
59998#line 878
59999      __cil_tmp39 = flag == 0UL;
60000#line 878
60001      __cil_tmp40 = (long )__cil_tmp39;
60002#line 878
60003      tmp___5 = __builtin_expect(__cil_tmp40, 1L);
60004      }
60005#line 878
60006      if (tmp___5 == 0L) {
60007        {
60008#line 879
60009        __cil_tmp41 = (void const   *)tbuf;
60010#line 879
60011        kfree(__cil_tmp41);
60012        }
60013#line 880
60014        return (-22);
60015      } else {
60016
60017      }
60018    } else {
60019
60020    }
60021    {
60022#line 882
60023    __cil_tmp42 = (void *)0;
60024#line 882
60025    __cil_tmp43 = (int )pipe;
60026#line 882
60027    __cil_tmp44 = (int )tmo;
60028#line 882
60029    __cil_tmp45 = (enum snoop_when )0;
60030#line 882
60031    __cil_tmp46 = (unsigned char *)0;
60032#line 882
60033    snoop_urb(dev, __cil_tmp42, __cil_tmp43, len1, __cil_tmp44, __cil_tmp45, __cil_tmp46,
60034              0U);
60035#line 884
60036    __cil_tmp47 = & dev->dev;
60037#line 884
60038    device_unlock(__cil_tmp47);
60039#line 885
60040    __cil_tmp48 = (void *)tbuf;
60041#line 885
60042    __cil_tmp49 = (int )len1;
60043#line 885
60044    __cil_tmp50 = (int )tmo;
60045#line 885
60046    i = usb_bulk_msg(dev, pipe, __cil_tmp48, __cil_tmp49, & len2, __cil_tmp50);
60047#line 886
60048    __cil_tmp51 = & dev->dev;
60049#line 886
60050    device_lock(__cil_tmp51);
60051#line 887
60052    __cil_tmp52 = (void *)0;
60053#line 887
60054    __cil_tmp53 = (int )pipe;
60055#line 887
60056    __cil_tmp54 = (unsigned int )len2;
60057#line 887
60058    __cil_tmp55 = (enum snoop_when )1;
60059#line 887
60060    __cil_tmp56 = (unsigned int )len2;
60061#line 887
60062    snoop_urb(dev, __cil_tmp52, __cil_tmp53, __cil_tmp54, i, __cil_tmp55, tbuf, __cil_tmp56);
60063    }
60064#line 889
60065    if (i == 0) {
60066#line 889
60067      if (len2 != 0) {
60068        {
60069#line 890
60070        __cil_tmp57 = (void const   *)tbuf;
60071#line 890
60072        __cil_tmp58 = (unsigned int )len2;
60073#line 890
60074        tmp___6 = copy_to_user(bulk.data, __cil_tmp57, __cil_tmp58);
60075        }
60076#line 890
60077        if (tmp___6 != 0) {
60078          {
60079#line 891
60080          __cil_tmp59 = (void const   *)tbuf;
60081#line 891
60082          kfree(__cil_tmp59);
60083          }
60084#line 892
60085          return (-14);
60086        } else {
60087
60088        }
60089      } else {
60090
60091      }
60092    } else {
60093
60094    }
60095  } else {
60096#line 896
60097    if (len1 != 0U) {
60098      {
60099#line 897
60100      __cil_tmp60 = (void *)tbuf;
60101#line 897
60102      __cil_tmp61 = (void const   *)bulk.data;
60103#line 897
60104      __cil_tmp62 = (unsigned long )len1;
60105#line 897
60106      tmp___7 = copy_from_user(__cil_tmp60, __cil_tmp61, __cil_tmp62);
60107      }
60108#line 897
60109      if (tmp___7 != 0UL) {
60110        {
60111#line 898
60112        __cil_tmp63 = (void const   *)tbuf;
60113#line 898
60114        kfree(__cil_tmp63);
60115        }
60116#line 899
60117        return (-14);
60118      } else {
60119
60120      }
60121    } else {
60122
60123    }
60124    {
60125#line 902
60126    __cil_tmp64 = (void *)0;
60127#line 902
60128    __cil_tmp65 = (int )pipe;
60129#line 902
60130    __cil_tmp66 = (int )tmo;
60131#line 902
60132    __cil_tmp67 = (enum snoop_when )0;
60133#line 902
60134    snoop_urb(dev, __cil_tmp64, __cil_tmp65, len1, __cil_tmp66, __cil_tmp67, tbuf,
60135              len1);
60136#line 904
60137    __cil_tmp68 = & dev->dev;
60138#line 904
60139    device_unlock(__cil_tmp68);
60140#line 905
60141    __cil_tmp69 = (void *)tbuf;
60142#line 905
60143    __cil_tmp70 = (int )len1;
60144#line 905
60145    __cil_tmp71 = (int )tmo;
60146#line 905
60147    i = usb_bulk_msg(dev, pipe, __cil_tmp69, __cil_tmp70, & len2, __cil_tmp71);
60148#line 906
60149    __cil_tmp72 = & dev->dev;
60150#line 906
60151    device_lock(__cil_tmp72);
60152#line 907
60153    __cil_tmp73 = (void *)0;
60154#line 907
60155    __cil_tmp74 = (int )pipe;
60156#line 907
60157    __cil_tmp75 = (unsigned int )len2;
60158#line 907
60159    __cil_tmp76 = (enum snoop_when )1;
60160#line 907
60161    __cil_tmp77 = (unsigned char *)0;
60162#line 907
60163    snoop_urb(dev, __cil_tmp73, __cil_tmp74, __cil_tmp75, i, __cil_tmp76, __cil_tmp77,
60164              0U);
60165    }
60166  }
60167  }
60168  {
60169#line 909
60170  __cil_tmp78 = (void const   *)tbuf;
60171#line 909
60172  kfree(__cil_tmp78);
60173  }
60174#line 910
60175  if (i < 0) {
60176#line 911
60177    return (i);
60178  } else {
60179
60180  }
60181#line 912
60182  return (len2);
60183}
60184}
60185#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"
60186static int proc_resetep(struct dev_state *ps , void *arg ) 
60187{ unsigned int ep ;
60188  int ret ;
60189  int __ret_gu ;
60190  unsigned long __val_gu ;
60191  struct usb_device *__cil_tmp7 ;
60192  unsigned int __cil_tmp8 ;
60193  struct usb_device *__cil_tmp9 ;
60194
60195  {
60196  {
60197#line 920
60198  might_fault();
60199  }
60200#line 920
60201  if (1) {
60202#line 920
60203    goto case_4;
60204  } else {
60205#line 920
60206    goto switch_default;
60207#line 920
60208    if (0) {
60209#line 920
60210      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60211#line 920
60212      goto ldv_30907;
60213#line 920
60214      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60215#line 920
60216      goto ldv_30907;
60217      case_4: 
60218#line 920
60219      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60220#line 920
60221      goto ldv_30907;
60222#line 920
60223      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60224#line 920
60225      goto ldv_30907;
60226      switch_default: 
60227#line 920
60228      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60229#line 920
60230      goto ldv_30907;
60231    } else {
60232
60233    }
60234  }
60235  ldv_30907: 
60236#line 920
60237  ep = (unsigned int )__val_gu;
60238#line 920
60239  if (__ret_gu != 0) {
60240#line 921
60241    return (-14);
60242  } else {
60243
60244  }
60245  {
60246#line 922
60247  __cil_tmp7 = ps->dev;
60248#line 922
60249  ret = findintfep(__cil_tmp7, ep);
60250  }
60251#line 923
60252  if (ret < 0) {
60253#line 924
60254    return (ret);
60255  } else {
60256
60257  }
60258  {
60259#line 925
60260  __cil_tmp8 = (unsigned int )ret;
60261#line 925
60262  ret = checkintf(ps, __cil_tmp8);
60263  }
60264#line 926
60265  if (ret != 0) {
60266#line 927
60267    return (ret);
60268  } else {
60269
60270  }
60271  {
60272#line 928
60273  __cil_tmp9 = ps->dev;
60274#line 928
60275  usb_reset_endpoint(__cil_tmp9, ep);
60276  }
60277#line 929
60278  return (0);
60279}
60280}
60281#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"
60282static int proc_clearhalt(struct dev_state *ps , void *arg ) 
60283{ unsigned int ep ;
60284  int pipe ;
60285  int ret ;
60286  int __ret_gu ;
60287  unsigned long __val_gu ;
60288  unsigned int tmp ;
60289  unsigned int tmp___0 ;
60290  int tmp___1 ;
60291  struct usb_device *__cil_tmp11 ;
60292  unsigned int __cil_tmp12 ;
60293  unsigned int __cil_tmp13 ;
60294  struct usb_device *__cil_tmp14 ;
60295  unsigned int __cil_tmp15 ;
60296  unsigned int __cil_tmp16 ;
60297  struct usb_device *__cil_tmp17 ;
60298  unsigned int __cil_tmp18 ;
60299  unsigned int __cil_tmp19 ;
60300  struct usb_device *__cil_tmp20 ;
60301
60302  {
60303  {
60304#line 938
60305  might_fault();
60306  }
60307#line 938
60308  if (1) {
60309#line 938
60310    goto case_4;
60311  } else {
60312#line 938
60313    goto switch_default;
60314#line 938
60315    if (0) {
60316#line 938
60317      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60318#line 938
60319      goto ldv_30923;
60320#line 938
60321      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60322#line 938
60323      goto ldv_30923;
60324      case_4: 
60325#line 938
60326      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60327#line 938
60328      goto ldv_30923;
60329#line 938
60330      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60331#line 938
60332      goto ldv_30923;
60333      switch_default: 
60334#line 938
60335      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
60336#line 938
60337      goto ldv_30923;
60338    } else {
60339
60340    }
60341  }
60342  ldv_30923: 
60343#line 938
60344  ep = (unsigned int )__val_gu;
60345#line 938
60346  if (__ret_gu != 0) {
60347#line 939
60348    return (-14);
60349  } else {
60350
60351  }
60352  {
60353#line 940
60354  __cil_tmp11 = ps->dev;
60355#line 940
60356  ret = findintfep(__cil_tmp11, ep);
60357  }
60358#line 941
60359  if (ret < 0) {
60360#line 942
60361    return (ret);
60362  } else {
60363
60364  }
60365  {
60366#line 943
60367  __cil_tmp12 = (unsigned int )ret;
60368#line 943
60369  ret = checkintf(ps, __cil_tmp12);
60370  }
60371#line 944
60372  if (ret != 0) {
60373#line 945
60374    return (ret);
60375  } else {
60376
60377  }
60378  {
60379#line 946
60380  __cil_tmp13 = ep & 128U;
60381#line 946
60382  if (__cil_tmp13 != 0U) {
60383    {
60384#line 947
60385    __cil_tmp14 = ps->dev;
60386#line 947
60387    __cil_tmp15 = ep & 127U;
60388#line 947
60389    tmp = __create_pipe(__cil_tmp14, __cil_tmp15);
60390#line 947
60391    __cil_tmp16 = tmp | 3221225600U;
60392#line 947
60393    pipe = (int )__cil_tmp16;
60394    }
60395  } else {
60396    {
60397#line 949
60398    __cil_tmp17 = ps->dev;
60399#line 949
60400    __cil_tmp18 = ep & 127U;
60401#line 949
60402    tmp___0 = __create_pipe(__cil_tmp17, __cil_tmp18);
60403#line 949
60404    __cil_tmp19 = tmp___0 | 3221225472U;
60405#line 949
60406    pipe = (int )__cil_tmp19;
60407    }
60408  }
60409  }
60410  {
60411#line 951
60412  __cil_tmp20 = ps->dev;
60413#line 951
60414  tmp___1 = usb_clear_halt(__cil_tmp20, pipe);
60415  }
60416#line 951
60417  return (tmp___1);
60418}
60419}
60420#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"
60421static int proc_getdriver(struct dev_state *ps , void *arg ) 
60422{ struct usbdevfs_getdriver gd ;
60423  struct usb_interface *intf ;
60424  int ret ;
60425  unsigned long tmp ;
60426  int tmp___1 ;
60427  void *__cil_tmp8 ;
60428  void const   *__cil_tmp9 ;
60429  struct usb_device *__cil_tmp10 ;
60430  struct usb_device  const  *__cil_tmp11 ;
60431  struct usb_interface *__cil_tmp12 ;
60432  unsigned long __cil_tmp13 ;
60433  unsigned long __cil_tmp14 ;
60434  struct device_driver *__cil_tmp15 ;
60435  unsigned long __cil_tmp16 ;
60436  struct device_driver *__cil_tmp17 ;
60437  unsigned long __cil_tmp18 ;
60438  char (*__cil_tmp19)[256U] ;
60439  char *__cil_tmp20 ;
60440  struct device_driver *__cil_tmp21 ;
60441  char const   *__cil_tmp22 ;
60442  void const   *__cil_tmp23 ;
60443
60444  {
60445  {
60446#line 960
60447  __cil_tmp8 = (void *)(& gd);
60448#line 960
60449  __cil_tmp9 = (void const   *)arg;
60450#line 960
60451  tmp = copy_from_user(__cil_tmp8, __cil_tmp9, 260UL);
60452  }
60453#line 960
60454  if (tmp != 0UL) {
60455#line 961
60456    return (-14);
60457  } else {
60458
60459  }
60460  {
60461#line 962
60462  __cil_tmp10 = ps->dev;
60463#line 962
60464  __cil_tmp11 = (struct usb_device  const  *)__cil_tmp10;
60465#line 962
60466  intf = usb_ifnum_to_if(__cil_tmp11, gd.interface);
60467  }
60468  {
60469#line 963
60470  __cil_tmp12 = (struct usb_interface *)0;
60471#line 963
60472  __cil_tmp13 = (unsigned long )__cil_tmp12;
60473#line 963
60474  __cil_tmp14 = (unsigned long )intf;
60475#line 963
60476  if (__cil_tmp14 == __cil_tmp13) {
60477#line 964
60478    ret = -61;
60479  } else {
60480    {
60481#line 963
60482    __cil_tmp15 = (struct device_driver *)0;
60483#line 963
60484    __cil_tmp16 = (unsigned long )__cil_tmp15;
60485#line 963
60486    __cil_tmp17 = intf->dev.driver;
60487#line 963
60488    __cil_tmp18 = (unsigned long )__cil_tmp17;
60489#line 963
60490    if (__cil_tmp18 == __cil_tmp16) {
60491#line 964
60492      ret = -61;
60493    } else {
60494      {
60495#line 966
60496      __cil_tmp19 = & gd.driver;
60497#line 966
60498      __cil_tmp20 = (char *)__cil_tmp19;
60499#line 966
60500      __cil_tmp21 = intf->dev.driver;
60501#line 966
60502      __cil_tmp22 = __cil_tmp21->name;
60503#line 966
60504      strncpy(__cil_tmp20, __cil_tmp22, 256UL);
60505#line 968
60506      __cil_tmp23 = (void const   *)(& gd);
60507#line 968
60508      tmp___1 = copy_to_user(arg, __cil_tmp23, 260U);
60509      }
60510#line 968
60511      if (tmp___1 != 0) {
60512#line 968
60513        ret = -14;
60514      } else {
60515#line 968
60516        ret = 0;
60517      }
60518    }
60519    }
60520  }
60521  }
60522#line 970
60523  return (ret);
60524}
60525}
60526#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"
60527static int proc_connectinfo(struct dev_state *ps , void *arg ) 
60528{ struct usbdevfs_connectinfo ci ;
60529  int tmp ;
60530  struct usb_device *__cil_tmp5 ;
60531  int __cil_tmp6 ;
60532  struct usb_device *__cil_tmp7 ;
60533  enum usb_device_speed __cil_tmp8 ;
60534  unsigned int __cil_tmp9 ;
60535  int __cil_tmp10 ;
60536  void const   *__cil_tmp11 ;
60537
60538  {
60539  {
60540#line 975
60541  __cil_tmp5 = ps->dev;
60542#line 975
60543  __cil_tmp6 = __cil_tmp5->devnum;
60544#line 975
60545  ci.devnum = (unsigned int )__cil_tmp6;
60546#line 975
60547  __cil_tmp7 = ps->dev;
60548#line 975
60549  __cil_tmp8 = __cil_tmp7->speed;
60550#line 975
60551  __cil_tmp9 = (unsigned int )__cil_tmp8;
60552#line 975
60553  __cil_tmp10 = __cil_tmp9 == 1U;
60554#line 975
60555  ci.slow = (unsigned char )__cil_tmp10;
60556#line 980
60557  __cil_tmp11 = (void const   *)(& ci);
60558#line 980
60559  tmp = copy_to_user(arg, __cil_tmp11, 8U);
60560  }
60561#line 980
60562  if (tmp != 0) {
60563#line 981
60564    return (-14);
60565  } else {
60566
60567  }
60568#line 982
60569  return (0);
60570}
60571}
60572#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"
60573static int proc_resetdevice(struct dev_state *ps ) 
60574{ int tmp ;
60575  struct usb_device *__cil_tmp3 ;
60576
60577  {
60578  {
60579#line 987
60580  __cil_tmp3 = ps->dev;
60581#line 987
60582  tmp = usb_reset_device(__cil_tmp3);
60583  }
60584#line 987
60585  return (tmp);
60586}
60587}
60588#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"
60589static int proc_setintf(struct dev_state *ps , void *arg ) 
60590{ struct usbdevfs_setinterface setintf ;
60591  int ret ;
60592  unsigned long tmp ;
60593  int tmp___0 ;
60594  void *__cil_tmp7 ;
60595  void const   *__cil_tmp8 ;
60596  struct usb_device *__cil_tmp9 ;
60597  int __cil_tmp10 ;
60598  int __cil_tmp11 ;
60599
60600  {
60601  {
60602#line 995
60603  __cil_tmp7 = (void *)(& setintf);
60604#line 995
60605  __cil_tmp8 = (void const   *)arg;
60606#line 995
60607  tmp = copy_from_user(__cil_tmp7, __cil_tmp8, 8UL);
60608  }
60609#line 995
60610  if (tmp != 0UL) {
60611#line 996
60612    return (-14);
60613  } else {
60614
60615  }
60616  {
60617#line 997
60618  ret = checkintf(ps, setintf.interface);
60619  }
60620#line 997
60621  if (ret != 0) {
60622#line 998
60623    return (ret);
60624  } else {
60625
60626  }
60627  {
60628#line 999
60629  __cil_tmp9 = ps->dev;
60630#line 999
60631  __cil_tmp10 = (int )setintf.interface;
60632#line 999
60633  __cil_tmp11 = (int )setintf.altsetting;
60634#line 999
60635  tmp___0 = usb_set_interface(__cil_tmp9, __cil_tmp10, __cil_tmp11);
60636  }
60637#line 999
60638  return (tmp___0);
60639}
60640}
60641#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"
60642static int proc_setconfig(struct dev_state *ps , void *arg ) 
60643{ int u ;
60644  int status ;
60645  struct usb_host_config *actconfig ;
60646  int __ret_gu ;
60647  unsigned long __val_gu ;
60648  int i ;
60649  struct task_struct *tmp ;
60650  int tmp___0 ;
60651  struct usb_device *__cil_tmp11 ;
60652  struct usb_host_config *__cil_tmp12 ;
60653  unsigned long __cil_tmp13 ;
60654  unsigned long __cil_tmp14 ;
60655  struct usb_interface *__cil_tmp15 ;
60656  struct usb_device *__cil_tmp16 ;
60657  struct device *__cil_tmp17 ;
60658  struct device  const  *__cil_tmp18 ;
60659  struct usb_interface *__cil_tmp19 ;
60660  struct usb_host_interface *__cil_tmp20 ;
60661  __u8 __cil_tmp21 ;
60662  int __cil_tmp22 ;
60663  struct usb_interface *__cil_tmp23 ;
60664  struct device_driver *__cil_tmp24 ;
60665  char const   *__cil_tmp25 ;
60666  char (*__cil_tmp26)[16U] ;
60667  char *__cil_tmp27 ;
60668  __u8 __cil_tmp28 ;
60669  int __cil_tmp29 ;
60670  struct usb_host_config *__cil_tmp30 ;
60671  unsigned long __cil_tmp31 ;
60672  unsigned long __cil_tmp32 ;
60673  __u8 __cil_tmp33 ;
60674  int __cil_tmp34 ;
60675  struct usb_device *__cil_tmp35 ;
60676  struct usb_device *__cil_tmp36 ;
60677  struct usb_device *__cil_tmp37 ;
60678
60679  {
60680  {
60681#line 1006
60682  status = 0;
60683#line 1009
60684  might_fault();
60685  }
60686#line 1009
60687  if (1) {
60688#line 1009
60689    goto case_4;
60690  } else {
60691#line 1009
60692    goto switch_default;
60693#line 1009
60694    if (0) {
60695#line 1009
60696      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60697#line 1009
60698      goto ldv_30960;
60699#line 1009
60700      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60701#line 1009
60702      goto ldv_30960;
60703      case_4: 
60704#line 1009
60705      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60706#line 1009
60707      goto ldv_30960;
60708#line 1009
60709      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60710#line 1009
60711      goto ldv_30960;
60712      switch_default: 
60713#line 1009
60714      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((int *)arg));
60715#line 1009
60716      goto ldv_30960;
60717    } else {
60718
60719    }
60720  }
60721  ldv_30960: 
60722#line 1009
60723  u = (int )__val_gu;
60724#line 1009
60725  if (__ret_gu != 0) {
60726#line 1010
60727    return (-14);
60728  } else {
60729
60730  }
60731#line 1012
60732  __cil_tmp11 = ps->dev;
60733#line 1012
60734  actconfig = __cil_tmp11->actconfig;
60735  {
60736#line 1018
60737  __cil_tmp12 = (struct usb_host_config *)0;
60738#line 1018
60739  __cil_tmp13 = (unsigned long )__cil_tmp12;
60740#line 1018
60741  __cil_tmp14 = (unsigned long )actconfig;
60742#line 1018
60743  if (__cil_tmp14 != __cil_tmp13) {
60744#line 1021
60745    i = 0;
60746#line 1021
60747    goto ldv_30969;
60748    ldv_30968: 
60749    {
60750#line 1022
60751    __cil_tmp15 = actconfig->interface[i];
60752#line 1022
60753    tmp___0 = usb_interface_claimed(__cil_tmp15);
60754    }
60755#line 1022
60756    if (tmp___0 != 0) {
60757      {
60758#line 1023
60759      tmp = get_current();
60760#line 1023
60761      __cil_tmp16 = ps->dev;
60762#line 1023
60763      __cil_tmp17 = & __cil_tmp16->dev;
60764#line 1023
60765      __cil_tmp18 = (struct device  const  *)__cil_tmp17;
60766#line 1023
60767      __cil_tmp19 = actconfig->interface[i];
60768#line 1023
60769      __cil_tmp20 = __cil_tmp19->cur_altsetting;
60770#line 1023
60771      __cil_tmp21 = __cil_tmp20->desc.bInterfaceNumber;
60772#line 1023
60773      __cil_tmp22 = (int )__cil_tmp21;
60774#line 1023
60775      __cil_tmp23 = actconfig->interface[i];
60776#line 1023
60777      __cil_tmp24 = __cil_tmp23->dev.driver;
60778#line 1023
60779      __cil_tmp25 = __cil_tmp24->name;
60780#line 1023
60781      __cil_tmp26 = & tmp->comm;
60782#line 1023
60783      __cil_tmp27 = (char *)__cil_tmp26;
60784#line 1023
60785      dev_warn(__cil_tmp18, "usbfs: interface %d claimed by %s while \'%s\' sets config #%d\n",
60786               __cil_tmp22, __cil_tmp25, __cil_tmp27, u);
60787#line 1032
60788      status = -16;
60789      }
60790#line 1033
60791      goto ldv_30967;
60792    } else {
60793
60794    }
60795#line 1021
60796    i = i + 1;
60797    ldv_30969: ;
60798    {
60799#line 1021
60800    __cil_tmp28 = actconfig->desc.bNumInterfaces;
60801#line 1021
60802    __cil_tmp29 = (int )__cil_tmp28;
60803#line 1021
60804    if (__cil_tmp29 > i) {
60805#line 1022
60806      goto ldv_30968;
60807    } else {
60808#line 1024
60809      goto ldv_30967;
60810    }
60811    }
60812    ldv_30967: ;
60813  } else {
60814
60815  }
60816  }
60817#line 1041
60818  if (status == 0) {
60819    {
60820#line 1042
60821    __cil_tmp30 = (struct usb_host_config *)0;
60822#line 1042
60823    __cil_tmp31 = (unsigned long )__cil_tmp30;
60824#line 1042
60825    __cil_tmp32 = (unsigned long )actconfig;
60826#line 1042
60827    if (__cil_tmp32 != __cil_tmp31) {
60828      {
60829#line 1042
60830      __cil_tmp33 = actconfig->desc.bConfigurationValue;
60831#line 1042
60832      __cil_tmp34 = (int )__cil_tmp33;
60833#line 1042
60834      if (__cil_tmp34 == u) {
60835        {
60836#line 1043
60837        __cil_tmp35 = ps->dev;
60838#line 1043
60839        status = usb_reset_configuration(__cil_tmp35);
60840        }
60841      } else {
60842        {
60843#line 1045
60844        __cil_tmp36 = ps->dev;
60845#line 1045
60846        status = usb_set_configuration(__cil_tmp36, u);
60847        }
60848      }
60849      }
60850    } else {
60851      {
60852#line 1045
60853      __cil_tmp37 = ps->dev;
60854#line 1045
60855      status = usb_set_configuration(__cil_tmp37, u);
60856      }
60857    }
60858    }
60859  } else {
60860
60861  }
60862#line 1048
60863  return (status);
60864}
60865}
60866#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"
60867static int proc_do_submiturb(struct dev_state *ps , struct usbdevfs_urb *uurb , struct usbdevfs_iso_packet_desc *iso_frame_desc ,
60868                             void *arg ) 
60869{ struct usbdevfs_iso_packet_desc *isopkt ;
60870  struct usb_host_endpoint *ep ;
60871  struct async *as ;
60872  struct usb_ctrlrequest *dr ;
60873  struct cred  const  *cred ;
60874  struct task_struct *tmp ;
60875  unsigned int u ;
60876  unsigned int totlen ;
60877  unsigned int isofrmlen ;
60878  int ret ;
60879  int ifnum ;
60880  int is_in ;
60881  int tmp___0 ;
60882  void *tmp___1 ;
60883  unsigned long tmp___2 ;
60884  __u16 tmp___3 ;
60885  __u16 tmp___4 ;
60886  __u16 tmp___5 ;
60887  __u16 tmp___6 ;
60888  __u16 tmp___7 ;
60889  __u16 tmp___8 ;
60890  int tmp___9 ;
60891  int tmp___10 ;
60892  int tmp___11 ;
60893  void *tmp___12 ;
60894  unsigned long tmp___13 ;
60895  unsigned long flag ;
60896  unsigned long roksum ;
60897  struct thread_info *tmp___14 ;
60898  long tmp___15 ;
60899  unsigned int tmp___16 ;
60900  int _min1 ;
60901  int _min2 ;
60902  int tmp___17 ;
60903  struct task_struct *tmp___18 ;
60904  struct pid *tmp___19 ;
60905  struct task_struct *tmp___20 ;
60906  unsigned long tmp___21 ;
60907  unsigned char *tmp___22 ;
60908  int tmp___23 ;
60909  int tmp___24 ;
60910  unsigned int __cil_tmp46 ;
60911  unsigned int __cil_tmp47 ;
60912  int __cil_tmp48 ;
60913  void *__cil_tmp49 ;
60914  unsigned long __cil_tmp50 ;
60915  void *__cil_tmp51 ;
60916  unsigned long __cil_tmp52 ;
60917  unsigned char __cil_tmp53 ;
60918  unsigned int __cil_tmp54 ;
60919  unsigned char __cil_tmp55 ;
60920  int __cil_tmp56 ;
60921  int __cil_tmp57 ;
60922  struct usb_device *__cil_tmp58 ;
60923  unsigned char __cil_tmp59 ;
60924  unsigned int __cil_tmp60 ;
60925  unsigned int __cil_tmp61 ;
60926  unsigned char __cil_tmp62 ;
60927  signed char __cil_tmp63 ;
60928  int __cil_tmp64 ;
60929  struct usb_device *__cil_tmp65 ;
60930  struct usb_device *__cil_tmp66 ;
60931  struct usb_host_endpoint *__cil_tmp67 ;
60932  unsigned long __cil_tmp68 ;
60933  unsigned long __cil_tmp69 ;
60934  unsigned char __cil_tmp70 ;
60935  int __cil_tmp71 ;
60936  unsigned char __cil_tmp72 ;
60937  int __cil_tmp73 ;
60938  unsigned char __cil_tmp74 ;
60939  int __cil_tmp75 ;
60940  unsigned char __cil_tmp76 ;
60941  int __cil_tmp77 ;
60942  struct usb_endpoint_descriptor *__cil_tmp78 ;
60943  struct usb_endpoint_descriptor  const  *__cil_tmp79 ;
60944  int __cil_tmp80 ;
60945  int __cil_tmp81 ;
60946  struct usb_ctrlrequest *__cil_tmp82 ;
60947  unsigned long __cil_tmp83 ;
60948  unsigned long __cil_tmp84 ;
60949  void *__cil_tmp85 ;
60950  void *__cil_tmp86 ;
60951  void const   *__cil_tmp87 ;
60952  void const   *__cil_tmp88 ;
60953  __le16 *__cil_tmp89 ;
60954  __le16 const   *__cil_tmp90 ;
60955  int __cil_tmp91 ;
60956  int __cil_tmp92 ;
60957  int __cil_tmp93 ;
60958  void const   *__cil_tmp94 ;
60959  __le16 *__cil_tmp95 ;
60960  __le16 const   *__cil_tmp96 ;
60961  __u8 __cil_tmp97 ;
60962  unsigned int __cil_tmp98 ;
60963  unsigned int __cil_tmp99 ;
60964  void const   *__cil_tmp100 ;
60965  __le16 *__cil_tmp101 ;
60966  __le16 const   *__cil_tmp102 ;
60967  void *__cil_tmp103 ;
60968  __u8 __cil_tmp104 ;
60969  signed char __cil_tmp105 ;
60970  int __cil_tmp106 ;
60971  int __cil_tmp107 ;
60972  unsigned char __cil_tmp108 ;
60973  unsigned int __cil_tmp109 ;
60974  unsigned int __cil_tmp110 ;
60975  unsigned char __cil_tmp111 ;
60976  unsigned int __cil_tmp112 ;
60977  unsigned int __cil_tmp113 ;
60978  unsigned char __cil_tmp114 ;
60979  unsigned int __cil_tmp115 ;
60980  unsigned int __cil_tmp116 ;
60981  __le16 *__cil_tmp117 ;
60982  __le16 const   *__cil_tmp118 ;
60983  __le16 *__cil_tmp119 ;
60984  __le16 const   *__cil_tmp120 ;
60985  __le16 *__cil_tmp121 ;
60986  __le16 const   *__cil_tmp122 ;
60987  struct usb_device *__cil_tmp123 ;
60988  struct device *__cil_tmp124 ;
60989  struct device  const  *__cil_tmp125 ;
60990  __u8 __cil_tmp126 ;
60991  int __cil_tmp127 ;
60992  __u8 __cil_tmp128 ;
60993  int __cil_tmp129 ;
60994  int __cil_tmp130 ;
60995  int __cil_tmp131 ;
60996  int __cil_tmp132 ;
60997  struct usb_endpoint_descriptor *__cil_tmp133 ;
60998  struct usb_endpoint_descriptor  const  *__cil_tmp134 ;
60999  int __cil_tmp135 ;
61000  struct usb_endpoint_descriptor *__cil_tmp136 ;
61001  struct usb_endpoint_descriptor  const  *__cil_tmp137 ;
61002  int __cil_tmp138 ;
61003  int __cil_tmp139 ;
61004  int __cil_tmp140 ;
61005  struct usb_endpoint_descriptor *__cil_tmp141 ;
61006  struct usb_endpoint_descriptor  const  *__cil_tmp142 ;
61007  int __cil_tmp143 ;
61008  unsigned long __cil_tmp144 ;
61009  unsigned int __cil_tmp145 ;
61010  size_t __cil_tmp146 ;
61011  struct usbdevfs_iso_packet_desc *__cil_tmp147 ;
61012  unsigned long __cil_tmp148 ;
61013  unsigned long __cil_tmp149 ;
61014  void *__cil_tmp150 ;
61015  void const   *__cil_tmp151 ;
61016  unsigned long __cil_tmp152 ;
61017  void const   *__cil_tmp153 ;
61018  unsigned long __cil_tmp154 ;
61019  struct usbdevfs_iso_packet_desc *__cil_tmp155 ;
61020  unsigned int __cil_tmp156 ;
61021  void const   *__cil_tmp157 ;
61022  unsigned long __cil_tmp158 ;
61023  struct usbdevfs_iso_packet_desc *__cil_tmp159 ;
61024  unsigned int __cil_tmp160 ;
61025  int __cil_tmp161 ;
61026  unsigned int __cil_tmp162 ;
61027  void const   *__cil_tmp163 ;
61028  int __cil_tmp164 ;
61029  int __cil_tmp165 ;
61030  int __cil_tmp166 ;
61031  long __cil_tmp167 ;
61032  void const   *__cil_tmp168 ;
61033  void const   *__cil_tmp169 ;
61034  int __cil_tmp170 ;
61035  unsigned int __cil_tmp171 ;
61036  struct async *__cil_tmp172 ;
61037  unsigned long __cil_tmp173 ;
61038  unsigned long __cil_tmp174 ;
61039  void const   *__cil_tmp175 ;
61040  void const   *__cil_tmp176 ;
61041  int __cil_tmp177 ;
61042  struct urb *__cil_tmp178 ;
61043  int __cil_tmp179 ;
61044  size_t __cil_tmp180 ;
61045  void *__cil_tmp181 ;
61046  unsigned long __cil_tmp182 ;
61047  struct urb *__cil_tmp183 ;
61048  void *__cil_tmp184 ;
61049  unsigned long __cil_tmp185 ;
61050  void const   *__cil_tmp186 ;
61051  void const   *__cil_tmp187 ;
61052  unsigned char __cil_tmp188 ;
61053  unsigned int __cil_tmp189 ;
61054  struct urb *__cil_tmp190 ;
61055  void *__cil_tmp191 ;
61056  int __cil_tmp192 ;
61057  size_t __cil_tmp193 ;
61058  struct urb *__cil_tmp194 ;
61059  struct usb_device *__cil_tmp195 ;
61060  unsigned char __cil_tmp196 ;
61061  unsigned int __cil_tmp197 ;
61062  unsigned int __cil_tmp198 ;
61063  struct urb *__cil_tmp199 ;
61064  unsigned char __cil_tmp200 ;
61065  unsigned int __cil_tmp201 ;
61066  unsigned int __cil_tmp202 ;
61067  unsigned char __cil_tmp203 ;
61068  int __cil_tmp204 ;
61069  int __cil_tmp205 ;
61070  unsigned int __cil_tmp206 ;
61071  unsigned int __cil_tmp207 ;
61072  unsigned int __cil_tmp208 ;
61073  unsigned int __cil_tmp209 ;
61074  unsigned int __cil_tmp210 ;
61075  int __cil_tmp211 ;
61076  unsigned int __cil_tmp212 ;
61077  unsigned int __cil_tmp213 ;
61078  unsigned int __cil_tmp214 ;
61079  unsigned int __cil_tmp215 ;
61080  unsigned int __cil_tmp216 ;
61081  unsigned int __cil_tmp217 ;
61082  struct urb *__cil_tmp218 ;
61083  struct urb *__cil_tmp219 ;
61084  int __cil_tmp220 ;
61085  struct urb *__cil_tmp221 ;
61086  struct urb *__cil_tmp222 ;
61087  struct urb *__cil_tmp223 ;
61088  unsigned char __cil_tmp224 ;
61089  unsigned int __cil_tmp225 ;
61090  struct usb_device *__cil_tmp226 ;
61091  enum usb_device_speed __cil_tmp227 ;
61092  unsigned int __cil_tmp228 ;
61093  __u8 __cil_tmp229 ;
61094  int __cil_tmp230 ;
61095  struct urb *__cil_tmp231 ;
61096  struct urb *__cil_tmp232 ;
61097  __u8 __cil_tmp233 ;
61098  struct urb *__cil_tmp234 ;
61099  struct urb *__cil_tmp235 ;
61100  struct urb *__cil_tmp236 ;
61101  struct urb *__cil_tmp237 ;
61102  unsigned long __cil_tmp238 ;
61103  struct usbdevfs_iso_packet_desc *__cil_tmp239 ;
61104  unsigned long __cil_tmp240 ;
61105  struct usbdevfs_iso_packet_desc *__cil_tmp241 ;
61106  unsigned int __cil_tmp242 ;
61107  int __cil_tmp243 ;
61108  unsigned int __cil_tmp244 ;
61109  void const   *__cil_tmp245 ;
61110  int __cil_tmp246 ;
61111  uid_t __cil_tmp247 ;
61112  uid_t __cil_tmp248 ;
61113  u32 *__cil_tmp249 ;
61114  int __cil_tmp250 ;
61115  struct urb *__cil_tmp251 ;
61116  void *__cil_tmp252 ;
61117  void *__cil_tmp253 ;
61118  void const   *__cil_tmp254 ;
61119  int __cil_tmp255 ;
61120  unsigned long __cil_tmp256 ;
61121  struct urb *__cil_tmp257 ;
61122  void *__cil_tmp258 ;
61123  struct usb_device *__cil_tmp259 ;
61124  void *__cil_tmp260 ;
61125  struct urb *__cil_tmp261 ;
61126  unsigned int __cil_tmp262 ;
61127  int __cil_tmp263 ;
61128  struct urb *__cil_tmp264 ;
61129  u32 __cil_tmp265 ;
61130  enum snoop_when __cil_tmp266 ;
61131  int __cil_tmp267 ;
61132  unsigned int __cil_tmp268 ;
61133  struct usb_endpoint_descriptor *__cil_tmp269 ;
61134  struct usb_endpoint_descriptor  const  *__cil_tmp270 ;
61135  spinlock_t *__cil_tmp271 ;
61136  struct usb_endpoint_descriptor *__cil_tmp272 ;
61137  struct usb_endpoint_descriptor  const  *__cil_tmp273 ;
61138  __u8 __cil_tmp274 ;
61139  int __cil_tmp275 ;
61140  int __cil_tmp276 ;
61141  int __cil_tmp277 ;
61142  signed char __cil_tmp278 ;
61143  int __cil_tmp279 ;
61144  signed char __cil_tmp280 ;
61145  int __cil_tmp281 ;
61146  int __cil_tmp282 ;
61147  unsigned int __cil_tmp283 ;
61148  unsigned int __cil_tmp284 ;
61149  u8 __cil_tmp285 ;
61150  int __cil_tmp286 ;
61151  int __cil_tmp287 ;
61152  int __cil_tmp288 ;
61153  u32 __cil_tmp289 ;
61154  u32 __cil_tmp290 ;
61155  u8 __cil_tmp291 ;
61156  int __cil_tmp292 ;
61157  int __cil_tmp293 ;
61158  u32 __cil_tmp294 ;
61159  u32 __cil_tmp295 ;
61160  unsigned int __cil_tmp296 ;
61161  struct urb *__cil_tmp297 ;
61162  spinlock_t *__cil_tmp298 ;
61163  struct urb *__cil_tmp299 ;
61164  struct usb_device *__cil_tmp300 ;
61165  struct device *__cil_tmp301 ;
61166  struct device  const  *__cil_tmp302 ;
61167  struct usb_device *__cil_tmp303 ;
61168  void *__cil_tmp304 ;
61169  struct urb *__cil_tmp305 ;
61170  unsigned int __cil_tmp306 ;
61171  int __cil_tmp307 ;
61172  enum snoop_when __cil_tmp308 ;
61173  unsigned char *__cil_tmp309 ;
61174
61175  {
61176  {
61177#line 1055
61178  isopkt = (struct usbdevfs_iso_packet_desc *)0;
61179#line 1058
61180  dr = (struct usb_ctrlrequest *)0;
61181#line 1059
61182  tmp = get_current();
61183#line 1059
61184  cred = tmp->cred;
61185#line 1061
61186  ifnum = -1;
61187  }
61188  {
61189#line 1064
61190  __cil_tmp46 = uurb->flags;
61191#line 1064
61192  __cil_tmp47 = __cil_tmp46 & 4294967064U;
61193#line 1064
61194  if (__cil_tmp47 != 0U) {
61195#line 1070
61196    return (-22);
61197  } else {
61198
61199  }
61200  }
61201  {
61202#line 1071
61203  __cil_tmp48 = uurb->buffer_length;
61204#line 1071
61205  if (__cil_tmp48 > 0) {
61206    {
61207#line 1071
61208    __cil_tmp49 = (void *)0;
61209#line 1071
61210    __cil_tmp50 = (unsigned long )__cil_tmp49;
61211#line 1071
61212    __cil_tmp51 = uurb->buffer;
61213#line 1071
61214    __cil_tmp52 = (unsigned long )__cil_tmp51;
61215#line 1071
61216    if (__cil_tmp52 == __cil_tmp50) {
61217#line 1072
61218      return (-22);
61219    } else {
61220
61221    }
61222    }
61223  } else {
61224
61225  }
61226  }
61227  {
61228#line 1073
61229  __cil_tmp53 = uurb->type;
61230#line 1073
61231  __cil_tmp54 = (unsigned int )__cil_tmp53;
61232#line 1073
61233  if (__cil_tmp54 != 2U) {
61234#line 1073
61235    goto _L;
61236  } else {
61237    {
61238#line 1073
61239    __cil_tmp55 = uurb->endpoint;
61240#line 1073
61241    __cil_tmp56 = (int )__cil_tmp55;
61242#line 1073
61243    __cil_tmp57 = __cil_tmp56 & -129;
61244#line 1073
61245    if (__cil_tmp57 != 0) {
61246      _L: 
61247      {
61248#line 1075
61249      __cil_tmp58 = ps->dev;
61250#line 1075
61251      __cil_tmp59 = uurb->endpoint;
61252#line 1075
61253      __cil_tmp60 = (unsigned int )__cil_tmp59;
61254#line 1075
61255      ifnum = findintfep(__cil_tmp58, __cil_tmp60);
61256      }
61257#line 1076
61258      if (ifnum < 0) {
61259#line 1077
61260        return (ifnum);
61261      } else {
61262
61263      }
61264      {
61265#line 1078
61266      __cil_tmp61 = (unsigned int )ifnum;
61267#line 1078
61268      ret = checkintf(ps, __cil_tmp61);
61269      }
61270#line 1079
61271      if (ret != 0) {
61272#line 1080
61273        return (ret);
61274      } else {
61275
61276      }
61277    } else {
61278
61279    }
61280    }
61281  }
61282  }
61283  {
61284#line 1082
61285  __cil_tmp62 = uurb->endpoint;
61286#line 1082
61287  __cil_tmp63 = (signed char )__cil_tmp62;
61288#line 1082
61289  __cil_tmp64 = (int )__cil_tmp63;
61290#line 1082
61291  if (__cil_tmp64 < 0) {
61292#line 1083
61293    is_in = 1;
61294#line 1084
61295    __cil_tmp65 = ps->dev;
61296#line 1084
61297    ep = __cil_tmp65->ep_in[(int )uurb->endpoint & 15];
61298  } else {
61299#line 1086
61300    is_in = 0;
61301#line 1087
61302    __cil_tmp66 = ps->dev;
61303#line 1087
61304    ep = __cil_tmp66->ep_out[(int )uurb->endpoint & 15];
61305  }
61306  }
61307  {
61308#line 1089
61309  __cil_tmp67 = (struct usb_host_endpoint *)0;
61310#line 1089
61311  __cil_tmp68 = (unsigned long )__cil_tmp67;
61312#line 1089
61313  __cil_tmp69 = (unsigned long )ep;
61314#line 1089
61315  if (__cil_tmp69 == __cil_tmp68) {
61316#line 1090
61317    return (-2);
61318  } else {
61319
61320  }
61321  }
61322  {
61323#line 1092
61324  __cil_tmp70 = uurb->type;
61325#line 1092
61326  __cil_tmp71 = (int )__cil_tmp70;
61327#line 1092
61328  if (__cil_tmp71 == 2) {
61329#line 1092
61330    goto case_2;
61331  } else {
61332    {
61333#line 1136
61334    __cil_tmp72 = uurb->type;
61335#line 1136
61336    __cil_tmp73 = (int )__cil_tmp72;
61337#line 1136
61338    if (__cil_tmp73 == 3) {
61339#line 1136
61340      goto case_3;
61341    } else {
61342      {
61343#line 1151
61344      __cil_tmp74 = uurb->type;
61345#line 1151
61346      __cil_tmp75 = (int )__cil_tmp74;
61347#line 1151
61348      if (__cil_tmp75 == 1) {
61349#line 1151
61350        goto case_1___0;
61351      } else {
61352        {
61353#line 1160
61354        __cil_tmp76 = uurb->type;
61355#line 1160
61356        __cil_tmp77 = (int )__cil_tmp76;
61357#line 1160
61358        if (__cil_tmp77 == 0) {
61359#line 1160
61360          goto case_0___0;
61361        } else {
61362#line 1192
61363          goto switch_default;
61364#line 1091
61365          if (0) {
61366            case_2: 
61367            {
61368#line 1093
61369            __cil_tmp78 = & ep->desc;
61370#line 1093
61371            __cil_tmp79 = (struct usb_endpoint_descriptor  const  *)__cil_tmp78;
61372#line 1093
61373            tmp___0 = usb_endpoint_xfer_control(__cil_tmp79);
61374            }
61375#line 1093
61376            if (tmp___0 == 0) {
61377#line 1094
61378              return (-22);
61379            } else {
61380
61381            }
61382            {
61383#line 1097
61384            __cil_tmp80 = uurb->buffer_length;
61385#line 1097
61386            if (__cil_tmp80 <= 7) {
61387#line 1099
61388              return (-22);
61389            } else {
61390              {
61391#line 1097
61392              __cil_tmp81 = uurb->buffer_length;
61393#line 1097
61394              if (__cil_tmp81 > 16392) {
61395#line 1099
61396                return (-22);
61397              } else {
61398
61399              }
61400              }
61401            }
61402            }
61403            {
61404#line 1100
61405            tmp___1 = kmalloc(8UL, 208U);
61406#line 1100
61407            dr = (struct usb_ctrlrequest *)tmp___1;
61408            }
61409            {
61410#line 1101
61411            __cil_tmp82 = (struct usb_ctrlrequest *)0;
61412#line 1101
61413            __cil_tmp83 = (unsigned long )__cil_tmp82;
61414#line 1101
61415            __cil_tmp84 = (unsigned long )dr;
61416#line 1101
61417            if (__cil_tmp84 == __cil_tmp83) {
61418#line 1102
61419              return (-12);
61420            } else {
61421
61422            }
61423            }
61424            {
61425#line 1103
61426            __cil_tmp85 = (void *)dr;
61427#line 1103
61428            __cil_tmp86 = uurb->buffer;
61429#line 1103
61430            __cil_tmp87 = (void const   *)__cil_tmp86;
61431#line 1103
61432            tmp___2 = copy_from_user(__cil_tmp85, __cil_tmp87, 8UL);
61433            }
61434#line 1103
61435            if (tmp___2 != 0UL) {
61436              {
61437#line 1104
61438              __cil_tmp88 = (void const   *)dr;
61439#line 1104
61440              kfree(__cil_tmp88);
61441              }
61442#line 1105
61443              return (-14);
61444            } else {
61445
61446            }
61447            {
61448#line 1107
61449            __cil_tmp89 = & dr->wLength;
61450#line 1107
61451            __cil_tmp90 = (__le16 const   *)__cil_tmp89;
61452#line 1107
61453            tmp___3 = __le16_to_cpup(__cil_tmp90);
61454            }
61455            {
61456#line 1107
61457            __cil_tmp91 = (int )tmp___3;
61458#line 1107
61459            __cil_tmp92 = __cil_tmp91 + 8;
61460#line 1107
61461            __cil_tmp93 = uurb->buffer_length;
61462#line 1107
61463            if (__cil_tmp93 < __cil_tmp92) {
61464              {
61465#line 1108
61466              __cil_tmp94 = (void const   *)dr;
61467#line 1108
61468              kfree(__cil_tmp94);
61469              }
61470#line 1109
61471              return (-22);
61472            } else {
61473
61474            }
61475            }
61476            {
61477#line 1111
61478            __cil_tmp95 = & dr->wIndex;
61479#line 1111
61480            __cil_tmp96 = (__le16 const   *)__cil_tmp95;
61481#line 1111
61482            tmp___4 = __le16_to_cpup(__cil_tmp96);
61483#line 1111
61484            __cil_tmp97 = dr->bRequestType;
61485#line 1111
61486            __cil_tmp98 = (unsigned int )__cil_tmp97;
61487#line 1111
61488            __cil_tmp99 = (unsigned int )tmp___4;
61489#line 1111
61490            ret = check_ctrlrecip(ps, __cil_tmp98, __cil_tmp99);
61491            }
61492#line 1113
61493            if (ret != 0) {
61494              {
61495#line 1114
61496              __cil_tmp100 = (void const   *)dr;
61497#line 1114
61498              kfree(__cil_tmp100);
61499              }
61500#line 1115
61501              return (ret);
61502            } else {
61503
61504            }
61505            {
61506#line 1117
61507            uurb->number_of_packets = 0;
61508#line 1118
61509            __cil_tmp101 = & dr->wLength;
61510#line 1118
61511            __cil_tmp102 = (__le16 const   *)__cil_tmp101;
61512#line 1118
61513            tmp___5 = __le16_to_cpup(__cil_tmp102);
61514#line 1118
61515            uurb->buffer_length = (int )tmp___5;
61516#line 1119
61517            __cil_tmp103 = uurb->buffer;
61518#line 1119
61519            uurb->buffer = __cil_tmp103 + 8UL;
61520            }
61521            {
61522#line 1120
61523            __cil_tmp104 = dr->bRequestType;
61524#line 1120
61525            __cil_tmp105 = (signed char )__cil_tmp104;
61526#line 1120
61527            __cil_tmp106 = (int )__cil_tmp105;
61528#line 1120
61529            if (__cil_tmp106 < 0) {
61530              {
61531#line 1120
61532              __cil_tmp107 = uurb->buffer_length;
61533#line 1120
61534              if (__cil_tmp107 != 0) {
61535#line 1121
61536                is_in = 1;
61537#line 1122
61538                __cil_tmp108 = uurb->endpoint;
61539#line 1122
61540                __cil_tmp109 = (unsigned int )__cil_tmp108;
61541#line 1122
61542                __cil_tmp110 = __cil_tmp109 | 128U;
61543#line 1122
61544                uurb->endpoint = (unsigned char )__cil_tmp110;
61545              } else {
61546#line 1124
61547                is_in = 0;
61548#line 1125
61549                __cil_tmp111 = uurb->endpoint;
61550#line 1125
61551                __cil_tmp112 = (unsigned int )__cil_tmp111;
61552#line 1125
61553                __cil_tmp113 = __cil_tmp112 & 127U;
61554#line 1125
61555                uurb->endpoint = (unsigned char )__cil_tmp113;
61556              }
61557              }
61558            } else {
61559#line 1124
61560              is_in = 0;
61561#line 1125
61562              __cil_tmp114 = uurb->endpoint;
61563#line 1125
61564              __cil_tmp115 = (unsigned int )__cil_tmp114;
61565#line 1125
61566              __cil_tmp116 = __cil_tmp115 & 127U;
61567#line 1125
61568              uurb->endpoint = (unsigned char )__cil_tmp116;
61569            }
61570            }
61571#line 1127
61572            if (usbfs_snoop != 0) {
61573              {
61574#line 1127
61575              __cil_tmp117 = & dr->wLength;
61576#line 1127
61577              __cil_tmp118 = (__le16 const   *)__cil_tmp117;
61578#line 1127
61579              tmp___6 = __le16_to_cpup(__cil_tmp118);
61580#line 1127
61581              __cil_tmp119 = & dr->wIndex;
61582#line 1127
61583              __cil_tmp120 = (__le16 const   *)__cil_tmp119;
61584#line 1127
61585              tmp___7 = __le16_to_cpup(__cil_tmp120);
61586#line 1127
61587              __cil_tmp121 = & dr->wValue;
61588#line 1127
61589              __cil_tmp122 = (__le16 const   *)__cil_tmp121;
61590#line 1127
61591              tmp___8 = __le16_to_cpup(__cil_tmp122);
61592#line 1127
61593              __cil_tmp123 = ps->dev;
61594#line 1127
61595              __cil_tmp124 = & __cil_tmp123->dev;
61596#line 1127
61597              __cil_tmp125 = (struct device  const  *)__cil_tmp124;
61598#line 1127
61599              __cil_tmp126 = dr->bRequestType;
61600#line 1127
61601              __cil_tmp127 = (int )__cil_tmp126;
61602#line 1127
61603              __cil_tmp128 = dr->bRequest;
61604#line 1127
61605              __cil_tmp129 = (int )__cil_tmp128;
61606#line 1127
61607              __cil_tmp130 = (int )tmp___8;
61608#line 1127
61609              __cil_tmp131 = (int )tmp___7;
61610#line 1127
61611              __cil_tmp132 = (int )tmp___6;
61612#line 1127
61613              _dev_info(__cil_tmp125, "control urb: bRequestType=%02x bRequest=%02x wValue=%04x wIndex=%04x wLength=%04x\n",
61614                        __cil_tmp127, __cil_tmp129, __cil_tmp130, __cil_tmp131, __cil_tmp132);
61615              }
61616            } else {
61617
61618            }
61619#line 1134
61620            goto ldv_30988;
61621            case_3: 
61622            {
61623#line 1137
61624            __cil_tmp133 = & ep->desc;
61625#line 1137
61626            __cil_tmp134 = (struct usb_endpoint_descriptor  const  *)__cil_tmp133;
61627#line 1137
61628            tmp___9 = usb_endpoint_type(__cil_tmp134);
61629            }
61630#line 1138
61631            if (tmp___9 == 0) {
61632#line 1138
61633              goto case_0;
61634            } else
61635#line 1139
61636            if (tmp___9 == 1) {
61637#line 1139
61638              goto case_1;
61639            } else
61640#line 1141
61641            if (tmp___9 == 3) {
61642#line 1141
61643              goto case_3___0;
61644            } else
61645#line 1137
61646            if (0) {
61647              case_0: ;
61648              case_1: ;
61649#line 1140
61650              return (-22);
61651              case_3___0: 
61652#line 1143
61653              uurb->type = (unsigned char)1;
61654#line 1144
61655              goto interrupt_urb;
61656            } else {
61657
61658            }
61659#line 1146
61660            uurb->number_of_packets = 0;
61661            {
61662#line 1147
61663            __cil_tmp135 = uurb->buffer_length;
61664#line 1147
61665            if (__cil_tmp135 > 16384) {
61666#line 1148
61667              return (-22);
61668            } else {
61669
61670            }
61671            }
61672#line 1149
61673            goto ldv_30988;
61674            case_1___0: 
61675            {
61676#line 1152
61677            __cil_tmp136 = & ep->desc;
61678#line 1152
61679            __cil_tmp137 = (struct usb_endpoint_descriptor  const  *)__cil_tmp136;
61680#line 1152
61681            tmp___10 = usb_endpoint_xfer_int(__cil_tmp137);
61682            }
61683#line 1152
61684            if (tmp___10 == 0) {
61685#line 1153
61686              return (-22);
61687            } else {
61688
61689            }
61690            interrupt_urb: 
61691#line 1155
61692            uurb->number_of_packets = 0;
61693            {
61694#line 1156
61695            __cil_tmp138 = uurb->buffer_length;
61696#line 1156
61697            if (__cil_tmp138 > 16384) {
61698#line 1157
61699              return (-22);
61700            } else {
61701
61702            }
61703            }
61704#line 1158
61705            goto ldv_30988;
61706            case_0___0: ;
61707            {
61708#line 1162
61709            __cil_tmp139 = uurb->number_of_packets;
61710#line 1162
61711            if (__cil_tmp139 <= 0) {
61712#line 1164
61713              return (-22);
61714            } else {
61715              {
61716#line 1162
61717              __cil_tmp140 = uurb->number_of_packets;
61718#line 1162
61719              if (__cil_tmp140 > 128) {
61720#line 1164
61721                return (-22);
61722              } else {
61723
61724              }
61725              }
61726            }
61727            }
61728            {
61729#line 1165
61730            __cil_tmp141 = & ep->desc;
61731#line 1165
61732            __cil_tmp142 = (struct usb_endpoint_descriptor  const  *)__cil_tmp141;
61733#line 1165
61734            tmp___11 = usb_endpoint_xfer_isoc(__cil_tmp142);
61735            }
61736#line 1165
61737            if (tmp___11 == 0) {
61738#line 1166
61739              return (-22);
61740            } else {
61741
61742            }
61743            {
61744#line 1167
61745            __cil_tmp143 = uurb->number_of_packets;
61746#line 1167
61747            __cil_tmp144 = (unsigned long )__cil_tmp143;
61748#line 1167
61749            __cil_tmp145 = (unsigned int )__cil_tmp144;
61750#line 1167
61751            isofrmlen = __cil_tmp145 * 12U;
61752#line 1169
61753            __cil_tmp146 = (size_t )isofrmlen;
61754#line 1169
61755            tmp___12 = kmalloc(__cil_tmp146, 208U);
61756#line 1169
61757            isopkt = (struct usbdevfs_iso_packet_desc *)tmp___12;
61758            }
61759            {
61760#line 1169
61761            __cil_tmp147 = (struct usbdevfs_iso_packet_desc *)0;
61762#line 1169
61763            __cil_tmp148 = (unsigned long )__cil_tmp147;
61764#line 1169
61765            __cil_tmp149 = (unsigned long )isopkt;
61766#line 1169
61767            if (__cil_tmp149 == __cil_tmp148) {
61768#line 1170
61769              return (-12);
61770            } else {
61771
61772            }
61773            }
61774            {
61775#line 1171
61776            __cil_tmp150 = (void *)isopkt;
61777#line 1171
61778            __cil_tmp151 = (void const   *)iso_frame_desc;
61779#line 1171
61780            __cil_tmp152 = (unsigned long )isofrmlen;
61781#line 1171
61782            tmp___13 = copy_from_user(__cil_tmp150, __cil_tmp151, __cil_tmp152);
61783            }
61784#line 1171
61785            if (tmp___13 != 0UL) {
61786              {
61787#line 1172
61788              __cil_tmp153 = (void const   *)isopkt;
61789#line 1172
61790              kfree(__cil_tmp153);
61791              }
61792#line 1173
61793              return (-14);
61794            } else {
61795
61796            }
61797#line 1175
61798            u = 0U;
61799#line 1175
61800            totlen = u;
61801#line 1175
61802            goto ldv_30997;
61803            ldv_30996: ;
61804            {
61805#line 1178
61806            __cil_tmp154 = (unsigned long )u;
61807#line 1178
61808            __cil_tmp155 = isopkt + __cil_tmp154;
61809#line 1178
61810            __cil_tmp156 = __cil_tmp155->length;
61811#line 1178
61812            if (__cil_tmp156 > 8192U) {
61813              {
61814#line 1179
61815              __cil_tmp157 = (void const   *)isopkt;
61816#line 1179
61817              kfree(__cil_tmp157);
61818              }
61819#line 1180
61820              return (-22);
61821            } else {
61822
61823            }
61824            }
61825#line 1182
61826            __cil_tmp158 = (unsigned long )u;
61827#line 1182
61828            __cil_tmp159 = isopkt + __cil_tmp158;
61829#line 1182
61830            __cil_tmp160 = __cil_tmp159->length;
61831#line 1182
61832            totlen = __cil_tmp160 + totlen;
61833#line 1175
61834            u = u + 1U;
61835            ldv_30997: ;
61836            {
61837#line 1175
61838            __cil_tmp161 = uurb->number_of_packets;
61839#line 1175
61840            __cil_tmp162 = (unsigned int )__cil_tmp161;
61841#line 1175
61842            if (__cil_tmp162 > u) {
61843#line 1176
61844              goto ldv_30996;
61845            } else {
61846#line 1178
61847              goto ldv_30998;
61848            }
61849            }
61850            ldv_30998: ;
61851#line 1185
61852            if (totlen > 196608U) {
61853              {
61854#line 1186
61855              __cil_tmp163 = (void const   *)isopkt;
61856#line 1186
61857              kfree(__cil_tmp163);
61858              }
61859#line 1187
61860              return (-22);
61861            } else {
61862
61863            }
61864#line 1189
61865            uurb->buffer_length = (int )totlen;
61866#line 1190
61867            goto ldv_30988;
61868            switch_default: ;
61869#line 1193
61870            return (-22);
61871          } else {
61872
61873          }
61874        }
61875        }
61876      }
61877      }
61878    }
61879    }
61880  }
61881  }
61882  ldv_30988: ;
61883  {
61884#line 1196
61885  __cil_tmp164 = uurb->buffer_length;
61886#line 1196
61887  if (__cil_tmp164 > 0) {
61888    {
61889#line 1196
61890    tmp___14 = current_thread_info();
61891#line 1196
61892    __cil_tmp165 = uurb->buffer_length;
61893#line 1196
61894    __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (uurb->buffer),
61895              "g" ((long )__cil_tmp165), "rm" (tmp___14->addr_limit.seg));
61896#line 1196
61897    __cil_tmp166 = flag == 0UL;
61898#line 1196
61899    __cil_tmp167 = (long )__cil_tmp166;
61900#line 1196
61901    tmp___15 = __builtin_expect(__cil_tmp167, 1L);
61902    }
61903#line 1196
61904    if (tmp___15 == 0L) {
61905      {
61906#line 1198
61907      __cil_tmp168 = (void const   *)isopkt;
61908#line 1198
61909      kfree(__cil_tmp168);
61910#line 1199
61911      __cil_tmp169 = (void const   *)dr;
61912#line 1199
61913      kfree(__cil_tmp169);
61914      }
61915#line 1200
61916      return (-14);
61917    } else {
61918
61919    }
61920  } else {
61921
61922  }
61923  }
61924  {
61925#line 1202
61926  __cil_tmp170 = uurb->number_of_packets;
61927#line 1202
61928  __cil_tmp171 = (unsigned int )__cil_tmp170;
61929#line 1202
61930  as = alloc_async(__cil_tmp171);
61931  }
61932  {
61933#line 1203
61934  __cil_tmp172 = (struct async *)0;
61935#line 1203
61936  __cil_tmp173 = (unsigned long )__cil_tmp172;
61937#line 1203
61938  __cil_tmp174 = (unsigned long )as;
61939#line 1203
61940  if (__cil_tmp174 == __cil_tmp173) {
61941    {
61942#line 1204
61943    __cil_tmp175 = (void const   *)isopkt;
61944#line 1204
61945    kfree(__cil_tmp175);
61946#line 1205
61947    __cil_tmp176 = (void const   *)dr;
61948#line 1205
61949    kfree(__cil_tmp176);
61950    }
61951#line 1206
61952    return (-12);
61953  } else {
61954
61955  }
61956  }
61957  {
61958#line 1208
61959  __cil_tmp177 = uurb->buffer_length;
61960#line 1208
61961  if (__cil_tmp177 > 0) {
61962    {
61963#line 1209
61964    __cil_tmp178 = as->urb;
61965#line 1209
61966    __cil_tmp179 = uurb->buffer_length;
61967#line 1209
61968    __cil_tmp180 = (size_t )__cil_tmp179;
61969#line 1209
61970    __cil_tmp178->transfer_buffer = kmalloc(__cil_tmp180, 208U);
61971    }
61972    {
61973#line 1211
61974    __cil_tmp181 = (void *)0;
61975#line 1211
61976    __cil_tmp182 = (unsigned long )__cil_tmp181;
61977#line 1211
61978    __cil_tmp183 = as->urb;
61979#line 1211
61980    __cil_tmp184 = __cil_tmp183->transfer_buffer;
61981#line 1211
61982    __cil_tmp185 = (unsigned long )__cil_tmp184;
61983#line 1211
61984    if (__cil_tmp185 == __cil_tmp182) {
61985      {
61986#line 1212
61987      __cil_tmp186 = (void const   *)isopkt;
61988#line 1212
61989      kfree(__cil_tmp186);
61990#line 1213
61991      __cil_tmp187 = (void const   *)dr;
61992#line 1213
61993      kfree(__cil_tmp187);
61994#line 1214
61995      free_async(as);
61996      }
61997#line 1215
61998      return (-12);
61999    } else {
62000
62001    }
62002    }
62003#line 1221
62004    if (is_in != 0) {
62005      {
62006#line 1221
62007      __cil_tmp188 = uurb->type;
62008#line 1221
62009      __cil_tmp189 = (unsigned int )__cil_tmp188;
62010#line 1221
62011      if (__cil_tmp189 == 0U) {
62012        {
62013#line 1222
62014        __cil_tmp190 = as->urb;
62015#line 1222
62016        __cil_tmp191 = __cil_tmp190->transfer_buffer;
62017#line 1222
62018        __cil_tmp192 = uurb->buffer_length;
62019#line 1222
62020        __cil_tmp193 = (size_t )__cil_tmp192;
62021#line 1222
62022        memset(__cil_tmp191, 0, __cil_tmp193);
62023        }
62024      } else {
62025
62026      }
62027      }
62028    } else {
62029
62030    }
62031  } else {
62032
62033  }
62034  }
62035  {
62036#line 1225
62037  __cil_tmp194 = as->urb;
62038#line 1225
62039  __cil_tmp194->dev = ps->dev;
62040#line 1226
62041  __cil_tmp195 = ps->dev;
62042#line 1226
62043  __cil_tmp196 = uurb->endpoint;
62044#line 1226
62045  __cil_tmp197 = (unsigned int )__cil_tmp196;
62046#line 1226
62047  __cil_tmp198 = __cil_tmp197 & 15U;
62048#line 1226
62049  tmp___16 = __create_pipe(__cil_tmp195, __cil_tmp198);
62050#line 1226
62051  __cil_tmp199 = as->urb;
62052#line 1226
62053  __cil_tmp200 = uurb->endpoint;
62054#line 1226
62055  __cil_tmp201 = (unsigned int )__cil_tmp200;
62056#line 1226
62057  __cil_tmp202 = __cil_tmp201 & 128U;
62058#line 1226
62059  __cil_tmp203 = uurb->type;
62060#line 1226
62061  __cil_tmp204 = (int )__cil_tmp203;
62062#line 1226
62063  __cil_tmp205 = __cil_tmp204 << 30;
62064#line 1226
62065  __cil_tmp206 = (unsigned int )__cil_tmp205;
62066#line 1226
62067  __cil_tmp207 = __cil_tmp206 | tmp___16;
62068#line 1226
62069  __cil_tmp199->pipe = __cil_tmp207 | __cil_tmp202;
62070  }
62071#line 1234
62072  if (is_in != 0) {
62073#line 1234
62074    u = 512U;
62075  } else {
62076#line 1234
62077    u = 0U;
62078  }
62079  {
62080#line 1235
62081  __cil_tmp208 = uurb->flags;
62082#line 1235
62083  __cil_tmp209 = __cil_tmp208 & 2U;
62084#line 1235
62085  if (__cil_tmp209 != 0U) {
62086#line 1236
62087    u = u | 2U;
62088  } else {
62089
62090  }
62091  }
62092  {
62093#line 1237
62094  __cil_tmp210 = uurb->flags;
62095#line 1237
62096  __cil_tmp211 = (int )__cil_tmp210;
62097#line 1237
62098  if (__cil_tmp211 & 1) {
62099#line 1238
62100    u = u | 1U;
62101  } else {
62102
62103  }
62104  }
62105  {
62106#line 1239
62107  __cil_tmp212 = uurb->flags;
62108#line 1239
62109  __cil_tmp213 = __cil_tmp212 & 32U;
62110#line 1239
62111  if (__cil_tmp213 != 0U) {
62112#line 1240
62113    u = u | 32U;
62114  } else {
62115
62116  }
62117  }
62118  {
62119#line 1241
62120  __cil_tmp214 = uurb->flags;
62121#line 1241
62122  __cil_tmp215 = __cil_tmp214 & 64U;
62123#line 1241
62124  if (__cil_tmp215 != 0U) {
62125#line 1242
62126    u = u | 64U;
62127  } else {
62128
62129  }
62130  }
62131  {
62132#line 1243
62133  __cil_tmp216 = uurb->flags;
62134#line 1243
62135  __cil_tmp217 = __cil_tmp216 & 128U;
62136#line 1243
62137  if (__cil_tmp217 != 0U) {
62138#line 1244
62139    u = u | 128U;
62140  } else {
62141
62142  }
62143  }
62144#line 1245
62145  __cil_tmp218 = as->urb;
62146#line 1245
62147  __cil_tmp218->transfer_flags = u;
62148#line 1247
62149  __cil_tmp219 = as->urb;
62150#line 1247
62151  __cil_tmp220 = uurb->buffer_length;
62152#line 1247
62153  __cil_tmp219->transfer_buffer_length = (u32 )__cil_tmp220;
62154#line 1248
62155  __cil_tmp221 = as->urb;
62156#line 1248
62157  __cil_tmp221->setup_packet = (unsigned char *)dr;
62158#line 1249
62159  __cil_tmp222 = as->urb;
62160#line 1249
62161  __cil_tmp222->start_frame = uurb->start_frame;
62162#line 1250
62163  __cil_tmp223 = as->urb;
62164#line 1250
62165  __cil_tmp223->number_of_packets = uurb->number_of_packets;
62166  {
62167#line 1251
62168  __cil_tmp224 = uurb->type;
62169#line 1251
62170  __cil_tmp225 = (unsigned int )__cil_tmp224;
62171#line 1251
62172  if (__cil_tmp225 == 0U) {
62173#line 1251
62174    goto _L___0;
62175  } else {
62176    {
62177#line 1251
62178    __cil_tmp226 = ps->dev;
62179#line 1251
62180    __cil_tmp227 = __cil_tmp226->speed;
62181#line 1251
62182    __cil_tmp228 = (unsigned int )__cil_tmp227;
62183#line 1251
62184    if (__cil_tmp228 == 3U) {
62185      _L___0: 
62186#line 1253
62187      _min1 = 15;
62188#line 1253
62189      __cil_tmp229 = ep->desc.bInterval;
62190#line 1253
62191      __cil_tmp230 = (int )__cil_tmp229;
62192#line 1253
62193      _min2 = __cil_tmp230 + -1;
62194#line 1253
62195      if (_min1 < _min2) {
62196#line 1253
62197        tmp___17 = _min1;
62198      } else {
62199#line 1253
62200        tmp___17 = _min2;
62201      }
62202#line 1253
62203      __cil_tmp231 = as->urb;
62204#line 1253
62205      __cil_tmp231->interval = 1 << tmp___17;
62206    } else {
62207#line 1255
62208      __cil_tmp232 = as->urb;
62209#line 1255
62210      __cil_tmp233 = ep->desc.bInterval;
62211#line 1255
62212      __cil_tmp232->interval = (int )__cil_tmp233;
62213    }
62214    }
62215  }
62216  }
62217#line 1256
62218  __cil_tmp234 = as->urb;
62219#line 1256
62220  __cil_tmp234->context = (void *)as;
62221#line 1257
62222  __cil_tmp235 = as->urb;
62223#line 1257
62224  __cil_tmp235->complete = & async_completed;
62225#line 1258
62226  u = 0U;
62227#line 1258
62228  totlen = u;
62229#line 1258
62230  goto ldv_31007;
62231  ldv_31006: 
62232#line 1259
62233  __cil_tmp236 = as->urb;
62234#line 1259
62235  __cil_tmp236->iso_frame_desc[u].offset = totlen;
62236#line 1260
62237  __cil_tmp237 = as->urb;
62238#line 1260
62239  __cil_tmp238 = (unsigned long )u;
62240#line 1260
62241  __cil_tmp239 = isopkt + __cil_tmp238;
62242#line 1260
62243  __cil_tmp237->iso_frame_desc[u].length = __cil_tmp239->length;
62244#line 1261
62245  __cil_tmp240 = (unsigned long )u;
62246#line 1261
62247  __cil_tmp241 = isopkt + __cil_tmp240;
62248#line 1261
62249  __cil_tmp242 = __cil_tmp241->length;
62250#line 1261
62251  totlen = __cil_tmp242 + totlen;
62252#line 1258
62253  u = u + 1U;
62254  ldv_31007: ;
62255  {
62256#line 1258
62257  __cil_tmp243 = uurb->number_of_packets;
62258#line 1258
62259  __cil_tmp244 = (unsigned int )__cil_tmp243;
62260#line 1258
62261  if (__cil_tmp244 > u) {
62262#line 1259
62263    goto ldv_31006;
62264  } else {
62265#line 1261
62266    goto ldv_31008;
62267  }
62268  }
62269  ldv_31008: 
62270  {
62271#line 1263
62272  __cil_tmp245 = (void const   *)isopkt;
62273#line 1263
62274  kfree(__cil_tmp245);
62275#line 1264
62276  as->ps = ps;
62277#line 1265
62278  as->userurb = arg;
62279  }
62280#line 1266
62281  if (is_in != 0) {
62282    {
62283#line 1266
62284    __cil_tmp246 = uurb->buffer_length;
62285#line 1266
62286    if (__cil_tmp246 > 0) {
62287#line 1267
62288      as->userbuffer = uurb->buffer;
62289    } else {
62290#line 1269
62291      as->userbuffer = (void *)0;
62292    }
62293    }
62294  } else {
62295#line 1269
62296    as->userbuffer = (void *)0;
62297  }
62298  {
62299#line 1270
62300  as->signr = uurb->signr;
62301#line 1271
62302  as->ifnum = (unsigned int )ifnum;
62303#line 1272
62304  tmp___18 = get_current();
62305#line 1272
62306  tmp___19 = task_pid(tmp___18);
62307#line 1272
62308  as->pid = get_pid(tmp___19);
62309#line 1273
62310  __cil_tmp247 = cred->uid;
62311#line 1273
62312  as->uid = (uid_t )__cil_tmp247;
62313#line 1274
62314  __cil_tmp248 = cred->euid;
62315#line 1274
62316  as->euid = (uid_t )__cil_tmp248;
62317#line 1275
62318  tmp___20 = get_current();
62319#line 1275
62320  __cil_tmp249 = & as->secid;
62321#line 1275
62322  security_task_getsecid(tmp___20, __cil_tmp249);
62323  }
62324#line 1276
62325  if (is_in == 0) {
62326    {
62327#line 1276
62328    __cil_tmp250 = uurb->buffer_length;
62329#line 1276
62330    if (__cil_tmp250 > 0) {
62331      {
62332#line 1277
62333      __cil_tmp251 = as->urb;
62334#line 1277
62335      __cil_tmp252 = __cil_tmp251->transfer_buffer;
62336#line 1277
62337      __cil_tmp253 = uurb->buffer;
62338#line 1277
62339      __cil_tmp254 = (void const   *)__cil_tmp253;
62340#line 1277
62341      __cil_tmp255 = uurb->buffer_length;
62342#line 1277
62343      __cil_tmp256 = (unsigned long )__cil_tmp255;
62344#line 1277
62345      tmp___21 = copy_from_user(__cil_tmp252, __cil_tmp254, __cil_tmp256);
62346      }
62347#line 1277
62348      if (tmp___21 != 0UL) {
62349        {
62350#line 1279
62351        free_async(as);
62352        }
62353#line 1280
62354        return (-14);
62355      } else {
62356
62357      }
62358    } else {
62359
62360    }
62361    }
62362  } else {
62363
62364  }
62365#line 1283
62366  if (is_in == 0) {
62367#line 1283
62368    __cil_tmp257 = as->urb;
62369#line 1283
62370    __cil_tmp258 = __cil_tmp257->transfer_buffer;
62371#line 1283
62372    tmp___22 = (unsigned char *)__cil_tmp258;
62373  } else {
62374#line 1283
62375    tmp___22 = (unsigned char *)0;
62376  }
62377  {
62378#line 1283
62379  __cil_tmp259 = ps->dev;
62380#line 1283
62381  __cil_tmp260 = as->userurb;
62382#line 1283
62383  __cil_tmp261 = as->urb;
62384#line 1283
62385  __cil_tmp262 = __cil_tmp261->pipe;
62386#line 1283
62387  __cil_tmp263 = (int )__cil_tmp262;
62388#line 1283
62389  __cil_tmp264 = as->urb;
62390#line 1283
62391  __cil_tmp265 = __cil_tmp264->transfer_buffer_length;
62392#line 1283
62393  __cil_tmp266 = (enum snoop_when )0;
62394#line 1283
62395  __cil_tmp267 = uurb->buffer_length;
62396#line 1283
62397  __cil_tmp268 = (unsigned int )__cil_tmp267;
62398#line 1283
62399  snoop_urb(__cil_tmp259, __cil_tmp260, __cil_tmp263, __cil_tmp265, 0, __cil_tmp266,
62400            tmp___22, __cil_tmp268);
62401#line 1287
62402  async_newpending(as);
62403#line 1289
62404  __cil_tmp269 = & ep->desc;
62405#line 1289
62406  __cil_tmp270 = (struct usb_endpoint_descriptor  const  *)__cil_tmp269;
62407#line 1289
62408  tmp___24 = usb_endpoint_xfer_bulk(__cil_tmp270);
62409  }
62410#line 1289
62411  if (tmp___24 != 0) {
62412    {
62413#line 1290
62414    __cil_tmp271 = & ps->lock;
62415#line 1290
62416    spin_lock_irq(__cil_tmp271);
62417#line 1296
62418    __cil_tmp272 = & ep->desc;
62419#line 1296
62420    __cil_tmp273 = (struct usb_endpoint_descriptor  const  *)__cil_tmp272;
62421#line 1296
62422    tmp___23 = usb_endpoint_num(__cil_tmp273);
62423#line 1296
62424    __cil_tmp274 = ep->desc.bEndpointAddress;
62425#line 1296
62426    __cil_tmp275 = (int )__cil_tmp274;
62427#line 1296
62428    __cil_tmp276 = __cil_tmp275 & 128;
62429#line 1296
62430    __cil_tmp277 = __cil_tmp276 >> 3;
62431#line 1296
62432    __cil_tmp278 = (signed char )__cil_tmp277;
62433#line 1296
62434    __cil_tmp279 = (int )__cil_tmp278;
62435#line 1296
62436    __cil_tmp280 = (signed char )tmp___23;
62437#line 1296
62438    __cil_tmp281 = (int )__cil_tmp280;
62439#line 1296
62440    __cil_tmp282 = __cil_tmp281 | __cil_tmp279;
62441#line 1296
62442    as->bulk_addr = (u8 )__cil_tmp282;
62443    }
62444    {
62445#line 1303
62446    __cil_tmp283 = uurb->flags;
62447#line 1303
62448    __cil_tmp284 = __cil_tmp283 & 4U;
62449#line 1303
62450    if (__cil_tmp284 != 0U) {
62451#line 1304
62452      as->bulk_status = (u8 )1U;
62453    } else {
62454#line 1306
62455      __cil_tmp285 = as->bulk_addr;
62456#line 1306
62457      __cil_tmp286 = (int )__cil_tmp285;
62458#line 1306
62459      __cil_tmp287 = 1 << __cil_tmp286;
62460#line 1306
62461      __cil_tmp288 = ~ __cil_tmp287;
62462#line 1306
62463      __cil_tmp289 = (u32 )__cil_tmp288;
62464#line 1306
62465      __cil_tmp290 = ps->disabled_bulk_eps;
62466#line 1306
62467      ps->disabled_bulk_eps = __cil_tmp290 & __cil_tmp289;
62468    }
62469    }
62470    {
62471#line 1311
62472    __cil_tmp291 = as->bulk_addr;
62473#line 1311
62474    __cil_tmp292 = (int )__cil_tmp291;
62475#line 1311
62476    __cil_tmp293 = 1 << __cil_tmp292;
62477#line 1311
62478    __cil_tmp294 = (u32 )__cil_tmp293;
62479#line 1311
62480    __cil_tmp295 = ps->disabled_bulk_eps;
62481#line 1311
62482    __cil_tmp296 = __cil_tmp295 & __cil_tmp294;
62483#line 1311
62484    if (__cil_tmp296 != 0U) {
62485#line 1312
62486      ret = -121;
62487    } else {
62488      {
62489#line 1314
62490      __cil_tmp297 = as->urb;
62491#line 1314
62492      ret = usb_submit_urb(__cil_tmp297, 32U);
62493      }
62494    }
62495    }
62496    {
62497#line 1315
62498    __cil_tmp298 = & ps->lock;
62499#line 1315
62500    spin_unlock_irq(__cil_tmp298);
62501    }
62502  } else {
62503    {
62504#line 1317
62505    __cil_tmp299 = as->urb;
62506#line 1317
62507    ret = usb_submit_urb(__cil_tmp299, 208U);
62508    }
62509  }
62510#line 1320
62511  if (ret != 0) {
62512    {
62513#line 1321
62514    __cil_tmp300 = ps->dev;
62515#line 1321
62516    __cil_tmp301 = & __cil_tmp300->dev;
62517#line 1321
62518    __cil_tmp302 = (struct device  const  *)__cil_tmp301;
62519#line 1321
62520    dev_printk("<7>", __cil_tmp302, "usbfs: usb_submit_urb returned %d\n", ret);
62521#line 1323
62522    __cil_tmp303 = ps->dev;
62523#line 1323
62524    __cil_tmp304 = as->userurb;
62525#line 1323
62526    __cil_tmp305 = as->urb;
62527#line 1323
62528    __cil_tmp306 = __cil_tmp305->pipe;
62529#line 1323
62530    __cil_tmp307 = (int )__cil_tmp306;
62531#line 1323
62532    __cil_tmp308 = (enum snoop_when )1;
62533#line 1323
62534    __cil_tmp309 = (unsigned char *)0;
62535#line 1323
62536    snoop_urb(__cil_tmp303, __cil_tmp304, __cil_tmp307, 0U, ret, __cil_tmp308, __cil_tmp309,
62537              0U);
62538#line 1325
62539    async_removepending(as);
62540#line 1326
62541    free_async(as);
62542    }
62543#line 1327
62544    return (ret);
62545  } else {
62546
62547  }
62548#line 1329
62549  return (0);
62550}
62551}
62552#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"
62553static int proc_submiturb(struct dev_state *ps , void *arg ) 
62554{ struct usbdevfs_urb uurb ;
62555  unsigned long tmp ;
62556  int tmp___0 ;
62557  void *__cil_tmp6 ;
62558  void const   *__cil_tmp7 ;
62559  struct usbdevfs_urb *__cil_tmp8 ;
62560  struct usbdevfs_iso_packet_desc (*__cil_tmp9)[0U] ;
62561  struct usbdevfs_iso_packet_desc *__cil_tmp10 ;
62562
62563  {
62564  {
62565#line 1336
62566  __cil_tmp6 = (void *)(& uurb);
62567#line 1336
62568  __cil_tmp7 = (void const   *)arg;
62569#line 1336
62570  tmp = copy_from_user(__cil_tmp6, __cil_tmp7, 56UL);
62571  }
62572#line 1336
62573  if (tmp != 0UL) {
62574#line 1337
62575    return (-14);
62576  } else {
62577
62578  }
62579  {
62580#line 1339
62581  __cil_tmp8 = (struct usbdevfs_urb *)arg;
62582#line 1339
62583  __cil_tmp9 = & __cil_tmp8->iso_frame_desc;
62584#line 1339
62585  __cil_tmp10 = (struct usbdevfs_iso_packet_desc *)__cil_tmp9;
62586#line 1339
62587  tmp___0 = proc_do_submiturb(ps, & uurb, __cil_tmp10, arg);
62588  }
62589#line 1339
62590  return (tmp___0);
62591}
62592}
62593#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"
62594static int proc_unlinkurb(struct dev_state *ps , void *arg ) 
62595{ struct async *as ;
62596  struct async *__cil_tmp4 ;
62597  unsigned long __cil_tmp5 ;
62598  unsigned long __cil_tmp6 ;
62599  struct urb *__cil_tmp7 ;
62600
62601  {
62602  {
62603#line 1348
62604  as = async_getpending(ps, arg);
62605  }
62606  {
62607#line 1349
62608  __cil_tmp4 = (struct async *)0;
62609#line 1349
62610  __cil_tmp5 = (unsigned long )__cil_tmp4;
62611#line 1349
62612  __cil_tmp6 = (unsigned long )as;
62613#line 1349
62614  if (__cil_tmp6 == __cil_tmp5) {
62615#line 1350
62616    return (-22);
62617  } else {
62618
62619  }
62620  }
62621  {
62622#line 1351
62623  __cil_tmp7 = as->urb;
62624#line 1351
62625  usb_kill_urb(__cil_tmp7);
62626  }
62627#line 1352
62628  return (0);
62629}
62630}
62631#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"
62632static int processcompl(struct async *as , void **arg ) 
62633{ struct urb *urb ;
62634  struct usbdevfs_urb *userurb ;
62635  void *addr ;
62636  unsigned int i ;
62637  int tmp ;
62638  int __ret_pu ;
62639  int __pu_val ;
62640  int __ret_pu___0 ;
62641  int __pu_val___0 ;
62642  int __ret_pu___1 ;
62643  int __pu_val___1 ;
62644  int __ret_pu___2 ;
62645  unsigned int __pu_val___2 ;
62646  int __ret_pu___3 ;
62647  unsigned int __pu_val___3 ;
62648  int tmp___0 ;
62649  int __ret_pu___4 ;
62650  void *__pu_val___4 ;
62651  void *__cil_tmp21 ;
62652  void *__cil_tmp22 ;
62653  unsigned long __cil_tmp23 ;
62654  void *__cil_tmp24 ;
62655  unsigned long __cil_tmp25 ;
62656  u32 __cil_tmp26 ;
62657  int __cil_tmp27 ;
62658  void *__cil_tmp28 ;
62659  void *__cil_tmp29 ;
62660  void const   *__cil_tmp30 ;
62661  u32 __cil_tmp31 ;
62662  struct usb_host_endpoint *__cil_tmp32 ;
62663  struct usb_endpoint_descriptor *__cil_tmp33 ;
62664  struct usb_endpoint_descriptor  const  *__cil_tmp34 ;
62665  int __cil_tmp35 ;
62666  int __cil_tmp36 ;
62667  unsigned int __cil_tmp37 ;
62668
62669  {
62670#line 1357
62671  urb = as->urb;
62672#line 1358
62673  __cil_tmp21 = as->userurb;
62674#line 1358
62675  userurb = (struct usbdevfs_urb *)__cil_tmp21;
62676#line 1359
62677  addr = as->userurb;
62678  {
62679#line 1362
62680  __cil_tmp22 = (void *)0;
62681#line 1362
62682  __cil_tmp23 = (unsigned long )__cil_tmp22;
62683#line 1362
62684  __cil_tmp24 = as->userbuffer;
62685#line 1362
62686  __cil_tmp25 = (unsigned long )__cil_tmp24;
62687#line 1362
62688  if (__cil_tmp25 != __cil_tmp23) {
62689    {
62690#line 1362
62691    __cil_tmp26 = urb->actual_length;
62692#line 1362
62693    if (__cil_tmp26 != 0U) {
62694      {
62695#line 1363
62696      __cil_tmp27 = urb->number_of_packets;
62697#line 1363
62698      if (__cil_tmp27 > 0) {
62699#line 1364
62700        i = urb->transfer_buffer_length;
62701      } else {
62702#line 1366
62703        i = urb->actual_length;
62704      }
62705      }
62706      {
62707#line 1367
62708      __cil_tmp28 = as->userbuffer;
62709#line 1367
62710      __cil_tmp29 = urb->transfer_buffer;
62711#line 1367
62712      __cil_tmp30 = (void const   *)__cil_tmp29;
62713#line 1367
62714      tmp = copy_to_user(__cil_tmp28, __cil_tmp30, i);
62715      }
62716#line 1367
62717      if (tmp != 0) {
62718#line 1368
62719        goto err_out;
62720      } else {
62721
62722      }
62723    } else {
62724
62725    }
62726    }
62727  } else {
62728
62729  }
62730  }
62731  {
62732#line 1370
62733  might_fault();
62734#line 1370
62735  __pu_val = as->status;
62736  }
62737#line 1370
62738  if (1) {
62739#line 1370
62740    goto case_4;
62741  } else {
62742#line 1370
62743    goto switch_default;
62744#line 1370
62745    if (0) {
62746#line 1370
62747      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62748#line 1370
62749      goto ldv_31031;
62750#line 1370
62751      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62752#line 1370
62753      goto ldv_31031;
62754      case_4: 
62755#line 1370
62756      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62757#line 1370
62758      goto ldv_31031;
62759#line 1370
62760      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62761#line 1370
62762      goto ldv_31031;
62763      switch_default: 
62764#line 1370
62765      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
62766#line 1370
62767      goto ldv_31031;
62768    } else {
62769
62770    }
62771  }
62772  ldv_31031: ;
62773#line 1370
62774  if (__ret_pu != 0) {
62775#line 1371
62776    goto err_out;
62777  } else {
62778
62779  }
62780  {
62781#line 1372
62782  might_fault();
62783#line 1372
62784  __cil_tmp31 = urb->actual_length;
62785#line 1372
62786  __pu_val___0 = (int )__cil_tmp31;
62787  }
62788#line 1372
62789  if (1) {
62790#line 1372
62791    goto case_4___0;
62792  } else {
62793#line 1372
62794    goto switch_default___0;
62795#line 1372
62796    if (0) {
62797#line 1372
62798      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___0): "0" (__pu_val___0),
62799                           "c" (& userurb->actual_length): "ebx");
62800#line 1372
62801      goto ldv_31040;
62802#line 1372
62803      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___0): "0" (__pu_val___0),
62804                           "c" (& userurb->actual_length): "ebx");
62805#line 1372
62806      goto ldv_31040;
62807      case_4___0: 
62808#line 1372
62809      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___0): "0" (__pu_val___0),
62810                           "c" (& userurb->actual_length): "ebx");
62811#line 1372
62812      goto ldv_31040;
62813#line 1372
62814      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___0): "0" (__pu_val___0),
62815                           "c" (& userurb->actual_length): "ebx");
62816#line 1372
62817      goto ldv_31040;
62818      switch_default___0: 
62819#line 1372
62820      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___0): "0" (__pu_val___0),
62821                           "c" (& userurb->actual_length): "ebx");
62822#line 1372
62823      goto ldv_31040;
62824    } else {
62825
62826    }
62827  }
62828  ldv_31040: ;
62829#line 1372
62830  if (__ret_pu___0 != 0) {
62831#line 1373
62832    goto err_out;
62833  } else {
62834
62835  }
62836  {
62837#line 1374
62838  might_fault();
62839#line 1374
62840  __pu_val___1 = urb->error_count;
62841  }
62842#line 1374
62843  if (1) {
62844#line 1374
62845    goto case_4___1;
62846  } else {
62847#line 1374
62848    goto switch_default___1;
62849#line 1374
62850    if (0) {
62851#line 1374
62852      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___1): "0" (__pu_val___1),
62853                           "c" (& userurb->error_count): "ebx");
62854#line 1374
62855      goto ldv_31049;
62856#line 1374
62857      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___1): "0" (__pu_val___1),
62858                           "c" (& userurb->error_count): "ebx");
62859#line 1374
62860      goto ldv_31049;
62861      case_4___1: 
62862#line 1374
62863      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___1): "0" (__pu_val___1),
62864                           "c" (& userurb->error_count): "ebx");
62865#line 1374
62866      goto ldv_31049;
62867#line 1374
62868      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___1): "0" (__pu_val___1),
62869                           "c" (& userurb->error_count): "ebx");
62870#line 1374
62871      goto ldv_31049;
62872      switch_default___1: 
62873#line 1374
62874      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___1): "0" (__pu_val___1),
62875                           "c" (& userurb->error_count): "ebx");
62876#line 1374
62877      goto ldv_31049;
62878    } else {
62879
62880    }
62881  }
62882  ldv_31049: ;
62883#line 1374
62884  if (__ret_pu___1 != 0) {
62885#line 1375
62886    goto err_out;
62887  } else {
62888
62889  }
62890  {
62891#line 1377
62892  __cil_tmp32 = urb->ep;
62893#line 1377
62894  __cil_tmp33 = & __cil_tmp32->desc;
62895#line 1377
62896  __cil_tmp34 = (struct usb_endpoint_descriptor  const  *)__cil_tmp33;
62897#line 1377
62898  tmp___0 = usb_endpoint_xfer_isoc(__cil_tmp34);
62899  }
62900#line 1377
62901  if (tmp___0 != 0) {
62902#line 1378
62903    i = 0U;
62904#line 1378
62905    goto ldv_31074;
62906    ldv_31073: 
62907    {
62908#line 1379
62909    might_fault();
62910#line 1379
62911    __pu_val___2 = urb->iso_frame_desc[i].actual_length;
62912    }
62913#line 1379
62914    if (1) {
62915#line 1379
62916      goto case_4___2;
62917    } else {
62918#line 1379
62919      goto switch_default___2;
62920#line 1379
62921      if (0) {
62922#line 1379
62923        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___2): "0" (__pu_val___2),
62924                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62925#line 1379
62926        goto ldv_31058;
62927#line 1379
62928        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___2): "0" (__pu_val___2),
62929                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62930#line 1379
62931        goto ldv_31058;
62932        case_4___2: 
62933#line 1379
62934        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___2): "0" (__pu_val___2),
62935                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62936#line 1379
62937        goto ldv_31058;
62938#line 1379
62939        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___2): "0" (__pu_val___2),
62940                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62941#line 1379
62942        goto ldv_31058;
62943        switch_default___2: 
62944#line 1379
62945        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___2): "0" (__pu_val___2),
62946                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
62947#line 1379
62948        goto ldv_31058;
62949      } else {
62950
62951      }
62952    }
62953    ldv_31058: ;
62954#line 1379
62955    if (__ret_pu___2 != 0) {
62956#line 1381
62957      goto err_out;
62958    } else {
62959
62960    }
62961    {
62962#line 1382
62963    might_fault();
62964#line 1382
62965    __cil_tmp35 = urb->iso_frame_desc[i].status;
62966#line 1382
62967    __pu_val___3 = (unsigned int )__cil_tmp35;
62968    }
62969#line 1382
62970    if (1) {
62971#line 1382
62972      goto case_4___3;
62973    } else {
62974#line 1382
62975      goto switch_default___3;
62976#line 1382
62977      if (0) {
62978#line 1382
62979        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___3): "0" (__pu_val___3),
62980                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
62981#line 1382
62982        goto ldv_31067;
62983#line 1382
62984        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___3): "0" (__pu_val___3),
62985                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
62986#line 1382
62987        goto ldv_31067;
62988        case_4___3: 
62989#line 1382
62990        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___3): "0" (__pu_val___3),
62991                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
62992#line 1382
62993        goto ldv_31067;
62994#line 1382
62995        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___3): "0" (__pu_val___3),
62996                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
62997#line 1382
62998        goto ldv_31067;
62999        switch_default___3: 
63000#line 1382
63001        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___3): "0" (__pu_val___3),
63002                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
63003#line 1382
63004        goto ldv_31067;
63005      } else {
63006
63007      }
63008    }
63009    ldv_31067: ;
63010#line 1382
63011    if (__ret_pu___3 != 0) {
63012#line 1384
63013      goto err_out;
63014    } else {
63015
63016    }
63017#line 1378
63018    i = i + 1U;
63019    ldv_31074: ;
63020    {
63021#line 1378
63022    __cil_tmp36 = urb->number_of_packets;
63023#line 1378
63024    __cil_tmp37 = (unsigned int )__cil_tmp36;
63025#line 1378
63026    if (__cil_tmp37 > i) {
63027#line 1379
63028      goto ldv_31073;
63029    } else {
63030#line 1381
63031      goto ldv_31075;
63032    }
63033    }
63034    ldv_31075: ;
63035  } else {
63036
63037  }
63038  {
63039#line 1388
63040  might_fault();
63041#line 1388
63042  __pu_val___4 = addr;
63043  }
63044#line 1388
63045  if (1) {
63046#line 1388
63047    goto case_8___4;
63048  } else {
63049#line 1388
63050    goto switch_default___4;
63051#line 1388
63052    if (0) {
63053#line 1388
63054      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___4): "0" (__pu_val___4),
63055                           "c" (arg): "ebx");
63056#line 1388
63057      goto ldv_31079;
63058#line 1388
63059      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___4): "0" (__pu_val___4),
63060                           "c" (arg): "ebx");
63061#line 1388
63062      goto ldv_31079;
63063#line 1388
63064      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___4): "0" (__pu_val___4),
63065                           "c" (arg): "ebx");
63066#line 1388
63067      goto ldv_31079;
63068      case_8___4: 
63069#line 1388
63070      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___4): "0" (__pu_val___4),
63071                           "c" (arg): "ebx");
63072#line 1388
63073      goto ldv_31079;
63074      switch_default___4: 
63075#line 1388
63076      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___4): "0" (__pu_val___4),
63077                           "c" (arg): "ebx");
63078#line 1388
63079      goto ldv_31079;
63080    } else {
63081
63082    }
63083  }
63084  ldv_31079: ;
63085#line 1388
63086  if (__ret_pu___4 != 0) {
63087#line 1389
63088    return (-14);
63089  } else {
63090
63091  }
63092#line 1390
63093  return (0);
63094  err_out: ;
63095#line 1393
63096  return (-14);
63097}
63098}
63099#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"
63100static struct async *reap_as(struct dev_state *ps ) 
63101{ wait_queue_t wait ;
63102  struct task_struct *tmp ;
63103  struct async *as ;
63104  struct usb_device *dev ;
63105  struct task_struct *tmp___0 ;
63106  struct task_struct *tmp___1 ;
63107  int tmp___2 ;
63108  long volatile   __x ;
63109  u8 volatile   *__ptr ;
63110  struct task_struct *tmp___3 ;
63111  u16 volatile   *__ptr___0 ;
63112  struct task_struct *tmp___4 ;
63113  u32 volatile   *__ptr___1 ;
63114  struct task_struct *tmp___5 ;
63115  u64 volatile   *__ptr___2 ;
63116  struct task_struct *tmp___6 ;
63117  wait_queue_head_t *__cil_tmp18 ;
63118  struct async *__cil_tmp19 ;
63119  unsigned long __cil_tmp20 ;
63120  unsigned long __cil_tmp21 ;
63121  struct device *__cil_tmp22 ;
63122  struct device *__cil_tmp23 ;
63123  wait_queue_head_t *__cil_tmp24 ;
63124  long volatile   *__cil_tmp25 ;
63125  long volatile   *__cil_tmp26 ;
63126  long volatile   *__cil_tmp27 ;
63127  long volatile   *__cil_tmp28 ;
63128
63129  {
63130  {
63131#line 1398
63132  tmp = get_current();
63133#line 1398
63134  wait.flags = 0U;
63135#line 1398
63136  wait.private = (void *)tmp;
63137#line 1398
63138  wait.func = & default_wake_function;
63139#line 1398
63140  wait.task_list.next = (struct list_head *)0;
63141#line 1398
63142  wait.task_list.prev = (struct list_head *)0;
63143#line 1399
63144  as = (struct async *)0;
63145#line 1400
63146  dev = ps->dev;
63147#line 1402
63148  __cil_tmp18 = & ps->wait;
63149#line 1402
63150  add_wait_queue(__cil_tmp18, & wait);
63151  }
63152  ldv_31092: 
63153  {
63154#line 1404
63155  tmp___0 = get_current();
63156#line 1404
63157  tmp___0->state = (long volatile   )1L;
63158#line 1405
63159  as = async_getcompleted(ps);
63160  }
63161  {
63162#line 1406
63163  __cil_tmp19 = (struct async *)0;
63164#line 1406
63165  __cil_tmp20 = (unsigned long )__cil_tmp19;
63166#line 1406
63167  __cil_tmp21 = (unsigned long )as;
63168#line 1406
63169  if (__cil_tmp21 != __cil_tmp20) {
63170#line 1407
63171    goto ldv_31091;
63172  } else {
63173
63174  }
63175  }
63176  {
63177#line 1408
63178  tmp___1 = get_current();
63179#line 1408
63180  tmp___2 = signal_pending(tmp___1);
63181  }
63182#line 1408
63183  if (tmp___2 != 0) {
63184#line 1409
63185    goto ldv_31091;
63186  } else {
63187
63188  }
63189  {
63190#line 1410
63191  __cil_tmp22 = & dev->dev;
63192#line 1410
63193  device_unlock(__cil_tmp22);
63194#line 1411
63195  schedule();
63196#line 1412
63197  __cil_tmp23 = & dev->dev;
63198#line 1412
63199  device_lock(__cil_tmp23);
63200  }
63201#line 1413
63202  goto ldv_31092;
63203  ldv_31091: 
63204  {
63205#line 1414
63206  __cil_tmp24 = & ps->wait;
63207#line 1414
63208  remove_wait_queue(__cil_tmp24, & wait);
63209#line 1415
63210  __x = (long volatile   )0L;
63211  }
63212#line 1415
63213  if (1) {
63214#line 1415
63215    goto case_8;
63216  } else {
63217#line 1415
63218    goto switch_default;
63219#line 1415
63220    if (0) {
63221      {
63222#line 1415
63223      tmp___3 = get_current();
63224#line 1415
63225      __cil_tmp25 = & tmp___3->state;
63226#line 1415
63227      __ptr = (u8 volatile   *)__cil_tmp25;
63228#line 1415
63229      __asm__  volatile   ("xchgb %0,%1": "=q" (__x), "+m" (*__ptr): "0" (__x): "memory");
63230      }
63231#line 1415
63232      goto ldv_31096;
63233      {
63234#line 1415
63235      tmp___4 = get_current();
63236#line 1415
63237      __cil_tmp26 = & tmp___4->state;
63238#line 1415
63239      __ptr___0 = (u16 volatile   *)__cil_tmp26;
63240#line 1415
63241      __asm__  volatile   ("xchgw %0,%1": "=r" (__x), "+m" (*__ptr___0): "0" (__x): "memory");
63242      }
63243#line 1415
63244      goto ldv_31096;
63245      {
63246#line 1415
63247      tmp___5 = get_current();
63248#line 1415
63249      __cil_tmp27 = & tmp___5->state;
63250#line 1415
63251      __ptr___1 = (u32 volatile   *)__cil_tmp27;
63252#line 1415
63253      __asm__  volatile   ("xchgl %0,%1": "=r" (__x), "+m" (*__ptr___1): "0" (__x): "memory");
63254      }
63255#line 1415
63256      goto ldv_31096;
63257      case_8: 
63258      {
63259#line 1415
63260      tmp___6 = get_current();
63261#line 1415
63262      __cil_tmp28 = & tmp___6->state;
63263#line 1415
63264      __ptr___2 = (u64 volatile   *)__cil_tmp28;
63265#line 1415
63266      __asm__  volatile   ("xchgq %0,%1": "=r" (__x), "+m" (*__ptr___2): "0" (__x): "memory");
63267      }
63268#line 1415
63269      goto ldv_31096;
63270      switch_default: 
63271      {
63272#line 1415
63273      __xchg_wrong_size();
63274      }
63275    } else {
63276
63277    }
63278  }
63279  ldv_31096: ;
63280#line 1416
63281  return (as);
63282}
63283}
63284#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"
63285static int proc_reapurb(struct dev_state *ps , void *arg ) 
63286{ struct async *as ;
63287  struct async *tmp ;
63288  int retval ;
63289  int tmp___0 ;
63290  struct task_struct *tmp___1 ;
63291  int tmp___2 ;
63292  struct async *__cil_tmp9 ;
63293  unsigned long __cil_tmp10 ;
63294  unsigned long __cil_tmp11 ;
63295  void **__cil_tmp12 ;
63296
63297  {
63298  {
63299#line 1421
63300  tmp = reap_as(ps);
63301#line 1421
63302  as = tmp;
63303  }
63304  {
63305#line 1422
63306  __cil_tmp9 = (struct async *)0;
63307#line 1422
63308  __cil_tmp10 = (unsigned long )__cil_tmp9;
63309#line 1422
63310  __cil_tmp11 = (unsigned long )as;
63311#line 1422
63312  if (__cil_tmp11 != __cil_tmp10) {
63313    {
63314#line 1423
63315    __cil_tmp12 = (void **)arg;
63316#line 1423
63317    tmp___0 = processcompl(as, __cil_tmp12);
63318#line 1423
63319    retval = tmp___0;
63320#line 1424
63321    free_async(as);
63322    }
63323#line 1425
63324    return (retval);
63325  } else {
63326
63327  }
63328  }
63329  {
63330#line 1427
63331  tmp___1 = get_current();
63332#line 1427
63333  tmp___2 = signal_pending(tmp___1);
63334  }
63335#line 1427
63336  if (tmp___2 != 0) {
63337#line 1428
63338    return (-4);
63339  } else {
63340
63341  }
63342#line 1429
63343  return (-5);
63344}
63345}
63346#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"
63347static int proc_reapurbnonblock(struct dev_state *ps , void *arg ) 
63348{ int retval ;
63349  struct async *as ;
63350  struct async *__cil_tmp5 ;
63351  unsigned long __cil_tmp6 ;
63352  unsigned long __cil_tmp7 ;
63353  void **__cil_tmp8 ;
63354
63355  {
63356  {
63357#line 1437
63358  as = async_getcompleted(ps);
63359#line 1438
63360  retval = -11;
63361  }
63362  {
63363#line 1439
63364  __cil_tmp5 = (struct async *)0;
63365#line 1439
63366  __cil_tmp6 = (unsigned long )__cil_tmp5;
63367#line 1439
63368  __cil_tmp7 = (unsigned long )as;
63369#line 1439
63370  if (__cil_tmp7 != __cil_tmp6) {
63371    {
63372#line 1440
63373    __cil_tmp8 = (void **)arg;
63374#line 1440
63375    retval = processcompl(as, __cil_tmp8);
63376#line 1441
63377    free_async(as);
63378    }
63379  } else {
63380
63381  }
63382  }
63383#line 1443
63384  return (retval);
63385}
63386}
63387#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"
63388static int proc_control_compat(struct dev_state *ps , struct usbdevfs_ctrltransfer32 *p32 ) 
63389{ struct usbdevfs_ctrltransfer *p ;
63390  __u32 udata ;
63391  void *tmp ;
63392  unsigned long tmp___0 ;
63393  int __ret_gu ;
63394  unsigned long __val_gu ;
63395  int __ret_pu ;
63396  void *__pu_val ;
63397  int tmp___1 ;
63398  void *__cil_tmp12 ;
63399  void const   *__cil_tmp13 ;
63400  void *__cil_tmp14 ;
63401
63402  {
63403  {
63404#line 1452
63405  tmp = compat_alloc_user_space(24UL);
63406#line 1452
63407  p = (struct usbdevfs_ctrltransfer *)tmp;
63408#line 1453
63409  __cil_tmp12 = (void *)p;
63410#line 1453
63411  __cil_tmp13 = (void const   *)p32;
63412#line 1453
63413  tmp___0 = copy_in_user(__cil_tmp12, __cil_tmp13, 12U);
63414  }
63415#line 1455
63416  if (tmp___0 != 0UL) {
63417#line 1456
63418    return (-14);
63419  } else {
63420    {
63421#line 1454
63422    might_fault();
63423    }
63424#line 1454
63425    if (1) {
63426#line 1454
63427      goto case_4;
63428    } else {
63429#line 1454
63430      goto switch_default;
63431#line 1454
63432      if (0) {
63433#line 1454
63434        __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63435#line 1454
63436        goto ldv_31126;
63437#line 1454
63438        __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63439#line 1454
63440        goto ldv_31126;
63441        case_4: 
63442#line 1454
63443        __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63444#line 1454
63445        goto ldv_31126;
63446#line 1454
63447        __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63448#line 1454
63449        goto ldv_31126;
63450        switch_default: 
63451#line 1454
63452        __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->data));
63453#line 1454
63454        goto ldv_31126;
63455      } else {
63456
63457      }
63458    }
63459    ldv_31126: 
63460#line 1454
63461    udata = (unsigned int )__val_gu;
63462#line 1455
63463    if (__ret_gu != 0) {
63464#line 1456
63465      return (-14);
63466    } else {
63467      {
63468#line 1455
63469      might_fault();
63470#line 1455
63471      __pu_val = compat_ptr(udata);
63472      }
63473#line 1455
63474      if (1) {
63475#line 1455
63476        goto case_8___0;
63477      } else {
63478#line 1455
63479        goto switch_default___0;
63480#line 1455
63481        if (0) {
63482#line 1455
63483          __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu): "0" (__pu_val),
63484                               "c" (& p->data): "ebx");
63485#line 1455
63486          goto ldv_31135;
63487#line 1455
63488          __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu): "0" (__pu_val),
63489                               "c" (& p->data): "ebx");
63490#line 1455
63491          goto ldv_31135;
63492#line 1455
63493          __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu): "0" (__pu_val),
63494                               "c" (& p->data): "ebx");
63495#line 1455
63496          goto ldv_31135;
63497          case_8___0: 
63498#line 1455
63499          __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu): "0" (__pu_val),
63500                               "c" (& p->data): "ebx");
63501#line 1455
63502          goto ldv_31135;
63503          switch_default___0: 
63504#line 1455
63505          __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu): "0" (__pu_val),
63506                               "c" (& p->data): "ebx");
63507#line 1455
63508          goto ldv_31135;
63509        } else {
63510
63511        }
63512      }
63513      ldv_31135: ;
63514#line 1455
63515      if (__ret_pu != 0) {
63516#line 1456
63517        return (-14);
63518      } else {
63519
63520      }
63521    }
63522  }
63523  {
63524#line 1457
63525  __cil_tmp14 = (void *)p;
63526#line 1457
63527  tmp___1 = proc_control(ps, __cil_tmp14);
63528  }
63529#line 1457
63530  return (tmp___1);
63531}
63532}
63533#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"
63534static int proc_bulk_compat(struct dev_state *ps , struct usbdevfs_bulktransfer32 *p32 ) 
63535{ struct usbdevfs_bulktransfer *p ;
63536  compat_uint_t n ;
63537  compat_caddr_t addr ;
63538  void *tmp ;
63539  int __ret_gu ;
63540  unsigned long __val_gu ;
63541  int __ret_pu ;
63542  unsigned int __pu_val ;
63543  int __ret_gu___0 ;
63544  unsigned long __val_gu___0 ;
63545  int __ret_pu___0 ;
63546  unsigned int __pu_val___0 ;
63547  int __ret_gu___1 ;
63548  unsigned long __val_gu___1 ;
63549  int __ret_pu___1 ;
63550  unsigned int __pu_val___1 ;
63551  int __ret_gu___2 ;
63552  unsigned long __val_gu___2 ;
63553  int __ret_pu___2 ;
63554  void *__pu_val___2 ;
63555  int tmp___0 ;
63556  void *__cil_tmp24 ;
63557
63558  {
63559  {
63560#line 1467
63561  tmp = compat_alloc_user_space(24UL);
63562#line 1467
63563  p = (struct usbdevfs_bulktransfer *)tmp;
63564#line 1469
63565  might_fault();
63566  }
63567#line 1469
63568  if (1) {
63569#line 1469
63570    goto case_4;
63571  } else {
63572#line 1469
63573    goto switch_default;
63574#line 1469
63575    if (0) {
63576#line 1469
63577      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63578#line 1469
63579      goto ldv_31151;
63580#line 1469
63581      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63582#line 1469
63583      goto ldv_31151;
63584      case_4: 
63585#line 1469
63586      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63587#line 1469
63588      goto ldv_31151;
63589#line 1469
63590      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63591#line 1469
63592      goto ldv_31151;
63593      switch_default: 
63594#line 1469
63595      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" (& p32->ep));
63596#line 1469
63597      goto ldv_31151;
63598    } else {
63599
63600    }
63601  }
63602  ldv_31151: 
63603#line 1469
63604  n = (unsigned int )__val_gu;
63605#line 1472
63606  if (__ret_gu != 0) {
63607#line 1473
63608    return (-14);
63609  } else {
63610    {
63611#line 1469
63612    might_fault();
63613#line 1469
63614    __pu_val = n;
63615    }
63616#line 1469
63617    if (1) {
63618#line 1469
63619      goto case_4___0;
63620    } else {
63621#line 1469
63622      goto switch_default___0;
63623#line 1469
63624      if (0) {
63625#line 1469
63626        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu): "0" (__pu_val),
63627                             "c" (& p->ep): "ebx");
63628#line 1469
63629        goto ldv_31160;
63630#line 1469
63631        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu): "0" (__pu_val),
63632                             "c" (& p->ep): "ebx");
63633#line 1469
63634        goto ldv_31160;
63635        case_4___0: 
63636#line 1469
63637        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu): "0" (__pu_val),
63638                             "c" (& p->ep): "ebx");
63639#line 1469
63640        goto ldv_31160;
63641#line 1469
63642        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu): "0" (__pu_val),
63643                             "c" (& p->ep): "ebx");
63644#line 1469
63645        goto ldv_31160;
63646        switch_default___0: 
63647#line 1469
63648        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu): "0" (__pu_val),
63649                             "c" (& p->ep): "ebx");
63650#line 1469
63651        goto ldv_31160;
63652      } else {
63653
63654      }
63655    }
63656    ldv_31160: ;
63657#line 1472
63658    if (__ret_pu != 0) {
63659#line 1473
63660      return (-14);
63661    } else {
63662      {
63663#line 1470
63664      might_fault();
63665      }
63666#line 1470
63667      if (1) {
63668#line 1470
63669        goto case_4___1;
63670      } else {
63671#line 1470
63672        goto switch_default___1;
63673#line 1470
63674        if (0) {
63675#line 1470
63676          __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63677#line 1470
63678          goto ldv_31169;
63679#line 1470
63680          __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63681#line 1470
63682          goto ldv_31169;
63683          case_4___1: 
63684#line 1470
63685          __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63686#line 1470
63687          goto ldv_31169;
63688#line 1470
63689          __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63690#line 1470
63691          goto ldv_31169;
63692          switch_default___1: 
63693#line 1470
63694          __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu___0), "=d" (__val_gu___0): "0" (& p32->len));
63695#line 1470
63696          goto ldv_31169;
63697        } else {
63698
63699        }
63700      }
63701      ldv_31169: 
63702#line 1470
63703      n = (unsigned int )__val_gu___0;
63704#line 1472
63705      if (__ret_gu___0 != 0) {
63706#line 1473
63707        return (-14);
63708      } else {
63709        {
63710#line 1470
63711        might_fault();
63712#line 1470
63713        __pu_val___0 = n;
63714        }
63715#line 1470
63716        if (1) {
63717#line 1470
63718          goto case_4___2;
63719        } else {
63720#line 1470
63721          goto switch_default___2;
63722#line 1470
63723          if (0) {
63724#line 1470
63725            __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___0): "0" (__pu_val___0),
63726                                 "c" (& p->len): "ebx");
63727#line 1470
63728            goto ldv_31178;
63729#line 1470
63730            __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___0): "0" (__pu_val___0),
63731                                 "c" (& p->len): "ebx");
63732#line 1470
63733            goto ldv_31178;
63734            case_4___2: 
63735#line 1470
63736            __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___0): "0" (__pu_val___0),
63737                                 "c" (& p->len): "ebx");
63738#line 1470
63739            goto ldv_31178;
63740#line 1470
63741            __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___0): "0" (__pu_val___0),
63742                                 "c" (& p->len): "ebx");
63743#line 1470
63744            goto ldv_31178;
63745            switch_default___2: 
63746#line 1470
63747            __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___0): "0" (__pu_val___0),
63748                                 "c" (& p->len): "ebx");
63749#line 1470
63750            goto ldv_31178;
63751          } else {
63752
63753          }
63754        }
63755        ldv_31178: ;
63756#line 1472
63757        if (__ret_pu___0 != 0) {
63758#line 1473
63759          return (-14);
63760        } else {
63761          {
63762#line 1471
63763          might_fault();
63764          }
63765#line 1471
63766          if (1) {
63767#line 1471
63768            goto case_4___3;
63769          } else {
63770#line 1471
63771            goto switch_default___3;
63772#line 1471
63773            if (0) {
63774#line 1471
63775              __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63776#line 1471
63777              goto ldv_31187;
63778#line 1471
63779              __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63780#line 1471
63781              goto ldv_31187;
63782              case_4___3: 
63783#line 1471
63784              __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63785#line 1471
63786              goto ldv_31187;
63787#line 1471
63788              __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63789#line 1471
63790              goto ldv_31187;
63791              switch_default___3: 
63792#line 1471
63793              __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu___1), "=d" (__val_gu___1): "0" (& p32->timeout));
63794#line 1471
63795              goto ldv_31187;
63796            } else {
63797
63798            }
63799          }
63800          ldv_31187: 
63801#line 1471
63802          n = (unsigned int )__val_gu___1;
63803#line 1472
63804          if (__ret_gu___1 != 0) {
63805#line 1473
63806            return (-14);
63807          } else {
63808            {
63809#line 1471
63810            might_fault();
63811#line 1471
63812            __pu_val___1 = n;
63813            }
63814#line 1471
63815            if (1) {
63816#line 1471
63817              goto case_4___4;
63818            } else {
63819#line 1471
63820              goto switch_default___4;
63821#line 1471
63822              if (0) {
63823#line 1471
63824                __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___1): "0" (__pu_val___1),
63825                                     "c" (& p->timeout): "ebx");
63826#line 1471
63827                goto ldv_31196;
63828#line 1471
63829                __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___1): "0" (__pu_val___1),
63830                                     "c" (& p->timeout): "ebx");
63831#line 1471
63832                goto ldv_31196;
63833                case_4___4: 
63834#line 1471
63835                __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___1): "0" (__pu_val___1),
63836                                     "c" (& p->timeout): "ebx");
63837#line 1471
63838                goto ldv_31196;
63839#line 1471
63840                __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___1): "0" (__pu_val___1),
63841                                     "c" (& p->timeout): "ebx");
63842#line 1471
63843                goto ldv_31196;
63844                switch_default___4: 
63845#line 1471
63846                __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___1): "0" (__pu_val___1),
63847                                     "c" (& p->timeout): "ebx");
63848#line 1471
63849                goto ldv_31196;
63850              } else {
63851
63852              }
63853            }
63854            ldv_31196: ;
63855#line 1472
63856            if (__ret_pu___1 != 0) {
63857#line 1473
63858              return (-14);
63859            } else {
63860              {
63861#line 1472
63862              might_fault();
63863              }
63864#line 1472
63865              if (1) {
63866#line 1472
63867                goto case_4___5;
63868              } else {
63869#line 1472
63870                goto switch_default___5;
63871#line 1472
63872                if (0) {
63873#line 1472
63874                  __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63875#line 1472
63876                  goto ldv_31205;
63877#line 1472
63878                  __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63879#line 1472
63880                  goto ldv_31205;
63881                  case_4___5: 
63882#line 1472
63883                  __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63884#line 1472
63885                  goto ldv_31205;
63886#line 1472
63887                  __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63888#line 1472
63889                  goto ldv_31205;
63890                  switch_default___5: 
63891#line 1472
63892                  __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu___2), "=d" (__val_gu___2): "0" (& p32->data));
63893#line 1472
63894                  goto ldv_31205;
63895                } else {
63896
63897                }
63898              }
63899              ldv_31205: 
63900#line 1472
63901              addr = (unsigned int )__val_gu___2;
63902#line 1472
63903              if (__ret_gu___2 != 0) {
63904#line 1473
63905                return (-14);
63906              } else {
63907                {
63908#line 1472
63909                might_fault();
63910#line 1472
63911                __pu_val___2 = compat_ptr(addr);
63912                }
63913#line 1472
63914                if (1) {
63915#line 1472
63916                  goto case_8___6;
63917                } else {
63918#line 1472
63919                  goto switch_default___6;
63920#line 1472
63921                  if (0) {
63922#line 1472
63923                    __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___2): "0" (__pu_val___2),
63924                                         "c" (& p->data): "ebx");
63925#line 1472
63926                    goto ldv_31214;
63927#line 1472
63928                    __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___2): "0" (__pu_val___2),
63929                                         "c" (& p->data): "ebx");
63930#line 1472
63931                    goto ldv_31214;
63932#line 1472
63933                    __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___2): "0" (__pu_val___2),
63934                                         "c" (& p->data): "ebx");
63935#line 1472
63936                    goto ldv_31214;
63937                    case_8___6: 
63938#line 1472
63939                    __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___2): "0" (__pu_val___2),
63940                                         "c" (& p->data): "ebx");
63941#line 1472
63942                    goto ldv_31214;
63943                    switch_default___6: 
63944#line 1472
63945                    __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___2): "0" (__pu_val___2),
63946                                         "c" (& p->data): "ebx");
63947#line 1472
63948                    goto ldv_31214;
63949                  } else {
63950
63951                  }
63952                }
63953                ldv_31214: ;
63954#line 1472
63955                if (__ret_pu___2 != 0) {
63956#line 1473
63957                  return (-14);
63958                } else {
63959
63960                }
63961              }
63962            }
63963          }
63964        }
63965      }
63966    }
63967  }
63968  {
63969#line 1475
63970  __cil_tmp24 = (void *)p;
63971#line 1475
63972  tmp___0 = proc_bulk(ps, __cil_tmp24);
63973  }
63974#line 1475
63975  return (tmp___0);
63976}
63977}
63978#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"
63979static int proc_disconnectsignal_compat(struct dev_state *ps , void *arg ) 
63980{ struct usbdevfs_disconnectsignal32 ds ;
63981  unsigned long tmp ;
63982  void *__cil_tmp5 ;
63983  void const   *__cil_tmp6 ;
63984
63985  {
63986  {
63987#line 1481
63988  __cil_tmp5 = (void *)(& ds);
63989#line 1481
63990  __cil_tmp6 = (void const   *)arg;
63991#line 1481
63992  tmp = copy_from_user(__cil_tmp5, __cil_tmp6, 8UL);
63993  }
63994#line 1481
63995  if (tmp != 0UL) {
63996#line 1482
63997    return (-14);
63998  } else {
63999
64000  }
64001  {
64002#line 1483
64003  ps->discsignr = (unsigned int )ds.signr;
64004#line 1484
64005  ps->disccontext = compat_ptr(ds.context);
64006  }
64007#line 1485
64008  return (0);
64009}
64010}
64011#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"
64012static int get_urb32(struct usbdevfs_urb *kurb , struct usbdevfs_urb32 *uurb ) 
64013{ __u32 uptr ;
64014  unsigned long flag ;
64015  unsigned long roksum ;
64016  struct thread_info *tmp ;
64017  long tmp___0 ;
64018  int __gu_err ;
64019  unsigned long __gu_val ;
64020  int tmp___1 ;
64021  int __gu_err___0 ;
64022  unsigned long __gu_val___0 ;
64023  int tmp___2 ;
64024  int __gu_err___1 ;
64025  unsigned long __gu_val___1 ;
64026  int tmp___3 ;
64027  int __gu_err___2 ;
64028  unsigned long __gu_val___2 ;
64029  int tmp___4 ;
64030  int __gu_err___3 ;
64031  unsigned long __gu_val___3 ;
64032  int tmp___5 ;
64033  int __gu_err___4 ;
64034  unsigned long __gu_val___4 ;
64035  int tmp___6 ;
64036  int __gu_err___5 ;
64037  unsigned long __gu_val___5 ;
64038  int tmp___7 ;
64039  int __gu_err___6 ;
64040  unsigned long __gu_val___6 ;
64041  int tmp___8 ;
64042  int __gu_err___7 ;
64043  unsigned long __gu_val___7 ;
64044  int tmp___9 ;
64045  int __gu_err___8 ;
64046  unsigned long __gu_val___8 ;
64047  int tmp___10 ;
64048  int __gu_err___9 ;
64049  unsigned long __gu_val___9 ;
64050  int tmp___11 ;
64051  int __gu_err___10 ;
64052  unsigned long __gu_val___10 ;
64053  int tmp___12 ;
64054  int __cil_tmp44 ;
64055  long __cil_tmp45 ;
64056  unsigned char *__cil_tmp46 ;
64057  struct __large_struct *__cil_tmp47 ;
64058  unsigned char *__cil_tmp48 ;
64059  struct __large_struct *__cil_tmp49 ;
64060  unsigned char *__cil_tmp50 ;
64061  struct __large_struct *__cil_tmp51 ;
64062  unsigned char *__cil_tmp52 ;
64063  struct __large_struct *__cil_tmp53 ;
64064  unsigned char *__cil_tmp54 ;
64065  struct __large_struct *__cil_tmp55 ;
64066  unsigned char *__cil_tmp56 ;
64067  struct __large_struct *__cil_tmp57 ;
64068  unsigned char *__cil_tmp58 ;
64069  struct __large_struct *__cil_tmp59 ;
64070  unsigned char *__cil_tmp60 ;
64071  struct __large_struct *__cil_tmp61 ;
64072  compat_int_t *__cil_tmp62 ;
64073  struct __large_struct *__cil_tmp63 ;
64074  compat_int_t *__cil_tmp64 ;
64075  struct __large_struct *__cil_tmp65 ;
64076  compat_int_t *__cil_tmp66 ;
64077  struct __large_struct *__cil_tmp67 ;
64078  compat_int_t *__cil_tmp68 ;
64079  struct __large_struct *__cil_tmp69 ;
64080  compat_uint_t *__cil_tmp70 ;
64081  struct __large_struct *__cil_tmp71 ;
64082  compat_uint_t *__cil_tmp72 ;
64083  struct __large_struct *__cil_tmp73 ;
64084  compat_uint_t *__cil_tmp74 ;
64085  struct __large_struct *__cil_tmp75 ;
64086  compat_uint_t *__cil_tmp76 ;
64087  struct __large_struct *__cil_tmp77 ;
64088  compat_int_t *__cil_tmp78 ;
64089  struct __large_struct *__cil_tmp79 ;
64090  compat_int_t *__cil_tmp80 ;
64091  struct __large_struct *__cil_tmp81 ;
64092  compat_int_t *__cil_tmp82 ;
64093  struct __large_struct *__cil_tmp83 ;
64094  compat_int_t *__cil_tmp84 ;
64095  struct __large_struct *__cil_tmp85 ;
64096  compat_int_t *__cil_tmp86 ;
64097  struct __large_struct *__cil_tmp87 ;
64098  compat_int_t *__cil_tmp88 ;
64099  struct __large_struct *__cil_tmp89 ;
64100  compat_int_t *__cil_tmp90 ;
64101  struct __large_struct *__cil_tmp91 ;
64102  compat_int_t *__cil_tmp92 ;
64103  struct __large_struct *__cil_tmp93 ;
64104  compat_int_t *__cil_tmp94 ;
64105  struct __large_struct *__cil_tmp95 ;
64106  compat_int_t *__cil_tmp96 ;
64107  struct __large_struct *__cil_tmp97 ;
64108  compat_int_t *__cil_tmp98 ;
64109  struct __large_struct *__cil_tmp99 ;
64110  compat_int_t *__cil_tmp100 ;
64111  struct __large_struct *__cil_tmp101 ;
64112  compat_int_t *__cil_tmp102 ;
64113  struct __large_struct *__cil_tmp103 ;
64114  compat_int_t *__cil_tmp104 ;
64115  struct __large_struct *__cil_tmp105 ;
64116  compat_int_t *__cil_tmp106 ;
64117  struct __large_struct *__cil_tmp107 ;
64118  compat_int_t *__cil_tmp108 ;
64119  struct __large_struct *__cil_tmp109 ;
64120  compat_int_t *__cil_tmp110 ;
64121  struct __large_struct *__cil_tmp111 ;
64122  compat_int_t *__cil_tmp112 ;
64123  struct __large_struct *__cil_tmp113 ;
64124  compat_int_t *__cil_tmp114 ;
64125  struct __large_struct *__cil_tmp115 ;
64126  compat_int_t *__cil_tmp116 ;
64127  struct __large_struct *__cil_tmp117 ;
64128  compat_uint_t *__cil_tmp118 ;
64129  struct __large_struct *__cil_tmp119 ;
64130  compat_uint_t *__cil_tmp120 ;
64131  struct __large_struct *__cil_tmp121 ;
64132  compat_uint_t *__cil_tmp122 ;
64133  struct __large_struct *__cil_tmp123 ;
64134  compat_uint_t *__cil_tmp124 ;
64135  struct __large_struct *__cil_tmp125 ;
64136  compat_caddr_t *__cil_tmp126 ;
64137  struct __large_struct *__cil_tmp127 ;
64138  compat_caddr_t *__cil_tmp128 ;
64139  struct __large_struct *__cil_tmp129 ;
64140  compat_caddr_t *__cil_tmp130 ;
64141  struct __large_struct *__cil_tmp131 ;
64142  compat_caddr_t *__cil_tmp132 ;
64143  struct __large_struct *__cil_tmp133 ;
64144  compat_caddr_t *__cil_tmp134 ;
64145  struct __large_struct *__cil_tmp135 ;
64146  compat_caddr_t *__cil_tmp136 ;
64147  struct __large_struct *__cil_tmp137 ;
64148  compat_caddr_t *__cil_tmp138 ;
64149  struct __large_struct *__cil_tmp139 ;
64150  compat_caddr_t *__cil_tmp140 ;
64151  struct __large_struct *__cil_tmp141 ;
64152
64153  {
64154  {
64155#line 1492
64156  tmp = current_thread_info();
64157#line 1492
64158  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (uurb),
64159            "g" (44L), "rm" (tmp->addr_limit.seg));
64160#line 1492
64161  __cil_tmp44 = flag == 0UL;
64162#line 1492
64163  __cil_tmp45 = (long )__cil_tmp44;
64164#line 1492
64165  tmp___0 = __builtin_expect(__cil_tmp45, 1L);
64166  }
64167#line 1502
64168  if (tmp___0 == 0L) {
64169#line 1503
64170    return (-14);
64171  } else {
64172#line 1493
64173    __gu_err = 0;
64174#line 1493
64175    if (1) {
64176#line 1493
64177      goto case_1;
64178    } else {
64179#line 1493
64180      goto switch_default;
64181#line 1493
64182      if (0) {
64183        case_1: 
64184#line 1493
64185        __cil_tmp46 = & uurb->type;
64186#line 1493
64187        __cil_tmp47 = (struct __large_struct *)__cil_tmp46;
64188#line 1493
64189        __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),
64190                             "=q" (__gu_val): "m" (*__cil_tmp47), "i" (-14), "0" (__gu_err));
64191#line 1493
64192        goto ldv_31236;
64193#line 1493
64194        __cil_tmp48 = & uurb->type;
64195#line 1493
64196        __cil_tmp49 = (struct __large_struct *)__cil_tmp48;
64197#line 1493
64198        __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),
64199                             "=r" (__gu_val): "m" (*__cil_tmp49), "i" (-14), "0" (__gu_err));
64200#line 1493
64201        goto ldv_31236;
64202#line 1493
64203        __cil_tmp50 = & uurb->type;
64204#line 1493
64205        __cil_tmp51 = (struct __large_struct *)__cil_tmp50;
64206#line 1493
64207        __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),
64208                             "=r" (__gu_val): "m" (*__cil_tmp51), "i" (-14), "0" (__gu_err));
64209#line 1493
64210        goto ldv_31236;
64211#line 1493
64212        __cil_tmp52 = & uurb->type;
64213#line 1493
64214        __cil_tmp53 = (struct __large_struct *)__cil_tmp52;
64215#line 1493
64216        __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),
64217                             "=r" (__gu_val): "m" (*__cil_tmp53), "i" (-14), "0" (__gu_err));
64218#line 1493
64219        goto ldv_31236;
64220        switch_default: 
64221        {
64222#line 1493
64223        tmp___1 = __get_user_bad();
64224#line 1493
64225        __gu_val = (unsigned long )tmp___1;
64226        }
64227      } else {
64228
64229      }
64230    }
64231    ldv_31236: 
64232#line 1493
64233    kurb->type = (unsigned char )__gu_val;
64234#line 1502
64235    if (__gu_err != 0) {
64236#line 1503
64237      return (-14);
64238    } else {
64239#line 1494
64240      __gu_err___0 = 0;
64241#line 1494
64242      if (1) {
64243#line 1494
64244        goto case_1___0;
64245      } else {
64246#line 1494
64247        goto switch_default___0;
64248#line 1494
64249        if (0) {
64250          case_1___0: 
64251#line 1494
64252          __cil_tmp54 = & uurb->endpoint;
64253#line 1494
64254          __cil_tmp55 = (struct __large_struct *)__cil_tmp54;
64255#line 1494
64256          __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),
64257                               "=q" (__gu_val___0): "m" (*__cil_tmp55), "i" (-14),
64258                               "0" (__gu_err___0));
64259#line 1494
64260          goto ldv_31245;
64261#line 1494
64262          __cil_tmp56 = & uurb->endpoint;
64263#line 1494
64264          __cil_tmp57 = (struct __large_struct *)__cil_tmp56;
64265#line 1494
64266          __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),
64267                               "=r" (__gu_val___0): "m" (*__cil_tmp57), "i" (-14),
64268                               "0" (__gu_err___0));
64269#line 1494
64270          goto ldv_31245;
64271#line 1494
64272          __cil_tmp58 = & uurb->endpoint;
64273#line 1494
64274          __cil_tmp59 = (struct __large_struct *)__cil_tmp58;
64275#line 1494
64276          __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),
64277                               "=r" (__gu_val___0): "m" (*__cil_tmp59), "i" (-14),
64278                               "0" (__gu_err___0));
64279#line 1494
64280          goto ldv_31245;
64281#line 1494
64282          __cil_tmp60 = & uurb->endpoint;
64283#line 1494
64284          __cil_tmp61 = (struct __large_struct *)__cil_tmp60;
64285#line 1494
64286          __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),
64287                               "=r" (__gu_val___0): "m" (*__cil_tmp61), "i" (-14),
64288                               "0" (__gu_err___0));
64289#line 1494
64290          goto ldv_31245;
64291          switch_default___0: 
64292          {
64293#line 1494
64294          tmp___2 = __get_user_bad();
64295#line 1494
64296          __gu_val___0 = (unsigned long )tmp___2;
64297          }
64298        } else {
64299
64300        }
64301      }
64302      ldv_31245: 
64303#line 1494
64304      kurb->endpoint = (unsigned char )__gu_val___0;
64305#line 1502
64306      if (__gu_err___0 != 0) {
64307#line 1503
64308        return (-14);
64309      } else {
64310#line 1495
64311        __gu_err___1 = 0;
64312#line 1495
64313        if (1) {
64314#line 1495
64315          goto case_4___1;
64316        } else {
64317#line 1495
64318          goto switch_default___1;
64319#line 1495
64320          if (0) {
64321#line 1495
64322            __cil_tmp62 = & uurb->status;
64323#line 1495
64324            __cil_tmp63 = (struct __large_struct *)__cil_tmp62;
64325#line 1495
64326            __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),
64327                                 "=q" (__gu_val___1): "m" (*__cil_tmp63), "i" (-14),
64328                                 "0" (__gu_err___1));
64329#line 1495
64330            goto ldv_31254;
64331#line 1495
64332            __cil_tmp64 = & uurb->status;
64333#line 1495
64334            __cil_tmp65 = (struct __large_struct *)__cil_tmp64;
64335#line 1495
64336            __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),
64337                                 "=r" (__gu_val___1): "m" (*__cil_tmp65), "i" (-14),
64338                                 "0" (__gu_err___1));
64339#line 1495
64340            goto ldv_31254;
64341            case_4___1: 
64342#line 1495
64343            __cil_tmp66 = & uurb->status;
64344#line 1495
64345            __cil_tmp67 = (struct __large_struct *)__cil_tmp66;
64346#line 1495
64347            __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),
64348                                 "=r" (__gu_val___1): "m" (*__cil_tmp67), "i" (-14),
64349                                 "0" (__gu_err___1));
64350#line 1495
64351            goto ldv_31254;
64352#line 1495
64353            __cil_tmp68 = & uurb->status;
64354#line 1495
64355            __cil_tmp69 = (struct __large_struct *)__cil_tmp68;
64356#line 1495
64357            __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),
64358                                 "=r" (__gu_val___1): "m" (*__cil_tmp69), "i" (-14),
64359                                 "0" (__gu_err___1));
64360#line 1495
64361            goto ldv_31254;
64362            switch_default___1: 
64363            {
64364#line 1495
64365            tmp___3 = __get_user_bad();
64366#line 1495
64367            __gu_val___1 = (unsigned long )tmp___3;
64368            }
64369          } else {
64370
64371          }
64372        }
64373        ldv_31254: 
64374#line 1495
64375        kurb->status = (int )__gu_val___1;
64376#line 1502
64377        if (__gu_err___1 != 0) {
64378#line 1503
64379          return (-14);
64380        } else {
64381#line 1496
64382          __gu_err___2 = 0;
64383#line 1496
64384          if (1) {
64385#line 1496
64386            goto case_4___2;
64387          } else {
64388#line 1496
64389            goto switch_default___2;
64390#line 1496
64391            if (0) {
64392#line 1496
64393              __cil_tmp70 = & uurb->flags;
64394#line 1496
64395              __cil_tmp71 = (struct __large_struct *)__cil_tmp70;
64396#line 1496
64397              __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),
64398                                   "=q" (__gu_val___2): "m" (*__cil_tmp71), "i" (-14),
64399                                   "0" (__gu_err___2));
64400#line 1496
64401              goto ldv_31263;
64402#line 1496
64403              __cil_tmp72 = & uurb->flags;
64404#line 1496
64405              __cil_tmp73 = (struct __large_struct *)__cil_tmp72;
64406#line 1496
64407              __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),
64408                                   "=r" (__gu_val___2): "m" (*__cil_tmp73), "i" (-14),
64409                                   "0" (__gu_err___2));
64410#line 1496
64411              goto ldv_31263;
64412              case_4___2: 
64413#line 1496
64414              __cil_tmp74 = & uurb->flags;
64415#line 1496
64416              __cil_tmp75 = (struct __large_struct *)__cil_tmp74;
64417#line 1496
64418              __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),
64419                                   "=r" (__gu_val___2): "m" (*__cil_tmp75), "i" (-14),
64420                                   "0" (__gu_err___2));
64421#line 1496
64422              goto ldv_31263;
64423#line 1496
64424              __cil_tmp76 = & uurb->flags;
64425#line 1496
64426              __cil_tmp77 = (struct __large_struct *)__cil_tmp76;
64427#line 1496
64428              __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),
64429                                   "=r" (__gu_val___2): "m" (*__cil_tmp77), "i" (-14),
64430                                   "0" (__gu_err___2));
64431#line 1496
64432              goto ldv_31263;
64433              switch_default___2: 
64434              {
64435#line 1496
64436              tmp___4 = __get_user_bad();
64437#line 1496
64438              __gu_val___2 = (unsigned long )tmp___4;
64439              }
64440            } else {
64441
64442            }
64443          }
64444          ldv_31263: 
64445#line 1496
64446          kurb->flags = (unsigned int )__gu_val___2;
64447#line 1502
64448          if (__gu_err___2 != 0) {
64449#line 1503
64450            return (-14);
64451          } else {
64452#line 1497
64453            __gu_err___3 = 0;
64454#line 1497
64455            if (1) {
64456#line 1497
64457              goto case_4___3;
64458            } else {
64459#line 1497
64460              goto switch_default___3;
64461#line 1497
64462              if (0) {
64463#line 1497
64464                __cil_tmp78 = & uurb->buffer_length;
64465#line 1497
64466                __cil_tmp79 = (struct __large_struct *)__cil_tmp78;
64467#line 1497
64468                __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),
64469                                     "=q" (__gu_val___3): "m" (*__cil_tmp79), "i" (-14),
64470                                     "0" (__gu_err___3));
64471#line 1497
64472                goto ldv_31272;
64473#line 1497
64474                __cil_tmp80 = & uurb->buffer_length;
64475#line 1497
64476                __cil_tmp81 = (struct __large_struct *)__cil_tmp80;
64477#line 1497
64478                __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),
64479                                     "=r" (__gu_val___3): "m" (*__cil_tmp81), "i" (-14),
64480                                     "0" (__gu_err___3));
64481#line 1497
64482                goto ldv_31272;
64483                case_4___3: 
64484#line 1497
64485                __cil_tmp82 = & uurb->buffer_length;
64486#line 1497
64487                __cil_tmp83 = (struct __large_struct *)__cil_tmp82;
64488#line 1497
64489                __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),
64490                                     "=r" (__gu_val___3): "m" (*__cil_tmp83), "i" (-14),
64491                                     "0" (__gu_err___3));
64492#line 1497
64493                goto ldv_31272;
64494#line 1497
64495                __cil_tmp84 = & uurb->buffer_length;
64496#line 1497
64497                __cil_tmp85 = (struct __large_struct *)__cil_tmp84;
64498#line 1497
64499                __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),
64500                                     "=r" (__gu_val___3): "m" (*__cil_tmp85), "i" (-14),
64501                                     "0" (__gu_err___3));
64502#line 1497
64503                goto ldv_31272;
64504                switch_default___3: 
64505                {
64506#line 1497
64507                tmp___5 = __get_user_bad();
64508#line 1497
64509                __gu_val___3 = (unsigned long )tmp___5;
64510                }
64511              } else {
64512
64513              }
64514            }
64515            ldv_31272: 
64516#line 1497
64517            kurb->buffer_length = (int )__gu_val___3;
64518#line 1502
64519            if (__gu_err___3 != 0) {
64520#line 1503
64521              return (-14);
64522            } else {
64523#line 1498
64524              __gu_err___4 = 0;
64525#line 1498
64526              if (1) {
64527#line 1498
64528                goto case_4___4;
64529              } else {
64530#line 1498
64531                goto switch_default___4;
64532#line 1498
64533                if (0) {
64534#line 1498
64535                  __cil_tmp86 = & uurb->actual_length;
64536#line 1498
64537                  __cil_tmp87 = (struct __large_struct *)__cil_tmp86;
64538#line 1498
64539                  __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),
64540                                       "=q" (__gu_val___4): "m" (*__cil_tmp87), "i" (-14),
64541                                       "0" (__gu_err___4));
64542#line 1498
64543                  goto ldv_31281;
64544#line 1498
64545                  __cil_tmp88 = & uurb->actual_length;
64546#line 1498
64547                  __cil_tmp89 = (struct __large_struct *)__cil_tmp88;
64548#line 1498
64549                  __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),
64550                                       "=r" (__gu_val___4): "m" (*__cil_tmp89), "i" (-14),
64551                                       "0" (__gu_err___4));
64552#line 1498
64553                  goto ldv_31281;
64554                  case_4___4: 
64555#line 1498
64556                  __cil_tmp90 = & uurb->actual_length;
64557#line 1498
64558                  __cil_tmp91 = (struct __large_struct *)__cil_tmp90;
64559#line 1498
64560                  __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),
64561                                       "=r" (__gu_val___4): "m" (*__cil_tmp91), "i" (-14),
64562                                       "0" (__gu_err___4));
64563#line 1498
64564                  goto ldv_31281;
64565#line 1498
64566                  __cil_tmp92 = & uurb->actual_length;
64567#line 1498
64568                  __cil_tmp93 = (struct __large_struct *)__cil_tmp92;
64569#line 1498
64570                  __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),
64571                                       "=r" (__gu_val___4): "m" (*__cil_tmp93), "i" (-14),
64572                                       "0" (__gu_err___4));
64573#line 1498
64574                  goto ldv_31281;
64575                  switch_default___4: 
64576                  {
64577#line 1498
64578                  tmp___6 = __get_user_bad();
64579#line 1498
64580                  __gu_val___4 = (unsigned long )tmp___6;
64581                  }
64582                } else {
64583
64584                }
64585              }
64586              ldv_31281: 
64587#line 1498
64588              kurb->actual_length = (int )__gu_val___4;
64589#line 1502
64590              if (__gu_err___4 != 0) {
64591#line 1503
64592                return (-14);
64593              } else {
64594#line 1499
64595                __gu_err___5 = 0;
64596#line 1499
64597                if (1) {
64598#line 1499
64599                  goto case_4___5;
64600                } else {
64601#line 1499
64602                  goto switch_default___5;
64603#line 1499
64604                  if (0) {
64605#line 1499
64606                    __cil_tmp94 = & uurb->start_frame;
64607#line 1499
64608                    __cil_tmp95 = (struct __large_struct *)__cil_tmp94;
64609#line 1499
64610                    __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),
64611                                         "=q" (__gu_val___5): "m" (*__cil_tmp95),
64612                                         "i" (-14), "0" (__gu_err___5));
64613#line 1499
64614                    goto ldv_31290;
64615#line 1499
64616                    __cil_tmp96 = & uurb->start_frame;
64617#line 1499
64618                    __cil_tmp97 = (struct __large_struct *)__cil_tmp96;
64619#line 1499
64620                    __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),
64621                                         "=r" (__gu_val___5): "m" (*__cil_tmp97),
64622                                         "i" (-14), "0" (__gu_err___5));
64623#line 1499
64624                    goto ldv_31290;
64625                    case_4___5: 
64626#line 1499
64627                    __cil_tmp98 = & uurb->start_frame;
64628#line 1499
64629                    __cil_tmp99 = (struct __large_struct *)__cil_tmp98;
64630#line 1499
64631                    __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),
64632                                         "=r" (__gu_val___5): "m" (*__cil_tmp99),
64633                                         "i" (-14), "0" (__gu_err___5));
64634#line 1499
64635                    goto ldv_31290;
64636#line 1499
64637                    __cil_tmp100 = & uurb->start_frame;
64638#line 1499
64639                    __cil_tmp101 = (struct __large_struct *)__cil_tmp100;
64640#line 1499
64641                    __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),
64642                                         "=r" (__gu_val___5): "m" (*__cil_tmp101),
64643                                         "i" (-14), "0" (__gu_err___5));
64644#line 1499
64645                    goto ldv_31290;
64646                    switch_default___5: 
64647                    {
64648#line 1499
64649                    tmp___7 = __get_user_bad();
64650#line 1499
64651                    __gu_val___5 = (unsigned long )tmp___7;
64652                    }
64653                  } else {
64654
64655                  }
64656                }
64657                ldv_31290: 
64658#line 1499
64659                kurb->start_frame = (int )__gu_val___5;
64660#line 1502
64661                if (__gu_err___5 != 0) {
64662#line 1503
64663                  return (-14);
64664                } else {
64665#line 1500
64666                  __gu_err___6 = 0;
64667#line 1500
64668                  if (1) {
64669#line 1500
64670                    goto case_4___6;
64671                  } else {
64672#line 1500
64673                    goto switch_default___6;
64674#line 1500
64675                    if (0) {
64676#line 1500
64677                      __cil_tmp102 = & uurb->number_of_packets;
64678#line 1500
64679                      __cil_tmp103 = (struct __large_struct *)__cil_tmp102;
64680#line 1500
64681                      __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),
64682                                           "=q" (__gu_val___6): "m" (*__cil_tmp103),
64683                                           "i" (-14), "0" (__gu_err___6));
64684#line 1500
64685                      goto ldv_31299;
64686#line 1500
64687                      __cil_tmp104 = & uurb->number_of_packets;
64688#line 1500
64689                      __cil_tmp105 = (struct __large_struct *)__cil_tmp104;
64690#line 1500
64691                      __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),
64692                                           "=r" (__gu_val___6): "m" (*__cil_tmp105),
64693                                           "i" (-14), "0" (__gu_err___6));
64694#line 1500
64695                      goto ldv_31299;
64696                      case_4___6: 
64697#line 1500
64698                      __cil_tmp106 = & uurb->number_of_packets;
64699#line 1500
64700                      __cil_tmp107 = (struct __large_struct *)__cil_tmp106;
64701#line 1500
64702                      __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),
64703                                           "=r" (__gu_val___6): "m" (*__cil_tmp107),
64704                                           "i" (-14), "0" (__gu_err___6));
64705#line 1500
64706                      goto ldv_31299;
64707#line 1500
64708                      __cil_tmp108 = & uurb->number_of_packets;
64709#line 1500
64710                      __cil_tmp109 = (struct __large_struct *)__cil_tmp108;
64711#line 1500
64712                      __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),
64713                                           "=r" (__gu_val___6): "m" (*__cil_tmp109),
64714                                           "i" (-14), "0" (__gu_err___6));
64715#line 1500
64716                      goto ldv_31299;
64717                      switch_default___6: 
64718                      {
64719#line 1500
64720                      tmp___8 = __get_user_bad();
64721#line 1500
64722                      __gu_val___6 = (unsigned long )tmp___8;
64723                      }
64724                    } else {
64725
64726                    }
64727                  }
64728                  ldv_31299: 
64729#line 1500
64730                  kurb->number_of_packets = (int )__gu_val___6;
64731#line 1502
64732                  if (__gu_err___6 != 0) {
64733#line 1503
64734                    return (-14);
64735                  } else {
64736#line 1501
64737                    __gu_err___7 = 0;
64738#line 1501
64739                    if (1) {
64740#line 1501
64741                      goto case_4___7;
64742                    } else {
64743#line 1501
64744                      goto switch_default___7;
64745#line 1501
64746                      if (0) {
64747#line 1501
64748                        __cil_tmp110 = & uurb->error_count;
64749#line 1501
64750                        __cil_tmp111 = (struct __large_struct *)__cil_tmp110;
64751#line 1501
64752                        __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),
64753                                             "=q" (__gu_val___7): "m" (*__cil_tmp111),
64754                                             "i" (-14), "0" (__gu_err___7));
64755#line 1501
64756                        goto ldv_31308;
64757#line 1501
64758                        __cil_tmp112 = & uurb->error_count;
64759#line 1501
64760                        __cil_tmp113 = (struct __large_struct *)__cil_tmp112;
64761#line 1501
64762                        __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),
64763                                             "=r" (__gu_val___7): "m" (*__cil_tmp113),
64764                                             "i" (-14), "0" (__gu_err___7));
64765#line 1501
64766                        goto ldv_31308;
64767                        case_4___7: 
64768#line 1501
64769                        __cil_tmp114 = & uurb->error_count;
64770#line 1501
64771                        __cil_tmp115 = (struct __large_struct *)__cil_tmp114;
64772#line 1501
64773                        __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),
64774                                             "=r" (__gu_val___7): "m" (*__cil_tmp115),
64775                                             "i" (-14), "0" (__gu_err___7));
64776#line 1501
64777                        goto ldv_31308;
64778#line 1501
64779                        __cil_tmp116 = & uurb->error_count;
64780#line 1501
64781                        __cil_tmp117 = (struct __large_struct *)__cil_tmp116;
64782#line 1501
64783                        __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),
64784                                             "=r" (__gu_val___7): "m" (*__cil_tmp117),
64785                                             "i" (-14), "0" (__gu_err___7));
64786#line 1501
64787                        goto ldv_31308;
64788                        switch_default___7: 
64789                        {
64790#line 1501
64791                        tmp___9 = __get_user_bad();
64792#line 1501
64793                        __gu_val___7 = (unsigned long )tmp___9;
64794                        }
64795                      } else {
64796
64797                      }
64798                    }
64799                    ldv_31308: 
64800#line 1501
64801                    kurb->error_count = (int )__gu_val___7;
64802#line 1502
64803                    if (__gu_err___7 != 0) {
64804#line 1503
64805                      return (-14);
64806                    } else {
64807#line 1502
64808                      __gu_err___8 = 0;
64809#line 1502
64810                      if (1) {
64811#line 1502
64812                        goto case_4___8;
64813                      } else {
64814#line 1502
64815                        goto switch_default___8;
64816#line 1502
64817                        if (0) {
64818#line 1502
64819                          __cil_tmp118 = & uurb->signr;
64820#line 1502
64821                          __cil_tmp119 = (struct __large_struct *)__cil_tmp118;
64822#line 1502
64823                          __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),
64824                                               "=q" (__gu_val___8): "m" (*__cil_tmp119),
64825                                               "i" (-14), "0" (__gu_err___8));
64826#line 1502
64827                          goto ldv_31317;
64828#line 1502
64829                          __cil_tmp120 = & uurb->signr;
64830#line 1502
64831                          __cil_tmp121 = (struct __large_struct *)__cil_tmp120;
64832#line 1502
64833                          __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),
64834                                               "=r" (__gu_val___8): "m" (*__cil_tmp121),
64835                                               "i" (-14), "0" (__gu_err___8));
64836#line 1502
64837                          goto ldv_31317;
64838                          case_4___8: 
64839#line 1502
64840                          __cil_tmp122 = & uurb->signr;
64841#line 1502
64842                          __cil_tmp123 = (struct __large_struct *)__cil_tmp122;
64843#line 1502
64844                          __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),
64845                                               "=r" (__gu_val___8): "m" (*__cil_tmp123),
64846                                               "i" (-14), "0" (__gu_err___8));
64847#line 1502
64848                          goto ldv_31317;
64849#line 1502
64850                          __cil_tmp124 = & uurb->signr;
64851#line 1502
64852                          __cil_tmp125 = (struct __large_struct *)__cil_tmp124;
64853#line 1502
64854                          __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),
64855                                               "=r" (__gu_val___8): "m" (*__cil_tmp125),
64856                                               "i" (-14), "0" (__gu_err___8));
64857#line 1502
64858                          goto ldv_31317;
64859                          switch_default___8: 
64860                          {
64861#line 1502
64862                          tmp___10 = __get_user_bad();
64863#line 1502
64864                          __gu_val___8 = (unsigned long )tmp___10;
64865                          }
64866                        } else {
64867
64868                        }
64869                      }
64870                      ldv_31317: 
64871#line 1502
64872                      kurb->signr = (unsigned int )__gu_val___8;
64873#line 1502
64874                      if (__gu_err___8 != 0) {
64875#line 1503
64876                        return (-14);
64877                      } else {
64878
64879                      }
64880                    }
64881                  }
64882                }
64883              }
64884            }
64885          }
64886        }
64887      }
64888    }
64889  }
64890#line 1505
64891  __gu_err___9 = 0;
64892#line 1505
64893  if (1) {
64894#line 1505
64895    goto case_4___9;
64896  } else {
64897#line 1505
64898    goto switch_default___9;
64899#line 1505
64900    if (0) {
64901#line 1505
64902      __cil_tmp126 = & uurb->buffer;
64903#line 1505
64904      __cil_tmp127 = (struct __large_struct *)__cil_tmp126;
64905#line 1505
64906      __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),
64907                           "=q" (__gu_val___9): "m" (*__cil_tmp127), "i" (-14), "0" (__gu_err___9));
64908#line 1505
64909      goto ldv_31326;
64910#line 1505
64911      __cil_tmp128 = & uurb->buffer;
64912#line 1505
64913      __cil_tmp129 = (struct __large_struct *)__cil_tmp128;
64914#line 1505
64915      __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),
64916                           "=r" (__gu_val___9): "m" (*__cil_tmp129), "i" (-14), "0" (__gu_err___9));
64917#line 1505
64918      goto ldv_31326;
64919      case_4___9: 
64920#line 1505
64921      __cil_tmp130 = & uurb->buffer;
64922#line 1505
64923      __cil_tmp131 = (struct __large_struct *)__cil_tmp130;
64924#line 1505
64925      __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),
64926                           "=r" (__gu_val___9): "m" (*__cil_tmp131), "i" (-14), "0" (__gu_err___9));
64927#line 1505
64928      goto ldv_31326;
64929#line 1505
64930      __cil_tmp132 = & uurb->buffer;
64931#line 1505
64932      __cil_tmp133 = (struct __large_struct *)__cil_tmp132;
64933#line 1505
64934      __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),
64935                           "=r" (__gu_val___9): "m" (*__cil_tmp133), "i" (-14), "0" (__gu_err___9));
64936#line 1505
64937      goto ldv_31326;
64938      switch_default___9: 
64939      {
64940#line 1505
64941      tmp___11 = __get_user_bad();
64942#line 1505
64943      __gu_val___9 = (unsigned long )tmp___11;
64944      }
64945    } else {
64946
64947    }
64948  }
64949  ldv_31326: 
64950#line 1505
64951  uptr = (unsigned int )__gu_val___9;
64952#line 1505
64953  if (__gu_err___9 != 0) {
64954#line 1506
64955    return (-14);
64956  } else {
64957
64958  }
64959  {
64960#line 1507
64961  kurb->buffer = compat_ptr(uptr);
64962#line 1508
64963  __gu_err___10 = 0;
64964  }
64965#line 1508
64966  if (1) {
64967#line 1508
64968    goto case_4___10;
64969  } else {
64970#line 1508
64971    goto switch_default___10;
64972#line 1508
64973    if (0) {
64974#line 1508
64975      __cil_tmp134 = & uurb->usercontext;
64976#line 1508
64977      __cil_tmp135 = (struct __large_struct *)__cil_tmp134;
64978#line 1508
64979      __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),
64980                           "=q" (__gu_val___10): "m" (*__cil_tmp135), "i" (-14), "0" (__gu_err___10));
64981#line 1508
64982      goto ldv_31335;
64983#line 1508
64984      __cil_tmp136 = & uurb->usercontext;
64985#line 1508
64986      __cil_tmp137 = (struct __large_struct *)__cil_tmp136;
64987#line 1508
64988      __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),
64989                           "=r" (__gu_val___10): "m" (*__cil_tmp137), "i" (-14), "0" (__gu_err___10));
64990#line 1508
64991      goto ldv_31335;
64992      case_4___10: 
64993#line 1508
64994      __cil_tmp138 = & uurb->usercontext;
64995#line 1508
64996      __cil_tmp139 = (struct __large_struct *)__cil_tmp138;
64997#line 1508
64998      __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),
64999                           "=r" (__gu_val___10): "m" (*__cil_tmp139), "i" (-14), "0" (__gu_err___10));
65000#line 1508
65001      goto ldv_31335;
65002#line 1508
65003      __cil_tmp140 = & uurb->usercontext;
65004#line 1508
65005      __cil_tmp141 = (struct __large_struct *)__cil_tmp140;
65006#line 1508
65007      __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),
65008                           "=r" (__gu_val___10): "m" (*__cil_tmp141), "i" (-14), "0" (__gu_err___10));
65009#line 1508
65010      goto ldv_31335;
65011      switch_default___10: 
65012      {
65013#line 1508
65014      tmp___12 = __get_user_bad();
65015#line 1508
65016      __gu_val___10 = (unsigned long )tmp___12;
65017      }
65018    } else {
65019
65020    }
65021  }
65022  ldv_31335: 
65023#line 1508
65024  uptr = (unsigned int )__gu_val___10;
65025#line 1508
65026  if (__gu_err___10 != 0) {
65027#line 1509
65028    return (-14);
65029  } else {
65030
65031  }
65032  {
65033#line 1510
65034  kurb->usercontext = compat_ptr(uptr);
65035  }
65036#line 1512
65037  return (0);
65038}
65039}
65040#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"
65041static int proc_submiturb_compat(struct dev_state *ps , void *arg ) 
65042{ struct usbdevfs_urb uurb ;
65043  int tmp ;
65044  int tmp___0 ;
65045  struct usbdevfs_urb32 *__cil_tmp6 ;
65046  struct usbdevfs_urb32 *__cil_tmp7 ;
65047  struct usbdevfs_iso_packet_desc (*__cil_tmp8)[0U] ;
65048  struct usbdevfs_iso_packet_desc *__cil_tmp9 ;
65049
65050  {
65051  {
65052#line 1519
65053  __cil_tmp6 = (struct usbdevfs_urb32 *)arg;
65054#line 1519
65055  tmp = get_urb32(& uurb, __cil_tmp6);
65056  }
65057#line 1519
65058  if (tmp != 0) {
65059#line 1520
65060    return (-14);
65061  } else {
65062
65063  }
65064  {
65065#line 1522
65066  __cil_tmp7 = (struct usbdevfs_urb32 *)arg;
65067#line 1522
65068  __cil_tmp8 = & __cil_tmp7->iso_frame_desc;
65069#line 1522
65070  __cil_tmp9 = (struct usbdevfs_iso_packet_desc *)__cil_tmp8;
65071#line 1522
65072  tmp___0 = proc_do_submiturb(ps, & uurb, __cil_tmp9, arg);
65073  }
65074#line 1522
65075  return (tmp___0);
65076}
65077}
65078#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"
65079static int processcompl_compat(struct async *as , void **arg ) 
65080{ struct urb *urb ;
65081  struct usbdevfs_urb32 *userurb ;
65082  void *addr ;
65083  unsigned int i ;
65084  int tmp ;
65085  int __ret_pu ;
65086  compat_int_t __pu_val ;
65087  int __ret_pu___0 ;
65088  compat_int_t __pu_val___0 ;
65089  int __ret_pu___1 ;
65090  compat_int_t __pu_val___1 ;
65091  int __ret_pu___2 ;
65092  unsigned int __pu_val___2 ;
65093  int __ret_pu___3 ;
65094  unsigned int __pu_val___3 ;
65095  int tmp___0 ;
65096  int __ret_pu___4 ;
65097  u32 __pu_val___4 ;
65098  void *__cil_tmp21 ;
65099  void *__cil_tmp22 ;
65100  unsigned long __cil_tmp23 ;
65101  void *__cil_tmp24 ;
65102  unsigned long __cil_tmp25 ;
65103  u32 __cil_tmp26 ;
65104  void *__cil_tmp27 ;
65105  void *__cil_tmp28 ;
65106  void const   *__cil_tmp29 ;
65107  u32 __cil_tmp30 ;
65108  u32 __cil_tmp31 ;
65109  struct usb_host_endpoint *__cil_tmp32 ;
65110  struct usb_endpoint_descriptor *__cil_tmp33 ;
65111  struct usb_endpoint_descriptor  const  *__cil_tmp34 ;
65112  int __cil_tmp35 ;
65113  int __cil_tmp36 ;
65114  unsigned int __cil_tmp37 ;
65115
65116  {
65117#line 1529
65118  urb = as->urb;
65119#line 1530
65120  __cil_tmp21 = as->userurb;
65121#line 1530
65122  userurb = (struct usbdevfs_urb32 *)__cil_tmp21;
65123#line 1531
65124  addr = as->userurb;
65125  {
65126#line 1534
65127  __cil_tmp22 = (void *)0;
65128#line 1534
65129  __cil_tmp23 = (unsigned long )__cil_tmp22;
65130#line 1534
65131  __cil_tmp24 = as->userbuffer;
65132#line 1534
65133  __cil_tmp25 = (unsigned long )__cil_tmp24;
65134#line 1534
65135  if (__cil_tmp25 != __cil_tmp23) {
65136    {
65137#line 1534
65138    __cil_tmp26 = urb->actual_length;
65139#line 1534
65140    if (__cil_tmp26 != 0U) {
65141      {
65142#line 1535
65143      __cil_tmp27 = as->userbuffer;
65144#line 1535
65145      __cil_tmp28 = urb->transfer_buffer;
65146#line 1535
65147      __cil_tmp29 = (void const   *)__cil_tmp28;
65148#line 1535
65149      __cil_tmp30 = urb->actual_length;
65150#line 1535
65151      tmp = copy_to_user(__cil_tmp27, __cil_tmp29, __cil_tmp30);
65152      }
65153#line 1535
65154      if (tmp != 0) {
65155#line 1537
65156        return (-14);
65157      } else {
65158
65159      }
65160    } else {
65161
65162    }
65163    }
65164  } else {
65165
65166  }
65167  }
65168  {
65169#line 1538
65170  might_fault();
65171#line 1538
65172  __pu_val = as->status;
65173  }
65174#line 1538
65175  if (1) {
65176#line 1538
65177    goto case_4;
65178  } else {
65179#line 1538
65180    goto switch_default;
65181#line 1538
65182    if (0) {
65183#line 1538
65184      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65185#line 1538
65186      goto ldv_31357;
65187#line 1538
65188      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65189#line 1538
65190      goto ldv_31357;
65191      case_4: 
65192#line 1538
65193      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65194#line 1538
65195      goto ldv_31357;
65196#line 1538
65197      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65198#line 1538
65199      goto ldv_31357;
65200      switch_default: 
65201#line 1538
65202      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu): "0" (__pu_val), "c" (& userurb->status): "ebx");
65203#line 1538
65204      goto ldv_31357;
65205    } else {
65206
65207    }
65208  }
65209  ldv_31357: ;
65210#line 1538
65211  if (__ret_pu != 0) {
65212#line 1539
65213    return (-14);
65214  } else {
65215
65216  }
65217  {
65218#line 1540
65219  might_fault();
65220#line 1540
65221  __cil_tmp31 = urb->actual_length;
65222#line 1540
65223  __pu_val___0 = (compat_int_t )__cil_tmp31;
65224  }
65225#line 1540
65226  if (1) {
65227#line 1540
65228    goto case_4___0;
65229  } else {
65230#line 1540
65231    goto switch_default___0;
65232#line 1540
65233    if (0) {
65234#line 1540
65235      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___0): "0" (__pu_val___0),
65236                           "c" (& userurb->actual_length): "ebx");
65237#line 1540
65238      goto ldv_31366;
65239#line 1540
65240      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___0): "0" (__pu_val___0),
65241                           "c" (& userurb->actual_length): "ebx");
65242#line 1540
65243      goto ldv_31366;
65244      case_4___0: 
65245#line 1540
65246      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___0): "0" (__pu_val___0),
65247                           "c" (& userurb->actual_length): "ebx");
65248#line 1540
65249      goto ldv_31366;
65250#line 1540
65251      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___0): "0" (__pu_val___0),
65252                           "c" (& userurb->actual_length): "ebx");
65253#line 1540
65254      goto ldv_31366;
65255      switch_default___0: 
65256#line 1540
65257      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___0): "0" (__pu_val___0),
65258                           "c" (& userurb->actual_length): "ebx");
65259#line 1540
65260      goto ldv_31366;
65261    } else {
65262
65263    }
65264  }
65265  ldv_31366: ;
65266#line 1540
65267  if (__ret_pu___0 != 0) {
65268#line 1541
65269    return (-14);
65270  } else {
65271
65272  }
65273  {
65274#line 1542
65275  might_fault();
65276#line 1542
65277  __pu_val___1 = urb->error_count;
65278  }
65279#line 1542
65280  if (1) {
65281#line 1542
65282    goto case_4___1;
65283  } else {
65284#line 1542
65285    goto switch_default___1;
65286#line 1542
65287    if (0) {
65288#line 1542
65289      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___1): "0" (__pu_val___1),
65290                           "c" (& userurb->error_count): "ebx");
65291#line 1542
65292      goto ldv_31375;
65293#line 1542
65294      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___1): "0" (__pu_val___1),
65295                           "c" (& userurb->error_count): "ebx");
65296#line 1542
65297      goto ldv_31375;
65298      case_4___1: 
65299#line 1542
65300      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___1): "0" (__pu_val___1),
65301                           "c" (& userurb->error_count): "ebx");
65302#line 1542
65303      goto ldv_31375;
65304#line 1542
65305      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___1): "0" (__pu_val___1),
65306                           "c" (& userurb->error_count): "ebx");
65307#line 1542
65308      goto ldv_31375;
65309      switch_default___1: 
65310#line 1542
65311      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___1): "0" (__pu_val___1),
65312                           "c" (& userurb->error_count): "ebx");
65313#line 1542
65314      goto ldv_31375;
65315    } else {
65316
65317    }
65318  }
65319  ldv_31375: ;
65320#line 1542
65321  if (__ret_pu___1 != 0) {
65322#line 1543
65323    return (-14);
65324  } else {
65325
65326  }
65327  {
65328#line 1545
65329  __cil_tmp32 = urb->ep;
65330#line 1545
65331  __cil_tmp33 = & __cil_tmp32->desc;
65332#line 1545
65333  __cil_tmp34 = (struct usb_endpoint_descriptor  const  *)__cil_tmp33;
65334#line 1545
65335  tmp___0 = usb_endpoint_xfer_isoc(__cil_tmp34);
65336  }
65337#line 1545
65338  if (tmp___0 != 0) {
65339#line 1546
65340    i = 0U;
65341#line 1546
65342    goto ldv_31400;
65343    ldv_31399: 
65344    {
65345#line 1547
65346    might_fault();
65347#line 1547
65348    __pu_val___2 = urb->iso_frame_desc[i].actual_length;
65349    }
65350#line 1547
65351    if (1) {
65352#line 1547
65353      goto case_4___2;
65354    } else {
65355#line 1547
65356      goto switch_default___2;
65357#line 1547
65358      if (0) {
65359#line 1547
65360        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___2): "0" (__pu_val___2),
65361                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65362#line 1547
65363        goto ldv_31384;
65364#line 1547
65365        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___2): "0" (__pu_val___2),
65366                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65367#line 1547
65368        goto ldv_31384;
65369        case_4___2: 
65370#line 1547
65371        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___2): "0" (__pu_val___2),
65372                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65373#line 1547
65374        goto ldv_31384;
65375#line 1547
65376        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___2): "0" (__pu_val___2),
65377                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65378#line 1547
65379        goto ldv_31384;
65380        switch_default___2: 
65381#line 1547
65382        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___2): "0" (__pu_val___2),
65383                             "c" (& userurb->iso_frame_desc[i].actual_length): "ebx");
65384#line 1547
65385        goto ldv_31384;
65386      } else {
65387
65388      }
65389    }
65390    ldv_31384: ;
65391#line 1547
65392    if (__ret_pu___2 != 0) {
65393#line 1549
65394      return (-14);
65395    } else {
65396
65397    }
65398    {
65399#line 1550
65400    might_fault();
65401#line 1550
65402    __cil_tmp35 = urb->iso_frame_desc[i].status;
65403#line 1550
65404    __pu_val___3 = (unsigned int )__cil_tmp35;
65405    }
65406#line 1550
65407    if (1) {
65408#line 1550
65409      goto case_4___3;
65410    } else {
65411#line 1550
65412      goto switch_default___3;
65413#line 1550
65414      if (0) {
65415#line 1550
65416        __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___3): "0" (__pu_val___3),
65417                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65418#line 1550
65419        goto ldv_31393;
65420#line 1550
65421        __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___3): "0" (__pu_val___3),
65422                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65423#line 1550
65424        goto ldv_31393;
65425        case_4___3: 
65426#line 1550
65427        __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___3): "0" (__pu_val___3),
65428                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65429#line 1550
65430        goto ldv_31393;
65431#line 1550
65432        __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___3): "0" (__pu_val___3),
65433                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65434#line 1550
65435        goto ldv_31393;
65436        switch_default___3: 
65437#line 1550
65438        __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___3): "0" (__pu_val___3),
65439                             "c" (& userurb->iso_frame_desc[i].status): "ebx");
65440#line 1550
65441        goto ldv_31393;
65442      } else {
65443
65444      }
65445    }
65446    ldv_31393: ;
65447#line 1550
65448    if (__ret_pu___3 != 0) {
65449#line 1552
65450      return (-14);
65451    } else {
65452
65453    }
65454#line 1546
65455    i = i + 1U;
65456    ldv_31400: ;
65457    {
65458#line 1546
65459    __cil_tmp36 = urb->number_of_packets;
65460#line 1546
65461    __cil_tmp37 = (unsigned int )__cil_tmp36;
65462#line 1546
65463    if (__cil_tmp37 > i) {
65464#line 1547
65465      goto ldv_31399;
65466    } else {
65467#line 1549
65468      goto ldv_31401;
65469    }
65470    }
65471    ldv_31401: ;
65472  } else {
65473
65474  }
65475  {
65476#line 1556
65477  might_fault();
65478#line 1556
65479  __pu_val___4 = ptr_to_compat(addr);
65480  }
65481#line 1556
65482  if (1) {
65483#line 1556
65484    goto case_4___4;
65485  } else {
65486#line 1556
65487    goto switch_default___4;
65488#line 1556
65489    if (0) {
65490#line 1556
65491      __asm__  volatile   ("call __put_user_1": "=a" (__ret_pu___4): "0" (__pu_val___4),
65492                           "c" ((u32 *)arg): "ebx");
65493#line 1556
65494      goto ldv_31405;
65495#line 1556
65496      __asm__  volatile   ("call __put_user_2": "=a" (__ret_pu___4): "0" (__pu_val___4),
65497                           "c" ((u32 *)arg): "ebx");
65498#line 1556
65499      goto ldv_31405;
65500      case_4___4: 
65501#line 1556
65502      __asm__  volatile   ("call __put_user_4": "=a" (__ret_pu___4): "0" (__pu_val___4),
65503                           "c" ((u32 *)arg): "ebx");
65504#line 1556
65505      goto ldv_31405;
65506#line 1556
65507      __asm__  volatile   ("call __put_user_8": "=a" (__ret_pu___4): "0" (__pu_val___4),
65508                           "c" ((u32 *)arg): "ebx");
65509#line 1556
65510      goto ldv_31405;
65511      switch_default___4: 
65512#line 1556
65513      __asm__  volatile   ("call __put_user_X": "=a" (__ret_pu___4): "0" (__pu_val___4),
65514                           "c" ((u32 *)arg): "ebx");
65515#line 1556
65516      goto ldv_31405;
65517    } else {
65518
65519    }
65520  }
65521  ldv_31405: ;
65522#line 1556
65523  if (__ret_pu___4 != 0) {
65524#line 1557
65525    return (-14);
65526  } else {
65527
65528  }
65529#line 1558
65530  return (0);
65531}
65532}
65533#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"
65534static int proc_reapurb_compat(struct dev_state *ps , void *arg ) 
65535{ struct async *as ;
65536  struct async *tmp ;
65537  int retval ;
65538  int tmp___0 ;
65539  struct task_struct *tmp___1 ;
65540  int tmp___2 ;
65541  struct async *__cil_tmp9 ;
65542  unsigned long __cil_tmp10 ;
65543  unsigned long __cil_tmp11 ;
65544  void **__cil_tmp12 ;
65545
65546  {
65547  {
65548#line 1563
65549  tmp = reap_as(ps);
65550#line 1563
65551  as = tmp;
65552  }
65553  {
65554#line 1564
65555  __cil_tmp9 = (struct async *)0;
65556#line 1564
65557  __cil_tmp10 = (unsigned long )__cil_tmp9;
65558#line 1564
65559  __cil_tmp11 = (unsigned long )as;
65560#line 1564
65561  if (__cil_tmp11 != __cil_tmp10) {
65562    {
65563#line 1565
65564    __cil_tmp12 = (void **)arg;
65565#line 1565
65566    tmp___0 = processcompl_compat(as, __cil_tmp12);
65567#line 1565
65568    retval = tmp___0;
65569#line 1566
65570    free_async(as);
65571    }
65572#line 1567
65573    return (retval);
65574  } else {
65575
65576  }
65577  }
65578  {
65579#line 1569
65580  tmp___1 = get_current();
65581#line 1569
65582  tmp___2 = signal_pending(tmp___1);
65583  }
65584#line 1569
65585  if (tmp___2 != 0) {
65586#line 1570
65587    return (-4);
65588  } else {
65589
65590  }
65591#line 1571
65592  return (-5);
65593}
65594}
65595#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"
65596static int proc_reapurbnonblock_compat(struct dev_state *ps , void *arg ) 
65597{ int retval ;
65598  struct async *as ;
65599  struct async *__cil_tmp5 ;
65600  unsigned long __cil_tmp6 ;
65601  unsigned long __cil_tmp7 ;
65602  void **__cil_tmp8 ;
65603
65604  {
65605  {
65606#line 1579
65607  retval = -11;
65608#line 1580
65609  as = async_getcompleted(ps);
65610  }
65611  {
65612#line 1581
65613  __cil_tmp5 = (struct async *)0;
65614#line 1581
65615  __cil_tmp6 = (unsigned long )__cil_tmp5;
65616#line 1581
65617  __cil_tmp7 = (unsigned long )as;
65618#line 1581
65619  if (__cil_tmp7 != __cil_tmp6) {
65620    {
65621#line 1582
65622    __cil_tmp8 = (void **)arg;
65623#line 1582
65624    retval = processcompl_compat(as, __cil_tmp8);
65625#line 1583
65626    free_async(as);
65627    }
65628  } else {
65629
65630  }
65631  }
65632#line 1585
65633  return (retval);
65634}
65635}
65636#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"
65637static int proc_disconnectsignal(struct dev_state *ps , void *arg ) 
65638{ struct usbdevfs_disconnectsignal ds ;
65639  unsigned long tmp ;
65640  void *__cil_tmp5 ;
65641  void const   *__cil_tmp6 ;
65642
65643  {
65644  {
65645#line 1595
65646  __cil_tmp5 = (void *)(& ds);
65647#line 1595
65648  __cil_tmp6 = (void const   *)arg;
65649#line 1595
65650  tmp = copy_from_user(__cil_tmp5, __cil_tmp6, 16UL);
65651  }
65652#line 1595
65653  if (tmp != 0UL) {
65654#line 1596
65655    return (-14);
65656  } else {
65657
65658  }
65659#line 1597
65660  ps->discsignr = ds.signr;
65661#line 1598
65662  ps->disccontext = ds.context;
65663#line 1599
65664  return (0);
65665}
65666}
65667#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"
65668static int proc_claiminterface(struct dev_state *ps , void *arg ) 
65669{ unsigned int ifnum ;
65670  int __ret_gu ;
65671  unsigned long __val_gu ;
65672  int tmp ;
65673
65674  {
65675  {
65676#line 1606
65677  might_fault();
65678  }
65679#line 1606
65680  if (1) {
65681#line 1606
65682    goto case_4;
65683  } else {
65684#line 1606
65685    goto switch_default;
65686#line 1606
65687    if (0) {
65688#line 1606
65689      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65690#line 1606
65691      goto ldv_31436;
65692#line 1606
65693      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65694#line 1606
65695      goto ldv_31436;
65696      case_4: 
65697#line 1606
65698      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65699#line 1606
65700      goto ldv_31436;
65701#line 1606
65702      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65703#line 1606
65704      goto ldv_31436;
65705      switch_default: 
65706#line 1606
65707      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65708#line 1606
65709      goto ldv_31436;
65710    } else {
65711
65712    }
65713  }
65714  ldv_31436: 
65715#line 1606
65716  ifnum = (unsigned int )__val_gu;
65717#line 1606
65718  if (__ret_gu != 0) {
65719#line 1607
65720    return (-14);
65721  } else {
65722
65723  }
65724  {
65725#line 1608
65726  tmp = claimintf(ps, ifnum);
65727  }
65728#line 1608
65729  return (tmp);
65730}
65731}
65732#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"
65733static int proc_releaseinterface(struct dev_state *ps , void *arg ) 
65734{ unsigned int ifnum ;
65735  int ret ;
65736  int __ret_gu ;
65737  unsigned long __val_gu ;
65738
65739  {
65740  {
65741#line 1616
65742  might_fault();
65743  }
65744#line 1616
65745  if (1) {
65746#line 1616
65747    goto case_4;
65748  } else {
65749#line 1616
65750    goto switch_default;
65751#line 1616
65752    if (0) {
65753#line 1616
65754      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65755#line 1616
65756      goto ldv_31451;
65757#line 1616
65758      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65759#line 1616
65760      goto ldv_31451;
65761      case_4: 
65762#line 1616
65763      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65764#line 1616
65765      goto ldv_31451;
65766#line 1616
65767      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65768#line 1616
65769      goto ldv_31451;
65770      switch_default: 
65771#line 1616
65772      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
65773#line 1616
65774      goto ldv_31451;
65775    } else {
65776
65777    }
65778  }
65779  ldv_31451: 
65780#line 1616
65781  ifnum = (unsigned int )__val_gu;
65782#line 1616
65783  if (__ret_gu != 0) {
65784#line 1617
65785    return (-14);
65786  } else {
65787
65788  }
65789  {
65790#line 1618
65791  ret = releaseintf(ps, ifnum);
65792  }
65793#line 1618
65794  if (ret < 0) {
65795#line 1619
65796    return (ret);
65797  } else {
65798
65799  }
65800  {
65801#line 1620
65802  destroy_async_on_interface(ps, ifnum);
65803  }
65804#line 1621
65805  return (0);
65806}
65807}
65808#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"
65809static int proc_ioctl(struct dev_state *ps , struct usbdevfs_ioctl *ctl ) 
65810{ int size ;
65811  void *buf ;
65812  int retval ;
65813  struct usb_interface *intf ;
65814  struct usb_driver *driver ;
65815  unsigned long tmp ;
65816  int tmp___0 ;
65817  struct device_driver  const  *__mptr ;
65818  struct device_driver  const  *__mptr___0 ;
65819  int tmp___1 ;
65820  int __cil_tmp13 ;
65821  int __cil_tmp14 ;
65822  size_t __cil_tmp15 ;
65823  void *__cil_tmp16 ;
65824  unsigned long __cil_tmp17 ;
65825  unsigned long __cil_tmp18 ;
65826  int __cil_tmp19 ;
65827  unsigned int __cil_tmp20 ;
65828  unsigned int __cil_tmp21 ;
65829  void *__cil_tmp22 ;
65830  void const   *__cil_tmp23 ;
65831  unsigned long __cil_tmp24 ;
65832  void const   *__cil_tmp25 ;
65833  size_t __cil_tmp26 ;
65834  void const   *__cil_tmp27 ;
65835  struct usb_device *__cil_tmp28 ;
65836  enum usb_device_state __cil_tmp29 ;
65837  unsigned int __cil_tmp30 ;
65838  struct usb_device *__cil_tmp31 ;
65839  struct usb_device  const  *__cil_tmp32 ;
65840  int __cil_tmp33 ;
65841  unsigned int __cil_tmp34 ;
65842  struct usb_interface *__cil_tmp35 ;
65843  unsigned long __cil_tmp36 ;
65844  unsigned long __cil_tmp37 ;
65845  int __cil_tmp38 ;
65846  int __cil_tmp39 ;
65847  struct device_driver *__cil_tmp40 ;
65848  unsigned long __cil_tmp41 ;
65849  struct device_driver *__cil_tmp42 ;
65850  unsigned long __cil_tmp43 ;
65851  struct device_driver *__cil_tmp44 ;
65852  struct usb_driver *__cil_tmp45 ;
65853  struct device *__cil_tmp46 ;
65854  struct device  const  *__cil_tmp47 ;
65855  struct device_driver *__cil_tmp48 ;
65856  unsigned long __cil_tmp49 ;
65857  struct device_driver *__cil_tmp50 ;
65858  unsigned long __cil_tmp51 ;
65859  struct device *__cil_tmp52 ;
65860  struct device_driver *__cil_tmp53 ;
65861  unsigned long __cil_tmp54 ;
65862  struct device_driver *__cil_tmp55 ;
65863  unsigned long __cil_tmp56 ;
65864  struct device_driver *__cil_tmp57 ;
65865  struct usb_driver *__cil_tmp58 ;
65866  struct usb_driver *__cil_tmp59 ;
65867  unsigned long __cil_tmp60 ;
65868  unsigned long __cil_tmp61 ;
65869  int (*__cil_tmp62)(struct usb_interface * , unsigned int  , void * ) ;
65870  unsigned long __cil_tmp63 ;
65871  int (*__cil_tmp64)(struct usb_interface * , unsigned int  , void * ) ;
65872  unsigned long __cil_tmp65 ;
65873  int (*__cil_tmp66)(struct usb_interface * , unsigned int  , void * ) ;
65874  int __cil_tmp67 ;
65875  unsigned int __cil_tmp68 ;
65876  int __cil_tmp69 ;
65877  void *__cil_tmp70 ;
65878  void const   *__cil_tmp71 ;
65879  unsigned int __cil_tmp72 ;
65880  void const   *__cil_tmp73 ;
65881
65882  {
65883#line 1627
65884  buf = (void *)0;
65885#line 1628
65886  retval = 0;
65887#line 1629
65888  intf = (struct usb_interface *)0;
65889#line 1630
65890  driver = (struct usb_driver *)0;
65891#line 1633
65892  __cil_tmp13 = ctl->ioctl_code;
65893#line 1633
65894  __cil_tmp14 = __cil_tmp13 >> 16;
65895#line 1633
65896  size = __cil_tmp14 & 16383;
65897#line 1633
65898  if (size > 0) {
65899    {
65900#line 1634
65901    __cil_tmp15 = (size_t )size;
65902#line 1634
65903    buf = kmalloc(__cil_tmp15, 208U);
65904    }
65905    {
65906#line 1634
65907    __cil_tmp16 = (void *)0;
65908#line 1634
65909    __cil_tmp17 = (unsigned long )__cil_tmp16;
65910#line 1634
65911    __cil_tmp18 = (unsigned long )buf;
65912#line 1634
65913    if (__cil_tmp18 == __cil_tmp17) {
65914#line 1635
65915      return (-12);
65916    } else {
65917
65918    }
65919    }
65920    {
65921#line 1636
65922    __cil_tmp19 = ctl->ioctl_code;
65923#line 1636
65924    __cil_tmp20 = (unsigned int )__cil_tmp19;
65925#line 1636
65926    __cil_tmp21 = __cil_tmp20 & 1073741824U;
65927#line 1636
65928    if (__cil_tmp21 != 0U) {
65929      {
65930#line 1637
65931      __cil_tmp22 = ctl->data;
65932#line 1637
65933      __cil_tmp23 = (void const   *)__cil_tmp22;
65934#line 1637
65935      __cil_tmp24 = (unsigned long )size;
65936#line 1637
65937      tmp = copy_from_user(buf, __cil_tmp23, __cil_tmp24);
65938      }
65939#line 1637
65940      if (tmp != 0UL) {
65941        {
65942#line 1638
65943        __cil_tmp25 = (void const   *)buf;
65944#line 1638
65945        kfree(__cil_tmp25);
65946        }
65947#line 1639
65948        return (-14);
65949      } else {
65950        {
65951#line 1642
65952        __cil_tmp26 = (size_t )size;
65953#line 1642
65954        memset(buf, 0, __cil_tmp26);
65955        }
65956      }
65957    } else {
65958
65959    }
65960    }
65961  } else {
65962
65963  }
65964  {
65965#line 1646
65966  tmp___0 = connected(ps);
65967  }
65968#line 1646
65969  if (tmp___0 == 0) {
65970    {
65971#line 1647
65972    __cil_tmp27 = (void const   *)buf;
65973#line 1647
65974    kfree(__cil_tmp27);
65975    }
65976#line 1648
65977    return (-19);
65978  } else {
65979
65980  }
65981  {
65982#line 1651
65983  __cil_tmp28 = ps->dev;
65984#line 1651
65985  __cil_tmp29 = __cil_tmp28->state;
65986#line 1651
65987  __cil_tmp30 = (unsigned int )__cil_tmp29;
65988#line 1651
65989  if (__cil_tmp30 != 7U) {
65990#line 1652
65991    retval = -113;
65992  } else {
65993    {
65994#line 1653
65995    __cil_tmp31 = ps->dev;
65996#line 1653
65997    __cil_tmp32 = (struct usb_device  const  *)__cil_tmp31;
65998#line 1653
65999    __cil_tmp33 = ctl->ifno;
66000#line 1653
66001    __cil_tmp34 = (unsigned int )__cil_tmp33;
66002#line 1653
66003    intf = usb_ifnum_to_if(__cil_tmp32, __cil_tmp34);
66004    }
66005    {
66006#line 1653
66007    __cil_tmp35 = (struct usb_interface *)0;
66008#line 1653
66009    __cil_tmp36 = (unsigned long )__cil_tmp35;
66010#line 1653
66011    __cil_tmp37 = (unsigned long )intf;
66012#line 1653
66013    if (__cil_tmp37 == __cil_tmp36) {
66014#line 1654
66015      retval = -22;
66016    } else {
66017      {
66018#line 1658
66019      __cil_tmp38 = ctl->ioctl_code;
66020#line 1658
66021      if (__cil_tmp38 == 21782) {
66022#line 1658
66023        goto case_21782;
66024      } else {
66025        {
66026#line 1668
66027        __cil_tmp39 = ctl->ioctl_code;
66028#line 1668
66029        if (__cil_tmp39 == 21783) {
66030#line 1668
66031          goto case_21783;
66032        } else {
66033#line 1676
66034          goto switch_default;
66035#line 1655
66036          if (0) {
66037            case_21782: ;
66038            {
66039#line 1659
66040            __cil_tmp40 = (struct device_driver *)0;
66041#line 1659
66042            __cil_tmp41 = (unsigned long )__cil_tmp40;
66043#line 1659
66044            __cil_tmp42 = intf->dev.driver;
66045#line 1659
66046            __cil_tmp43 = (unsigned long )__cil_tmp42;
66047#line 1659
66048            if (__cil_tmp43 != __cil_tmp41) {
66049              {
66050#line 1660
66051              __cil_tmp44 = intf->dev.driver;
66052#line 1660
66053              __mptr = (struct device_driver  const  *)__cil_tmp44;
66054#line 1660
66055              __cil_tmp45 = (struct usb_driver *)__mptr;
66056#line 1660
66057              driver = __cil_tmp45 + 1152921504606846808UL;
66058#line 1661
66059              __cil_tmp46 = & intf->dev;
66060#line 1661
66061              __cil_tmp47 = (struct device  const  *)__cil_tmp46;
66062#line 1661
66063              dev_printk("<7>", __cil_tmp47, "disconnect by usbfs\n");
66064#line 1662
66065              usb_driver_release_interface(driver, intf);
66066              }
66067            } else {
66068#line 1664
66069              retval = -61;
66070            }
66071            }
66072#line 1665
66073            goto ldv_31469;
66074            case_21783: ;
66075            {
66076#line 1669
66077            __cil_tmp48 = (struct device_driver *)0;
66078#line 1669
66079            __cil_tmp49 = (unsigned long )__cil_tmp48;
66080#line 1669
66081            __cil_tmp50 = intf->dev.driver;
66082#line 1669
66083            __cil_tmp51 = (unsigned long )__cil_tmp50;
66084#line 1669
66085            if (__cil_tmp51 == __cil_tmp49) {
66086              {
66087#line 1670
66088              __cil_tmp52 = & intf->dev;
66089#line 1670
66090              retval = device_attach(__cil_tmp52);
66091              }
66092            } else {
66093#line 1672
66094              retval = -16;
66095            }
66096            }
66097#line 1673
66098            goto ldv_31469;
66099            switch_default: ;
66100            {
66101#line 1677
66102            __cil_tmp53 = (struct device_driver *)0;
66103#line 1677
66104            __cil_tmp54 = (unsigned long )__cil_tmp53;
66105#line 1677
66106            __cil_tmp55 = intf->dev.driver;
66107#line 1677
66108            __cil_tmp56 = (unsigned long )__cil_tmp55;
66109#line 1677
66110            if (__cil_tmp56 != __cil_tmp54) {
66111#line 1678
66112              __cil_tmp57 = intf->dev.driver;
66113#line 1678
66114              __mptr___0 = (struct device_driver  const  *)__cil_tmp57;
66115#line 1678
66116              __cil_tmp58 = (struct usb_driver *)__mptr___0;
66117#line 1678
66118              driver = __cil_tmp58 + 1152921504606846808UL;
66119            } else {
66120
66121            }
66122            }
66123            {
66124#line 1679
66125            __cil_tmp59 = (struct usb_driver *)0;
66126#line 1679
66127            __cil_tmp60 = (unsigned long )__cil_tmp59;
66128#line 1679
66129            __cil_tmp61 = (unsigned long )driver;
66130#line 1679
66131            if (__cil_tmp61 == __cil_tmp60) {
66132#line 1680
66133              retval = -25;
66134            } else {
66135              {
66136#line 1679
66137              __cil_tmp62 = (int (*)(struct usb_interface * , unsigned int  , void * ))0;
66138#line 1679
66139              __cil_tmp63 = (unsigned long )__cil_tmp62;
66140#line 1679
66141              __cil_tmp64 = driver->unlocked_ioctl;
66142#line 1679
66143              __cil_tmp65 = (unsigned long )__cil_tmp64;
66144#line 1679
66145              if (__cil_tmp65 == __cil_tmp63) {
66146#line 1680
66147                retval = -25;
66148              } else {
66149                {
66150#line 1682
66151                __cil_tmp66 = driver->unlocked_ioctl;
66152#line 1682
66153                __cil_tmp67 = ctl->ioctl_code;
66154#line 1682
66155                __cil_tmp68 = (unsigned int )__cil_tmp67;
66156#line 1682
66157                retval = (*__cil_tmp66)(intf, __cil_tmp68, buf);
66158                }
66159#line 1683
66160                if (retval == -515) {
66161#line 1684
66162                  retval = -25;
66163                } else {
66164
66165                }
66166              }
66167              }
66168            }
66169            }
66170          } else {
66171
66172          }
66173        }
66174        }
66175      }
66176      }
66177      ldv_31469: ;
66178    }
66179    }
66180  }
66181  }
66182#line 1689
66183  if (retval >= 0) {
66184    {
66185#line 1689
66186    __cil_tmp69 = ctl->ioctl_code;
66187#line 1689
66188    if (__cil_tmp69 < 0) {
66189#line 1689
66190      if (size > 0) {
66191        {
66192#line 1689
66193        __cil_tmp70 = ctl->data;
66194#line 1689
66195        __cil_tmp71 = (void const   *)buf;
66196#line 1689
66197        __cil_tmp72 = (unsigned int )size;
66198#line 1689
66199        tmp___1 = copy_to_user(__cil_tmp70, __cil_tmp71, __cil_tmp72);
66200        }
66201#line 1689
66202        if (tmp___1 != 0) {
66203#line 1693
66204          retval = -14;
66205        } else {
66206
66207        }
66208      } else {
66209
66210      }
66211    } else {
66212
66213    }
66214    }
66215  } else {
66216
66217  }
66218  {
66219#line 1695
66220  __cil_tmp73 = (void const   *)buf;
66221#line 1695
66222  kfree(__cil_tmp73);
66223  }
66224#line 1696
66225  return (retval);
66226}
66227}
66228#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"
66229static int proc_ioctl_default(struct dev_state *ps , void *arg ) 
66230{ struct usbdevfs_ioctl ctrl ;
66231  unsigned long tmp ;
66232  int tmp___0 ;
66233  void *__cil_tmp6 ;
66234  void const   *__cil_tmp7 ;
66235
66236  {
66237  {
66238#line 1703
66239  __cil_tmp6 = (void *)(& ctrl);
66240#line 1703
66241  __cil_tmp7 = (void const   *)arg;
66242#line 1703
66243  tmp = copy_from_user(__cil_tmp6, __cil_tmp7, 16UL);
66244  }
66245#line 1703
66246  if (tmp != 0UL) {
66247#line 1704
66248    return (-14);
66249  } else {
66250
66251  }
66252  {
66253#line 1705
66254  tmp___0 = proc_ioctl(ps, & ctrl);
66255  }
66256#line 1705
66257  return (tmp___0);
66258}
66259}
66260#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"
66261static int proc_ioctl_compat(struct dev_state *ps , compat_uptr_t arg ) 
66262{ struct usbdevfs_ioctl32 *uioc ;
66263  struct usbdevfs_ioctl ctrl ;
66264  u32 udata ;
66265  void *tmp ;
66266  unsigned long flag ;
66267  unsigned long roksum ;
66268  struct thread_info *tmp___0 ;
66269  long tmp___1 ;
66270  int __gu_err ;
66271  unsigned long __gu_val ;
66272  int tmp___2 ;
66273  int __gu_err___0 ;
66274  unsigned long __gu_val___0 ;
66275  int tmp___3 ;
66276  int __gu_err___1 ;
66277  unsigned long __gu_val___1 ;
66278  int tmp___4 ;
66279  int tmp___5 ;
66280  int __cil_tmp21 ;
66281  long __cil_tmp22 ;
66282  s32 *__cil_tmp23 ;
66283  struct __large_struct *__cil_tmp24 ;
66284  s32 *__cil_tmp25 ;
66285  struct __large_struct *__cil_tmp26 ;
66286  s32 *__cil_tmp27 ;
66287  struct __large_struct *__cil_tmp28 ;
66288  s32 *__cil_tmp29 ;
66289  struct __large_struct *__cil_tmp30 ;
66290  s32 *__cil_tmp31 ;
66291  struct __large_struct *__cil_tmp32 ;
66292  s32 *__cil_tmp33 ;
66293  struct __large_struct *__cil_tmp34 ;
66294  s32 *__cil_tmp35 ;
66295  struct __large_struct *__cil_tmp36 ;
66296  s32 *__cil_tmp37 ;
66297  struct __large_struct *__cil_tmp38 ;
66298  compat_caddr_t *__cil_tmp39 ;
66299  struct __large_struct *__cil_tmp40 ;
66300  compat_caddr_t *__cil_tmp41 ;
66301  struct __large_struct *__cil_tmp42 ;
66302  compat_caddr_t *__cil_tmp43 ;
66303  struct __large_struct *__cil_tmp44 ;
66304  compat_caddr_t *__cil_tmp45 ;
66305  struct __large_struct *__cil_tmp46 ;
66306
66307  {
66308  {
66309#line 1715
66310  tmp = compat_ptr(arg);
66311#line 1715
66312  uioc = (struct usbdevfs_ioctl32 *)tmp;
66313#line 1716
66314  tmp___0 = current_thread_info();
66315#line 1716
66316  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (uioc),
66317            "g" (12L), "rm" (tmp___0->addr_limit.seg));
66318#line 1716
66319  __cil_tmp21 = flag == 0UL;
66320#line 1716
66321  __cil_tmp22 = (long )__cil_tmp21;
66322#line 1716
66323  tmp___1 = __builtin_expect(__cil_tmp22, 1L);
66324  }
66325#line 1719
66326  if (tmp___1 == 0L) {
66327#line 1720
66328    return (-14);
66329  } else {
66330#line 1717
66331    __gu_err = 0;
66332#line 1717
66333    if (1) {
66334#line 1717
66335      goto case_4;
66336    } else {
66337#line 1717
66338      goto switch_default;
66339#line 1717
66340      if (0) {
66341#line 1717
66342        __cil_tmp23 = & uioc->ifno;
66343#line 1717
66344        __cil_tmp24 = (struct __large_struct *)__cil_tmp23;
66345#line 1717
66346        __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),
66347                             "=q" (__gu_val): "m" (*__cil_tmp24), "i" (-14), "0" (__gu_err));
66348#line 1717
66349        goto ldv_31492;
66350#line 1717
66351        __cil_tmp25 = & uioc->ifno;
66352#line 1717
66353        __cil_tmp26 = (struct __large_struct *)__cil_tmp25;
66354#line 1717
66355        __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),
66356                             "=r" (__gu_val): "m" (*__cil_tmp26), "i" (-14), "0" (__gu_err));
66357#line 1717
66358        goto ldv_31492;
66359        case_4: 
66360#line 1717
66361        __cil_tmp27 = & uioc->ifno;
66362#line 1717
66363        __cil_tmp28 = (struct __large_struct *)__cil_tmp27;
66364#line 1717
66365        __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),
66366                             "=r" (__gu_val): "m" (*__cil_tmp28), "i" (-14), "0" (__gu_err));
66367#line 1717
66368        goto ldv_31492;
66369#line 1717
66370        __cil_tmp29 = & uioc->ifno;
66371#line 1717
66372        __cil_tmp30 = (struct __large_struct *)__cil_tmp29;
66373#line 1717
66374        __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),
66375                             "=r" (__gu_val): "m" (*__cil_tmp30), "i" (-14), "0" (__gu_err));
66376#line 1717
66377        goto ldv_31492;
66378        switch_default: 
66379        {
66380#line 1717
66381        tmp___2 = __get_user_bad();
66382#line 1717
66383        __gu_val = (unsigned long )tmp___2;
66384        }
66385      } else {
66386
66387      }
66388    }
66389    ldv_31492: 
66390#line 1717
66391    ctrl.ifno = (int )__gu_val;
66392#line 1719
66393    if (__gu_err != 0) {
66394#line 1720
66395      return (-14);
66396    } else {
66397#line 1718
66398      __gu_err___0 = 0;
66399#line 1718
66400      if (1) {
66401#line 1718
66402        goto case_4___0;
66403      } else {
66404#line 1718
66405        goto switch_default___0;
66406#line 1718
66407        if (0) {
66408#line 1718
66409          __cil_tmp31 = & uioc->ioctl_code;
66410#line 1718
66411          __cil_tmp32 = (struct __large_struct *)__cil_tmp31;
66412#line 1718
66413          __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),
66414                               "=q" (__gu_val___0): "m" (*__cil_tmp32), "i" (-14),
66415                               "0" (__gu_err___0));
66416#line 1718
66417          goto ldv_31501;
66418#line 1718
66419          __cil_tmp33 = & uioc->ioctl_code;
66420#line 1718
66421          __cil_tmp34 = (struct __large_struct *)__cil_tmp33;
66422#line 1718
66423          __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),
66424                               "=r" (__gu_val___0): "m" (*__cil_tmp34), "i" (-14),
66425                               "0" (__gu_err___0));
66426#line 1718
66427          goto ldv_31501;
66428          case_4___0: 
66429#line 1718
66430          __cil_tmp35 = & uioc->ioctl_code;
66431#line 1718
66432          __cil_tmp36 = (struct __large_struct *)__cil_tmp35;
66433#line 1718
66434          __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),
66435                               "=r" (__gu_val___0): "m" (*__cil_tmp36), "i" (-14),
66436                               "0" (__gu_err___0));
66437#line 1718
66438          goto ldv_31501;
66439#line 1718
66440          __cil_tmp37 = & uioc->ioctl_code;
66441#line 1718
66442          __cil_tmp38 = (struct __large_struct *)__cil_tmp37;
66443#line 1718
66444          __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),
66445                               "=r" (__gu_val___0): "m" (*__cil_tmp38), "i" (-14),
66446                               "0" (__gu_err___0));
66447#line 1718
66448          goto ldv_31501;
66449          switch_default___0: 
66450          {
66451#line 1718
66452          tmp___3 = __get_user_bad();
66453#line 1718
66454          __gu_val___0 = (unsigned long )tmp___3;
66455          }
66456        } else {
66457
66458        }
66459      }
66460      ldv_31501: 
66461#line 1718
66462      ctrl.ioctl_code = (int )__gu_val___0;
66463#line 1719
66464      if (__gu_err___0 != 0) {
66465#line 1720
66466        return (-14);
66467      } else {
66468#line 1719
66469        __gu_err___1 = 0;
66470#line 1719
66471        if (1) {
66472#line 1719
66473          goto case_4___1;
66474        } else {
66475#line 1719
66476          goto switch_default___1;
66477#line 1719
66478          if (0) {
66479#line 1719
66480            __cil_tmp39 = & uioc->data;
66481#line 1719
66482            __cil_tmp40 = (struct __large_struct *)__cil_tmp39;
66483#line 1719
66484            __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),
66485                                 "=q" (__gu_val___1): "m" (*__cil_tmp40), "i" (-14),
66486                                 "0" (__gu_err___1));
66487#line 1719
66488            goto ldv_31510;
66489#line 1719
66490            __cil_tmp41 = & uioc->data;
66491#line 1719
66492            __cil_tmp42 = (struct __large_struct *)__cil_tmp41;
66493#line 1719
66494            __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),
66495                                 "=r" (__gu_val___1): "m" (*__cil_tmp42), "i" (-14),
66496                                 "0" (__gu_err___1));
66497#line 1719
66498            goto ldv_31510;
66499            case_4___1: 
66500#line 1719
66501            __cil_tmp43 = & uioc->data;
66502#line 1719
66503            __cil_tmp44 = (struct __large_struct *)__cil_tmp43;
66504#line 1719
66505            __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),
66506                                 "=r" (__gu_val___1): "m" (*__cil_tmp44), "i" (-14),
66507                                 "0" (__gu_err___1));
66508#line 1719
66509            goto ldv_31510;
66510#line 1719
66511            __cil_tmp45 = & uioc->data;
66512#line 1719
66513            __cil_tmp46 = (struct __large_struct *)__cil_tmp45;
66514#line 1719
66515            __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),
66516                                 "=r" (__gu_val___1): "m" (*__cil_tmp46), "i" (-14),
66517                                 "0" (__gu_err___1));
66518#line 1719
66519            goto ldv_31510;
66520            switch_default___1: 
66521            {
66522#line 1719
66523            tmp___4 = __get_user_bad();
66524#line 1719
66525            __gu_val___1 = (unsigned long )tmp___4;
66526            }
66527          } else {
66528
66529          }
66530        }
66531        ldv_31510: 
66532#line 1719
66533        udata = (unsigned int )__gu_val___1;
66534#line 1719
66535        if (__gu_err___1 != 0) {
66536#line 1720
66537          return (-14);
66538        } else {
66539
66540        }
66541      }
66542    }
66543  }
66544  {
66545#line 1721
66546  ctrl.data = compat_ptr(udata);
66547#line 1723
66548  tmp___5 = proc_ioctl(ps, & ctrl);
66549  }
66550#line 1723
66551  return (tmp___5);
66552}
66553}
66554#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"
66555static int proc_claim_port(struct dev_state *ps , void *arg ) 
66556{ unsigned int portnum ;
66557  int rc ;
66558  int __ret_gu ;
66559  unsigned long __val_gu ;
66560  struct task_struct *tmp ;
66561  struct task_struct *tmp___0 ;
66562  pid_t tmp___1 ;
66563  struct usb_device *__cil_tmp10 ;
66564  void *__cil_tmp11 ;
66565  struct usb_device *__cil_tmp12 ;
66566  struct device *__cil_tmp13 ;
66567  struct device  const  *__cil_tmp14 ;
66568  char (*__cil_tmp15)[16U] ;
66569  char *__cil_tmp16 ;
66570
66571  {
66572  {
66573#line 1732
66574  might_fault();
66575  }
66576#line 1732
66577  if (1) {
66578#line 1732
66579    goto case_4;
66580  } else {
66581#line 1732
66582    goto switch_default;
66583#line 1732
66584    if (0) {
66585#line 1732
66586      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66587#line 1732
66588      goto ldv_31525;
66589#line 1732
66590      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66591#line 1732
66592      goto ldv_31525;
66593      case_4: 
66594#line 1732
66595      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66596#line 1732
66597      goto ldv_31525;
66598#line 1732
66599      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66600#line 1732
66601      goto ldv_31525;
66602      switch_default: 
66603#line 1732
66604      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66605#line 1732
66606      goto ldv_31525;
66607    } else {
66608
66609    }
66610  }
66611  ldv_31525: 
66612#line 1732
66613  portnum = (unsigned int )__val_gu;
66614#line 1732
66615  if (__ret_gu != 0) {
66616#line 1733
66617    return (-14);
66618  } else {
66619
66620  }
66621  {
66622#line 1734
66623  __cil_tmp10 = ps->dev;
66624#line 1734
66625  __cil_tmp11 = (void *)ps;
66626#line 1734
66627  rc = usb_hub_claim_port(__cil_tmp10, portnum, __cil_tmp11);
66628  }
66629#line 1735
66630  if (rc == 0) {
66631#line 1736
66632    if (usbfs_snoop != 0) {
66633      {
66634#line 1736
66635      tmp = get_current();
66636#line 1736
66637      tmp___0 = get_current();
66638#line 1736
66639      tmp___1 = task_pid_nr(tmp___0);
66640#line 1736
66641      __cil_tmp12 = ps->dev;
66642#line 1736
66643      __cil_tmp13 = & __cil_tmp12->dev;
66644#line 1736
66645      __cil_tmp14 = (struct device  const  *)__cil_tmp13;
66646#line 1736
66647      __cil_tmp15 = & tmp->comm;
66648#line 1736
66649      __cil_tmp16 = (char *)__cil_tmp15;
66650#line 1736
66651      _dev_info(__cil_tmp14, "port %d claimed by process %d: %s\n", portnum, tmp___1,
66652                __cil_tmp16);
66653      }
66654    } else {
66655
66656    }
66657  } else {
66658
66659  }
66660#line 1738
66661  return (rc);
66662}
66663}
66664#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"
66665static int proc_release_port(struct dev_state *ps , void *arg ) 
66666{ unsigned int portnum ;
66667  int __ret_gu ;
66668  unsigned long __val_gu ;
66669  int tmp ;
66670  struct usb_device *__cil_tmp7 ;
66671  void *__cil_tmp8 ;
66672
66673  {
66674  {
66675#line 1745
66676  might_fault();
66677  }
66678#line 1745
66679  if (1) {
66680#line 1745
66681    goto case_4;
66682  } else {
66683#line 1745
66684    goto switch_default;
66685#line 1745
66686    if (0) {
66687#line 1745
66688      __asm__  volatile   ("call __get_user_1": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66689#line 1745
66690      goto ldv_31539;
66691#line 1745
66692      __asm__  volatile   ("call __get_user_2": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66693#line 1745
66694      goto ldv_31539;
66695      case_4: 
66696#line 1745
66697      __asm__  volatile   ("call __get_user_4": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66698#line 1745
66699      goto ldv_31539;
66700#line 1745
66701      __asm__  volatile   ("call __get_user_8": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66702#line 1745
66703      goto ldv_31539;
66704      switch_default: 
66705#line 1745
66706      __asm__  volatile   ("call __get_user_X": "=a" (__ret_gu), "=d" (__val_gu): "0" ((unsigned int *)arg));
66707#line 1745
66708      goto ldv_31539;
66709    } else {
66710
66711    }
66712  }
66713  ldv_31539: 
66714#line 1745
66715  portnum = (unsigned int )__val_gu;
66716#line 1745
66717  if (__ret_gu != 0) {
66718#line 1746
66719    return (-14);
66720  } else {
66721
66722  }
66723  {
66724#line 1747
66725  __cil_tmp7 = ps->dev;
66726#line 1747
66727  __cil_tmp8 = (void *)ps;
66728#line 1747
66729  tmp = usb_hub_release_port(__cil_tmp7, portnum, __cil_tmp8);
66730  }
66731#line 1747
66732  return (tmp);
66733}
66734}
66735#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"
66736static long usbdev_do_ioctl(struct file *file , unsigned int cmd , void *p ) 
66737{ struct dev_state *ps ;
66738  struct inode *inode ;
66739  struct usb_device *dev ;
66740  int ret ;
66741  int tmp ;
66742  compat_uptr_t tmp___0 ;
66743  void *__cil_tmp10 ;
66744  struct dentry *__cil_tmp11 ;
66745  fmode_t __cil_tmp12 ;
66746  unsigned int __cil_tmp13 ;
66747  struct device *__cil_tmp14 ;
66748  struct device *__cil_tmp15 ;
66749  int __cil_tmp16 ;
66750  int __cil_tmp17 ;
66751  int __cil_tmp18 ;
66752  int __cil_tmp19 ;
66753  int __cil_tmp20 ;
66754  int __cil_tmp21 ;
66755  int __cil_tmp22 ;
66756  int __cil_tmp23 ;
66757  int __cil_tmp24 ;
66758  int __cil_tmp25 ;
66759  int __cil_tmp26 ;
66760  int __cil_tmp27 ;
66761  int __cil_tmp28 ;
66762  int __cil_tmp29 ;
66763  int __cil_tmp30 ;
66764  int __cil_tmp31 ;
66765  int __cil_tmp32 ;
66766  int __cil_tmp33 ;
66767  int __cil_tmp34 ;
66768  int __cil_tmp35 ;
66769  int __cil_tmp36 ;
66770  int __cil_tmp37 ;
66771  int __cil_tmp38 ;
66772  int __cil_tmp39 ;
66773  int __cil_tmp40 ;
66774  int __cil_tmp41 ;
66775  struct device *__cil_tmp42 ;
66776  struct device  const  *__cil_tmp43 ;
66777  struct device *__cil_tmp44 ;
66778  struct device  const  *__cil_tmp45 ;
66779  struct device *__cil_tmp46 ;
66780  struct device  const  *__cil_tmp47 ;
66781  struct device *__cil_tmp48 ;
66782  struct device  const  *__cil_tmp49 ;
66783  struct device *__cil_tmp50 ;
66784  struct device  const  *__cil_tmp51 ;
66785  struct device *__cil_tmp52 ;
66786  struct device  const  *__cil_tmp53 ;
66787  struct device *__cil_tmp54 ;
66788  struct device  const  *__cil_tmp55 ;
66789  struct device *__cil_tmp56 ;
66790  struct device  const  *__cil_tmp57 ;
66791  struct device *__cil_tmp58 ;
66792  struct device  const  *__cil_tmp59 ;
66793  struct device *__cil_tmp60 ;
66794  struct device  const  *__cil_tmp61 ;
66795  struct device *__cil_tmp62 ;
66796  struct device  const  *__cil_tmp63 ;
66797  struct usbdevfs_ctrltransfer32 *__cil_tmp64 ;
66798  struct device *__cil_tmp65 ;
66799  struct device  const  *__cil_tmp66 ;
66800  struct usbdevfs_bulktransfer32 *__cil_tmp67 ;
66801  struct device *__cil_tmp68 ;
66802  struct device  const  *__cil_tmp69 ;
66803  struct device *__cil_tmp70 ;
66804  struct device  const  *__cil_tmp71 ;
66805  struct device *__cil_tmp72 ;
66806  struct device  const  *__cil_tmp73 ;
66807  struct device *__cil_tmp74 ;
66808  struct device  const  *__cil_tmp75 ;
66809  struct device *__cil_tmp76 ;
66810  struct device  const  *__cil_tmp77 ;
66811  struct device *__cil_tmp78 ;
66812  struct device  const  *__cil_tmp79 ;
66813  struct device *__cil_tmp80 ;
66814  struct device  const  *__cil_tmp81 ;
66815  struct device *__cil_tmp82 ;
66816  struct device  const  *__cil_tmp83 ;
66817  struct device *__cil_tmp84 ;
66818  struct device  const  *__cil_tmp85 ;
66819  struct device *__cil_tmp86 ;
66820  struct device  const  *__cil_tmp87 ;
66821  struct device *__cil_tmp88 ;
66822  struct device  const  *__cil_tmp89 ;
66823  struct device *__cil_tmp90 ;
66824  struct device  const  *__cil_tmp91 ;
66825  struct device *__cil_tmp92 ;
66826  struct device  const  *__cil_tmp93 ;
66827  struct device *__cil_tmp94 ;
66828  struct device  const  *__cil_tmp95 ;
66829  struct device *__cil_tmp96 ;
66830
66831  {
66832#line 1758
66833  __cil_tmp10 = file->private_data;
66834#line 1758
66835  ps = (struct dev_state *)__cil_tmp10;
66836#line 1759
66837  __cil_tmp11 = file->f_path.dentry;
66838#line 1759
66839  inode = __cil_tmp11->d_inode;
66840#line 1760
66841  dev = ps->dev;
66842#line 1761
66843  ret = -25;
66844  {
66845#line 1763
66846  __cil_tmp12 = file->f_mode;
66847#line 1763
66848  __cil_tmp13 = __cil_tmp12 & 2U;
66849#line 1763
66850  if (__cil_tmp13 == 0U) {
66851#line 1764
66852    return (-1L);
66853  } else {
66854
66855  }
66856  }
66857  {
66858#line 1766
66859  __cil_tmp14 = & dev->dev;
66860#line 1766
66861  device_lock(__cil_tmp14);
66862#line 1767
66863  tmp = connected(ps);
66864  }
66865#line 1767
66866  if (tmp == 0) {
66867    {
66868#line 1768
66869    __cil_tmp15 = & dev->dev;
66870#line 1768
66871    device_unlock(__cil_tmp15);
66872    }
66873#line 1769
66874    return (-19L);
66875  } else {
66876
66877  }
66878  {
66879#line 1773
66880  __cil_tmp16 = (int )cmd;
66881#line 1773
66882  if (__cil_tmp16 == -1072147200) {
66883#line 1773
66884    goto case_neg_1072147200;
66885  } else {
66886    {
66887#line 1780
66888    __cil_tmp17 = (int )cmd;
66889#line 1780
66890    if (__cil_tmp17 == -1072147198) {
66891#line 1780
66892      goto case_neg_1072147198;
66893    } else {
66894      {
66895#line 1787
66896      __cil_tmp18 = (int )cmd;
66897#line 1787
66898      if (__cil_tmp18 == -2147199741) {
66899#line 1787
66900        goto case_neg_2147199741;
66901      } else {
66902        {
66903#line 1794
66904        __cil_tmp19 = (int )cmd;
66905#line 1794
66906        if (__cil_tmp19 == 21780) {
66907#line 1794
66908          goto case_21780;
66909        } else {
66910          {
66911#line 1799
66912          __cil_tmp20 = (int )cmd;
66913#line 1799
66914          if (__cil_tmp20 == -2147199723) {
66915#line 1799
66916            goto case_neg_2147199723;
66917          } else {
66918            {
66919#line 1806
66920            __cil_tmp21 = (int )cmd;
66921#line 1806
66922            if (__cil_tmp21 == 1090802952) {
66923#line 1806
66924              goto case_1090802952;
66925            } else {
66926              {
66927#line 1811
66928              __cil_tmp22 = (int )cmd;
66929#line 1811
66930              if (__cil_tmp22 == 1074287889) {
66931#line 1811
66932                goto case_1074287889;
66933              } else {
66934                {
66935#line 1816
66936                __cil_tmp23 = (int )cmd;
66937#line 1816
66938                if (__cil_tmp23 == -2146937596) {
66939#line 1816
66940                  goto case_neg_2146937596;
66941                } else {
66942                  {
66943#line 1821
66944                  __cil_tmp24 = (int )cmd;
66945#line 1821
66946                  if (__cil_tmp24 == -2147199739) {
66947#line 1821
66948                    goto case_neg_2147199739;
66949                  } else {
66950                    {
66951#line 1826
66952                    __cil_tmp25 = (int )cmd;
66953#line 1826
66954                    if (__cil_tmp25 == -2143791862) {
66955#line 1826
66956                      goto case_neg_2143791862;
66957                    } else {
66958                      {
66959#line 1834
66960                      __cil_tmp26 = (int )cmd;
66961#line 1834
66962                      if (__cil_tmp26 == -1072671488) {
66963#line 1834
66964                        goto case_neg_1072671488;
66965                      } else {
66966                        {
66967#line 1841
66968                        __cil_tmp27 = (int )cmd;
66969#line 1841
66970                        if (__cil_tmp27 == -1072671486) {
66971#line 1841
66972                          goto case_neg_1072671486;
66973                        } else {
66974                          {
66975#line 1848
66976                          __cil_tmp28 = (int )cmd;
66977#line 1848
66978                          if (__cil_tmp28 == -2146937586) {
66979#line 1848
66980                            goto case_neg_2146937586;
66981                          } else {
66982                            {
66983#line 1853
66984                            __cil_tmp29 = (int )cmd;
66985#line 1853
66986                            if (__cil_tmp29 == -2144578294) {
66987#line 1853
66988                              goto case_neg_2144578294;
66989                            } else {
66990                              {
66991#line 1860
66992                              __cil_tmp30 = (int )cmd;
66993#line 1860
66994                              if (__cil_tmp30 == 1074025740) {
66995#line 1860
66996                                goto case_1074025740;
66997                              } else {
66998                                {
66999#line 1865
67000                                __cil_tmp31 = (int )cmd;
67001#line 1865
67002                                if (__cil_tmp31 == 1074025741) {
67003#line 1865
67004                                  goto case_1074025741;
67005                                } else {
67006                                  {
67007#line 1870
67008                                  __cil_tmp32 = (int )cmd;
67009#line 1870
67010                                  if (__cil_tmp32 == -1072933614) {
67011#line 1870
67012                                    goto case_neg_1072933614;
67013                                  } else {
67014                                    {
67015#line 1876
67016                                    __cil_tmp33 = (int )cmd;
67017#line 1876
67018                                    if (__cil_tmp33 == 21771) {
67019#line 1876
67020                                      goto case_21771;
67021                                    } else {
67022                                      {
67023#line 1881
67024                                      __cil_tmp34 = (int )cmd;
67025#line 1881
67026                                      if (__cil_tmp34 == 1074287884) {
67027#line 1881
67028                                        goto case_1074287884;
67029                                      } else {
67030                                        {
67031#line 1886
67032                                        __cil_tmp35 = (int )cmd;
67033#line 1886
67034                                        if (__cil_tmp35 == 1074287885) {
67035#line 1886
67036                                          goto case_1074287885;
67037                                        } else {
67038                                          {
67039#line 1891
67040                                          __cil_tmp36 = (int )cmd;
67041#line 1891
67042                                          if (__cil_tmp36 == -2146413298) {
67043#line 1891
67044                                            goto case_neg_2146413298;
67045                                          } else {
67046                                            {
67047#line 1896
67048                                            __cil_tmp37 = (int )cmd;
67049#line 1896
67050                                            if (__cil_tmp37 == -2147199729) {
67051#line 1896
67052                                              goto case_neg_2147199729;
67053                                            } else {
67054                                              {
67055#line 1901
67056                                              __cil_tmp38 = (int )cmd;
67057#line 1901
67058                                              if (__cil_tmp38 == -2147199728) {
67059#line 1901
67060                                                goto case_neg_2147199728;
67061                                              } else {
67062                                                {
67063#line 1906
67064                                                __cil_tmp39 = (int )cmd;
67065#line 1906
67066                                                if (__cil_tmp39 == -1072671470) {
67067#line 1906
67068                                                  goto case_neg_1072671470;
67069                                                } else {
67070                                                  {
67071#line 1911
67072                                                  __cil_tmp40 = (int )cmd;
67073#line 1911
67074                                                  if (__cil_tmp40 == -2147199720) {
67075#line 1911
67076                                                    goto case_neg_2147199720;
67077                                                  } else {
67078                                                    {
67079#line 1916
67080                                                    __cil_tmp41 = (int )cmd;
67081#line 1916
67082                                                    if (__cil_tmp41 == -2147199719) {
67083#line 1916
67084                                                      goto case_neg_2147199719;
67085                                                    } else
67086#line 1772
67087                                                    if (0) {
67088                                                      case_neg_1072147200: ;
67089#line 1774
67090                                                      if (usbfs_snoop != 0) {
67091                                                        {
67092#line 1774
67093                                                        __cil_tmp42 = & dev->dev;
67094#line 1774
67095                                                        __cil_tmp43 = (struct device  const  *)__cil_tmp42;
67096#line 1774
67097                                                        _dev_info(__cil_tmp43, "%s: CONTROL\n",
67098                                                                  "usbdev_do_ioctl");
67099                                                        }
67100                                                      } else {
67101
67102                                                      }
67103                                                      {
67104#line 1775
67105                                                      ret = proc_control(ps, p);
67106                                                      }
67107#line 1776
67108                                                      if (ret >= 0) {
67109                                                        {
67110#line 1777
67111                                                        inode->i_mtime = current_kernel_time();
67112                                                        }
67113                                                      } else {
67114
67115                                                      }
67116#line 1778
67117                                                      goto ldv_31556;
67118                                                      case_neg_1072147198: ;
67119#line 1781
67120                                                      if (usbfs_snoop != 0) {
67121                                                        {
67122#line 1781
67123                                                        __cil_tmp44 = & dev->dev;
67124#line 1781
67125                                                        __cil_tmp45 = (struct device  const  *)__cil_tmp44;
67126#line 1781
67127                                                        _dev_info(__cil_tmp45, "%s: BULK\n",
67128                                                                  "usbdev_do_ioctl");
67129                                                        }
67130                                                      } else {
67131
67132                                                      }
67133                                                      {
67134#line 1782
67135                                                      ret = proc_bulk(ps, p);
67136                                                      }
67137#line 1783
67138                                                      if (ret >= 0) {
67139                                                        {
67140#line 1784
67141                                                        inode->i_mtime = current_kernel_time();
67142                                                        }
67143                                                      } else {
67144
67145                                                      }
67146#line 1785
67147                                                      goto ldv_31556;
67148                                                      case_neg_2147199741: ;
67149#line 1788
67150                                                      if (usbfs_snoop != 0) {
67151                                                        {
67152#line 1788
67153                                                        __cil_tmp46 = & dev->dev;
67154#line 1788
67155                                                        __cil_tmp47 = (struct device  const  *)__cil_tmp46;
67156#line 1788
67157                                                        _dev_info(__cil_tmp47, "%s: RESETEP\n",
67158                                                                  "usbdev_do_ioctl");
67159                                                        }
67160                                                      } else {
67161
67162                                                      }
67163                                                      {
67164#line 1789
67165                                                      ret = proc_resetep(ps, p);
67166                                                      }
67167#line 1790
67168                                                      if (ret >= 0) {
67169                                                        {
67170#line 1791
67171                                                        inode->i_mtime = current_kernel_time();
67172                                                        }
67173                                                      } else {
67174
67175                                                      }
67176#line 1792
67177                                                      goto ldv_31556;
67178                                                      case_21780: ;
67179#line 1795
67180                                                      if (usbfs_snoop != 0) {
67181                                                        {
67182#line 1795
67183                                                        __cil_tmp48 = & dev->dev;
67184#line 1795
67185                                                        __cil_tmp49 = (struct device  const  *)__cil_tmp48;
67186#line 1795
67187                                                        _dev_info(__cil_tmp49, "%s: RESET\n",
67188                                                                  "usbdev_do_ioctl");
67189                                                        }
67190                                                      } else {
67191
67192                                                      }
67193                                                      {
67194#line 1796
67195                                                      ret = proc_resetdevice(ps);
67196                                                      }
67197#line 1797
67198                                                      goto ldv_31556;
67199                                                      case_neg_2147199723: ;
67200#line 1800
67201                                                      if (usbfs_snoop != 0) {
67202                                                        {
67203#line 1800
67204                                                        __cil_tmp50 = & dev->dev;
67205#line 1800
67206                                                        __cil_tmp51 = (struct device  const  *)__cil_tmp50;
67207#line 1800
67208                                                        _dev_info(__cil_tmp51, "%s: CLEAR_HALT\n",
67209                                                                  "usbdev_do_ioctl");
67210                                                        }
67211                                                      } else {
67212
67213                                                      }
67214                                                      {
67215#line 1801
67216                                                      ret = proc_clearhalt(ps, p);
67217                                                      }
67218#line 1802
67219                                                      if (ret >= 0) {
67220                                                        {
67221#line 1803
67222                                                        inode->i_mtime = current_kernel_time();
67223                                                        }
67224                                                      } else {
67225
67226                                                      }
67227#line 1804
67228                                                      goto ldv_31556;
67229                                                      case_1090802952: ;
67230#line 1807
67231                                                      if (usbfs_snoop != 0) {
67232                                                        {
67233#line 1807
67234                                                        __cil_tmp52 = & dev->dev;
67235#line 1807
67236                                                        __cil_tmp53 = (struct device  const  *)__cil_tmp52;
67237#line 1807
67238                                                        _dev_info(__cil_tmp53, "%s: GETDRIVER\n",
67239                                                                  "usbdev_do_ioctl");
67240                                                        }
67241                                                      } else {
67242
67243                                                      }
67244                                                      {
67245#line 1808
67246                                                      ret = proc_getdriver(ps, p);
67247                                                      }
67248#line 1809
67249                                                      goto ldv_31556;
67250                                                      case_1074287889: ;
67251#line 1812
67252                                                      if (usbfs_snoop != 0) {
67253                                                        {
67254#line 1812
67255                                                        __cil_tmp54 = & dev->dev;
67256#line 1812
67257                                                        __cil_tmp55 = (struct device  const  *)__cil_tmp54;
67258#line 1812
67259                                                        _dev_info(__cil_tmp55, "%s: CONNECTINFO\n",
67260                                                                  "usbdev_do_ioctl");
67261                                                        }
67262                                                      } else {
67263
67264                                                      }
67265                                                      {
67266#line 1813
67267                                                      ret = proc_connectinfo(ps, p);
67268                                                      }
67269#line 1814
67270                                                      goto ldv_31556;
67271                                                      case_neg_2146937596: ;
67272#line 1817
67273                                                      if (usbfs_snoop != 0) {
67274                                                        {
67275#line 1817
67276                                                        __cil_tmp56 = & dev->dev;
67277#line 1817
67278                                                        __cil_tmp57 = (struct device  const  *)__cil_tmp56;
67279#line 1817
67280                                                        _dev_info(__cil_tmp57, "%s: SETINTERFACE\n",
67281                                                                  "usbdev_do_ioctl");
67282                                                        }
67283                                                      } else {
67284
67285                                                      }
67286                                                      {
67287#line 1818
67288                                                      ret = proc_setintf(ps, p);
67289                                                      }
67290#line 1819
67291                                                      goto ldv_31556;
67292                                                      case_neg_2147199739: ;
67293#line 1822
67294                                                      if (usbfs_snoop != 0) {
67295                                                        {
67296#line 1822
67297                                                        __cil_tmp58 = & dev->dev;
67298#line 1822
67299                                                        __cil_tmp59 = (struct device  const  *)__cil_tmp58;
67300#line 1822
67301                                                        _dev_info(__cil_tmp59, "%s: SETCONFIGURATION\n",
67302                                                                  "usbdev_do_ioctl");
67303                                                        }
67304                                                      } else {
67305
67306                                                      }
67307                                                      {
67308#line 1823
67309                                                      ret = proc_setconfig(ps, p);
67310                                                      }
67311#line 1824
67312                                                      goto ldv_31556;
67313                                                      case_neg_2143791862: ;
67314#line 1827
67315                                                      if (usbfs_snoop != 0) {
67316                                                        {
67317#line 1827
67318                                                        __cil_tmp60 = & dev->dev;
67319#line 1827
67320                                                        __cil_tmp61 = (struct device  const  *)__cil_tmp60;
67321#line 1827
67322                                                        _dev_info(__cil_tmp61, "%s: SUBMITURB\n",
67323                                                                  "usbdev_do_ioctl");
67324                                                        }
67325                                                      } else {
67326
67327                                                      }
67328                                                      {
67329#line 1828
67330                                                      ret = proc_submiturb(ps, p);
67331                                                      }
67332#line 1829
67333                                                      if (ret >= 0) {
67334                                                        {
67335#line 1830
67336                                                        inode->i_mtime = current_kernel_time();
67337                                                        }
67338                                                      } else {
67339
67340                                                      }
67341#line 1831
67342                                                      goto ldv_31556;
67343                                                      case_neg_1072671488: ;
67344#line 1835
67345                                                      if (usbfs_snoop != 0) {
67346                                                        {
67347#line 1835
67348                                                        __cil_tmp62 = & dev->dev;
67349#line 1835
67350                                                        __cil_tmp63 = (struct device  const  *)__cil_tmp62;
67351#line 1835
67352                                                        _dev_info(__cil_tmp63, "%s: CONTROL32\n",
67353                                                                  "usbdev_do_ioctl");
67354                                                        }
67355                                                      } else {
67356
67357                                                      }
67358                                                      {
67359#line 1836
67360                                                      __cil_tmp64 = (struct usbdevfs_ctrltransfer32 *)p;
67361#line 1836
67362                                                      ret = proc_control_compat(ps,
67363                                                                                __cil_tmp64);
67364                                                      }
67365#line 1837
67366                                                      if (ret >= 0) {
67367                                                        {
67368#line 1838
67369                                                        inode->i_mtime = current_kernel_time();
67370                                                        }
67371                                                      } else {
67372
67373                                                      }
67374#line 1839
67375                                                      goto ldv_31556;
67376                                                      case_neg_1072671486: ;
67377#line 1842
67378                                                      if (usbfs_snoop != 0) {
67379                                                        {
67380#line 1842
67381                                                        __cil_tmp65 = & dev->dev;
67382#line 1842
67383                                                        __cil_tmp66 = (struct device  const  *)__cil_tmp65;
67384#line 1842
67385                                                        _dev_info(__cil_tmp66, "%s: BULK32\n",
67386                                                                  "usbdev_do_ioctl");
67387                                                        }
67388                                                      } else {
67389
67390                                                      }
67391                                                      {
67392#line 1843
67393                                                      __cil_tmp67 = (struct usbdevfs_bulktransfer32 *)p;
67394#line 1843
67395                                                      ret = proc_bulk_compat(ps, __cil_tmp67);
67396                                                      }
67397#line 1844
67398                                                      if (ret >= 0) {
67399                                                        {
67400#line 1845
67401                                                        inode->i_mtime = current_kernel_time();
67402                                                        }
67403                                                      } else {
67404
67405                                                      }
67406#line 1846
67407                                                      goto ldv_31556;
67408                                                      case_neg_2146937586: ;
67409#line 1849
67410                                                      if (usbfs_snoop != 0) {
67411                                                        {
67412#line 1849
67413                                                        __cil_tmp68 = & dev->dev;
67414#line 1849
67415                                                        __cil_tmp69 = (struct device  const  *)__cil_tmp68;
67416#line 1849
67417                                                        _dev_info(__cil_tmp69, "%s: DISCSIGNAL32\n",
67418                                                                  "usbdev_do_ioctl");
67419                                                        }
67420                                                      } else {
67421
67422                                                      }
67423                                                      {
67424#line 1850
67425                                                      ret = proc_disconnectsignal_compat(ps,
67426                                                                                         p);
67427                                                      }
67428#line 1851
67429                                                      goto ldv_31556;
67430                                                      case_neg_2144578294: ;
67431#line 1854
67432                                                      if (usbfs_snoop != 0) {
67433                                                        {
67434#line 1854
67435                                                        __cil_tmp70 = & dev->dev;
67436#line 1854
67437                                                        __cil_tmp71 = (struct device  const  *)__cil_tmp70;
67438#line 1854
67439                                                        _dev_info(__cil_tmp71, "%s: SUBMITURB32\n",
67440                                                                  "usbdev_do_ioctl");
67441                                                        }
67442                                                      } else {
67443
67444                                                      }
67445                                                      {
67446#line 1855
67447                                                      ret = proc_submiturb_compat(ps,
67448                                                                                  p);
67449                                                      }
67450#line 1856
67451                                                      if (ret >= 0) {
67452                                                        {
67453#line 1857
67454                                                        inode->i_mtime = current_kernel_time();
67455                                                        }
67456                                                      } else {
67457
67458                                                      }
67459#line 1858
67460                                                      goto ldv_31556;
67461                                                      case_1074025740: ;
67462#line 1861
67463                                                      if (usbfs_snoop != 0) {
67464                                                        {
67465#line 1861
67466                                                        __cil_tmp72 = & dev->dev;
67467#line 1861
67468                                                        __cil_tmp73 = (struct device  const  *)__cil_tmp72;
67469#line 1861
67470                                                        _dev_info(__cil_tmp73, "%s: REAPURB32\n",
67471                                                                  "usbdev_do_ioctl");
67472                                                        }
67473                                                      } else {
67474
67475                                                      }
67476                                                      {
67477#line 1862
67478                                                      ret = proc_reapurb_compat(ps,
67479                                                                                p);
67480                                                      }
67481#line 1863
67482                                                      goto ldv_31556;
67483                                                      case_1074025741: ;
67484#line 1866
67485                                                      if (usbfs_snoop != 0) {
67486                                                        {
67487#line 1866
67488                                                        __cil_tmp74 = & dev->dev;
67489#line 1866
67490                                                        __cil_tmp75 = (struct device  const  *)__cil_tmp74;
67491#line 1866
67492                                                        _dev_info(__cil_tmp75, "%s: REAPURBNDELAY32\n",
67493                                                                  "usbdev_do_ioctl");
67494                                                        }
67495                                                      } else {
67496
67497                                                      }
67498                                                      {
67499#line 1867
67500                                                      ret = proc_reapurbnonblock_compat(ps,
67501                                                                                        p);
67502                                                      }
67503#line 1868
67504                                                      goto ldv_31556;
67505                                                      case_neg_1072933614: ;
67506#line 1871
67507                                                      if (usbfs_snoop != 0) {
67508                                                        {
67509#line 1871
67510                                                        __cil_tmp76 = & dev->dev;
67511#line 1871
67512                                                        __cil_tmp77 = (struct device  const  *)__cil_tmp76;
67513#line 1871
67514                                                        _dev_info(__cil_tmp77, "%s: IOCTL32\n",
67515                                                                  "usbdev_do_ioctl");
67516                                                        }
67517                                                      } else {
67518
67519                                                      }
67520                                                      {
67521#line 1872
67522                                                      tmp___0 = ptr_to_compat(p);
67523#line 1872
67524                                                      ret = proc_ioctl_compat(ps,
67525                                                                              tmp___0);
67526                                                      }
67527#line 1873
67528                                                      goto ldv_31556;
67529                                                      case_21771: ;
67530#line 1877
67531                                                      if (usbfs_snoop != 0) {
67532                                                        {
67533#line 1877
67534                                                        __cil_tmp78 = & dev->dev;
67535#line 1877
67536                                                        __cil_tmp79 = (struct device  const  *)__cil_tmp78;
67537#line 1877
67538                                                        _dev_info(__cil_tmp79, "%s: DISCARDURB\n",
67539                                                                  "usbdev_do_ioctl");
67540                                                        }
67541                                                      } else {
67542
67543                                                      }
67544                                                      {
67545#line 1878
67546                                                      ret = proc_unlinkurb(ps, p);
67547                                                      }
67548#line 1879
67549                                                      goto ldv_31556;
67550                                                      case_1074287884: ;
67551#line 1882
67552                                                      if (usbfs_snoop != 0) {
67553                                                        {
67554#line 1882
67555                                                        __cil_tmp80 = & dev->dev;
67556#line 1882
67557                                                        __cil_tmp81 = (struct device  const  *)__cil_tmp80;
67558#line 1882
67559                                                        _dev_info(__cil_tmp81, "%s: REAPURB\n",
67560                                                                  "usbdev_do_ioctl");
67561                                                        }
67562                                                      } else {
67563
67564                                                      }
67565                                                      {
67566#line 1883
67567                                                      ret = proc_reapurb(ps, p);
67568                                                      }
67569#line 1884
67570                                                      goto ldv_31556;
67571                                                      case_1074287885: ;
67572#line 1887
67573                                                      if (usbfs_snoop != 0) {
67574                                                        {
67575#line 1887
67576                                                        __cil_tmp82 = & dev->dev;
67577#line 1887
67578                                                        __cil_tmp83 = (struct device  const  *)__cil_tmp82;
67579#line 1887
67580                                                        _dev_info(__cil_tmp83, "%s: REAPURBNDELAY\n",
67581                                                                  "usbdev_do_ioctl");
67582                                                        }
67583                                                      } else {
67584
67585                                                      }
67586                                                      {
67587#line 1888
67588                                                      ret = proc_reapurbnonblock(ps,
67589                                                                                 p);
67590                                                      }
67591#line 1889
67592                                                      goto ldv_31556;
67593                                                      case_neg_2146413298: ;
67594#line 1892
67595                                                      if (usbfs_snoop != 0) {
67596                                                        {
67597#line 1892
67598                                                        __cil_tmp84 = & dev->dev;
67599#line 1892
67600                                                        __cil_tmp85 = (struct device  const  *)__cil_tmp84;
67601#line 1892
67602                                                        _dev_info(__cil_tmp85, "%s: DISCSIGNAL\n",
67603                                                                  "usbdev_do_ioctl");
67604                                                        }
67605                                                      } else {
67606
67607                                                      }
67608                                                      {
67609#line 1893
67610                                                      ret = proc_disconnectsignal(ps,
67611                                                                                  p);
67612                                                      }
67613#line 1894
67614                                                      goto ldv_31556;
67615                                                      case_neg_2147199729: ;
67616#line 1897
67617                                                      if (usbfs_snoop != 0) {
67618                                                        {
67619#line 1897
67620                                                        __cil_tmp86 = & dev->dev;
67621#line 1897
67622                                                        __cil_tmp87 = (struct device  const  *)__cil_tmp86;
67623#line 1897
67624                                                        _dev_info(__cil_tmp87, "%s: CLAIMINTERFACE\n",
67625                                                                  "usbdev_do_ioctl");
67626                                                        }
67627                                                      } else {
67628
67629                                                      }
67630                                                      {
67631#line 1898
67632                                                      ret = proc_claiminterface(ps,
67633                                                                                p);
67634                                                      }
67635#line 1899
67636                                                      goto ldv_31556;
67637                                                      case_neg_2147199728: ;
67638#line 1902
67639                                                      if (usbfs_snoop != 0) {
67640                                                        {
67641#line 1902
67642                                                        __cil_tmp88 = & dev->dev;
67643#line 1902
67644                                                        __cil_tmp89 = (struct device  const  *)__cil_tmp88;
67645#line 1902
67646                                                        _dev_info(__cil_tmp89, "%s: RELEASEINTERFACE\n",
67647                                                                  "usbdev_do_ioctl");
67648                                                        }
67649                                                      } else {
67650
67651                                                      }
67652                                                      {
67653#line 1903
67654                                                      ret = proc_releaseinterface(ps,
67655                                                                                  p);
67656                                                      }
67657#line 1904
67658                                                      goto ldv_31556;
67659                                                      case_neg_1072671470: ;
67660#line 1907
67661                                                      if (usbfs_snoop != 0) {
67662                                                        {
67663#line 1907
67664                                                        __cil_tmp90 = & dev->dev;
67665#line 1907
67666                                                        __cil_tmp91 = (struct device  const  *)__cil_tmp90;
67667#line 1907
67668                                                        _dev_info(__cil_tmp91, "%s: IOCTL\n",
67669                                                                  "usbdev_do_ioctl");
67670                                                        }
67671                                                      } else {
67672
67673                                                      }
67674                                                      {
67675#line 1908
67676                                                      ret = proc_ioctl_default(ps,
67677                                                                               p);
67678                                                      }
67679#line 1909
67680                                                      goto ldv_31556;
67681                                                      case_neg_2147199720: ;
67682#line 1912
67683                                                      if (usbfs_snoop != 0) {
67684                                                        {
67685#line 1912
67686                                                        __cil_tmp92 = & dev->dev;
67687#line 1912
67688                                                        __cil_tmp93 = (struct device  const  *)__cil_tmp92;
67689#line 1912
67690                                                        _dev_info(__cil_tmp93, "%s: CLAIM_PORT\n",
67691                                                                  "usbdev_do_ioctl");
67692                                                        }
67693                                                      } else {
67694
67695                                                      }
67696                                                      {
67697#line 1913
67698                                                      ret = proc_claim_port(ps, p);
67699                                                      }
67700#line 1914
67701                                                      goto ldv_31556;
67702                                                      case_neg_2147199719: ;
67703#line 1917
67704                                                      if (usbfs_snoop != 0) {
67705                                                        {
67706#line 1917
67707                                                        __cil_tmp94 = & dev->dev;
67708#line 1917
67709                                                        __cil_tmp95 = (struct device  const  *)__cil_tmp94;
67710#line 1917
67711                                                        _dev_info(__cil_tmp95, "%s: RELEASE_PORT\n",
67712                                                                  "usbdev_do_ioctl");
67713                                                        }
67714                                                      } else {
67715
67716                                                      }
67717                                                      {
67718#line 1918
67719                                                      ret = proc_release_port(ps,
67720                                                                              p);
67721                                                      }
67722#line 1919
67723                                                      goto ldv_31556;
67724                                                    } else {
67725
67726                                                    }
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  ldv_31556: 
67779  {
67780#line 1921
67781  __cil_tmp96 = & dev->dev;
67782#line 1921
67783  device_unlock(__cil_tmp96);
67784  }
67785#line 1922
67786  if (ret >= 0) {
67787    {
67788#line 1923
67789    inode->i_atime = current_kernel_time();
67790    }
67791  } else {
67792
67793  }
67794#line 1924
67795  return ((long )ret);
67796}
67797}
67798#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"
67799static long usbdev_ioctl(struct file *file , unsigned int cmd , unsigned long arg ) 
67800{ int ret ;
67801  long tmp ;
67802  void *__cil_tmp6 ;
67803
67804  {
67805  {
67806#line 1932
67807  __cil_tmp6 = (void *)arg;
67808#line 1932
67809  tmp = usbdev_do_ioctl(file, cmd, __cil_tmp6);
67810#line 1932
67811  ret = (int )tmp;
67812  }
67813#line 1934
67814  return ((long )ret);
67815}
67816}
67817#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"
67818static long usbdev_compat_ioctl(struct file *file , unsigned int cmd , unsigned long arg ) 
67819{ int ret ;
67820  void *tmp ;
67821  long tmp___0 ;
67822  compat_uptr_t __cil_tmp7 ;
67823
67824  {
67825  {
67826#line 1943
67827  __cil_tmp7 = (compat_uptr_t )arg;
67828#line 1943
67829  tmp = compat_ptr(__cil_tmp7);
67830#line 1943
67831  tmp___0 = usbdev_do_ioctl(file, cmd, tmp);
67832#line 1943
67833  ret = (int )tmp___0;
67834  }
67835#line 1945
67836  return ((long )ret);
67837}
67838}
67839#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"
67840static unsigned int usbdev_poll(struct file *file , struct poll_table_struct *wait ) 
67841{ struct dev_state *ps ;
67842  unsigned int mask ;
67843  int tmp ;
67844  int tmp___0 ;
67845  void *__cil_tmp7 ;
67846  wait_queue_head_t *__cil_tmp8 ;
67847  fmode_t __cil_tmp9 ;
67848  unsigned int __cil_tmp10 ;
67849  struct list_head *__cil_tmp11 ;
67850  struct list_head  const  *__cil_tmp12 ;
67851
67852  {
67853  {
67854#line 1953
67855  __cil_tmp7 = file->private_data;
67856#line 1953
67857  ps = (struct dev_state *)__cil_tmp7;
67858#line 1954
67859  mask = 0U;
67860#line 1956
67861  __cil_tmp8 = & ps->wait;
67862#line 1956
67863  poll_wait(file, __cil_tmp8, wait);
67864  }
67865  {
67866#line 1957
67867  __cil_tmp9 = file->f_mode;
67868#line 1957
67869  __cil_tmp10 = __cil_tmp9 & 2U;
67870#line 1957
67871  if (__cil_tmp10 != 0U) {
67872    {
67873#line 1957
67874    __cil_tmp11 = & ps->async_completed;
67875#line 1957
67876    __cil_tmp12 = (struct list_head  const  *)__cil_tmp11;
67877#line 1957
67878    tmp = list_empty(__cil_tmp12);
67879    }
67880#line 1957
67881    if (tmp == 0) {
67882#line 1958
67883      mask = mask | 260U;
67884    } else {
67885
67886    }
67887  } else {
67888
67889  }
67890  }
67891  {
67892#line 1959
67893  tmp___0 = connected(ps);
67894  }
67895#line 1959
67896  if (tmp___0 == 0) {
67897#line 1960
67898    mask = mask | 24U;
67899  } else {
67900
67901  }
67902#line 1961
67903  return (mask);
67904}
67905}
67906#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"
67907struct file_operations  const  usbdev_file_operations  = 
67908#line 1964
67909     {& __this_module, & usbdev_lseek, & usbdev_read, (ssize_t (*)(struct file * , char const   * ,
67910                                                                 size_t  , loff_t * ))0,
67911    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
67912    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
67913    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
67914                                              u64  , unsigned int  ) ))0, & usbdev_poll,
67915    & usbdev_ioctl, & usbdev_compat_ioctl, (int (*)(struct file * , struct vm_area_struct * ))0,
67916    & usbdev_open, (int (*)(struct file * , fl_owner_t  ))0, & usbdev_release, (int (*)(struct file * ,
67917                                                                                        int  ))0,
67918    (int (*)(struct kiocb * , int  ))0, (int (*)(int  , struct file * , int  ))0,
67919    (int (*)(struct file * , int  , struct file_lock * ))0, (ssize_t (*)(struct file * ,
67920                                                                         struct page * ,
67921                                                                         int  , size_t  ,
67922                                                                         loff_t * ,
67923                                                                         int  ))0,
67924    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
67925                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
67926                                                                       int  , struct file_lock * ))0,
67927    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
67928    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
67929    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file * ,
67930                                                                        int  , loff_t  ,
67931                                                                        loff_t  ))0};
67932#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"
67933static void usbdev_remove(struct usb_device *udev ) 
67934{ struct dev_state *ps ;
67935  struct siginfo sinfo ;
67936  struct list_head  const  *__mptr ;
67937  int tmp ;
67938  struct list_head *__cil_tmp6 ;
67939  wait_queue_head_t *__cil_tmp7 ;
67940  void *__cil_tmp8 ;
67941  struct list_head *__cil_tmp9 ;
67942  unsigned int __cil_tmp10 ;
67943  unsigned int __cil_tmp11 ;
67944  unsigned int __cil_tmp12 ;
67945  int __cil_tmp13 ;
67946  struct pid *__cil_tmp14 ;
67947  uid_t __cil_tmp15 ;
67948  uid_t __cil_tmp16 ;
67949  u32 __cil_tmp17 ;
67950  struct list_head *__cil_tmp18 ;
67951  struct list_head  const  *__cil_tmp19 ;
67952
67953  {
67954#line 1982
67955  goto ldv_31609;
67956  ldv_31608: 
67957  {
67958#line 1983
67959  __cil_tmp6 = udev->filelist.next;
67960#line 1983
67961  __mptr = (struct list_head  const  *)__cil_tmp6;
67962#line 1983
67963  ps = (struct dev_state *)__mptr;
67964#line 1984
67965  destroy_all_async(ps);
67966#line 1985
67967  __cil_tmp7 = & ps->wait;
67968#line 1985
67969  __cil_tmp8 = (void *)0;
67970#line 1985
67971  __wake_up(__cil_tmp7, 3U, 0, __cil_tmp8);
67972#line 1986
67973  __cil_tmp9 = & ps->list;
67974#line 1986
67975  list_del_init(__cil_tmp9);
67976  }
67977  {
67978#line 1987
67979  __cil_tmp10 = ps->discsignr;
67980#line 1987
67981  if (__cil_tmp10 != 0U) {
67982    {
67983#line 1988
67984    __cil_tmp11 = ps->discsignr;
67985#line 1988
67986    sinfo.si_signo = (int )__cil_tmp11;
67987#line 1989
67988    sinfo.si_errno = 32;
67989#line 1990
67990    sinfo.si_code = -4;
67991#line 1991
67992    sinfo._sifields._sigfault._addr = ps->disccontext;
67993#line 1992
67994    __cil_tmp12 = ps->discsignr;
67995#line 1992
67996    __cil_tmp13 = (int )__cil_tmp12;
67997#line 1992
67998    __cil_tmp14 = ps->disc_pid;
67999#line 1992
68000    __cil_tmp15 = ps->disc_uid;
68001#line 1992
68002    __cil_tmp16 = ps->disc_euid;
68003#line 1992
68004    __cil_tmp17 = ps->secid;
68005#line 1992
68006    kill_pid_info_as_uid(__cil_tmp13, & sinfo, __cil_tmp14, __cil_tmp15, __cil_tmp16,
68007                         __cil_tmp17);
68008    }
68009  } else {
68010
68011  }
68012  }
68013  ldv_31609: 
68014  {
68015#line 1982
68016  __cil_tmp18 = & udev->filelist;
68017#line 1982
68018  __cil_tmp19 = (struct list_head  const  *)__cil_tmp18;
68019#line 1982
68020  tmp = list_empty(__cil_tmp19);
68021  }
68022#line 1982
68023  if (tmp == 0) {
68024#line 1983
68025    goto ldv_31608;
68026  } else {
68027#line 1985
68028    goto ldv_31610;
68029  }
68030  ldv_31610: ;
68031#line 1987
68032  return;
68033}
68034}
68035#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"
68036static struct class *usb_classdev_class  ;
68037#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"
68038static int usb_classdev_add(struct usb_device *dev ) 
68039{ struct device *cldev ;
68040  long tmp ;
68041  long tmp___0 ;
68042  struct device *__cil_tmp5 ;
68043  dev_t __cil_tmp6 ;
68044  void *__cil_tmp7 ;
68045  struct usb_bus *__cil_tmp8 ;
68046  int __cil_tmp9 ;
68047  int __cil_tmp10 ;
68048  void const   *__cil_tmp11 ;
68049  void const   *__cil_tmp12 ;
68050
68051  {
68052  {
68053#line 2006
68054  __cil_tmp5 = & dev->dev;
68055#line 2006
68056  __cil_tmp6 = dev->dev.devt;
68057#line 2006
68058  __cil_tmp7 = (void *)0;
68059#line 2006
68060  __cil_tmp8 = dev->bus;
68061#line 2006
68062  __cil_tmp9 = __cil_tmp8->busnum;
68063#line 2006
68064  __cil_tmp10 = dev->devnum;
68065#line 2006
68066  cldev = device_create(usb_classdev_class, __cil_tmp5, __cil_tmp6, __cil_tmp7, "usbdev%d.%d",
68067                        __cil_tmp9, __cil_tmp10);
68068#line 2009
68069  __cil_tmp11 = (void const   *)cldev;
68070#line 2009
68071  tmp___0 = IS_ERR(__cil_tmp11);
68072  }
68073#line 2009
68074  if (tmp___0 != 0L) {
68075    {
68076#line 2010
68077    __cil_tmp12 = (void const   *)cldev;
68078#line 2010
68079    tmp = PTR_ERR(__cil_tmp12);
68080    }
68081#line 2010
68082    return ((int )tmp);
68083  } else {
68084
68085  }
68086#line 2011
68087  dev->usb_classdev = cldev;
68088#line 2012
68089  return (0);
68090}
68091}
68092#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"
68093static void usb_classdev_remove(struct usb_device *dev ) 
68094{ struct device *__cil_tmp2 ;
68095  unsigned long __cil_tmp3 ;
68096  struct device *__cil_tmp4 ;
68097  unsigned long __cil_tmp5 ;
68098  struct device *__cil_tmp6 ;
68099
68100  {
68101  {
68102#line 2017
68103  __cil_tmp2 = (struct device *)0;
68104#line 2017
68105  __cil_tmp3 = (unsigned long )__cil_tmp2;
68106#line 2017
68107  __cil_tmp4 = dev->usb_classdev;
68108#line 2017
68109  __cil_tmp5 = (unsigned long )__cil_tmp4;
68110#line 2017
68111  if (__cil_tmp5 != __cil_tmp3) {
68112    {
68113#line 2018
68114    __cil_tmp6 = dev->usb_classdev;
68115#line 2018
68116    device_unregister(__cil_tmp6);
68117    }
68118  } else {
68119
68120  }
68121  }
68122#line 2019
68123  return;
68124}
68125}
68126#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"
68127static int usbdev_notify(struct notifier_block *self , unsigned long action , void *dev ) 
68128{ int tmp ;
68129  int __cil_tmp5 ;
68130  int __cil_tmp6 ;
68131  struct usb_device *__cil_tmp7 ;
68132  struct usb_device *__cil_tmp8 ;
68133  struct usb_device *__cil_tmp9 ;
68134
68135  {
68136  {
68137#line 2031
68138  __cil_tmp5 = (int )action;
68139#line 2031
68140  if (__cil_tmp5 == 1) {
68141#line 2031
68142    goto case_1;
68143  } else {
68144    {
68145#line 2035
68146    __cil_tmp6 = (int )action;
68147#line 2035
68148    if (__cil_tmp6 == 2) {
68149#line 2035
68150      goto case_2;
68151    } else
68152#line 2030
68153    if (0) {
68154      case_1: 
68155      {
68156#line 2032
68157      __cil_tmp7 = (struct usb_device *)dev;
68158#line 2032
68159      tmp = usb_classdev_add(__cil_tmp7);
68160      }
68161#line 2032
68162      if (tmp != 0) {
68163#line 2033
68164        return (32770);
68165      } else {
68166
68167      }
68168#line 2034
68169      goto ldv_31625;
68170      case_2: 
68171      {
68172#line 2036
68173      __cil_tmp8 = (struct usb_device *)dev;
68174#line 2036
68175      usb_classdev_remove(__cil_tmp8);
68176#line 2037
68177      __cil_tmp9 = (struct usb_device *)dev;
68178#line 2037
68179      usbdev_remove(__cil_tmp9);
68180      }
68181#line 2038
68182      goto ldv_31625;
68183    } else {
68184
68185    }
68186    }
68187  }
68188  }
68189  ldv_31625: ;
68190#line 2040
68191  return (1);
68192}
68193}
68194#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"
68195static struct notifier_block usbdev_nb  =    {& usbdev_notify, (struct notifier_block *)0, 0};
68196#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"
68197static struct cdev usb_device_cdev  ;
68198#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"
68199int usb_devio_init(void) 
68200{ int retval ;
68201  struct lock_class_key __key ;
68202  struct class *tmp ;
68203  long tmp___0 ;
68204  long tmp___1 ;
68205  void const   *__cil_tmp6 ;
68206  void const   *__cil_tmp7 ;
68207
68208  {
68209  {
68210#line 2053
68211  retval = register_chrdev_region(198180864U, 8192U, "usb_device");
68212  }
68213#line 2055
68214  if (retval != 0) {
68215    {
68216#line 2056
68217    printk("<3>Unable to register minors for usb_device\n");
68218    }
68219#line 2057
68220    goto out;
68221  } else {
68222
68223  }
68224  {
68225#line 2059
68226  cdev_init(& usb_device_cdev, & usbdev_file_operations);
68227#line 2060
68228  retval = cdev_add(& usb_device_cdev, 198180864U, 8192U);
68229  }
68230#line 2061
68231  if (retval != 0) {
68232    {
68233#line 2062
68234    printk("<3>Unable to get usb_device major %d\n", 189);
68235    }
68236#line 2064
68237    goto error_cdev;
68238  } else {
68239
68240  }
68241  {
68242#line 2067
68243  tmp = __class_create(& __this_module, "usb_device", & __key);
68244#line 2067
68245  usb_classdev_class = tmp;
68246#line 2068
68247  __cil_tmp6 = (void const   *)usb_classdev_class;
68248#line 2068
68249  tmp___1 = IS_ERR(__cil_tmp6);
68250  }
68251#line 2068
68252  if (tmp___1 != 0L) {
68253    {
68254#line 2069
68255    printk("<3>Unable to register usb_device class\n");
68256#line 2070
68257    __cil_tmp7 = (void const   *)usb_classdev_class;
68258#line 2070
68259    tmp___0 = PTR_ERR(__cil_tmp7);
68260#line 2070
68261    retval = (int )tmp___0;
68262#line 2071
68263    cdev_del(& usb_device_cdev);
68264#line 2072
68265    usb_classdev_class = (struct class *)0;
68266    }
68267#line 2073
68268    goto out;
68269  } else {
68270
68271  }
68272  {
68273#line 2079
68274  usb_classdev_class->dev_kobj = (struct kobject *)0;
68275#line 2081
68276  usb_register_notify(& usbdev_nb);
68277  }
68278  out: ;
68279#line 2083
68280  return (retval);
68281  error_cdev: 
68282  {
68283#line 2086
68284  unregister_chrdev_region(198180864U, 8192U);
68285  }
68286#line 2087
68287  goto out;
68288}
68289}
68290#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"
68291void usb_devio_cleanup(void) 
68292{ 
68293
68294  {
68295  {
68296#line 2092
68297  usb_unregister_notify(& usbdev_nb);
68298#line 2094
68299  class_destroy(usb_classdev_class);
68300#line 2096
68301  cdev_del(& usb_device_cdev);
68302#line 2097
68303  unregister_chrdev_region(198180864U, 8192U);
68304  }
68305#line 2098
68306  return;
68307}
68308}
68309#line 117 "include/linux/notifier.h"
68310extern int blocking_notifier_chain_register(struct blocking_notifier_head * , struct notifier_block * ) ;
68311#line 130
68312extern int blocking_notifier_chain_unregister(struct blocking_notifier_head * , struct notifier_block * ) ;
68313#line 141
68314extern int blocking_notifier_call_chain(struct blocking_notifier_head * , unsigned long  ,
68315                                        void * ) ;
68316#line 160 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
68317void usb_notify_add_device(struct usb_device *udev ) ;
68318#line 161
68319void usb_notify_remove_device(struct usb_device *udev ) ;
68320#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"
68321static struct blocking_notifier_head usb_notifier_list  =    {{0L, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
68322                                                                            {(struct lock_class *)0,
68323                                                                             (struct lock_class *)0},
68324                                                                            "(usb_notifier_list).rwsem.wait_lock",
68325                                                                            0, 0UL}}}},
68326     {& usb_notifier_list.rwsem.wait_list, & usb_notifier_list.rwsem.wait_list}, {(struct lock_class_key *)0,
68327                                                                                  {(struct lock_class *)0,
68328                                                                                   (struct lock_class *)0},
68329                                                                                  "(usb_notifier_list).rwsem",
68330                                                                                  0,
68331                                                                                  0UL}},
68332    (struct notifier_block *)0};
68333#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"
68334void usb_register_notify(struct notifier_block *nb ) 
68335{ 
68336
68337  {
68338  {
68339#line 35
68340  blocking_notifier_chain_register(& usb_notifier_list, nb);
68341  }
68342#line 36
68343  return;
68344}
68345}
68346#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"
68347void usb_unregister_notify(struct notifier_block *nb ) 
68348{ 
68349
68350  {
68351  {
68352#line 48
68353  blocking_notifier_chain_unregister(& usb_notifier_list, nb);
68354  }
68355#line 49
68356  return;
68357}
68358}
68359#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"
68360void usb_notify_add_device(struct usb_device *udev ) 
68361{ void *__cil_tmp2 ;
68362
68363  {
68364  {
68365#line 55
68366  __cil_tmp2 = (void *)udev;
68367#line 55
68368  blocking_notifier_call_chain(& usb_notifier_list, 1UL, __cil_tmp2);
68369  }
68370#line 56
68371  return;
68372}
68373}
68374#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"
68375void usb_notify_remove_device(struct usb_device *udev ) 
68376{ void *__cil_tmp2 ;
68377
68378  {
68379  {
68380#line 61
68381  mutex_lock_nested(& usbfs_mutex, 0U);
68382#line 62
68383  __cil_tmp2 = (void *)udev;
68384#line 62
68385  blocking_notifier_call_chain(& usb_notifier_list, 2UL, __cil_tmp2);
68386#line 64
68387  mutex_unlock(& usbfs_mutex);
68388  }
68389#line 65
68390  return;
68391}
68392}
68393#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"
68394void usb_notify_add_bus(struct usb_bus *ubus ) 
68395{ void *__cil_tmp2 ;
68396
68397  {
68398  {
68399#line 69
68400  __cil_tmp2 = (void *)ubus;
68401#line 69
68402  blocking_notifier_call_chain(& usb_notifier_list, 3UL, __cil_tmp2);
68403  }
68404#line 70
68405  return;
68406}
68407}
68408#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"
68409void usb_notify_remove_bus(struct usb_bus *ubus ) 
68410{ void *__cil_tmp2 ;
68411
68412  {
68413  {
68414#line 74
68415  __cil_tmp2 = (void *)ubus;
68416#line 74
68417  blocking_notifier_call_chain(& usb_notifier_list, 4UL, __cil_tmp2);
68418  }
68419#line 75
68420  return;
68421}
68422}
68423#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"
68424static int is_rndis(struct usb_interface_descriptor *desc ) 
68425{ int tmp ;
68426  __u8 __cil_tmp3 ;
68427  unsigned int __cil_tmp4 ;
68428  __u8 __cil_tmp5 ;
68429  unsigned int __cil_tmp6 ;
68430  __u8 __cil_tmp7 ;
68431  unsigned int __cil_tmp8 ;
68432
68433  {
68434  {
68435#line 39
68436  __cil_tmp3 = desc->bInterfaceClass;
68437#line 39
68438  __cil_tmp4 = (unsigned int )__cil_tmp3;
68439#line 39
68440  if (__cil_tmp4 == 2U) {
68441    {
68442#line 39
68443    __cil_tmp5 = desc->bInterfaceSubClass;
68444#line 39
68445    __cil_tmp6 = (unsigned int )__cil_tmp5;
68446#line 39
68447    if (__cil_tmp6 == 2U) {
68448      {
68449#line 39
68450      __cil_tmp7 = desc->bInterfaceProtocol;
68451#line 39
68452      __cil_tmp8 = (unsigned int )__cil_tmp7;
68453#line 39
68454      if (__cil_tmp8 == 255U) {
68455#line 39
68456        tmp = 1;
68457      } else {
68458#line 39
68459        tmp = 0;
68460      }
68461      }
68462    } else {
68463#line 39
68464      tmp = 0;
68465    }
68466    }
68467  } else {
68468#line 39
68469    tmp = 0;
68470  }
68471  }
68472#line 39
68473  return (tmp);
68474}
68475}
68476#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"
68477static int is_activesync(struct usb_interface_descriptor *desc ) 
68478{ int tmp ;
68479  __u8 __cil_tmp3 ;
68480  unsigned int __cil_tmp4 ;
68481  __u8 __cil_tmp5 ;
68482  unsigned int __cil_tmp6 ;
68483  __u8 __cil_tmp7 ;
68484  unsigned int __cil_tmp8 ;
68485
68486  {
68487  {
68488#line 46
68489  __cil_tmp3 = desc->bInterfaceClass;
68490#line 46
68491  __cil_tmp4 = (unsigned int )__cil_tmp3;
68492#line 46
68493  if (__cil_tmp4 == 239U) {
68494    {
68495#line 46
68496    __cil_tmp5 = desc->bInterfaceSubClass;
68497#line 46
68498    __cil_tmp6 = (unsigned int )__cil_tmp5;
68499#line 46
68500    if (__cil_tmp6 == 1U) {
68501      {
68502#line 46
68503      __cil_tmp7 = desc->bInterfaceProtocol;
68504#line 46
68505      __cil_tmp8 = (unsigned int )__cil_tmp7;
68506#line 46
68507      if (__cil_tmp8 == 1U) {
68508#line 46
68509        tmp = 1;
68510      } else {
68511#line 46
68512        tmp = 0;
68513      }
68514      }
68515    } else {
68516#line 46
68517      tmp = 0;
68518    }
68519    }
68520  } else {
68521#line 46
68522    tmp = 0;
68523  }
68524  }
68525#line 46
68526  return (tmp);
68527}
68528}
68529#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"
68530int usb_choose_configuration(struct usb_device *udev ) 
68531{ int i ;
68532  int num_configs ;
68533  int insufficient_power ;
68534  struct usb_host_config *c ;
68535  struct usb_host_config *best ;
68536  struct usb_interface_descriptor *desc ;
68537  int tmp ;
68538  int tmp___0 ;
68539  char const   *tmp___1 ;
68540  char const   *tmp___2 ;
68541  char const   *tmp___3 ;
68542  __u8 __cil_tmp13 ;
68543  __u8 __cil_tmp14 ;
68544  unsigned int __cil_tmp15 ;
68545  struct usb_interface_cache *__cil_tmp16 ;
68546  struct usb_host_interface (*__cil_tmp17)[0U] ;
68547  struct usb_host_interface *__cil_tmp18 ;
68548  unsigned short __cil_tmp19 ;
68549  int __cil_tmp20 ;
68550  __u8 __cil_tmp21 ;
68551  int __cil_tmp22 ;
68552  int __cil_tmp23 ;
68553  struct usb_interface_descriptor *__cil_tmp24 ;
68554  unsigned long __cil_tmp25 ;
68555  unsigned long __cil_tmp26 ;
68556  __u8 __cil_tmp27 ;
68557  unsigned int __cil_tmp28 ;
68558  struct usb_interface_descriptor *__cil_tmp29 ;
68559  unsigned long __cil_tmp30 ;
68560  unsigned long __cil_tmp31 ;
68561  __u8 __cil_tmp32 ;
68562  unsigned int __cil_tmp33 ;
68563  struct usb_host_config *__cil_tmp34 ;
68564  unsigned long __cil_tmp35 ;
68565  unsigned long __cil_tmp36 ;
68566  struct device *__cil_tmp37 ;
68567  struct device  const  *__cil_tmp38 ;
68568  struct usb_host_config *__cil_tmp39 ;
68569  unsigned long __cil_tmp40 ;
68570  unsigned long __cil_tmp41 ;
68571  __u8 __cil_tmp42 ;
68572  struct device *__cil_tmp43 ;
68573  struct device  const  *__cil_tmp44 ;
68574  struct device *__cil_tmp45 ;
68575  struct device  const  *__cil_tmp46 ;
68576
68577  {
68578#line 55
68579  insufficient_power = 0;
68580#line 58
68581  best = (struct usb_host_config *)0;
68582#line 59
68583  c = udev->config;
68584#line 60
68585  __cil_tmp13 = udev->descriptor.bNumConfigurations;
68586#line 60
68587  num_configs = (int )__cil_tmp13;
68588#line 61
68589  i = 0;
68590#line 61
68591  goto ldv_24025;
68592  ldv_24024: 
68593#line 62
68594  desc = (struct usb_interface_descriptor *)0;
68595  {
68596#line 65
68597  __cil_tmp14 = c->desc.bNumInterfaces;
68598#line 65
68599  __cil_tmp15 = (unsigned int )__cil_tmp14;
68600#line 65
68601  if (__cil_tmp15 != 0U) {
68602#line 66
68603    __cil_tmp16 = c->intf_cache[0];
68604#line 66
68605    __cil_tmp17 = & __cil_tmp16->altsetting;
68606#line 66
68607    __cil_tmp18 = (struct usb_host_interface *)__cil_tmp17;
68608#line 66
68609    desc = & __cil_tmp18->desc;
68610  } else {
68611
68612  }
68613  }
68614  {
68615#line 108
68616  __cil_tmp19 = udev->bus_mA;
68617#line 108
68618  __cil_tmp20 = (int )__cil_tmp19;
68619#line 108
68620  __cil_tmp21 = c->desc.bMaxPower;
68621#line 108
68622  __cil_tmp22 = (int )__cil_tmp21;
68623#line 108
68624  __cil_tmp23 = __cil_tmp22 * 2;
68625#line 108
68626  if (__cil_tmp23 > __cil_tmp20) {
68627#line 109
68628    insufficient_power = insufficient_power + 1;
68629#line 110
68630    goto ldv_24022;
68631  } else {
68632
68633  }
68634  }
68635#line 118
68636  if (i == 0) {
68637#line 118
68638    if (num_configs > 1) {
68639      {
68640#line 118
68641      __cil_tmp24 = (struct usb_interface_descriptor *)0;
68642#line 118
68643      __cil_tmp25 = (unsigned long )__cil_tmp24;
68644#line 118
68645      __cil_tmp26 = (unsigned long )desc;
68646#line 118
68647      if (__cil_tmp26 != __cil_tmp25) {
68648        {
68649#line 118
68650        tmp = is_rndis(desc);
68651        }
68652#line 118
68653        if (tmp != 0) {
68654#line 123
68655          best = c;
68656        } else {
68657          {
68658#line 118
68659          tmp___0 = is_activesync(desc);
68660          }
68661#line 118
68662          if (tmp___0 != 0) {
68663#line 123
68664            best = c;
68665          } else {
68666#line 118
68667            goto _L___2;
68668          }
68669        }
68670      } else {
68671#line 118
68672        goto _L___2;
68673      }
68674      }
68675    } else {
68676#line 118
68677      goto _L___2;
68678    }
68679  } else {
68680    _L___2: 
68681    {
68682#line 131
68683    __cil_tmp27 = udev->descriptor.bDeviceClass;
68684#line 131
68685    __cil_tmp28 = (unsigned int )__cil_tmp27;
68686#line 131
68687    if (__cil_tmp28 != 255U) {
68688      {
68689#line 131
68690      __cil_tmp29 = (struct usb_interface_descriptor *)0;
68691#line 131
68692      __cil_tmp30 = (unsigned long )__cil_tmp29;
68693#line 131
68694      __cil_tmp31 = (unsigned long )desc;
68695#line 131
68696      if (__cil_tmp31 != __cil_tmp30) {
68697        {
68698#line 131
68699        __cil_tmp32 = desc->bInterfaceClass;
68700#line 131
68701        __cil_tmp33 = (unsigned int )__cil_tmp32;
68702#line 131
68703        if (__cil_tmp33 != 255U) {
68704#line 135
68705          best = c;
68706#line 136
68707          goto ldv_24023;
68708        } else {
68709#line 131
68710          goto _L;
68711        }
68712        }
68713      } else {
68714#line 131
68715        goto _L;
68716      }
68717      }
68718    } else {
68719      _L: 
68720      {
68721#line 141
68722      __cil_tmp34 = (struct usb_host_config *)0;
68723#line 141
68724      __cil_tmp35 = (unsigned long )__cil_tmp34;
68725#line 141
68726      __cil_tmp36 = (unsigned long )best;
68727#line 141
68728      if (__cil_tmp36 == __cil_tmp35) {
68729#line 142
68730        best = c;
68731      } else {
68732
68733      }
68734      }
68735    }
68736    }
68737  }
68738  ldv_24022: 
68739#line 61
68740  i = i + 1;
68741#line 61
68742  c = c + 1;
68743  ldv_24025: ;
68744#line 61
68745  if (i < num_configs) {
68746#line 62
68747    goto ldv_24024;
68748  } else {
68749#line 64
68750    goto ldv_24023;
68751  }
68752  ldv_24023: ;
68753#line 145
68754  if (insufficient_power > 0) {
68755    {
68756#line 146
68757    tmp___1 = plural(insufficient_power);
68758#line 146
68759    __cil_tmp37 = & udev->dev;
68760#line 146
68761    __cil_tmp38 = (struct device  const  *)__cil_tmp37;
68762#line 146
68763    _dev_info(__cil_tmp38, "rejected %d configuration%s due to insufficient available bus power\n",
68764              insufficient_power, tmp___1);
68765    }
68766  } else {
68767
68768  }
68769  {
68770#line 150
68771  __cil_tmp39 = (struct usb_host_config *)0;
68772#line 150
68773  __cil_tmp40 = (unsigned long )__cil_tmp39;
68774#line 150
68775  __cil_tmp41 = (unsigned long )best;
68776#line 150
68777  if (__cil_tmp41 != __cil_tmp40) {
68778    {
68779#line 151
68780    __cil_tmp42 = best->desc.bConfigurationValue;
68781#line 151
68782    i = (int )__cil_tmp42;
68783#line 152
68784    tmp___2 = plural(num_configs);
68785#line 152
68786    __cil_tmp43 = & udev->dev;
68787#line 152
68788    __cil_tmp44 = (struct device  const  *)__cil_tmp43;
68789#line 152
68790    dev_printk("<7>", __cil_tmp44, "configuration #%d chosen from %d choice%s\n",
68791               i, num_configs, tmp___2);
68792    }
68793  } else {
68794    {
68795#line 156
68796    i = -1;
68797#line 157
68798    tmp___3 = plural(num_configs);
68799#line 157
68800    __cil_tmp45 = & udev->dev;
68801#line 157
68802    __cil_tmp46 = (struct device  const  *)__cil_tmp45;
68803#line 157
68804    dev_warn(__cil_tmp46, "no configuration chosen from %d choice%s\n", num_configs,
68805             tmp___3);
68806    }
68807  }
68808  }
68809#line 161
68810  return (i);
68811}
68812}
68813#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"
68814static int generic_probe(struct usb_device *udev ) 
68815{ int err ;
68816  int c ;
68817  bool tmp ;
68818  unsigned char *__cil_tmp5 ;
68819  unsigned char *__cil_tmp6 ;
68820  unsigned char __cil_tmp7 ;
68821  unsigned int __cil_tmp8 ;
68822  struct device *__cil_tmp9 ;
68823  struct device  const  *__cil_tmp10 ;
68824  struct device *__cil_tmp11 ;
68825  struct device  const  *__cil_tmp12 ;
68826
68827  {
68828  {
68829#line 171
68830  tmp = usb_device_is_owned(udev);
68831  }
68832#line 171
68833  if ((int )tmp) {
68834
68835  } else {
68836    {
68837#line 173
68838    __cil_tmp5 = (unsigned char *)udev;
68839#line 173
68840    __cil_tmp6 = __cil_tmp5 + 1556UL;
68841#line 173
68842    __cil_tmp7 = *__cil_tmp6;
68843#line 173
68844    __cil_tmp8 = (unsigned int )__cil_tmp7;
68845#line 173
68846    if (__cil_tmp8 == 0U) {
68847      {
68848#line 174
68849      __cil_tmp9 = & udev->dev;
68850#line 174
68851      __cil_tmp10 = (struct device  const  *)__cil_tmp9;
68852#line 174
68853      dev_err(__cil_tmp10, "Device is not authorized for usage\n");
68854      }
68855    } else {
68856      {
68857#line 176
68858      c = usb_choose_configuration(udev);
68859      }
68860#line 177
68861      if (c >= 0) {
68862        {
68863#line 178
68864        err = usb_set_configuration(udev, c);
68865        }
68866#line 179
68867        if (err != 0) {
68868          {
68869#line 180
68870          __cil_tmp11 = & udev->dev;
68871#line 180
68872          __cil_tmp12 = (struct device  const  *)__cil_tmp11;
68873#line 180
68874          dev_err(__cil_tmp12, "can\'t set config #%d, error %d\n", c, err);
68875          }
68876        } else {
68877
68878        }
68879      } else {
68880
68881      }
68882    }
68883    }
68884  }
68885  {
68886#line 188
68887  usb_notify_add_device(udev);
68888  }
68889#line 190
68890  return (0);
68891}
68892}
68893#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"
68894static void generic_disconnect(struct usb_device *udev ) 
68895{ struct usb_host_config *__cil_tmp2 ;
68896  unsigned long __cil_tmp3 ;
68897  struct usb_host_config *__cil_tmp4 ;
68898  unsigned long __cil_tmp5 ;
68899
68900  {
68901  {
68902#line 195
68903  usb_notify_remove_device(udev);
68904  }
68905  {
68906#line 199
68907  __cil_tmp2 = (struct usb_host_config *)0;
68908#line 199
68909  __cil_tmp3 = (unsigned long )__cil_tmp2;
68910#line 199
68911  __cil_tmp4 = udev->actconfig;
68912#line 199
68913  __cil_tmp5 = (unsigned long )__cil_tmp4;
68914#line 199
68915  if (__cil_tmp5 != __cil_tmp3) {
68916    {
68917#line 200
68918    usb_set_configuration(udev, -1);
68919    }
68920  } else {
68921
68922  }
68923  }
68924#line 201
68925  return;
68926}
68927}
68928#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"
68929static int generic_suspend(struct usb_device *udev , pm_message_t msg ) 
68930{ int rc ;
68931  struct usb_device *__cil_tmp4 ;
68932  unsigned long __cil_tmp5 ;
68933  struct usb_device *__cil_tmp6 ;
68934  unsigned long __cil_tmp7 ;
68935
68936  {
68937  {
68938#line 214
68939  __cil_tmp4 = (struct usb_device *)0;
68940#line 214
68941  __cil_tmp5 = (unsigned long )__cil_tmp4;
68942#line 214
68943  __cil_tmp6 = udev->parent;
68944#line 214
68945  __cil_tmp7 = (unsigned long )__cil_tmp6;
68946#line 214
68947  if (__cil_tmp7 == __cil_tmp5) {
68948    {
68949#line 215
68950    rc = hcd_bus_suspend(udev, msg);
68951    }
68952  } else
68953#line 218
68954  if (msg.event == 1) {
68955#line 219
68956    rc = 0;
68957  } else
68958#line 218
68959  if (msg.event == 8) {
68960#line 219
68961    rc = 0;
68962  } else {
68963    {
68964#line 221
68965    rc = usb_port_suspend(udev, msg);
68966    }
68967  }
68968  }
68969#line 223
68970  return (rc);
68971}
68972}
68973#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"
68974static int generic_resume(struct usb_device *udev , pm_message_t msg ) 
68975{ int rc ;
68976  struct usb_device *__cil_tmp4 ;
68977  unsigned long __cil_tmp5 ;
68978  struct usb_device *__cil_tmp6 ;
68979  unsigned long __cil_tmp7 ;
68980
68981  {
68982  {
68983#line 235
68984  __cil_tmp4 = (struct usb_device *)0;
68985#line 235
68986  __cil_tmp5 = (unsigned long )__cil_tmp4;
68987#line 235
68988  __cil_tmp6 = udev->parent;
68989#line 235
68990  __cil_tmp7 = (unsigned long )__cil_tmp6;
68991#line 235
68992  if (__cil_tmp7 == __cil_tmp5) {
68993    {
68994#line 236
68995    rc = hcd_bus_resume(udev, msg);
68996    }
68997  } else {
68998    {
68999#line 238
69000    rc = usb_port_resume(udev, msg);
69001    }
69002  }
69003  }
69004#line 239
69005  return (rc);
69006}
69007}
69008#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"
69009struct usb_device_driver usb_generic_driver  =    {"usb", & generic_probe, & generic_disconnect, & generic_suspend, & generic_resume,
69010    {{(char const   *)0, (struct bus_type *)0, (struct module *)0, (char const   *)0,
69011      (_Bool)0, (struct of_device_id  const  *)0, (int (*)(struct device * ))0, (int (*)(struct device * ))0,
69012      (void (*)(struct device * ))0, (int (*)(struct device * , pm_message_t  ))0,
69013      (int (*)(struct device * ))0, (struct attribute_group  const  **)0, (struct dev_pm_ops  const  *)0,
69014      (struct driver_private *)0}, 0}, (unsigned char)1};
69015#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"
69016static struct usb_device_id  const  usb_quirk_list[21U]  = 
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"
69018  {      {(__u16 )3U, (__u16 )516U, (__u16 )24613U, (unsigned short)0, (unsigned short)0,
69019      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69020      (unsigned char)0, 2UL}, 
69021        {(__u16 )3U, (__u16 )1008U, (__u16 )1793U, (unsigned short)0, (unsigned short)0,
69022      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69023      (unsigned char)0, 1UL}, 
69024        {(__u16 )3U, (__u16 )1054U, (__u16 )12320U, (unsigned short)0, (unsigned short)0,
69025      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69026      (unsigned char)0, 2UL}, 
69027        {(__u16 )3U, (__u16 )1133U, (__u16 )49442U, (unsigned short)0, (unsigned short)0,
69028      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69029      (unsigned char)0, 64UL}, 
69030        {(__u16 )3U, (__u16 )1137U, (__u16 )341U, (unsigned short)0, (unsigned short)0,
69031      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69032      (unsigned char)0, 2UL}, 
69033        {(__u16 )3U, (__u16 )1204U, (__u16 )1318U, (unsigned short)0, (unsigned short)0,
69034      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69035      (unsigned char)0, 8UL}, 
69036        {(__u16 )3U, (__u16 )1256U, (__u16 )26113U, (unsigned short)0, (unsigned short)0,
69037      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69038      (unsigned char)0, 8UL}, 
69039        {(__u16 )3U, (__u16 )1410U, (__u16 )7U, (unsigned short)0, (unsigned short)0,
69040      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69041      (unsigned char)0, 2UL}, 
69042        {(__u16 )3U, (__u16 )1410U, (__u16 )39U, (unsigned short)0, (unsigned short)0,
69043      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69044      (unsigned char)0, 2UL}, 
69045        {(__u16 )3U, (__u16 )1452U, (__u16 )538U, (unsigned short)0, (unsigned short)0,
69046      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69047      (unsigned char)0, 2UL}, 
69048        {(__u16 )3U, (__u16 )1592U, (__u16 )2579U, (unsigned short)0, (unsigned short)0,
69049      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69050      (unsigned char)0, 1UL}, 
69051        {(__u16 )3U, (__u16 )1699U, (__u16 )6U, (unsigned short)0, (unsigned short)0,
69052      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69053      (unsigned char)0, 8UL}, 
69054        {(__u16 )3U, (__u16 )2284U, (__u16 )4096U, (unsigned short)0, (unsigned short)0,
69055      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69056      (unsigned char)0, 2UL}, 
69057        {(__u16 )3U, (__u16 )2342U, (__u16 )13107U, (unsigned short)0, (unsigned short)0,
69058      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69059      (unsigned char)0, 8UL}, 
69060        {(__u16 )3U, (__u16 )2417U, (__u16 )8192U, (unsigned short)0, (unsigned short)0,
69061      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69062      (unsigned char)0, 4UL}, 
69063        {(__u16 )3U, (__u16 )2652U, (__u16 )8225U, (unsigned short)0, (unsigned short)0,
69064      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69065      (unsigned char)0, 2UL}, 
69066        {(__u16 )3U, (__u16 )4310U, (__u16 )8704U, (unsigned short)0, (unsigned short)0,
69067      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69068      (unsigned char)0, 1UL}, 
69069        {(__u16 )3U, (__u16 )5398U, (__u16 )34344U, (unsigned short)0, (unsigned short)0,
69070      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69071      (unsigned char)0, 2UL}, 
69072        {(__u16 )3U, (__u16 )6408U, (__u16 )4885U, (unsigned short)0, (unsigned short)0,
69073      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69074      (unsigned char)0, 32UL}, 
69075        {(__u16 )3U, (__u16 )32902U, (__u16 )61861U, (unsigned short)0, (unsigned short)0,
69076      (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69077      (unsigned char)0, 2UL}, 
69078        {(unsigned short)0, (unsigned short)0, (unsigned short)0, (unsigned short)0,
69079      (unsigned short)0, (unsigned char)0, (unsigned char)0, (unsigned char)0, (unsigned char)0,
69080      (unsigned char)0, (unsigned char)0, 0UL}};
69081#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"
69082static struct usb_device_id  const  *find_id(struct usb_device *udev ) 
69083{ struct usb_device_id  const  *id ;
69084  int tmp ;
69085  __u16 __cil_tmp4 ;
69086  unsigned short __cil_tmp5 ;
69087  unsigned int __cil_tmp6 ;
69088  __u8 __cil_tmp7 ;
69089  unsigned char __cil_tmp8 ;
69090  unsigned int __cil_tmp9 ;
69091  __u8 __cil_tmp10 ;
69092  unsigned char __cil_tmp11 ;
69093  unsigned int __cil_tmp12 ;
69094  kernel_ulong_t __cil_tmp13 ;
69095  unsigned long __cil_tmp14 ;
69096
69097  {
69098#line 111
69099  id = (struct usb_device_id  const  *)(& usb_quirk_list);
69100#line 113
69101  goto ldv_23627;
69102  ldv_23626: 
69103  {
69104#line 115
69105  tmp = usb_match_device(udev, id);
69106  }
69107#line 115
69108  if (tmp != 0) {
69109#line 116
69110    return (id);
69111  } else {
69112
69113  }
69114#line 114
69115  id = id + 1;
69116  ldv_23627: ;
69117  {
69118#line 113
69119  __cil_tmp4 = id->idVendor;
69120#line 113
69121  __cil_tmp5 = (unsigned short )__cil_tmp4;
69122#line 113
69123  __cil_tmp6 = (unsigned int )__cil_tmp5;
69124#line 113
69125  if (__cil_tmp6 != 0U) {
69126#line 114
69127    goto ldv_23626;
69128  } else {
69129    {
69130#line 113
69131    __cil_tmp7 = id->bDeviceClass;
69132#line 113
69133    __cil_tmp8 = (unsigned char )__cil_tmp7;
69134#line 113
69135    __cil_tmp9 = (unsigned int )__cil_tmp8;
69136#line 113
69137    if (__cil_tmp9 != 0U) {
69138#line 114
69139      goto ldv_23626;
69140    } else {
69141      {
69142#line 113
69143      __cil_tmp10 = id->bInterfaceClass;
69144#line 113
69145      __cil_tmp11 = (unsigned char )__cil_tmp10;
69146#line 113
69147      __cil_tmp12 = (unsigned int )__cil_tmp11;
69148#line 113
69149      if (__cil_tmp12 != 0U) {
69150#line 114
69151        goto ldv_23626;
69152      } else {
69153        {
69154#line 113
69155        __cil_tmp13 = id->driver_info;
69156#line 113
69157        __cil_tmp14 = (unsigned long )__cil_tmp13;
69158#line 113
69159        if (__cil_tmp14 != 0UL) {
69160#line 114
69161          goto ldv_23626;
69162        } else {
69163#line 116
69164          goto ldv_23628;
69165        }
69166        }
69167      }
69168      }
69169    }
69170    }
69171  }
69172  }
69173  ldv_23628: ;
69174#line 118
69175  return ((struct usb_device_id  const  *)0);
69176}
69177}
69178#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"
69179void usb_detect_quirks(struct usb_device *udev ) 
69180{ struct usb_device_id  const  *id ;
69181  struct usb_device_id  const  *__cil_tmp3 ;
69182  unsigned long __cil_tmp4 ;
69183  unsigned long __cil_tmp5 ;
69184  kernel_ulong_t __cil_tmp6 ;
69185  u32 __cil_tmp7 ;
69186  struct device *__cil_tmp8 ;
69187  struct device  const  *__cil_tmp9 ;
69188  u32 __cil_tmp10 ;
69189  u32 __cil_tmp11 ;
69190  unsigned int __cil_tmp12 ;
69191
69192  {
69193  {
69194#line 126
69195  id = (struct usb_device_id  const  *)(& usb_quirk_list);
69196#line 128
69197  id = find_id(udev);
69198  }
69199  {
69200#line 129
69201  __cil_tmp3 = (struct usb_device_id  const  *)0;
69202#line 129
69203  __cil_tmp4 = (unsigned long )__cil_tmp3;
69204#line 129
69205  __cil_tmp5 = (unsigned long )id;
69206#line 129
69207  if (__cil_tmp5 != __cil_tmp4) {
69208#line 130
69209    __cil_tmp6 = id->driver_info;
69210#line 130
69211    udev->quirks = (unsigned int )__cil_tmp6;
69212  } else {
69213
69214  }
69215  }
69216  {
69217#line 131
69218  __cil_tmp7 = udev->quirks;
69219#line 131
69220  if (__cil_tmp7 != 0U) {
69221    {
69222#line 132
69223    __cil_tmp8 = & udev->dev;
69224#line 132
69225    __cil_tmp9 = (struct device  const  *)__cil_tmp8;
69226#line 132
69227    __cil_tmp10 = udev->quirks;
69228#line 132
69229    dev_printk("<7>", __cil_tmp9, "USB quirks for this device: %x\n", __cil_tmp10);
69230    }
69231  } else {
69232
69233  }
69234  }
69235  {
69236#line 146
69237  __cil_tmp11 = udev->quirks;
69238#line 146
69239  __cil_tmp12 = __cil_tmp11 & 16U;
69240#line 146
69241  if (__cil_tmp12 == 0U) {
69242#line 147
69243    udev->persist_enabled = (unsigned char)1;
69244  } else {
69245
69246  }
69247  }
69248#line 148
69249  return;
69250}
69251}
69252#line 47 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/atomic.h"
69253__inline static void atomic_add(int i , atomic_t *v ) 
69254{ 
69255
69256  {
69257#line 49
69258  __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));
69259#line 51
69260  return;
69261}
69262}
69263#line 154 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/drivers/usb/core/usb.h"
69264void usbfs_conn_disc_event(void) ;
69265#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"
69266static char const   format_topo[85U]  = 
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"
69268  {      (char const   )'\n',      (char const   )'T',      (char const   )':',      (char const   )' ', 
69269        (char const   )' ',      (char const   )'B',      (char const   )'u',      (char const   )'s', 
69270        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'.', 
69271        (char const   )'2',      (char const   )'d',      (char const   )' ',      (char const   )'L', 
69272        (char const   )'e',      (char const   )'v',      (char const   )'=',      (char const   )'%', 
69273        (char const   )'2',      (char const   )'.',      (char const   )'2',      (char const   )'d', 
69274        (char const   )' ',      (char const   )'P',      (char const   )'r',      (char const   )'n', 
69275        (char const   )'t',      (char const   )'=',      (char const   )'%',      (char const   )'2', 
69276        (char const   )'.',      (char const   )'2',      (char const   )'d',      (char const   )' ', 
69277        (char const   )'P',      (char const   )'o',      (char const   )'r',      (char const   )'t', 
69278        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'.', 
69279        (char const   )'2',      (char const   )'d',      (char const   )' ',      (char const   )'C', 
69280        (char const   )'n',      (char const   )'t',      (char const   )'=',      (char const   )'%', 
69281        (char const   )'2',      (char const   )'.',      (char const   )'2',      (char const   )'d', 
69282        (char const   )' ',      (char const   )'D',      (char const   )'e',      (char const   )'v', 
69283        (char const   )'#',      (char const   )'=',      (char const   )'%',      (char const   )'3', 
69284        (char const   )'d',      (char const   )' ',      (char const   )'S',      (char const   )'p', 
69285        (char const   )'d',      (char const   )'=',      (char const   )'%',      (char const   )'-', 
69286        (char const   )'4',      (char const   )'s',      (char const   )' ',      (char const   )'M', 
69287        (char const   )'x',      (char const   )'C',      (char const   )'h',      (char const   )'=', 
69288        (char const   )'%',      (char const   )'2',      (char const   )'d',      (char const   )'\n', 
69289        (char const   )'\000'};
69290#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"
69291static char const   format_string_manufacturer[25U]  = 
69292#line 79
69293  {      (char const   )'S',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69294        (char const   )'M',      (char const   )'a',      (char const   )'n',      (char const   )'u', 
69295        (char const   )'f',      (char const   )'a',      (char const   )'c',      (char const   )'t', 
69296        (char const   )'u',      (char const   )'r',      (char const   )'e',      (char const   )'r', 
69297        (char const   )'=',      (char const   )'%',      (char const   )'.',      (char const   )'1', 
69298        (char const   )'0',      (char const   )'0',      (char const   )'s',      (char const   )'\n', 
69299        (char const   )'\000'};
69300#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"
69301static char const   format_string_product[20U]  = 
69302#line 83
69303  {      (char const   )'S',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69304        (char const   )'P',      (char const   )'r',      (char const   )'o',      (char const   )'d', 
69305        (char const   )'u',      (char const   )'c',      (char const   )'t',      (char const   )'=', 
69306        (char const   )'%',      (char const   )'.',      (char const   )'1',      (char const   )'0', 
69307        (char const   )'0',      (char const   )'s',      (char const   )'\n',      (char const   )'\000'};
69308#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"
69309static char const   format_string_serialnumber[25U]  = 
69310#line 88
69311  {      (char const   )'S',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69312        (char const   )'S',      (char const   )'e',      (char const   )'r',      (char const   )'i', 
69313        (char const   )'a',      (char const   )'l',      (char const   )'N',      (char const   )'u', 
69314        (char const   )'m',      (char const   )'b',      (char const   )'e',      (char const   )'r', 
69315        (char const   )'=',      (char const   )'%',      (char const   )'.',      (char const   )'1', 
69316        (char const   )'0',      (char const   )'0',      (char const   )'s',      (char const   )'\n', 
69317        (char const   )'\000'};
69318#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"
69319static char const   format_bandwidth[50U]  = 
69320#line 93
69321  {      (char const   )'B',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69322        (char const   )'A',      (char const   )'l',      (char const   )'l',      (char const   )'o', 
69323        (char const   )'c',      (char const   )'=',      (char const   )'%',      (char const   )'3', 
69324        (char const   )'d',      (char const   )'/',      (char const   )'%',      (char const   )'3', 
69325        (char const   )'d',      (char const   )' ',      (char const   )'u',      (char const   )'s', 
69326        (char const   )' ',      (char const   )'(',      (char const   )'%',      (char const   )'2', 
69327        (char const   )'d',      (char const   )'%',      (char const   )'%',      (char const   )')', 
69328        (char const   )',',      (char const   )' ',      (char const   )'#',      (char const   )'I', 
69329        (char const   )'n',      (char const   )'t',      (char const   )'=',      (char const   )'%', 
69330        (char const   )'3',      (char const   )'d',      (char const   )',',      (char const   )' ', 
69331        (char const   )'#',      (char const   )'I',      (char const   )'s',      (char const   )'o', 
69332        (char const   )'=',      (char const   )'%',      (char const   )'3',      (char const   )'d', 
69333        (char const   )'\n',      (char const   )'\000'};
69334#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"
69335static char const   format_device1[71U]  = 
69336#line 97
69337  {      (char const   )'D',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69338        (char const   )'V',      (char const   )'e',      (char const   )'r',      (char const   )'=', 
69339        (char const   )'%',      (char const   )'2',      (char const   )'x',      (char const   )'.', 
69340        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69341        (char const   )' ',      (char const   )'C',      (char const   )'l',      (char const   )'s', 
69342        (char const   )'=',      (char const   )'%',      (char const   )'0',      (char const   )'2', 
69343        (char const   )'x',      (char const   )'(',      (char const   )'%',      (char const   )'-', 
69344        (char const   )'5',      (char const   )'s',      (char const   )')',      (char const   )' ', 
69345        (char const   )'S',      (char const   )'u',      (char const   )'b',      (char const   )'=', 
69346        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69347        (char const   )' ',      (char const   )'P',      (char const   )'r',      (char const   )'o', 
69348        (char const   )'t',      (char const   )'=',      (char const   )'%',      (char const   )'0', 
69349        (char const   )'2',      (char const   )'x',      (char const   )' ',      (char const   )'M', 
69350        (char const   )'x',      (char const   )'P',      (char const   )'S',      (char const   )'=', 
69351        (char const   )'%',      (char const   )'2',      (char const   )'d',      (char const   )' ', 
69352        (char const   )'#',      (char const   )'C',      (char const   )'f',      (char const   )'g', 
69353        (char const   )'s',      (char const   )'=',      (char const   )'%',      (char const   )'3', 
69354        (char const   )'d',      (char const   )'\n',      (char const   )'\000'};
69355#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"
69356static char const   format_device2[42U]  = 
69357#line 101
69358  {      (char const   )'P',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69359        (char const   )'V',      (char const   )'e',      (char const   )'n',      (char const   )'d', 
69360        (char const   )'o',      (char const   )'r',      (char const   )'=',      (char const   )'%', 
69361        (char const   )'0',      (char const   )'4',      (char const   )'x',      (char const   )' ', 
69362        (char const   )'P',      (char const   )'r',      (char const   )'o',      (char const   )'d', 
69363        (char const   )'I',      (char const   )'D',      (char const   )'=',      (char const   )'%', 
69364        (char const   )'0',      (char const   )'4',      (char const   )'x',      (char const   )' ', 
69365        (char const   )'R',      (char const   )'e',      (char const   )'v',      (char const   )'=', 
69366        (char const   )'%',      (char const   )'2',      (char const   )'x',      (char const   )'.', 
69367        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69368        (char const   )'\n',      (char const   )'\000'};
69369#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"
69370static char const   format_config[45U]  = 
69371#line 105
69372  {      (char const   )'C',      (char const   )':',      (char const   )'%',      (char const   )'c', 
69373        (char const   )' ',      (char const   )'#',      (char const   )'I',      (char const   )'f', 
69374        (char const   )'s',      (char const   )'=',      (char const   )'%',      (char const   )'2', 
69375        (char const   )'d',      (char const   )' ',      (char const   )'C',      (char const   )'f', 
69376        (char const   )'g',      (char const   )'#',      (char const   )'=',      (char const   )'%', 
69377        (char const   )'2',      (char const   )'d',      (char const   )' ',      (char const   )'A', 
69378        (char const   )'t',      (char const   )'r',      (char const   )'=',      (char const   )'%', 
69379        (char const   )'0',      (char const   )'2',      (char const   )'x',      (char const   )' ', 
69380        (char const   )'M',      (char const   )'x',      (char const   )'P',      (char const   )'w', 
69381        (char const   )'r',      (char const   )'=',      (char const   )'%',      (char const   )'3', 
69382        (char const   )'d',      (char const   )'m',      (char const   )'A',      (char const   )'\n', 
69383        (char const   )'\000'};
69384#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"
69385static char const   format_iad[64U]  = 
69386#line 109
69387  {      (char const   )'A',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69388        (char const   )'F',      (char const   )'i',      (char const   )'r',      (char const   )'s', 
69389        (char const   )'t',      (char const   )'I',      (char const   )'f',      (char const   )'#', 
69390        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'d', 
69391        (char const   )' ',      (char const   )'I',      (char const   )'f',      (char const   )'C', 
69392        (char const   )'o',      (char const   )'u',      (char const   )'n',      (char const   )'t', 
69393        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'d', 
69394        (char const   )' ',      (char const   )'C',      (char const   )'l',      (char const   )'s', 
69395        (char const   )'=',      (char const   )'%',      (char const   )'0',      (char const   )'2', 
69396        (char const   )'x',      (char const   )'(',      (char const   )'%',      (char const   )'-', 
69397        (char const   )'5',      (char const   )'s',      (char const   )')',      (char const   )' ', 
69398        (char const   )'S',      (char const   )'u',      (char const   )'b',      (char const   )'=', 
69399        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69400        (char const   )' ',      (char const   )'P',      (char const   )'r',      (char const   )'o', 
69401        (char const   )'t',      (char const   )'=',      (char const   )'%',      (char const   )'0', 
69402        (char const   )'2',      (char const   )'x',      (char const   )'\n',      (char const   )'\000'};
69403#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"
69404static char const   format_iface[75U]  = 
69405#line 113
69406  {      (char const   )'I',      (char const   )':',      (char const   )'%',      (char const   )'c', 
69407        (char const   )' ',      (char const   )'I',      (char const   )'f',      (char const   )'#', 
69408        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'d', 
69409        (char const   )' ',      (char const   )'A',      (char const   )'l',      (char const   )'t', 
69410        (char const   )'=',      (char const   )'%',      (char const   )'2',      (char const   )'d', 
69411        (char const   )' ',      (char const   )'#',      (char const   )'E',      (char const   )'P', 
69412        (char const   )'s',      (char const   )'=',      (char const   )'%',      (char const   )'2', 
69413        (char const   )'d',      (char const   )' ',      (char const   )'C',      (char const   )'l', 
69414        (char const   )'s',      (char const   )'=',      (char const   )'%',      (char const   )'0', 
69415        (char const   )'2',      (char const   )'x',      (char const   )'(',      (char const   )'%', 
69416        (char const   )'-',      (char const   )'5',      (char const   )'s',      (char const   )')', 
69417        (char const   )' ',      (char const   )'S',      (char const   )'u',      (char const   )'b', 
69418        (char const   )'=',      (char const   )'%',      (char const   )'0',      (char const   )'2', 
69419        (char const   )'x',      (char const   )' ',      (char const   )'P',      (char const   )'r', 
69420        (char const   )'o',      (char const   )'t',      (char const   )'=',      (char const   )'%', 
69421        (char const   )'0',      (char const   )'2',      (char const   )'x',      (char const   )' ', 
69422        (char const   )'D',      (char const   )'r',      (char const   )'i',      (char const   )'v', 
69423        (char const   )'e',      (char const   )'r',      (char const   )'=',      (char const   )'%', 
69424        (char const   )'s',      (char const   )'\n',      (char const   )'\000'};
69425#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"
69426static char const   format_endpt[51U]  = 
69427#line 117
69428  {      (char const   )'E',      (char const   )':',      (char const   )' ',      (char const   )' ', 
69429        (char const   )'A',      (char const   )'d',      (char const   )'=',      (char const   )'%', 
69430        (char const   )'0',      (char const   )'2',      (char const   )'x',      (char const   )'(', 
69431        (char const   )'%',      (char const   )'c',      (char const   )')',      (char const   )' ', 
69432        (char const   )'A',      (char const   )'t',      (char const   )'r',      (char const   )'=', 
69433        (char const   )'%',      (char const   )'0',      (char const   )'2',      (char const   )'x', 
69434        (char const   )'(',      (char const   )'%',      (char const   )'-',      (char const   )'4', 
69435        (char const   )'s',      (char const   )')',      (char const   )' ',      (char const   )'M', 
69436        (char const   )'x',      (char const   )'P',      (char const   )'S',      (char const   )'=', 
69437        (char const   )'%',      (char const   )'4',      (char const   )'d',      (char const   )' ', 
69438        (char const   )'I',      (char const   )'v',      (char const   )'l',      (char const   )'=', 
69439        (char const   )'%',      (char const   )'d',      (char const   )'%',      (char const   )'c', 
69440        (char const   )'s',      (char const   )'\n',      (char const   )'\000'};
69441#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"
69442static struct device_connect_event device_event  =    {{1}, {{{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
69443                                                                             {(struct lock_class *)0,
69444                                                                              (struct lock_class *)0},
69445                                                                             "device_event.wait.lock",
69446                                                                             0, 0UL}}}},
69447          {& device_event.wait.task_list, & device_event.wait.task_list}}};
69448#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"
69449static struct class_info  const  clas_info[18U]  = 
69450#line 149
69451  {      {0, (char *)">ifc"}, 
69452        {1, (char *)"audio"}, 
69453        {2, (char *)"comm."}, 
69454        {3, (char *)"HID"}, 
69455        {5, (char *)"PID"}, 
69456        {6, (char *)"still"}, 
69457        {7, (char *)"print"}, 
69458        {8, (char *)"stor."}, 
69459        {9, (char *)"hub"}, 
69460        {10, (char *)"data"}, 
69461        {11, (char *)"scard"}, 
69462        {13, (char *)"c-sec"}, 
69463        {14, (char *)"video"}, 
69464        {224, (char *)"wlcon"}, 
69465        {239, (char *)"misc"}, 
69466        {254, (char *)"app."}, 
69467        {255, (char *)"vend."}, 
69468        {-1, (char *)"unk."}};
69469#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"
69470void usbfs_conn_disc_event(void) 
69471{ atomic_t *__cil_tmp1 ;
69472  wait_queue_head_t *__cil_tmp2 ;
69473  void *__cil_tmp3 ;
69474
69475  {
69476  {
69477#line 175
69478  __cil_tmp1 = & device_event.count;
69479#line 175
69480  atomic_add(2, __cil_tmp1);
69481#line 176
69482  __cil_tmp2 = & device_event.wait;
69483#line 176
69484  __cil_tmp3 = (void *)0;
69485#line 176
69486  __wake_up(__cil_tmp2, 3U, 1, __cil_tmp3);
69487  }
69488#line 177
69489  return;
69490}
69491}
69492#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"
69493static char const   *class_decode(int class ) 
69494{ int ix ;
69495  int __cil_tmp3 ;
69496  int __cil_tmp4 ;
69497
69498  {
69499#line 183
69500  ix = 0;
69501#line 183
69502  goto ldv_27655;
69503  ldv_27654: ;
69504  {
69505#line 184
69506  __cil_tmp3 = (int )clas_info[ix].class;
69507#line 184
69508  if (__cil_tmp3 == class) {
69509#line 185
69510    goto ldv_27653;
69511  } else {
69512
69513  }
69514  }
69515#line 183
69516  ix = ix + 1;
69517  ldv_27655: ;
69518  {
69519#line 183
69520  __cil_tmp4 = (int )clas_info[ix].class;
69521#line 183
69522  if (__cil_tmp4 != -1) {
69523#line 184
69524    goto ldv_27654;
69525  } else {
69526#line 186
69527    goto ldv_27653;
69528  }
69529  }
69530  ldv_27653: ;
69531#line 186
69532  return ((char const   *)clas_info[ix].class_name);
69533}
69534}
69535#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"
69536static char *usb_dump_endpoint_descriptor(int speed , char *start , char *end , struct usb_endpoint_descriptor  const  *desc ) 
69537{ char dir ;
69538  char unit ;
69539  char *type ;
69540  unsigned int interval ;
69541  unsigned int bandwidth ;
69542  int tmp___0 ;
69543  int tmp___1 ;
69544  unsigned int tmp___2 ;
69545  int tmp___3 ;
69546  unsigned long __cil_tmp14 ;
69547  unsigned long __cil_tmp15 ;
69548  __le16 __cil_tmp16 ;
69549  int __cil_tmp17 ;
69550  int __cil_tmp18 ;
69551  __le16 __cil_tmp19 ;
69552  int __cil_tmp20 ;
69553  int __cil_tmp21 ;
69554  __u8 __cil_tmp22 ;
69555  __u8 __cil_tmp23 ;
69556  int __cil_tmp24 ;
69557  int __cil_tmp25 ;
69558  int __cil_tmp26 ;
69559  signed char __cil_tmp27 ;
69560  int __cil_tmp28 ;
69561  __u8 __cil_tmp29 ;
69562  __u8 __cil_tmp30 ;
69563  int __cil_tmp31 ;
69564  int __cil_tmp32 ;
69565  int __cil_tmp33 ;
69566  __u8 __cil_tmp34 ;
69567  int __cil_tmp35 ;
69568  int __cil_tmp36 ;
69569  int __cil_tmp37 ;
69570  __u8 __cil_tmp38 ;
69571  unsigned int __cil_tmp39 ;
69572  char const   *__cil_tmp40 ;
69573  __u8 __cil_tmp41 ;
69574  int __cil_tmp42 ;
69575  int __cil_tmp43 ;
69576  __u8 __cil_tmp44 ;
69577  int __cil_tmp45 ;
69578  __le16 __cil_tmp46 ;
69579  unsigned int __cil_tmp47 ;
69580  unsigned int __cil_tmp48 ;
69581  unsigned int __cil_tmp49 ;
69582  int __cil_tmp50 ;
69583  unsigned long __cil_tmp51 ;
69584
69585  {
69586#line 193
69587  bandwidth = 1U;
69588  {
69589#line 195
69590  __cil_tmp14 = (unsigned long )end;
69591#line 195
69592  __cil_tmp15 = (unsigned long )start;
69593#line 195
69594  if (__cil_tmp15 > __cil_tmp14) {
69595#line 196
69596    return (start);
69597  } else {
69598
69599  }
69600  }
69601  {
69602#line 198
69603  tmp___0 = usb_endpoint_dir_in(desc);
69604  }
69605#line 198
69606  if (tmp___0 != 0) {
69607#line 198
69608    dir = (char)73;
69609  } else {
69610#line 198
69611    dir = (char)79;
69612  }
69613#line 200
69614  if (speed == 3) {
69615    {
69616#line 202
69617    __cil_tmp16 = desc->wMaxPacketSize;
69618#line 202
69619    __cil_tmp17 = (int )__cil_tmp16;
69620#line 202
69621    __cil_tmp18 = __cil_tmp17 & 6144;
69622#line 202
69623    if (__cil_tmp18 == 2048) {
69624#line 202
69625      goto case_2048;
69626    } else {
69627      {
69628#line 204
69629      __cil_tmp19 = desc->wMaxPacketSize;
69630#line 204
69631      __cil_tmp20 = (int )__cil_tmp19;
69632#line 204
69633      __cil_tmp21 = __cil_tmp20 & 6144;
69634#line 204
69635      if (__cil_tmp21 == 4096) {
69636#line 204
69637        goto case_4096;
69638      } else
69639#line 201
69640      if (0) {
69641        case_2048: 
69642#line 203
69643        bandwidth = 2U;
69644#line 203
69645        goto ldv_27668;
69646        case_4096: 
69647#line 205
69648        bandwidth = 3U;
69649#line 205
69650        goto ldv_27668;
69651      } else {
69652
69653      }
69654      }
69655    }
69656    }
69657    ldv_27668: ;
69658  } else {
69659
69660  }
69661  {
69662#line 210
69663  tmp___1 = usb_endpoint_type(desc);
69664  }
69665#line 211
69666  if (tmp___1 == 0) {
69667#line 211
69668    goto case_0;
69669  } else
69670#line 219
69671  if (tmp___1 == 1) {
69672#line 219
69673    goto case_1;
69674  } else
69675#line 223
69676  if (tmp___1 == 2) {
69677#line 223
69678    goto case_2;
69679  } else
69680#line 230
69681  if (tmp___1 == 3) {
69682#line 230
69683    goto case_3;
69684  } else {
69685#line 237
69686    goto switch_default;
69687#line 210
69688    if (0) {
69689      case_0: 
69690#line 212
69691      type = (char *)"Ctrl";
69692#line 213
69693      if (speed == 3) {
69694#line 214
69695        __cil_tmp22 = desc->bInterval;
69696#line 214
69697        interval = (unsigned int )__cil_tmp22;
69698      } else {
69699#line 216
69700        interval = 0U;
69701      }
69702#line 217
69703      dir = (char)66;
69704#line 218
69705      goto ldv_27671;
69706      case_1: 
69707#line 220
69708      type = (char *)"Isoc";
69709#line 221
69710      __cil_tmp23 = desc->bInterval;
69711#line 221
69712      __cil_tmp24 = (int )__cil_tmp23;
69713#line 221
69714      __cil_tmp25 = __cil_tmp24 + -1;
69715#line 221
69716      __cil_tmp26 = 1 << __cil_tmp25;
69717#line 221
69718      interval = (unsigned int )__cil_tmp26;
69719#line 222
69720      goto ldv_27671;
69721      case_2: 
69722#line 224
69723      type = (char *)"Bulk";
69724#line 225
69725      if (speed == 3) {
69726        {
69727#line 225
69728        __cil_tmp27 = (signed char )dir;
69729#line 225
69730        __cil_tmp28 = (int )__cil_tmp27;
69731#line 225
69732        if (__cil_tmp28 == 79) {
69733#line 226
69734          __cil_tmp29 = desc->bInterval;
69735#line 226
69736          interval = (unsigned int )__cil_tmp29;
69737        } else {
69738#line 228
69739          interval = 0U;
69740        }
69741        }
69742      } else {
69743#line 228
69744        interval = 0U;
69745      }
69746#line 229
69747      goto ldv_27671;
69748      case_3: 
69749#line 231
69750      type = (char *)"Int.";
69751#line 232
69752      if (speed == 3) {
69753#line 233
69754        __cil_tmp30 = desc->bInterval;
69755#line 233
69756        __cil_tmp31 = (int )__cil_tmp30;
69757#line 233
69758        __cil_tmp32 = __cil_tmp31 + -1;
69759#line 233
69760        __cil_tmp33 = 1 << __cil_tmp32;
69761#line 233
69762        interval = (unsigned int )__cil_tmp33;
69763      } else
69764#line 232
69765      if (speed == 5) {
69766#line 233
69767        __cil_tmp34 = desc->bInterval;
69768#line 233
69769        __cil_tmp35 = (int )__cil_tmp34;
69770#line 233
69771        __cil_tmp36 = __cil_tmp35 + -1;
69772#line 233
69773        __cil_tmp37 = 1 << __cil_tmp36;
69774#line 233
69775        interval = (unsigned int )__cil_tmp37;
69776      } else {
69777#line 235
69778        __cil_tmp38 = desc->bInterval;
69779#line 235
69780        interval = (unsigned int )__cil_tmp38;
69781      }
69782#line 236
69783      goto ldv_27671;
69784      switch_default: ;
69785#line 238
69786      return (start);
69787    } else {
69788
69789    }
69790  }
69791  ldv_27671: ;
69792#line 240
69793  if (speed == 3) {
69794#line 240
69795    tmp___2 = 125U;
69796  } else
69797#line 240
69798  if (speed == 5) {
69799#line 240
69800    tmp___2 = 125U;
69801  } else {
69802#line 240
69803    tmp___2 = 1000U;
69804  }
69805#line 240
69806  interval = tmp___2 * interval;
69807  {
69808#line 242
69809  __cil_tmp39 = interval % 1000U;
69810#line 242
69811  if (__cil_tmp39 != 0U) {
69812#line 243
69813    unit = (char)117;
69814  } else {
69815#line 245
69816    unit = (char)109;
69817#line 246
69818    interval = interval / 1000U;
69819  }
69820  }
69821  {
69822#line 249
69823  __cil_tmp40 = (char const   *)(& format_endpt);
69824#line 249
69825  __cil_tmp41 = desc->bEndpointAddress;
69826#line 249
69827  __cil_tmp42 = (int )__cil_tmp41;
69828#line 249
69829  __cil_tmp43 = (int )dir;
69830#line 249
69831  __cil_tmp44 = desc->bmAttributes;
69832#line 249
69833  __cil_tmp45 = (int )__cil_tmp44;
69834#line 249
69835  __cil_tmp46 = desc->wMaxPacketSize;
69836#line 249
69837  __cil_tmp47 = (unsigned int )__cil_tmp46;
69838#line 249
69839  __cil_tmp48 = __cil_tmp47 & 2047U;
69840#line 249
69841  __cil_tmp49 = __cil_tmp48 * bandwidth;
69842#line 249
69843  __cil_tmp50 = (int )unit;
69844#line 249
69845  tmp___3 = sprintf(start, __cil_tmp40, __cil_tmp42, __cil_tmp43, __cil_tmp45, type,
69846                    __cil_tmp49, interval, __cil_tmp50);
69847#line 249
69848  __cil_tmp51 = (unsigned long )tmp___3;
69849#line 249
69850  start = start + __cil_tmp51;
69851  }
69852#line 254
69853  return (start);
69854}
69855}
69856#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"
69857static char *usb_dump_interface_descriptor(char *start , char *end , struct usb_interface_cache  const  *intfc ,
69858                                           struct usb_interface  const  *iface , int setno ) 
69859{ struct usb_interface_descriptor  const  *desc ;
69860  char const   *driver_name ;
69861  int active ;
69862  char const   *tmp ;
69863  int tmp___0 ;
69864  int tmp___1 ;
69865  unsigned long __cil_tmp12 ;
69866  unsigned long __cil_tmp13 ;
69867  struct usb_interface  const  *__cil_tmp14 ;
69868  unsigned long __cil_tmp15 ;
69869  unsigned long __cil_tmp16 ;
69870  struct device_driver *__cil_tmp17 ;
69871  unsigned long __cil_tmp18 ;
69872  struct device_driver *__cil_tmp19 ;
69873  unsigned long __cil_tmp20 ;
69874  struct device_driver *__cil_tmp21 ;
69875  unsigned long __cil_tmp22 ;
69876  struct usb_host_interface *__cil_tmp23 ;
69877  struct usb_interface_descriptor *__cil_tmp24 ;
69878  struct usb_interface_descriptor  const  *__cil_tmp25 ;
69879  unsigned long __cil_tmp26 ;
69880  __u8 __cil_tmp27 ;
69881  int __cil_tmp28 ;
69882  int __cil_tmp29 ;
69883  char const   *__cil_tmp30 ;
69884  __u8 __cil_tmp31 ;
69885  int __cil_tmp32 ;
69886  __u8 __cil_tmp33 ;
69887  int __cil_tmp34 ;
69888  __u8 __cil_tmp35 ;
69889  int __cil_tmp36 ;
69890  __u8 __cil_tmp37 ;
69891  int __cil_tmp38 ;
69892  __u8 __cil_tmp39 ;
69893  int __cil_tmp40 ;
69894  __u8 __cil_tmp41 ;
69895  int __cil_tmp42 ;
69896  unsigned long __cil_tmp43 ;
69897
69898  {
69899#line 263
69900  driver_name = "";
69901#line 264
69902  active = 0;
69903  {
69904#line 266
69905  __cil_tmp12 = (unsigned long )end;
69906#line 266
69907  __cil_tmp13 = (unsigned long )start;
69908#line 266
69909  if (__cil_tmp13 > __cil_tmp12) {
69910#line 267
69911    return (start);
69912  } else {
69913
69914  }
69915  }
69916#line 268
69917  desc = & intfc->altsetting[setno].desc;
69918  {
69919#line 269
69920  __cil_tmp14 = (struct usb_interface  const  *)0;
69921#line 269
69922  __cil_tmp15 = (unsigned long )__cil_tmp14;
69923#line 269
69924  __cil_tmp16 = (unsigned long )iface;
69925#line 269
69926  if (__cil_tmp16 != __cil_tmp15) {
69927    {
69928#line 270
69929    __cil_tmp17 = (struct device_driver * const  )0;
69930#line 270
69931    __cil_tmp18 = (unsigned long )__cil_tmp17;
69932#line 270
69933    __cil_tmp19 = iface->dev.driver;
69934#line 270
69935    __cil_tmp20 = (unsigned long )__cil_tmp19;
69936#line 270
69937    if (__cil_tmp20 != __cil_tmp18) {
69938#line 270
69939      __cil_tmp21 = iface->dev.driver;
69940#line 270
69941      driver_name = __cil_tmp21->name;
69942    } else {
69943#line 270
69944      driver_name = "(none)";
69945    }
69946    }
69947#line 273
69948    __cil_tmp22 = (unsigned long )desc;
69949#line 273
69950    __cil_tmp23 = iface->cur_altsetting;
69951#line 273
69952    __cil_tmp24 = & __cil_tmp23->desc;
69953#line 273
69954    __cil_tmp25 = (struct usb_interface_descriptor  const  *)__cil_tmp24;
69955#line 273
69956    __cil_tmp26 = (unsigned long )__cil_tmp25;
69957#line 273
69958    active = __cil_tmp26 == __cil_tmp22;
69959  } else {
69960
69961  }
69962  }
69963  {
69964#line 275
69965  __cil_tmp27 = desc->bInterfaceClass;
69966#line 275
69967  __cil_tmp28 = (int const   )__cil_tmp27;
69968#line 275
69969  __cil_tmp29 = (int )__cil_tmp28;
69970#line 275
69971  tmp = class_decode(__cil_tmp29);
69972  }
69973#line 275
69974  if (active != 0) {
69975#line 275
69976    tmp___0 = 42;
69977  } else {
69978#line 275
69979    tmp___0 = 32;
69980  }
69981  {
69982#line 275
69983  __cil_tmp30 = (char const   *)(& format_iface);
69984#line 275
69985  __cil_tmp31 = desc->bInterfaceNumber;
69986#line 275
69987  __cil_tmp32 = (int )__cil_tmp31;
69988#line 275
69989  __cil_tmp33 = desc->bAlternateSetting;
69990#line 275
69991  __cil_tmp34 = (int )__cil_tmp33;
69992#line 275
69993  __cil_tmp35 = desc->bNumEndpoints;
69994#line 275
69995  __cil_tmp36 = (int )__cil_tmp35;
69996#line 275
69997  __cil_tmp37 = desc->bInterfaceClass;
69998#line 275
69999  __cil_tmp38 = (int )__cil_tmp37;
70000#line 275
70001  __cil_tmp39 = desc->bInterfaceSubClass;
70002#line 275
70003  __cil_tmp40 = (int )__cil_tmp39;
70004#line 275
70005  __cil_tmp41 = desc->bInterfaceProtocol;
70006#line 275
70007  __cil_tmp42 = (int )__cil_tmp41;
70008#line 275
70009  tmp___1 = sprintf(start, __cil_tmp30, tmp___0, __cil_tmp32, __cil_tmp34, __cil_tmp36,
70010                    __cil_tmp38, tmp, __cil_tmp40, __cil_tmp42, driver_name);
70011#line 275
70012  __cil_tmp43 = (unsigned long )tmp___1;
70013#line 275
70014  start = start + __cil_tmp43;
70015  }
70016#line 285
70017  return (start);
70018}
70019}
70020#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"
70021static char *usb_dump_interface(int speed , char *start , char *end , struct usb_interface_cache  const  *intfc ,
70022                                struct usb_interface  const  *iface , int setno ) 
70023{ struct usb_host_interface  const  *desc ;
70024  int i ;
70025  unsigned long __cil_tmp9 ;
70026  struct usb_host_interface (*__cil_tmp10)[0U] ;
70027  struct usb_host_interface  const  *__cil_tmp11 ;
70028  unsigned long __cil_tmp12 ;
70029  unsigned long __cil_tmp13 ;
70030  unsigned long __cil_tmp14 ;
70031  struct usb_host_endpoint *__cil_tmp15 ;
70032  struct usb_host_endpoint *__cil_tmp16 ;
70033  struct usb_endpoint_descriptor *__cil_tmp17 ;
70034  struct usb_endpoint_descriptor  const  *__cil_tmp18 ;
70035  __u8 __cil_tmp19 ;
70036  int __cil_tmp20 ;
70037
70038  {
70039  {
70040#line 292
70041  __cil_tmp9 = (unsigned long )setno;
70042#line 292
70043  __cil_tmp10 = & intfc->altsetting;
70044#line 292
70045  __cil_tmp11 = (struct usb_host_interface  const  *)__cil_tmp10;
70046#line 292
70047  desc = __cil_tmp11 + __cil_tmp9;
70048#line 295
70049  start = usb_dump_interface_descriptor(start, end, intfc, iface, setno);
70050#line 296
70051  i = 0;
70052  }
70053#line 296
70054  goto ldv_27697;
70055  ldv_27696: ;
70056  {
70057#line 297
70058  __cil_tmp12 = (unsigned long )end;
70059#line 297
70060  __cil_tmp13 = (unsigned long )start;
70061#line 297
70062  if (__cil_tmp13 > __cil_tmp12) {
70063#line 298
70064    return (start);
70065  } else {
70066
70067  }
70068  }
70069  {
70070#line 299
70071  __cil_tmp14 = (unsigned long )i;
70072#line 299
70073  __cil_tmp15 = desc->endpoint;
70074#line 299
70075  __cil_tmp16 = __cil_tmp15 + __cil_tmp14;
70076#line 299
70077  __cil_tmp17 = & __cil_tmp16->desc;
70078#line 299
70079  __cil_tmp18 = (struct usb_endpoint_descriptor  const  *)__cil_tmp17;
70080#line 299
70081  start = usb_dump_endpoint_descriptor(speed, start, end, __cil_tmp18);
70082#line 296
70083  i = i + 1;
70084  }
70085  ldv_27697: ;
70086  {
70087#line 296
70088  __cil_tmp19 = desc->desc.bNumEndpoints;
70089#line 296
70090  __cil_tmp20 = (int )__cil_tmp19;
70091#line 296
70092  if (__cil_tmp20 > i) {
70093#line 297
70094    goto ldv_27696;
70095  } else {
70096#line 299
70097    goto ldv_27698;
70098  }
70099  }
70100  ldv_27698: ;
70101#line 302
70102  return (start);
70103}
70104}
70105#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"
70106static char *usb_dump_iad_descriptor(char *start , char *end , struct usb_interface_assoc_descriptor  const  *iad ) 
70107{ char const   *tmp ;
70108  int tmp___0 ;
70109  unsigned long __cil_tmp6 ;
70110  unsigned long __cil_tmp7 ;
70111  __u8 __cil_tmp8 ;
70112  int __cil_tmp9 ;
70113  int __cil_tmp10 ;
70114  char const   *__cil_tmp11 ;
70115  __u8 __cil_tmp12 ;
70116  int __cil_tmp13 ;
70117  __u8 __cil_tmp14 ;
70118  int __cil_tmp15 ;
70119  __u8 __cil_tmp16 ;
70120  int __cil_tmp17 ;
70121  __u8 __cil_tmp18 ;
70122  int __cil_tmp19 ;
70123  __u8 __cil_tmp20 ;
70124  int __cil_tmp21 ;
70125  unsigned long __cil_tmp22 ;
70126
70127  {
70128  {
70129#line 308
70130  __cil_tmp6 = (unsigned long )end;
70131#line 308
70132  __cil_tmp7 = (unsigned long )start;
70133#line 308
70134  if (__cil_tmp7 > __cil_tmp6) {
70135#line 309
70136    return (start);
70137  } else {
70138
70139  }
70140  }
70141  {
70142#line 310
70143  __cil_tmp8 = iad->bFunctionClass;
70144#line 310
70145  __cil_tmp9 = (int const   )__cil_tmp8;
70146#line 310
70147  __cil_tmp10 = (int )__cil_tmp9;
70148#line 310
70149  tmp = class_decode(__cil_tmp10);
70150#line 310
70151  __cil_tmp11 = (char const   *)(& format_iad);
70152#line 310
70153  __cil_tmp12 = iad->bFirstInterface;
70154#line 310
70155  __cil_tmp13 = (int )__cil_tmp12;
70156#line 310
70157  __cil_tmp14 = iad->bInterfaceCount;
70158#line 310
70159  __cil_tmp15 = (int )__cil_tmp14;
70160#line 310
70161  __cil_tmp16 = iad->bFunctionClass;
70162#line 310
70163  __cil_tmp17 = (int )__cil_tmp16;
70164#line 310
70165  __cil_tmp18 = iad->bFunctionSubClass;
70166#line 310
70167  __cil_tmp19 = (int )__cil_tmp18;
70168#line 310
70169  __cil_tmp20 = iad->bFunctionProtocol;
70170#line 310
70171  __cil_tmp21 = (int )__cil_tmp20;
70172#line 310
70173  tmp___0 = sprintf(start, __cil_tmp11, __cil_tmp13, __cil_tmp15, __cil_tmp17, tmp,
70174                    __cil_tmp19, __cil_tmp21);
70175#line 310
70176  __cil_tmp22 = (unsigned long )tmp___0;
70177#line 310
70178  start = start + __cil_tmp22;
70179  }
70180#line 317
70181  return (start);
70182}
70183}
70184#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"
70185static char *usb_dump_config_descriptor(char *start , char *end , struct usb_config_descriptor  const  *desc ,
70186                                        int active ) 
70187{ int tmp ;
70188  int tmp___0 ;
70189  unsigned long __cil_tmp7 ;
70190  unsigned long __cil_tmp8 ;
70191  char const   *__cil_tmp9 ;
70192  __u8 __cil_tmp10 ;
70193  int __cil_tmp11 ;
70194  __u8 __cil_tmp12 ;
70195  int __cil_tmp13 ;
70196  __u8 __cil_tmp14 ;
70197  int __cil_tmp15 ;
70198  __u8 __cil_tmp16 ;
70199  int __cil_tmp17 ;
70200  int __cil_tmp18 ;
70201  unsigned long __cil_tmp19 ;
70202
70203  {
70204  {
70205#line 329
70206  __cil_tmp7 = (unsigned long )end;
70207#line 329
70208  __cil_tmp8 = (unsigned long )start;
70209#line 329
70210  if (__cil_tmp8 > __cil_tmp7) {
70211#line 330
70212    return (start);
70213  } else {
70214
70215  }
70216  }
70217#line 331
70218  if (active != 0) {
70219#line 331
70220    tmp = 42;
70221  } else {
70222#line 331
70223    tmp = 32;
70224  }
70225  {
70226#line 331
70227  __cil_tmp9 = (char const   *)(& format_config);
70228#line 331
70229  __cil_tmp10 = desc->bNumInterfaces;
70230#line 331
70231  __cil_tmp11 = (int )__cil_tmp10;
70232#line 331
70233  __cil_tmp12 = desc->bConfigurationValue;
70234#line 331
70235  __cil_tmp13 = (int )__cil_tmp12;
70236#line 331
70237  __cil_tmp14 = desc->bmAttributes;
70238#line 331
70239  __cil_tmp15 = (int )__cil_tmp14;
70240#line 331
70241  __cil_tmp16 = desc->bMaxPower;
70242#line 331
70243  __cil_tmp17 = (int )__cil_tmp16;
70244#line 331
70245  __cil_tmp18 = __cil_tmp17 * 2;
70246#line 331
70247  tmp___0 = sprintf(start, __cil_tmp9, tmp, __cil_tmp11, __cil_tmp13, __cil_tmp15,
70248                    __cil_tmp18);
70249#line 331
70250  __cil_tmp19 = (unsigned long )tmp___0;
70251#line 331
70252  start = start + __cil_tmp19;
70253  }
70254#line 338
70255  return (start);
70256}
70257}
70258#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"
70259static char *usb_dump_config(int speed , char *start , char *end , struct usb_host_config  const  *config ,
70260                             int active ) 
70261{ int i ;
70262  int j ;
70263  struct usb_interface_cache *intfc ;
70264  struct usb_interface *interface ;
70265  int tmp ;
70266  unsigned long __cil_tmp11 ;
70267  unsigned long __cil_tmp12 ;
70268  struct usb_host_config  const  *__cil_tmp13 ;
70269  unsigned long __cil_tmp14 ;
70270  unsigned long __cil_tmp15 ;
70271  unsigned long __cil_tmp16 ;
70272  struct usb_config_descriptor  const  *__cil_tmp17 ;
70273  struct usb_interface_assoc_descriptor *__cil_tmp18 ;
70274  unsigned long __cil_tmp19 ;
70275  struct usb_interface_assoc_descriptor *__cil_tmp20 ;
70276  unsigned long __cil_tmp21 ;
70277  struct usb_interface_assoc_descriptor *__cil_tmp22 ;
70278  struct usb_interface_assoc_descriptor  const  *__cil_tmp23 ;
70279  unsigned long __cil_tmp24 ;
70280  unsigned long __cil_tmp25 ;
70281  struct usb_interface_cache  const  *__cil_tmp26 ;
70282  struct usb_interface  const  *__cil_tmp27 ;
70283  unsigned int __cil_tmp28 ;
70284  unsigned int __cil_tmp29 ;
70285  __u8 __cil_tmp30 ;
70286  int __cil_tmp31 ;
70287
70288  {
70289  {
70290#line 348
70291  __cil_tmp11 = (unsigned long )end;
70292#line 348
70293  __cil_tmp12 = (unsigned long )start;
70294#line 348
70295  if (__cil_tmp12 > __cil_tmp11) {
70296#line 349
70297    return (start);
70298  } else {
70299
70300  }
70301  }
70302  {
70303#line 350
70304  __cil_tmp13 = (struct usb_host_config  const  *)0;
70305#line 350
70306  __cil_tmp14 = (unsigned long )__cil_tmp13;
70307#line 350
70308  __cil_tmp15 = (unsigned long )config;
70309#line 350
70310  if (__cil_tmp15 == __cil_tmp14) {
70311    {
70312#line 352
70313    tmp = sprintf(start, "(null Cfg. desc.)\n");
70314    }
70315    {
70316#line 352
70317    __cil_tmp16 = (unsigned long )tmp;
70318#line 352
70319    return (start + __cil_tmp16);
70320    }
70321  } else {
70322
70323  }
70324  }
70325  {
70326#line 353
70327  __cil_tmp17 = & config->desc;
70328#line 353
70329  start = usb_dump_config_descriptor(start, end, __cil_tmp17, active);
70330#line 354
70331  i = 0;
70332  }
70333#line 354
70334  goto ldv_27723;
70335  ldv_27722: ;
70336  {
70337#line 355
70338  __cil_tmp18 = (struct usb_interface_assoc_descriptor *)0;
70339#line 355
70340  __cil_tmp19 = (unsigned long )__cil_tmp18;
70341#line 355
70342  __cil_tmp20 = config->intf_assoc[i];
70343#line 355
70344  __cil_tmp21 = (unsigned long )__cil_tmp20;
70345#line 355
70346  if (__cil_tmp21 == __cil_tmp19) {
70347#line 356
70348    goto ldv_27721;
70349  } else {
70350
70351  }
70352  }
70353  {
70354#line 357
70355  __cil_tmp22 = config->intf_assoc[i];
70356#line 357
70357  __cil_tmp23 = (struct usb_interface_assoc_descriptor  const  *)__cil_tmp22;
70358#line 357
70359  start = usb_dump_iad_descriptor(start, end, __cil_tmp23);
70360#line 354
70361  i = i + 1;
70362  }
70363  ldv_27723: ;
70364#line 354
70365  if (i <= 15) {
70366#line 355
70367    goto ldv_27722;
70368  } else {
70369#line 357
70370    goto ldv_27721;
70371  }
70372  ldv_27721: 
70373#line 360
70374  i = 0;
70375#line 360
70376  goto ldv_27728;
70377  ldv_27727: 
70378#line 361
70379  intfc = config->intf_cache[i];
70380#line 362
70381  interface = config->interface[i];
70382#line 363
70383  j = 0;
70384#line 363
70385  goto ldv_27725;
70386  ldv_27724: ;
70387  {
70388#line 364
70389  __cil_tmp24 = (unsigned long )end;
70390#line 364
70391  __cil_tmp25 = (unsigned long )start;
70392#line 364
70393  if (__cil_tmp25 > __cil_tmp24) {
70394#line 365
70395    return (start);
70396  } else {
70397
70398  }
70399  }
70400  {
70401#line 366
70402  __cil_tmp26 = (struct usb_interface_cache  const  *)intfc;
70403#line 366
70404  __cil_tmp27 = (struct usb_interface  const  *)interface;
70405#line 366
70406  start = usb_dump_interface(speed, start, end, __cil_tmp26, __cil_tmp27, j);
70407#line 363
70408  j = j + 1;
70409  }
70410  ldv_27725: ;
70411  {
70412#line 363
70413  __cil_tmp28 = intfc->num_altsetting;
70414#line 363
70415  __cil_tmp29 = (unsigned int )j;
70416#line 363
70417  if (__cil_tmp29 < __cil_tmp28) {
70418#line 364
70419    goto ldv_27724;
70420  } else {
70421#line 366
70422    goto ldv_27726;
70423  }
70424  }
70425  ldv_27726: 
70426#line 360
70427  i = i + 1;
70428  ldv_27728: ;
70429  {
70430#line 360
70431  __cil_tmp30 = config->desc.bNumInterfaces;
70432#line 360
70433  __cil_tmp31 = (int )__cil_tmp30;
70434#line 360
70435  if (__cil_tmp31 > i) {
70436#line 361
70437    goto ldv_27727;
70438  } else {
70439#line 363
70440    goto ldv_27729;
70441  }
70442  }
70443  ldv_27729: ;
70444#line 370
70445  return (start);
70446}
70447}
70448#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"
70449static char *usb_dump_device_descriptor(char *start , char *end , struct usb_device_descriptor  const  *desc ) 
70450{ u16 bcdUSB ;
70451  u16 bcdDevice ;
70452  char const   *tmp ;
70453  int tmp___0 ;
70454  int tmp___1 ;
70455  __le16 __cil_tmp9 ;
70456  __le16 __cil_tmp10 ;
70457  unsigned long __cil_tmp11 ;
70458  unsigned long __cil_tmp12 ;
70459  __u8 __cil_tmp13 ;
70460  int __cil_tmp14 ;
70461  int __cil_tmp15 ;
70462  char const   *__cil_tmp16 ;
70463  int __cil_tmp17 ;
70464  int __cil_tmp18 ;
70465  int __cil_tmp19 ;
70466  int __cil_tmp20 ;
70467  __u8 __cil_tmp21 ;
70468  int __cil_tmp22 ;
70469  __u8 __cil_tmp23 ;
70470  int __cil_tmp24 ;
70471  __u8 __cil_tmp25 ;
70472  int __cil_tmp26 ;
70473  __u8 __cil_tmp27 ;
70474  int __cil_tmp28 ;
70475  __u8 __cil_tmp29 ;
70476  int __cil_tmp30 ;
70477  unsigned long __cil_tmp31 ;
70478  unsigned long __cil_tmp32 ;
70479  unsigned long __cil_tmp33 ;
70480  char const   *__cil_tmp34 ;
70481  __le16 __cil_tmp35 ;
70482  int __cil_tmp36 ;
70483  __le16 __cil_tmp37 ;
70484  int __cil_tmp38 ;
70485  int __cil_tmp39 ;
70486  int __cil_tmp40 ;
70487  int __cil_tmp41 ;
70488  int __cil_tmp42 ;
70489  unsigned long __cil_tmp43 ;
70490
70491  {
70492#line 379
70493  __cil_tmp9 = desc->bcdUSB;
70494#line 379
70495  bcdUSB = (u16 )__cil_tmp9;
70496#line 380
70497  __cil_tmp10 = desc->bcdDevice;
70498#line 380
70499  bcdDevice = (u16 )__cil_tmp10;
70500  {
70501#line 382
70502  __cil_tmp11 = (unsigned long )end;
70503#line 382
70504  __cil_tmp12 = (unsigned long )start;
70505#line 382
70506  if (__cil_tmp12 > __cil_tmp11) {
70507#line 383
70508    return (start);
70509  } else {
70510
70511  }
70512  }
70513  {
70514#line 384
70515  __cil_tmp13 = desc->bDeviceClass;
70516#line 384
70517  __cil_tmp14 = (int const   )__cil_tmp13;
70518#line 384
70519  __cil_tmp15 = (int )__cil_tmp14;
70520#line 384
70521  tmp = class_decode(__cil_tmp15);
70522#line 384
70523  __cil_tmp16 = (char const   *)(& format_device1);
70524#line 384
70525  __cil_tmp17 = (int )bcdUSB;
70526#line 384
70527  __cil_tmp18 = __cil_tmp17 >> 8;
70528#line 384
70529  __cil_tmp19 = (int )bcdUSB;
70530#line 384
70531  __cil_tmp20 = __cil_tmp19 & 255;
70532#line 384
70533  __cil_tmp21 = desc->bDeviceClass;
70534#line 384
70535  __cil_tmp22 = (int )__cil_tmp21;
70536#line 384
70537  __cil_tmp23 = desc->bDeviceSubClass;
70538#line 384
70539  __cil_tmp24 = (int )__cil_tmp23;
70540#line 384
70541  __cil_tmp25 = desc->bDeviceProtocol;
70542#line 384
70543  __cil_tmp26 = (int )__cil_tmp25;
70544#line 384
70545  __cil_tmp27 = desc->bMaxPacketSize0;
70546#line 384
70547  __cil_tmp28 = (int )__cil_tmp27;
70548#line 384
70549  __cil_tmp29 = desc->bNumConfigurations;
70550#line 384
70551  __cil_tmp30 = (int )__cil_tmp29;
70552#line 384
70553  tmp___0 = sprintf(start, __cil_tmp16, __cil_tmp18, __cil_tmp20, __cil_tmp22, tmp,
70554                    __cil_tmp24, __cil_tmp26, __cil_tmp28, __cil_tmp30);
70555#line 384
70556  __cil_tmp31 = (unsigned long )tmp___0;
70557#line 384
70558  start = start + __cil_tmp31;
70559  }
70560  {
70561#line 392
70562  __cil_tmp32 = (unsigned long )end;
70563#line 392
70564  __cil_tmp33 = (unsigned long )start;
70565#line 392
70566  if (__cil_tmp33 > __cil_tmp32) {
70567#line 393
70568    return (start);
70569  } else {
70570
70571  }
70572  }
70573  {
70574#line 394
70575  __cil_tmp34 = (char const   *)(& format_device2);
70576#line 394
70577  __cil_tmp35 = desc->idVendor;
70578#line 394
70579  __cil_tmp36 = (int )__cil_tmp35;
70580#line 394
70581  __cil_tmp37 = desc->idProduct;
70582#line 394
70583  __cil_tmp38 = (int )__cil_tmp37;
70584#line 394
70585  __cil_tmp39 = (int )bcdDevice;
70586#line 394
70587  __cil_tmp40 = __cil_tmp39 >> 8;
70588#line 394
70589  __cil_tmp41 = (int )bcdDevice;
70590#line 394
70591  __cil_tmp42 = __cil_tmp41 & 255;
70592#line 394
70593  tmp___1 = sprintf(start, __cil_tmp34, __cil_tmp36, __cil_tmp38, __cil_tmp40, __cil_tmp42);
70594#line 394
70595  __cil_tmp43 = (unsigned long )tmp___1;
70596#line 394
70597  start = start + __cil_tmp43;
70598  }
70599#line 398
70600  return (start);
70601}
70602}
70603#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"
70604static char *usb_dump_device_strings(char *start , char *end , struct usb_device *dev ) 
70605{ int tmp ;
70606  int tmp___0 ;
70607  int tmp___1 ;
70608  unsigned long __cil_tmp7 ;
70609  unsigned long __cil_tmp8 ;
70610  char *__cil_tmp9 ;
70611  unsigned long __cil_tmp10 ;
70612  char *__cil_tmp11 ;
70613  unsigned long __cil_tmp12 ;
70614  char const   *__cil_tmp13 ;
70615  char *__cil_tmp14 ;
70616  unsigned long __cil_tmp15 ;
70617  unsigned long __cil_tmp16 ;
70618  unsigned long __cil_tmp17 ;
70619  char *__cil_tmp18 ;
70620  unsigned long __cil_tmp19 ;
70621  char *__cil_tmp20 ;
70622  unsigned long __cil_tmp21 ;
70623  char const   *__cil_tmp22 ;
70624  char *__cil_tmp23 ;
70625  unsigned long __cil_tmp24 ;
70626  unsigned long __cil_tmp25 ;
70627  unsigned long __cil_tmp26 ;
70628  char *__cil_tmp27 ;
70629  unsigned long __cil_tmp28 ;
70630  char *__cil_tmp29 ;
70631  unsigned long __cil_tmp30 ;
70632  char const   *__cil_tmp31 ;
70633  char *__cil_tmp32 ;
70634  unsigned long __cil_tmp33 ;
70635
70636  {
70637  {
70638#line 407
70639  __cil_tmp7 = (unsigned long )end;
70640#line 407
70641  __cil_tmp8 = (unsigned long )start;
70642#line 407
70643  if (__cil_tmp8 > __cil_tmp7) {
70644#line 408
70645    return (start);
70646  } else {
70647
70648  }
70649  }
70650  {
70651#line 409
70652  __cil_tmp9 = (char *)0;
70653#line 409
70654  __cil_tmp10 = (unsigned long )__cil_tmp9;
70655#line 409
70656  __cil_tmp11 = dev->manufacturer;
70657#line 409
70658  __cil_tmp12 = (unsigned long )__cil_tmp11;
70659#line 409
70660  if (__cil_tmp12 != __cil_tmp10) {
70661    {
70662#line 410
70663    __cil_tmp13 = (char const   *)(& format_string_manufacturer);
70664#line 410
70665    __cil_tmp14 = dev->manufacturer;
70666#line 410
70667    tmp = sprintf(start, __cil_tmp13, __cil_tmp14);
70668#line 410
70669    __cil_tmp15 = (unsigned long )tmp;
70670#line 410
70671    start = start + __cil_tmp15;
70672    }
70673  } else {
70674
70675  }
70676  }
70677  {
70678#line 412
70679  __cil_tmp16 = (unsigned long )end;
70680#line 412
70681  __cil_tmp17 = (unsigned long )start;
70682#line 412
70683  if (__cil_tmp17 > __cil_tmp16) {
70684#line 413
70685    goto out;
70686  } else {
70687
70688  }
70689  }
70690  {
70691#line 414
70692  __cil_tmp18 = (char *)0;
70693#line 414
70694  __cil_tmp19 = (unsigned long )__cil_tmp18;
70695#line 414
70696  __cil_tmp20 = dev->product;
70697#line 414
70698  __cil_tmp21 = (unsigned long )__cil_tmp20;
70699#line 414
70700  if (__cil_tmp21 != __cil_tmp19) {
70701    {
70702#line 415
70703    __cil_tmp22 = (char const   *)(& format_string_product);
70704#line 415
70705    __cil_tmp23 = dev->product;
70706#line 415
70707    tmp___0 = sprintf(start, __cil_tmp22, __cil_tmp23);
70708#line 415
70709    __cil_tmp24 = (unsigned long )tmp___0;
70710#line 415
70711    start = start + __cil_tmp24;
70712    }
70713  } else {
70714
70715  }
70716  }
70717  {
70718#line 416
70719  __cil_tmp25 = (unsigned long )end;
70720#line 416
70721  __cil_tmp26 = (unsigned long )start;
70722#line 416
70723  if (__cil_tmp26 > __cil_tmp25) {
70724#line 417
70725    goto out;
70726  } else {
70727
70728  }
70729  }
70730  {
70731#line 419
70732  __cil_tmp27 = (char *)0;
70733#line 419
70734  __cil_tmp28 = (unsigned long )__cil_tmp27;
70735#line 419
70736  __cil_tmp29 = dev->serial;
70737#line 419
70738  __cil_tmp30 = (unsigned long )__cil_tmp29;
70739#line 419
70740  if (__cil_tmp30 != __cil_tmp28) {
70741    {
70742#line 420
70743    __cil_tmp31 = (char const   *)(& format_string_serialnumber);
70744#line 420
70745    __cil_tmp32 = dev->serial;
70746#line 420
70747    tmp___1 = sprintf(start, __cil_tmp31, __cil_tmp32);
70748#line 420
70749    __cil_tmp33 = (unsigned long )tmp___1;
70750#line 420
70751    start = start + __cil_tmp33;
70752    }
70753  } else {
70754
70755  }
70756  }
70757  out: ;
70758#line 424
70759  return (start);
70760}
70761}
70762#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"
70763static char *usb_dump_desc(char *start , char *end , struct usb_device *dev ) 
70764{ int i ;
70765  unsigned long __cil_tmp5 ;
70766  unsigned long __cil_tmp6 ;
70767  struct usb_device_descriptor *__cil_tmp7 ;
70768  struct usb_device_descriptor  const  *__cil_tmp8 ;
70769  unsigned long __cil_tmp9 ;
70770  unsigned long __cil_tmp10 ;
70771  unsigned long __cil_tmp11 ;
70772  unsigned long __cil_tmp12 ;
70773  enum usb_device_speed __cil_tmp13 ;
70774  int __cil_tmp14 ;
70775  unsigned long __cil_tmp15 ;
70776  struct usb_host_config *__cil_tmp16 ;
70777  struct usb_host_config  const  *__cil_tmp17 ;
70778  struct usb_host_config  const  *__cil_tmp18 ;
70779  struct usb_host_config *__cil_tmp19 ;
70780  unsigned long __cil_tmp20 ;
70781  unsigned long __cil_tmp21 ;
70782  struct usb_host_config *__cil_tmp22 ;
70783  struct usb_host_config *__cil_tmp23 ;
70784  unsigned long __cil_tmp24 ;
70785  int __cil_tmp25 ;
70786  __u8 __cil_tmp26 ;
70787  int __cil_tmp27 ;
70788
70789  {
70790  {
70791#line 431
70792  __cil_tmp5 = (unsigned long )end;
70793#line 431
70794  __cil_tmp6 = (unsigned long )start;
70795#line 431
70796  if (__cil_tmp6 > __cil_tmp5) {
70797#line 432
70798    return (start);
70799  } else {
70800
70801  }
70802  }
70803  {
70804#line 434
70805  __cil_tmp7 = & dev->descriptor;
70806#line 434
70807  __cil_tmp8 = (struct usb_device_descriptor  const  *)__cil_tmp7;
70808#line 434
70809  start = usb_dump_device_descriptor(start, end, __cil_tmp8);
70810  }
70811  {
70812#line 436
70813  __cil_tmp9 = (unsigned long )end;
70814#line 436
70815  __cil_tmp10 = (unsigned long )start;
70816#line 436
70817  if (__cil_tmp10 > __cil_tmp9) {
70818#line 437
70819    return (start);
70820  } else {
70821
70822  }
70823  }
70824  {
70825#line 439
70826  start = usb_dump_device_strings(start, end, dev);
70827#line 441
70828  i = 0;
70829  }
70830#line 441
70831  goto ldv_27750;
70832  ldv_27749: ;
70833  {
70834#line 442
70835  __cil_tmp11 = (unsigned long )end;
70836#line 442
70837  __cil_tmp12 = (unsigned long )start;
70838#line 442
70839  if (__cil_tmp12 > __cil_tmp11) {
70840#line 443
70841    return (start);
70842  } else {
70843
70844  }
70845  }
70846  {
70847#line 444
70848  __cil_tmp13 = dev->speed;
70849#line 444
70850  __cil_tmp14 = (int )__cil_tmp13;
70851#line 444
70852  __cil_tmp15 = (unsigned long )i;
70853#line 444
70854  __cil_tmp16 = dev->config;
70855#line 444
70856  __cil_tmp17 = (struct usb_host_config  const  *)__cil_tmp16;
70857#line 444
70858  __cil_tmp18 = __cil_tmp17 + __cil_tmp15;
70859#line 444
70860  __cil_tmp19 = dev->actconfig;
70861#line 444
70862  __cil_tmp20 = (unsigned long )__cil_tmp19;
70863#line 444
70864  __cil_tmp21 = (unsigned long )i;
70865#line 444
70866  __cil_tmp22 = dev->config;
70867#line 444
70868  __cil_tmp23 = __cil_tmp22 + __cil_tmp21;
70869#line 444
70870  __cil_tmp24 = (unsigned long )__cil_tmp23;
70871#line 444
70872  __cil_tmp25 = __cil_tmp24 == __cil_tmp20;
70873#line 444
70874  start = usb_dump_config(__cil_tmp14, start, end, __cil_tmp18, __cil_tmp25);
70875#line 441
70876  i = i + 1;
70877  }
70878  ldv_27750: ;
70879  {
70880#line 441
70881  __cil_tmp26 = dev->descriptor.bNumConfigurations;
70882#line 441
70883  __cil_tmp27 = (int )__cil_tmp26;
70884#line 441
70885  if (__cil_tmp27 > i) {
70886#line 442
70887    goto ldv_27749;
70888  } else {
70889#line 444
70890    goto ldv_27751;
70891  }
70892  }
70893  ldv_27751: ;
70894#line 449
70895  return (start);
70896}
70897}
70898#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"
70899static ssize_t usb_device_dump(char **buffer , size_t *nbytes , loff_t *skip_bytes ,
70900                               loff_t *file_offset , struct usb_device *usbdev , struct usb_bus *bus ,
70901                               int level , int index , int count ) 
70902{ int chix ;
70903  int ret ;
70904  int cnt ;
70905  int parent_devnum ;
70906  char *pages_start ;
70907  char *data_end ;
70908  char *speed ;
70909  unsigned int length ;
70910  ssize_t total_written ;
70911  unsigned long tmp ;
70912  int tmp___0 ;
70913  int max ;
70914  int tmp___1 ;
70915  int tmp___2 ;
70916  int tmp___3 ;
70917  struct usb_device *childdev ;
70918  ssize_t tmp___4 ;
70919  size_t __cil_tmp27 ;
70920  char *__cil_tmp28 ;
70921  unsigned long __cil_tmp29 ;
70922  unsigned long __cil_tmp30 ;
70923  struct usb_device *__cil_tmp31 ;
70924  unsigned long __cil_tmp32 ;
70925  struct usb_device *__cil_tmp33 ;
70926  unsigned long __cil_tmp34 ;
70927  struct usb_device *__cil_tmp35 ;
70928  int __cil_tmp36 ;
70929  struct usb_device *__cil_tmp37 ;
70930  enum usb_device_speed __cil_tmp38 ;
70931  unsigned int __cil_tmp39 ;
70932  int __cil_tmp40 ;
70933  enum usb_device_speed __cil_tmp41 ;
70934  unsigned int __cil_tmp42 ;
70935  int __cil_tmp43 ;
70936  enum usb_device_speed __cil_tmp44 ;
70937  unsigned int __cil_tmp45 ;
70938  int __cil_tmp46 ;
70939  enum usb_device_speed __cil_tmp47 ;
70940  unsigned int __cil_tmp48 ;
70941  int __cil_tmp49 ;
70942  enum usb_device_speed __cil_tmp50 ;
70943  unsigned int __cil_tmp51 ;
70944  int __cil_tmp52 ;
70945  enum usb_device_speed __cil_tmp53 ;
70946  unsigned int __cil_tmp54 ;
70947  int __cil_tmp55 ;
70948  char const   *__cil_tmp56 ;
70949  int __cil_tmp57 ;
70950  int __cil_tmp58 ;
70951  int __cil_tmp59 ;
70952  unsigned long __cil_tmp60 ;
70953  enum usb_device_speed __cil_tmp61 ;
70954  unsigned int __cil_tmp62 ;
70955  enum usb_device_speed __cil_tmp63 ;
70956  unsigned int __cil_tmp64 ;
70957  char const   *__cil_tmp65 ;
70958  int __cil_tmp66 ;
70959  int __cil_tmp67 ;
70960  int __cil_tmp68 ;
70961  int __cil_tmp69 ;
70962  int __cil_tmp70 ;
70963  int __cil_tmp71 ;
70964  int __cil_tmp72 ;
70965  int __cil_tmp73 ;
70966  unsigned long __cil_tmp74 ;
70967  char *__cil_tmp75 ;
70968  unsigned long __cil_tmp76 ;
70969  char *__cil_tmp77 ;
70970  unsigned long __cil_tmp78 ;
70971  unsigned long __cil_tmp79 ;
70972  long __cil_tmp80 ;
70973  unsigned int __cil_tmp81 ;
70974  long __cil_tmp82 ;
70975  unsigned int __cil_tmp83 ;
70976  loff_t __cil_tmp84 ;
70977  loff_t __cil_tmp85 ;
70978  loff_t __cil_tmp86 ;
70979  unsigned int __cil_tmp87 ;
70980  size_t __cil_tmp88 ;
70981  size_t __cil_tmp89 ;
70982  size_t __cil_tmp90 ;
70983  char *__cil_tmp91 ;
70984  void *__cil_tmp92 ;
70985  loff_t __cil_tmp93 ;
70986  unsigned long __cil_tmp94 ;
70987  void const   *__cil_tmp95 ;
70988  void const   *__cil_tmp96 ;
70989  unsigned long __cil_tmp97 ;
70990  size_t __cil_tmp98 ;
70991  size_t __cil_tmp99 ;
70992  loff_t __cil_tmp100 ;
70993  loff_t __cil_tmp101 ;
70994  ssize_t __cil_tmp102 ;
70995  unsigned long __cil_tmp103 ;
70996  char *__cil_tmp104 ;
70997  loff_t __cil_tmp105 ;
70998  loff_t __cil_tmp106 ;
70999  unsigned long __cil_tmp107 ;
71000  struct usb_device *__cil_tmp108 ;
71001  unsigned long __cil_tmp109 ;
71002  unsigned long __cil_tmp110 ;
71003  struct device *__cil_tmp111 ;
71004  int __cil_tmp112 ;
71005  struct device *__cil_tmp113 ;
71006  ssize_t __cil_tmp114 ;
71007  int __cil_tmp115 ;
71008
71009  {
71010#line 502
71011  cnt = 0;
71012#line 503
71013  parent_devnum = 0;
71014#line 506
71015  total_written = 0L;
71016  {
71017#line 509
71018  __cil_tmp27 = *nbytes;
71019#line 509
71020  if (__cil_tmp27 == 0UL) {
71021#line 510
71022    return (0L);
71023  } else {
71024
71025  }
71026  }
71027#line 512
71028  if (level > 6) {
71029#line 513
71030    return (0L);
71031  } else {
71032
71033  }
71034  {
71035#line 516
71036  tmp = __get_free_pages(16U, 1U);
71037#line 516
71038  pages_start = (char *)tmp;
71039  }
71040  {
71041#line 517
71042  __cil_tmp28 = (char *)0;
71043#line 517
71044  __cil_tmp29 = (unsigned long )__cil_tmp28;
71045#line 517
71046  __cil_tmp30 = (unsigned long )pages_start;
71047#line 517
71048  if (__cil_tmp30 == __cil_tmp29) {
71049#line 518
71050    return (-12L);
71051  } else {
71052
71053  }
71054  }
71055  {
71056#line 520
71057  __cil_tmp31 = (struct usb_device *)0;
71058#line 520
71059  __cil_tmp32 = (unsigned long )__cil_tmp31;
71060#line 520
71061  __cil_tmp33 = usbdev->parent;
71062#line 520
71063  __cil_tmp34 = (unsigned long )__cil_tmp33;
71064#line 520
71065  if (__cil_tmp34 != __cil_tmp32) {
71066    {
71067#line 520
71068    __cil_tmp35 = usbdev->parent;
71069#line 520
71070    __cil_tmp36 = __cil_tmp35->devnum;
71071#line 520
71072    if (__cil_tmp36 != -1) {
71073#line 521
71074      __cil_tmp37 = usbdev->parent;
71075#line 521
71076      parent_devnum = __cil_tmp37->devnum;
71077    } else {
71078
71079    }
71080    }
71081  } else {
71082
71083  }
71084  }
71085  {
71086#line 527
71087  __cil_tmp38 = usbdev->speed;
71088#line 527
71089  __cil_tmp39 = (unsigned int )__cil_tmp38;
71090#line 527
71091  __cil_tmp40 = (int )__cil_tmp39;
71092#line 527
71093  if (__cil_tmp40 == 1) {
71094#line 527
71095    goto case_1;
71096  } else {
71097    {
71098#line 529
71099    __cil_tmp41 = usbdev->speed;
71100#line 529
71101    __cil_tmp42 = (unsigned int )__cil_tmp41;
71102#line 529
71103    __cil_tmp43 = (int )__cil_tmp42;
71104#line 529
71105    if (__cil_tmp43 == 0) {
71106#line 529
71107      goto case_0;
71108    } else {
71109      {
71110#line 530
71111      __cil_tmp44 = usbdev->speed;
71112#line 530
71113      __cil_tmp45 = (unsigned int )__cil_tmp44;
71114#line 530
71115      __cil_tmp46 = (int )__cil_tmp45;
71116#line 530
71117      if (__cil_tmp46 == 2) {
71118#line 530
71119        goto case_2;
71120      } else {
71121        {
71122#line 532
71123        __cil_tmp47 = usbdev->speed;
71124#line 532
71125        __cil_tmp48 = (unsigned int )__cil_tmp47;
71126#line 532
71127        __cil_tmp49 = (int )__cil_tmp48;
71128#line 532
71129        if (__cil_tmp49 == 4) {
71130#line 532
71131          goto case_4;
71132        } else {
71133          {
71134#line 533
71135          __cil_tmp50 = usbdev->speed;
71136#line 533
71137          __cil_tmp51 = (unsigned int )__cil_tmp50;
71138#line 533
71139          __cil_tmp52 = (int )__cil_tmp51;
71140#line 533
71141          if (__cil_tmp52 == 3) {
71142#line 533
71143            goto case_3;
71144          } else {
71145            {
71146#line 535
71147            __cil_tmp53 = usbdev->speed;
71148#line 535
71149            __cil_tmp54 = (unsigned int )__cil_tmp53;
71150#line 535
71151            __cil_tmp55 = (int )__cil_tmp54;
71152#line 535
71153            if (__cil_tmp55 == 5) {
71154#line 535
71155              goto case_5;
71156            } else {
71157#line 537
71158              goto switch_default;
71159#line 526
71160              if (0) {
71161                case_1: 
71162#line 528
71163                speed = (char *)"1.5";
71164#line 528
71165                goto ldv_27773;
71166                case_0: ;
71167                case_2: 
71168#line 531
71169                speed = (char *)"12";
71170#line 531
71171                goto ldv_27773;
71172                case_4: ;
71173                case_3: 
71174#line 534
71175                speed = (char *)"480";
71176#line 534
71177                goto ldv_27773;
71178                case_5: 
71179#line 536
71180                speed = (char *)"5000";
71181#line 536
71182                goto ldv_27773;
71183                switch_default: 
71184#line 538
71185                speed = (char *)"??";
71186              } else {
71187
71188              }
71189            }
71190            }
71191          }
71192          }
71193        }
71194        }
71195      }
71196      }
71197    }
71198    }
71199  }
71200  }
71201  ldv_27773: 
71202  {
71203#line 540
71204  __cil_tmp56 = (char const   *)(& format_topo);
71205#line 540
71206  __cil_tmp57 = bus->busnum;
71207#line 540
71208  __cil_tmp58 = usbdev->devnum;
71209#line 540
71210  __cil_tmp59 = usbdev->maxchild;
71211#line 540
71212  tmp___0 = sprintf(pages_start, __cil_tmp56, __cil_tmp57, level, parent_devnum, index,
71213                    count, __cil_tmp58, speed, __cil_tmp59);
71214#line 540
71215  __cil_tmp60 = (unsigned long )tmp___0;
71216#line 540
71217  data_end = pages_start + __cil_tmp60;
71218  }
71219#line 551
71220  if (level == 0) {
71221    {
71222#line 555
71223    __cil_tmp61 = usbdev->speed;
71224#line 555
71225    __cil_tmp62 = (unsigned int )__cil_tmp61;
71226#line 555
71227    if (__cil_tmp62 == 3U) {
71228#line 557
71229      max = 800;
71230    } else {
71231      {
71232#line 555
71233      __cil_tmp63 = usbdev->speed;
71234#line 555
71235      __cil_tmp64 = (unsigned int )__cil_tmp63;
71236#line 555
71237      if (__cil_tmp64 == 5U) {
71238#line 557
71239        max = 800;
71240      } else {
71241#line 559
71242        max = 900;
71243      }
71244      }
71245    }
71246    }
71247    {
71248#line 565
71249    __cil_tmp65 = (char const   *)(& format_bandwidth);
71250#line 565
71251    __cil_tmp66 = bus->bandwidth_allocated;
71252#line 565
71253    __cil_tmp67 = max / 2;
71254#line 565
71255    __cil_tmp68 = bus->bandwidth_allocated;
71256#line 565
71257    __cil_tmp69 = __cil_tmp68 * 100;
71258#line 565
71259    __cil_tmp70 = __cil_tmp69 + __cil_tmp67;
71260#line 565
71261    __cil_tmp71 = __cil_tmp70 / max;
71262#line 565
71263    __cil_tmp72 = bus->bandwidth_int_reqs;
71264#line 565
71265    __cil_tmp73 = bus->bandwidth_isoc_reqs;
71266#line 565
71267    tmp___1 = sprintf(data_end, __cil_tmp65, __cil_tmp66, max, __cil_tmp71, __cil_tmp72,
71268                      __cil_tmp73);
71269#line 565
71270    __cil_tmp74 = (unsigned long )tmp___1;
71271#line 565
71272    data_end = data_end + __cil_tmp74;
71273    }
71274  } else {
71275
71276  }
71277  {
71278#line 573
71279  __cil_tmp75 = pages_start + 7936U;
71280#line 573
71281  data_end = usb_dump_desc(data_end, __cil_tmp75, usbdev);
71282  }
71283  {
71284#line 576
71285  __cil_tmp76 = (unsigned long )data_end;
71286#line 576
71287  __cil_tmp77 = pages_start + 7936U;
71288#line 576
71289  __cil_tmp78 = (unsigned long )__cil_tmp77;
71290#line 576
71291  if (__cil_tmp78 < __cil_tmp76) {
71292    {
71293#line 577
71294    tmp___2 = sprintf(data_end, "(truncated)\n");
71295#line 577
71296    __cil_tmp79 = (unsigned long )tmp___2;
71297#line 577
71298    data_end = data_end + __cil_tmp79;
71299    }
71300  } else {
71301
71302  }
71303  }
71304#line 579
71305  __cil_tmp80 = (long )pages_start;
71306#line 579
71307  __cil_tmp81 = (unsigned int )__cil_tmp80;
71308#line 579
71309  __cil_tmp82 = (long )data_end;
71310#line 579
71311  __cil_tmp83 = (unsigned int )__cil_tmp82;
71312#line 579
71313  length = __cil_tmp83 - __cil_tmp81;
71314  {
71315#line 581
71316  __cil_tmp84 = *skip_bytes;
71317#line 581
71318  __cil_tmp85 = (loff_t )length;
71319#line 581
71320  if (__cil_tmp85 > __cil_tmp84) {
71321#line 582
71322    __cil_tmp86 = *skip_bytes;
71323#line 582
71324    __cil_tmp87 = (unsigned int )__cil_tmp86;
71325#line 582
71326    length = length - __cil_tmp87;
71327    {
71328#line 583
71329    __cil_tmp88 = *nbytes;
71330#line 583
71331    __cil_tmp89 = (size_t )length;
71332#line 583
71333    if (__cil_tmp89 > __cil_tmp88) {
71334#line 584
71335      __cil_tmp90 = *nbytes;
71336#line 584
71337      length = (unsigned int )__cil_tmp90;
71338    } else {
71339
71340    }
71341    }
71342    {
71343#line 585
71344    __cil_tmp91 = *buffer;
71345#line 585
71346    __cil_tmp92 = (void *)__cil_tmp91;
71347#line 585
71348    __cil_tmp93 = *skip_bytes;
71349#line 585
71350    __cil_tmp94 = (unsigned long )__cil_tmp93;
71351#line 585
71352    __cil_tmp95 = (void const   *)pages_start;
71353#line 585
71354    __cil_tmp96 = __cil_tmp95 + __cil_tmp94;
71355#line 585
71356    tmp___3 = copy_to_user(__cil_tmp92, __cil_tmp96, length);
71357    }
71358#line 585
71359    if (tmp___3 != 0) {
71360      {
71361#line 586
71362      __cil_tmp97 = (unsigned long )pages_start;
71363#line 586
71364      free_pages(__cil_tmp97, 1U);
71365      }
71366#line 587
71367      return (-14L);
71368    } else {
71369
71370    }
71371#line 589
71372    __cil_tmp98 = (size_t )length;
71373#line 589
71374    __cil_tmp99 = *nbytes;
71375#line 589
71376    *nbytes = __cil_tmp99 - __cil_tmp98;
71377#line 590
71378    __cil_tmp100 = (loff_t )length;
71379#line 590
71380    __cil_tmp101 = *file_offset;
71381#line 590
71382    *file_offset = __cil_tmp101 + __cil_tmp100;
71383#line 591
71384    __cil_tmp102 = (ssize_t )length;
71385#line 591
71386    total_written = __cil_tmp102 + total_written;
71387#line 592
71388    __cil_tmp103 = (unsigned long )length;
71389#line 592
71390    __cil_tmp104 = *buffer;
71391#line 592
71392    *buffer = __cil_tmp104 + __cil_tmp103;
71393#line 593
71394    *skip_bytes = 0LL;
71395  } else {
71396#line 595
71397    __cil_tmp105 = (loff_t )length;
71398#line 595
71399    __cil_tmp106 = *skip_bytes;
71400#line 595
71401    *skip_bytes = __cil_tmp106 - __cil_tmp105;
71402  }
71403  }
71404  {
71405#line 597
71406  __cil_tmp107 = (unsigned long )pages_start;
71407#line 597
71408  free_pages(__cil_tmp107, 1U);
71409#line 600
71410  chix = 0;
71411  }
71412#line 600
71413  goto ldv_27783;
71414  ldv_27782: 
71415#line 601
71416  childdev = usbdev->children[chix];
71417  {
71418#line 603
71419  __cil_tmp108 = (struct usb_device *)0;
71420#line 603
71421  __cil_tmp109 = (unsigned long )__cil_tmp108;
71422#line 603
71423  __cil_tmp110 = (unsigned long )childdev;
71424#line 603
71425  if (__cil_tmp110 != __cil_tmp109) {
71426    {
71427#line 604
71428    __cil_tmp111 = & childdev->dev;
71429#line 604
71430    device_lock(__cil_tmp111);
71431#line 605
71432    cnt = cnt + 1;
71433#line 605
71434    __cil_tmp112 = level + 1;
71435#line 605
71436    tmp___4 = usb_device_dump(buffer, nbytes, skip_bytes, file_offset, childdev, bus,
71437                              __cil_tmp112, chix, cnt);
71438#line 605
71439    ret = (int )tmp___4;
71440#line 608
71441    __cil_tmp113 = & childdev->dev;
71442#line 608
71443    device_unlock(__cil_tmp113);
71444    }
71445#line 609
71446    if (ret == -14) {
71447#line 610
71448      return (total_written);
71449    } else {
71450
71451    }
71452#line 611
71453    __cil_tmp114 = (ssize_t )ret;
71454#line 611
71455    total_written = __cil_tmp114 + total_written;
71456  } else {
71457
71458  }
71459  }
71460#line 600
71461  chix = chix + 1;
71462  ldv_27783: ;
71463  {
71464#line 600
71465  __cil_tmp115 = usbdev->maxchild;
71466#line 600
71467  if (__cil_tmp115 > chix) {
71468#line 601
71469    goto ldv_27782;
71470  } else {
71471#line 603
71472    goto ldv_27784;
71473  }
71474  }
71475  ldv_27784: ;
71476#line 614
71477  return (total_written);
71478}
71479}
71480#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"
71481static ssize_t usb_device_read(struct file *file , char *buf , size_t nbytes , loff_t *ppos ) 
71482{ struct usb_bus *bus ;
71483  ssize_t ret ;
71484  ssize_t total_written ;
71485  loff_t skip_bytes ;
71486  unsigned long flag ;
71487  unsigned long roksum ;
71488  struct thread_info *tmp ;
71489  long tmp___0 ;
71490  struct list_head  const  *__mptr ;
71491  struct list_head  const  *__mptr___0 ;
71492  loff_t __cil_tmp15 ;
71493  int __cil_tmp16 ;
71494  long __cil_tmp17 ;
71495  struct usb_bus *__cil_tmp18 ;
71496  struct usb_device *__cil_tmp19 ;
71497  unsigned long __cil_tmp20 ;
71498  struct usb_device *__cil_tmp21 ;
71499  unsigned long __cil_tmp22 ;
71500  struct usb_device *__cil_tmp23 ;
71501  struct device *__cil_tmp24 ;
71502  struct usb_device *__cil_tmp25 ;
71503  struct usb_device *__cil_tmp26 ;
71504  struct device *__cil_tmp27 ;
71505  struct list_head *__cil_tmp28 ;
71506  struct usb_bus *__cil_tmp29 ;
71507  unsigned long __cil_tmp30 ;
71508  struct list_head *__cil_tmp31 ;
71509  unsigned long __cil_tmp32 ;
71510
71511  {
71512#line 621
71513  total_written = 0L;
71514#line 622
71515  skip_bytes = *ppos;
71516  {
71517#line 624
71518  __cil_tmp15 = *ppos;
71519#line 624
71520  if (__cil_tmp15 < 0LL) {
71521#line 625
71522    return (-22L);
71523  } else {
71524
71525  }
71526  }
71527#line 626
71528  if (nbytes == 0UL) {
71529#line 627
71530    return (0L);
71531  } else {
71532
71533  }
71534  {
71535#line 628
71536  tmp = current_thread_info();
71537#line 628
71538  __asm__  ("add %3,%1 ; sbb %0,%0 ; cmp %1,%4 ; sbb $0,%0": "=&r" (flag), "=r" (roksum): "1" (buf),
71539            "g" ((long )nbytes), "rm" (tmp->addr_limit.seg));
71540#line 628
71541  __cil_tmp16 = flag == 0UL;
71542#line 628
71543  __cil_tmp17 = (long )__cil_tmp16;
71544#line 628
71545  tmp___0 = __builtin_expect(__cil_tmp17, 1L);
71546  }
71547#line 628
71548  if (tmp___0 == 0L) {
71549#line 629
71550    return (-14L);
71551  } else {
71552
71553  }
71554  {
71555#line 631
71556  mutex_lock_nested(& usb_bus_list_lock, 0U);
71557#line 633
71558  __mptr = (struct list_head  const  *)usb_bus_list.next;
71559#line 633
71560  __cil_tmp18 = (struct usb_bus *)__mptr;
71561#line 633
71562  bus = __cil_tmp18 + 1152921504606846904UL;
71563  }
71564#line 633
71565  goto ldv_27804;
71566  ldv_27803: ;
71567  {
71568#line 635
71569  __cil_tmp19 = (struct usb_device *)0;
71570#line 635
71571  __cil_tmp20 = (unsigned long )__cil_tmp19;
71572#line 635
71573  __cil_tmp21 = bus->root_hub;
71574#line 635
71575  __cil_tmp22 = (unsigned long )__cil_tmp21;
71576#line 635
71577  if (__cil_tmp22 == __cil_tmp20) {
71578#line 636
71579    goto ldv_27802;
71580  } else {
71581
71582  }
71583  }
71584  {
71585#line 637
71586  __cil_tmp23 = bus->root_hub;
71587#line 637
71588  __cil_tmp24 = & __cil_tmp23->dev;
71589#line 637
71590  device_lock(__cil_tmp24);
71591#line 638
71592  __cil_tmp25 = bus->root_hub;
71593#line 638
71594  ret = usb_device_dump(& buf, & nbytes, & skip_bytes, ppos, __cil_tmp25, bus, 0,
71595                        0, 0);
71596#line 640
71597  __cil_tmp26 = bus->root_hub;
71598#line 640
71599  __cil_tmp27 = & __cil_tmp26->dev;
71600#line 640
71601  device_unlock(__cil_tmp27);
71602  }
71603#line 641
71604  if (ret < 0L) {
71605    {
71606#line 642
71607    mutex_unlock(& usb_bus_list_lock);
71608    }
71609#line 643
71610    return (ret);
71611  } else {
71612
71613  }
71614#line 645
71615  total_written = total_written + ret;
71616  ldv_27802: 
71617#line 633
71618  __cil_tmp28 = bus->bus_list.next;
71619#line 633
71620  __mptr___0 = (struct list_head  const  *)__cil_tmp28;
71621#line 633
71622  __cil_tmp29 = (struct usb_bus *)__mptr___0;
71623#line 633
71624  bus = __cil_tmp29 + 1152921504606846904UL;
71625  ldv_27804: ;
71626  {
71627#line 633
71628  __cil_tmp30 = (unsigned long )(& usb_bus_list);
71629#line 633
71630  __cil_tmp31 = & bus->bus_list;
71631#line 633
71632  __cil_tmp32 = (unsigned long )__cil_tmp31;
71633#line 633
71634  if (__cil_tmp32 != __cil_tmp30) {
71635#line 634
71636    goto ldv_27803;
71637  } else {
71638#line 636
71639    goto ldv_27805;
71640  }
71641  }
71642  ldv_27805: 
71643  {
71644#line 647
71645  mutex_unlock(& usb_bus_list_lock);
71646  }
71647#line 648
71648  return (total_written);
71649}
71650}
71651#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"
71652static unsigned int usb_device_poll(struct file *file , struct poll_table_struct *wait ) 
71653{ unsigned int event_count ;
71654  int tmp ;
71655  wait_queue_head_t *__cil_tmp5 ;
71656  atomic_t *__cil_tmp6 ;
71657  atomic_t const   *__cil_tmp7 ;
71658  u64 __cil_tmp8 ;
71659  u64 __cil_tmp9 ;
71660
71661  {
71662  {
71663#line 657
71664  __cil_tmp5 = & device_event.wait;
71665#line 657
71666  poll_wait(file, __cil_tmp5, wait);
71667#line 659
71668  __cil_tmp6 = & device_event.count;
71669#line 659
71670  __cil_tmp7 = (atomic_t const   *)__cil_tmp6;
71671#line 659
71672  tmp = atomic_read(__cil_tmp7);
71673#line 659
71674  event_count = (unsigned int )tmp;
71675  }
71676  {
71677#line 660
71678  __cil_tmp8 = (u64 )event_count;
71679#line 660
71680  __cil_tmp9 = file->f_version;
71681#line 660
71682  if (__cil_tmp9 != __cil_tmp8) {
71683#line 661
71684    file->f_version = (u64 )event_count;
71685#line 662
71686    return (65U);
71687  } else {
71688
71689  }
71690  }
71691#line 665
71692  return (0U);
71693}
71694}
71695#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"
71696static loff_t usb_device_lseek(struct file *file , loff_t offset , int orig ) 
71697{ loff_t ret ;
71698  struct dentry *__cil_tmp5 ;
71699  struct inode *__cil_tmp6 ;
71700  struct mutex *__cil_tmp7 ;
71701  loff_t __cil_tmp8 ;
71702  struct dentry *__cil_tmp9 ;
71703  struct inode *__cil_tmp10 ;
71704  struct mutex *__cil_tmp11 ;
71705
71706  {
71707  {
71708#line 672
71709  __cil_tmp5 = file->f_path.dentry;
71710#line 672
71711  __cil_tmp6 = __cil_tmp5->d_inode;
71712#line 672
71713  __cil_tmp7 = & __cil_tmp6->i_mutex;
71714#line 672
71715  mutex_lock_nested(__cil_tmp7, 0U);
71716  }
71717#line 675
71718  if (orig == 0) {
71719#line 675
71720    goto case_0;
71721  } else
71722#line 679
71723  if (orig == 1) {
71724#line 679
71725    goto case_1;
71726  } else
71727#line 683
71728  if (orig == 2) {
71729#line 683
71730    goto case_2;
71731  } else {
71732#line 684
71733    goto switch_default;
71734#line 674
71735    if (0) {
71736      case_0: 
71737#line 676
71738      file->f_pos = offset;
71739#line 677
71740      ret = file->f_pos;
71741#line 678
71742      goto ldv_27818;
71743      case_1: 
71744#line 680
71745      __cil_tmp8 = file->f_pos;
71746#line 680
71747      file->f_pos = __cil_tmp8 + offset;
71748#line 681
71749      ret = file->f_pos;
71750#line 682
71751      goto ldv_27818;
71752      case_2: ;
71753      switch_default: 
71754#line 685
71755      ret = -22LL;
71756    } else {
71757
71758    }
71759  }
71760  ldv_27818: 
71761  {
71762#line 688
71763  __cil_tmp9 = file->f_path.dentry;
71764#line 688
71765  __cil_tmp10 = __cil_tmp9->d_inode;
71766#line 688
71767  __cil_tmp11 = & __cil_tmp10->i_mutex;
71768#line 688
71769  mutex_unlock(__cil_tmp11);
71770  }
71771#line 689
71772  return (ret);
71773}
71774}
71775#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"
71776struct file_operations  const  usbfs_devices_fops  = 
71777#line 692
71778     {(struct module *)0, & usb_device_lseek, & usb_device_read, (ssize_t (*)(struct file * ,
71779                                                                            char const   * ,
71780                                                                            size_t  ,
71781                                                                            loff_t * ))0,
71782    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
71783    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
71784    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
71785                                              u64  , unsigned int  ) ))0, & usb_device_poll,
71786    (long (*)(struct file * , unsigned int  , unsigned long  ))0, (long (*)(struct file * ,
71787                                                                            unsigned int  ,
71788                                                                            unsigned long  ))0,
71789    (int (*)(struct file * , struct vm_area_struct * ))0, (int (*)(struct inode * ,
71790                                                                   struct file * ))0,
71791    (int (*)(struct file * , fl_owner_t  ))0, (int (*)(struct inode * , struct file * ))0,
71792    (int (*)(struct file * , int  ))0, (int (*)(struct kiocb * , int  ))0, (int (*)(int  ,
71793                                                                                    struct file * ,
71794                                                                                    int  ))0,
71795    (int (*)(struct file * , int  , struct file_lock * ))0, (ssize_t (*)(struct file * ,
71796                                                                         struct page * ,
71797                                                                         int  , size_t  ,
71798                                                                         loff_t * ,
71799                                                                         int  ))0,
71800    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
71801                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
71802                                                                       int  , struct file_lock * ))0,
71803    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
71804    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
71805    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file * ,
71806                                                                        int  , loff_t  ,
71807                                                                        loff_t  ))0};
71808#line 309 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/bitops.h"
71809__inline static int constant_test_bit(unsigned int nr , unsigned long const volatile   *addr ) 
71810{ int __cil_tmp3 ;
71811  int __cil_tmp4 ;
71812  unsigned int __cil_tmp5 ;
71813  unsigned long __cil_tmp6 ;
71814  unsigned long const volatile   *__cil_tmp7 ;
71815  unsigned long volatile   __cil_tmp8 ;
71816  unsigned long __cil_tmp9 ;
71817  unsigned long __cil_tmp10 ;
71818  int __cil_tmp11 ;
71819
71820  {
71821  {
71822#line 311
71823  __cil_tmp3 = (int )nr;
71824#line 311
71825  __cil_tmp4 = __cil_tmp3 & 63;
71826#line 311
71827  __cil_tmp5 = nr / 64U;
71828#line 311
71829  __cil_tmp6 = (unsigned long )__cil_tmp5;
71830#line 311
71831  __cil_tmp7 = addr + __cil_tmp6;
71832#line 311
71833  __cil_tmp8 = *__cil_tmp7;
71834#line 311
71835  __cil_tmp9 = (unsigned long )__cil_tmp8;
71836#line 311
71837  __cil_tmp10 = __cil_tmp9 >> __cil_tmp4;
71838#line 311
71839  __cil_tmp11 = (int )__cil_tmp10;
71840#line 311
71841  return (__cil_tmp11 & 1);
71842  }
71843}
71844}
71845#line 866 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/paravirt.h"
71846__inline static void arch_local_irq_enable(void) 
71847{ unsigned long __edi ;
71848  unsigned long __esi ;
71849  unsigned long __edx ;
71850  unsigned long __ecx ;
71851  unsigned long __eax ;
71852  long tmp ;
71853  void *__cil_tmp7 ;
71854  unsigned long __cil_tmp8 ;
71855  unsigned long __cil_tmp9 ;
71856  int __cil_tmp10 ;
71857  long __cil_tmp11 ;
71858
71859  {
71860  {
71861#line 868
71862  __edi = __edi;
71863#line 868
71864  __esi = __esi;
71865#line 868
71866  __edx = __edx;
71867#line 868
71868  __ecx = __ecx;
71869#line 868
71870  __eax = __eax;
71871#line 868
71872  __cil_tmp7 = (void *)0;
71873#line 868
71874  __cil_tmp8 = (unsigned long )__cil_tmp7;
71875#line 868
71876  __cil_tmp9 = (unsigned long )pv_irq_ops.irq_enable.func;
71877#line 868
71878  __cil_tmp10 = __cil_tmp9 == __cil_tmp8;
71879#line 868
71880  __cil_tmp11 = (long )__cil_tmp10;
71881#line 868
71882  tmp = __builtin_expect(__cil_tmp11, 0L);
71883  }
71884#line 868
71885  if (tmp != 0L) {
71886#line 868
71887    __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"),
71888                         "i" (868), "i" (12UL));
71889    ldv_4733: ;
71890#line 868
71891    goto ldv_4733;
71892  } else {
71893
71894  }
71895#line 868
71896  __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),
71897                       [paravirt_opptr] "i" (& pv_irq_ops.irq_enable.func), [paravirt_clobber] "i" (1): "memory",
71898                       "cc");
71899#line 870
71900  return;
71901}
71902}
71903#line 113 "include/linux/ioport.h"
71904extern struct resource ioport_resource ;
71905#line 114
71906extern struct resource iomem_resource ;
71907#line 156
71908extern struct resource *__request_region(struct resource * , resource_size_t  , resource_size_t  ,
71909                                         char const   * , int  ) ;
71910#line 167
71911extern void __release_region(struct resource * , resource_size_t  , resource_size_t  ) ;
71912#line 546 "include/linux/pm.h"
71913extern void __suspend_report_result(char const   * , void * , int  ) ;
71914#line 176 "/anthill/stuff/tacas-comp/inst/current/envs/linux-3.0.1/linux-3.0.1/arch/x86/include/asm/io.h"
71915extern void *ioremap_nocache(resource_size_t  , unsigned long  ) ;
71916#line 189
71917extern void iounmap(void volatile   * ) ;
71918#line 128 "include/linux/pci.h"
71919extern char const   *pci_power_names[] ;
71920#line 130 "include/linux/pci.h"
71921__inline static char const   *pci_power_name(pci_power_t state ) 
71922{ 
71923
71924  {
71925#line 132
71926  return (pci_power_names[state + 1]);
71927}
71928}
71929#line 707
71930extern struct pci_dev *pci_get_device(unsigned int  , unsigned int  , struct pci_dev * ) ;
71931#line 764
71932extern int pci_enable_device(struct pci_dev * ) ;
71933#line 781
71934extern void pci_disable_device(struct pci_dev * ) ;
71935#line 782
71936extern void pci_set_master(struct pci_dev * ) ;
71937#line 813
71938extern int pci_save_state(struct pci_dev * ) ;
71939#line 828
71940extern int pci_prepare_to_sleep(struct pci_dev * ) ;
71941#line 829
71942extern int pci_back_from_sleep(struct pci_dev * ) ;
71943#line 830
71944extern bool pci_dev_run_wake(struct pci_dev * ) ;
71945#line 1316 "include/linux/pci.h"
71946__inline static void *pci_get_drvdata(struct pci_dev *pdev ) 
71947{ void *tmp ;
71948  struct device *__cil_tmp3 ;
71949  struct device  const  *__cil_tmp4 ;
71950
71951  {
71952  {
71953#line 1318
71954  __cil_tmp3 = & pdev->dev;
71955#line 1318
71956  __cil_tmp4 = (struct device  const  *)__cil_tmp3;
71957#line 1318
71958  tmp = dev_get_drvdata(__cil_tmp4);
71959  }
71960#line 1318
71961  return (tmp);
71962}
71963}
71964#line 1329 "include/linux/pci.h"
71965__inline static char const   *pci_name(struct pci_dev  const  *pdev ) 
71966{ char const   *tmp ;
71967  struct device  const  *__cil_tmp3 ;
71968
71969  {
71970  {
71971#line 1331
71972  __cil_tmp3 = & pdev->dev;
71973#line 1331
71974  tmp = dev_name(__cil_tmp3);
71975  }
71976#line 1331
71977  return (tmp);
71978}
71979}
71980#line 127 "include/linux/hardirq.h"
71981extern void synchronize_irq(unsigned int  ) ;
71982#line 392 "include/linux/usb/hcd.h"
71983int usb_hcd_pci_probe(struct pci_dev *dev , struct pci_device_id  const  *id ) ;
71984#line 394
71985void usb_hcd_pci_remove(struct pci_dev *dev ) ;
71986#line 395
71987void usb_hcd_pci_shutdown(struct pci_dev *dev ) ;
71988#line 398
71989struct dev_pm_ops  const  usb_hcd_pci_pm_ops ;
71990#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"
71991static struct mutex companions_mutex  =    {{1}, {{{{0U}, 3735899821U, 4294967295U, (void *)1152921504606846975UL, {(struct lock_class_key *)0,
71992                                                                            {(struct lock_class *)0,
71993                                                                             (struct lock_class *)0},
71994                                                                            "companions_mutex.wait_lock",
71995                                                                            0, 0UL}}}},
71996    {& companions_mutex.wait_list, & companions_mutex.wait_list}, (struct task_struct *)0,
71997    (char const   *)0, (void *)(& companions_mutex), {(struct lock_class_key *)0,
71998                                                      {(struct lock_class *)0, (struct lock_class *)0},
71999                                                      "companions_mutex", 0, 0UL}};
72000#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"
72001static void companion_common(struct pci_dev *pdev , struct usb_hcd *hcd , enum companion_action action ) 
72002{ struct pci_dev *companion ;
72003  struct usb_hcd *companion_hcd ;
72004  unsigned int slot ;
72005  void *tmp ;
72006  char const   *tmp___0 ;
72007  char const   *tmp___1 ;
72008  unsigned int __cil_tmp10 ;
72009  unsigned int __cil_tmp11 ;
72010  struct pci_bus *__cil_tmp12 ;
72011  unsigned long __cil_tmp13 ;
72012  struct pci_bus *__cil_tmp14 ;
72013  unsigned long __cil_tmp15 ;
72014  unsigned int __cil_tmp16 ;
72015  unsigned int __cil_tmp17 ;
72016  unsigned int __cil_tmp18 ;
72017  struct usb_hcd *__cil_tmp19 ;
72018  unsigned long __cil_tmp20 ;
72019  unsigned long __cil_tmp21 ;
72020  unsigned int __cil_tmp22 ;
72021  unsigned int __cil_tmp23 ;
72022  unsigned int __cil_tmp24 ;
72023  struct device *__cil_tmp25 ;
72024  struct device  const  *__cil_tmp26 ;
72025  struct device *__cil_tmp27 ;
72026  struct device  const  *__cil_tmp28 ;
72027  unsigned int __cil_tmp29 ;
72028  unsigned int __cil_tmp30 ;
72029  unsigned int __cil_tmp31 ;
72030  unsigned int __cil_tmp32 ;
72031  int __cil_tmp33 ;
72032  unsigned int __cil_tmp34 ;
72033  int __cil_tmp35 ;
72034  unsigned int __cil_tmp36 ;
72035  int __cil_tmp37 ;
72036  struct device *__cil_tmp38 ;
72037  struct device  const  *__cil_tmp39 ;
72038  struct device *__cil_tmp40 ;
72039  struct device  const  *__cil_tmp41 ;
72040  struct device *__cil_tmp42 ;
72041  struct device *__cil_tmp43 ;
72042  struct pci_dev *__cil_tmp44 ;
72043  unsigned long __cil_tmp45 ;
72044  unsigned long __cil_tmp46 ;
72045
72046  {
72047#line 69
72048  __cil_tmp10 = pdev->devfn;
72049#line 69
72050  __cil_tmp11 = __cil_tmp10 >> 3;
72051#line 69
72052  slot = __cil_tmp11 & 31U;
72053#line 75
72054  companion = (struct pci_dev *)0;
72055#line 76
72056  goto ldv_28626;
72057  ldv_28631: ;
72058  {
72059#line 77
72060  __cil_tmp12 = pdev->bus;
72061#line 77
72062  __cil_tmp13 = (unsigned long )__cil_tmp12;
72063#line 77
72064  __cil_tmp14 = companion->bus;
72065#line 77
72066  __cil_tmp15 = (unsigned long )__cil_tmp14;
72067#line 77
72068  if (__cil_tmp15 != __cil_tmp13) {
72069#line 79
72070    goto ldv_28626;
72071  } else {
72072    {
72073#line 77
72074    __cil_tmp16 = companion->devfn;
72075#line 77
72076    __cil_tmp17 = __cil_tmp16 >> 3;
72077#line 77
72078    __cil_tmp18 = __cil_tmp17 & 31U;
72079#line 77
72080    if (__cil_tmp18 != slot) {
72081#line 79
72082      goto ldv_28626;
72083    } else {
72084
72085    }
72086    }
72087  }
72088  }
72089  {
72090#line 81
72091  tmp = pci_get_drvdata(companion);
72092#line 81
72093  companion_hcd = (struct usb_hcd *)tmp;
72094  }
72095  {
72096#line 82
72097  __cil_tmp19 = (struct usb_hcd *)0;
72098#line 82
72099  __cil_tmp20 = (unsigned long )__cil_tmp19;
72100#line 82
72101  __cil_tmp21 = (unsigned long )companion_hcd;
72102#line 82
72103  if (__cil_tmp21 == __cil_tmp20) {
72104#line 83
72105    goto ldv_28626;
72106  } else {
72107
72108  }
72109  }
72110  {
72111#line 93
72112  __cil_tmp22 = pdev->class;
72113#line 93
72114  if (__cil_tmp22 == 787216U) {
72115#line 93
72116    goto _L___1;
72117  } else {
72118    {
72119#line 93
72120    __cil_tmp23 = pdev->class;
72121#line 93
72122    if (__cil_tmp23 == 787200U) {
72123      _L___1: 
72124      {
72125#line 93
72126      __cil_tmp24 = companion->class;
72127#line 93
72128      if (__cil_tmp24 == 787232U) {
72129        {
72130#line 96
72131        __cil_tmp25 = & pdev->dev;
72132#line 96
72133        __cil_tmp26 = (struct device  const  *)__cil_tmp25;
72134#line 96
72135        tmp___0 = dev_name(__cil_tmp26);
72136#line 96
72137        __cil_tmp27 = & companion->dev;
72138#line 96
72139        __cil_tmp28 = (struct device  const  *)__cil_tmp27;
72140#line 96
72141        dev_printk("<7>", __cil_tmp28, "HS companion for %s\n", tmp___0);
72142#line 98
72143        hcd->self.hs_companion = & companion_hcd->self;
72144        }
72145      } else {
72146#line 93
72147        goto _L___0;
72148      }
72149      }
72150    } else {
72151      _L___0: 
72152      {
72153#line 100
72154      __cil_tmp29 = pdev->class;
72155#line 100
72156      if (__cil_tmp29 == 787232U) {
72157        {
72158#line 100
72159        __cil_tmp30 = companion->class;
72160#line 100
72161        if (__cil_tmp30 == 787216U) {
72162#line 100
72163          goto _L;
72164        } else {
72165          {
72166#line 100
72167          __cil_tmp31 = companion->class;
72168#line 100
72169          if (__cil_tmp31 == 787200U) {
72170            _L: 
72171            {
72172#line 104
72173            __cil_tmp32 = (unsigned int )action;
72174#line 104
72175            __cil_tmp33 = (int )__cil_tmp32;
72176#line 104
72177            if (__cil_tmp33 == 0) {
72178#line 104
72179              goto case_0;
72180            } else {
72181              {
72182#line 109
72183              __cil_tmp34 = (unsigned int )action;
72184#line 109
72185              __cil_tmp35 = (int )__cil_tmp34;
72186#line 109
72187              if (__cil_tmp35 == 1) {
72188#line 109
72189                goto case_1;
72190              } else {
72191                {
72192#line 112
72193                __cil_tmp36 = (unsigned int )action;
72194#line 112
72195                __cil_tmp37 = (int )__cil_tmp36;
72196#line 112
72197                if (__cil_tmp37 == 2) {
72198#line 112
72199                  goto case_2;
72200                } else
72201#line 103
72202                if (0) {
72203                  case_0: 
72204                  {
72205#line 105
72206                  __cil_tmp38 = & companion->dev;
72207#line 105
72208                  __cil_tmp39 = (struct device  const  *)__cil_tmp38;
72209#line 105
72210                  tmp___1 = dev_name(__cil_tmp39);
72211#line 105
72212                  __cil_tmp40 = & pdev->dev;
72213#line 105
72214                  __cil_tmp41 = (struct device  const  *)__cil_tmp40;
72215#line 105
72216                  dev_printk("<7>", __cil_tmp41, "HS companion for %s\n", tmp___1);
72217#line 107
72218                  companion_hcd->self.hs_companion = & hcd->self;
72219                  }
72220#line 108
72221                  goto ldv_28628;
72222                  case_1: 
72223#line 110
72224                  companion_hcd->self.hs_companion = (struct usb_bus *)0;
72225#line 111
72226                  goto ldv_28628;
72227                  case_2: 
72228                  {
72229#line 113
72230                  __cil_tmp42 = & pdev->dev;
72231#line 113
72232                  __cil_tmp43 = & companion->dev;
72233#line 113
72234                  device_pm_wait_for_dev(__cil_tmp42, __cil_tmp43);
72235                  }
72236#line 115
72237                  goto ldv_28628;
72238                } else {
72239
72240                }
72241                }
72242              }
72243              }
72244            }
72245            }
72246            ldv_28628: ;
72247          } else {
72248
72249          }
72250          }
72251        }
72252        }
72253      } else {
72254
72255      }
72256      }
72257    }
72258    }
72259  }
72260  }
72261  ldv_28626: 
72262  {
72263#line 76
72264  companion = pci_get_device(4294967295U, 4294967295U, companion);
72265  }
72266  {
72267#line 76
72268  __cil_tmp44 = (struct pci_dev *)0;
72269#line 76
72270  __cil_tmp45 = (unsigned long )__cil_tmp44;
72271#line 76
72272  __cil_tmp46 = (unsigned long )companion;
72273#line 76
72274  if (__cil_tmp46 != __cil_tmp45) {
72275#line 77
72276    goto ldv_28631;
72277  } else {
72278#line 79
72279    goto ldv_28632;
72280  }
72281  }
72282  ldv_28632: ;
72283#line 81
72284  return;
72285}
72286}
72287#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"
72288static void set_hs_companion(struct pci_dev *pdev , struct usb_hcd *hcd ) 
72289{ struct device *__cil_tmp3 ;
72290  void *__cil_tmp4 ;
72291  enum companion_action __cil_tmp5 ;
72292
72293  {
72294  {
72295#line 123
72296  mutex_lock_nested(& companions_mutex, 0U);
72297#line 124
72298  __cil_tmp3 = & pdev->dev;
72299#line 124
72300  __cil_tmp4 = (void *)hcd;
72301#line 124
72302  dev_set_drvdata(__cil_tmp3, __cil_tmp4);
72303#line 125
72304  __cil_tmp5 = (enum companion_action )0;
72305#line 125
72306  companion_common(pdev, hcd, __cil_tmp5);
72307#line 126
72308  mutex_unlock(& companions_mutex);
72309  }
72310#line 127
72311  return;
72312}
72313}
72314#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"
72315static void clear_hs_companion(struct pci_dev *pdev , struct usb_hcd *hcd ) 
72316{ struct device *__cil_tmp3 ;
72317  void *__cil_tmp4 ;
72318  unsigned int __cil_tmp5 ;
72319  unsigned int __cil_tmp6 ;
72320  enum companion_action __cil_tmp7 ;
72321
72322  {
72323  {
72324#line 131
72325  mutex_lock_nested(& companions_mutex, 0U);
72326#line 132
72327  __cil_tmp3 = & pdev->dev;
72328#line 132
72329  __cil_tmp4 = (void *)0;
72330#line 132
72331  dev_set_drvdata(__cil_tmp3, __cil_tmp4);
72332  }
72333  {
72334#line 135
72335  __cil_tmp5 = pdev->class;
72336#line 135
72337  if (__cil_tmp5 == 787216U) {
72338#line 136
72339    hcd->self.hs_companion = (struct usb_bus *)0;
72340  } else {
72341    {
72342#line 135
72343    __cil_tmp6 = pdev->class;
72344#line 135
72345    if (__cil_tmp6 == 787200U) {
72346#line 136
72347      hcd->self.hs_companion = (struct usb_bus *)0;
72348    } else {
72349      {
72350#line 140
72351      __cil_tmp7 = (enum companion_action )1;
72352#line 140
72353      companion_common(pdev, hcd, __cil_tmp7);
72354      }
72355    }
72356    }
72357  }
72358  }
72359  {
72360#line 141
72361  mutex_unlock(& companions_mutex);
72362  }
72363#line 142
72364  return;
72365}
72366}
72367#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"
72368static void wait_for_companions(struct pci_dev *pdev , struct usb_hcd *hcd ) 
72369{ unsigned int __cil_tmp3 ;
72370  enum companion_action __cil_tmp4 ;
72371
72372  {
72373  {
72374#line 150
72375  __cil_tmp3 = pdev->class;
72376#line 150
72377  if (__cil_tmp3 == 787232U) {
72378    {
72379#line 151
72380    __cil_tmp4 = (enum companion_action )2;
72381#line 151
72382    companion_common(pdev, hcd, __cil_tmp4);
72383    }
72384  } else {
72385
72386  }
72387  }
72388#line 152
72389  return;
72390}
72391}
72392#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"
72393int usb_hcd_pci_probe(struct pci_dev *dev , struct pci_device_id  const  *id ) 
72394{ struct hc_driver *driver ;
72395  struct usb_hcd *hcd ;
72396  int retval ;
72397  int tmp ;
72398  int tmp___0 ;
72399  char const   *tmp___1 ;
72400  char const   *tmp___2 ;
72401  struct resource *tmp___3 ;
72402  int region ;
72403  struct resource *tmp___4 ;
72404  bool tmp___5 ;
72405  char const   *tmp___6 ;
72406  struct pci_device_id  const  *__cil_tmp15 ;
72407  unsigned long __cil_tmp16 ;
72408  unsigned long __cil_tmp17 ;
72409  kernel_ulong_t __cil_tmp18 ;
72410  struct hc_driver *__cil_tmp19 ;
72411  unsigned long __cil_tmp20 ;
72412  unsigned long __cil_tmp21 ;
72413  unsigned int __cil_tmp22 ;
72414  struct pci_dev  const  *__cil_tmp23 ;
72415  struct device *__cil_tmp24 ;
72416  struct device  const  *__cil_tmp25 ;
72417  struct pci_dev  const  *__cil_tmp26 ;
72418  struct hc_driver  const  *__cil_tmp27 ;
72419  struct device *__cil_tmp28 ;
72420  struct usb_hcd *__cil_tmp29 ;
72421  unsigned long __cil_tmp30 ;
72422  unsigned long __cil_tmp31 ;
72423  int __cil_tmp32 ;
72424  resource_size_t __cil_tmp33 ;
72425  resource_size_t __cil_tmp34 ;
72426  resource_size_t __cil_tmp35 ;
72427  resource_size_t __cil_tmp36 ;
72428  resource_size_t __cil_tmp37 ;
72429  resource_size_t __cil_tmp38 ;
72430  resource_size_t __cil_tmp39 ;
72431  resource_size_t __cil_tmp40 ;
72432  resource_size_t __cil_tmp41 ;
72433  u64 __cil_tmp42 ;
72434  u64 __cil_tmp43 ;
72435  char const   *__cil_tmp44 ;
72436  struct resource *__cil_tmp45 ;
72437  unsigned long __cil_tmp46 ;
72438  unsigned long __cil_tmp47 ;
72439  struct device *__cil_tmp48 ;
72440  struct device  const  *__cil_tmp49 ;
72441  u64 __cil_tmp50 ;
72442  u64 __cil_tmp51 ;
72443  unsigned long __cil_tmp52 ;
72444  void *__cil_tmp53 ;
72445  unsigned long __cil_tmp54 ;
72446  void *__cil_tmp55 ;
72447  unsigned long __cil_tmp56 ;
72448  struct device *__cil_tmp57 ;
72449  struct device  const  *__cil_tmp58 ;
72450  unsigned long __cil_tmp59 ;
72451  unsigned long __cil_tmp60 ;
72452  resource_size_t __cil_tmp61 ;
72453  resource_size_t __cil_tmp62 ;
72454  resource_size_t __cil_tmp63 ;
72455  resource_size_t __cil_tmp64 ;
72456  resource_size_t __cil_tmp65 ;
72457  resource_size_t __cil_tmp66 ;
72458  resource_size_t __cil_tmp67 ;
72459  resource_size_t __cil_tmp68 ;
72460  resource_size_t __cil_tmp69 ;
72461  u64 __cil_tmp70 ;
72462  u64 __cil_tmp71 ;
72463  char const   *__cil_tmp72 ;
72464  struct resource *__cil_tmp73 ;
72465  unsigned long __cil_tmp74 ;
72466  unsigned long __cil_tmp75 ;
72467  struct device *__cil_tmp76 ;
72468  struct device  const  *__cil_tmp77 ;
72469  unsigned int __cil_tmp78 ;
72470  struct device *__cil_tmp79 ;
72471  int __cil_tmp80 ;
72472  void *__cil_tmp81 ;
72473  void volatile   *__cil_tmp82 ;
72474  u64 __cil_tmp83 ;
72475  u64 __cil_tmp84 ;
72476  u64 __cil_tmp85 ;
72477  u64 __cil_tmp86 ;
72478  struct pci_dev  const  *__cil_tmp87 ;
72479  struct device *__cil_tmp88 ;
72480  struct device  const  *__cil_tmp89 ;
72481
72482  {
72483  {
72484#line 185
72485  tmp = usb_disabled();
72486  }
72487#line 185
72488  if (tmp != 0) {
72489#line 186
72490    return (-19);
72491  } else {
72492
72493  }
72494  {
72495#line 188
72496  __cil_tmp15 = (struct pci_device_id  const  *)0;
72497#line 188
72498  __cil_tmp16 = (unsigned long )__cil_tmp15;
72499#line 188
72500  __cil_tmp17 = (unsigned long )id;
72501#line 188
72502  if (__cil_tmp17 == __cil_tmp16) {
72503#line 189
72504    return (-22);
72505  } else {
72506
72507  }
72508  }
72509#line 190
72510  __cil_tmp18 = id->driver_data;
72511#line 190
72512  driver = (struct hc_driver *)__cil_tmp18;
72513  {
72514#line 191
72515  __cil_tmp19 = (struct hc_driver *)0;
72516#line 191
72517  __cil_tmp20 = (unsigned long )__cil_tmp19;
72518#line 191
72519  __cil_tmp21 = (unsigned long )driver;
72520#line 191
72521  if (__cil_tmp21 == __cil_tmp20) {
72522#line 192
72523    return (-22);
72524  } else {
72525
72526  }
72527  }
72528  {
72529#line 194
72530  tmp___0 = pci_enable_device(dev);
72531  }
72532#line 194
72533  if (tmp___0 < 0) {
72534#line 195
72535    return (-19);
72536  } else {
72537
72538  }
72539#line 196
72540  dev->current_state = 0;
72541  {
72542#line 198
72543  __cil_tmp22 = dev->irq;
72544#line 198
72545  if (__cil_tmp22 == 0U) {
72546    {
72547#line 199
72548    __cil_tmp23 = (struct pci_dev  const  *)dev;
72549#line 199
72550    tmp___1 = pci_name(__cil_tmp23);
72551#line 199
72552    __cil_tmp24 = & dev->dev;
72553#line 199
72554    __cil_tmp25 = (struct device  const  *)__cil_tmp24;
72555#line 199
72556    dev_err(__cil_tmp25, "Found HC with no IRQ.  Check BIOS/PCI %s setup!\n", tmp___1);
72557#line 202
72558    retval = -19;
72559    }
72560#line 203
72561    goto disable_pci;
72562  } else {
72563
72564  }
72565  }
72566  {
72567#line 206
72568  __cil_tmp26 = (struct pci_dev  const  *)dev;
72569#line 206
72570  tmp___2 = pci_name(__cil_tmp26);
72571#line 206
72572  __cil_tmp27 = (struct hc_driver  const  *)driver;
72573#line 206
72574  __cil_tmp28 = & dev->dev;
72575#line 206
72576  hcd = usb_create_hcd(__cil_tmp27, __cil_tmp28, tmp___2);
72577  }
72578  {
72579#line 207
72580  __cil_tmp29 = (struct usb_hcd *)0;
72581#line 207
72582  __cil_tmp30 = (unsigned long )__cil_tmp29;
72583#line 207
72584  __cil_tmp31 = (unsigned long )hcd;
72585#line 207
72586  if (__cil_tmp31 == __cil_tmp30) {
72587#line 208
72588    retval = -12;
72589#line 209
72590    goto disable_pci;
72591  } else {
72592
72593  }
72594  }
72595  {
72596#line 212
72597  __cil_tmp32 = driver->flags;
72598#line 212
72599  if (__cil_tmp32 & 1) {
72600#line 214
72601    hcd->rsrc_start = dev->resource[0].start;
72602    {
72603#line 215
72604    __cil_tmp33 = dev->resource[0].start;
72605#line 215
72606    if (__cil_tmp33 != 0ULL) {
72607#line 215
72608      __cil_tmp34 = dev->resource[0].start;
72609#line 215
72610      __cil_tmp35 = dev->resource[0].end;
72611#line 215
72612      __cil_tmp36 = __cil_tmp35 - __cil_tmp34;
72613#line 215
72614      hcd->rsrc_len = __cil_tmp36 + 1ULL;
72615    } else {
72616      {
72617#line 215
72618      __cil_tmp37 = dev->resource[0].start;
72619#line 215
72620      __cil_tmp38 = dev->resource[0].end;
72621#line 215
72622      if (__cil_tmp38 != __cil_tmp37) {
72623#line 215
72624        __cil_tmp39 = dev->resource[0].start;
72625#line 215
72626        __cil_tmp40 = dev->resource[0].end;
72627#line 215
72628        __cil_tmp41 = __cil_tmp40 - __cil_tmp39;
72629#line 215
72630        hcd->rsrc_len = __cil_tmp41 + 1ULL;
72631      } else {
72632#line 215
72633        hcd->rsrc_len = 0ULL;
72634      }
72635      }
72636    }
72637    }
72638    {
72639#line 216
72640    __cil_tmp42 = hcd->rsrc_start;
72641#line 216
72642    __cil_tmp43 = hcd->rsrc_len;
72643#line 216
72644    __cil_tmp44 = driver->description;
72645#line 216
72646    tmp___3 = __request_region(& iomem_resource, __cil_tmp42, __cil_tmp43, __cil_tmp44,
72647                               0);
72648    }
72649    {
72650#line 216
72651    __cil_tmp45 = (struct resource *)0;
72652#line 216
72653    __cil_tmp46 = (unsigned long )__cil_tmp45;
72654#line 216
72655    __cil_tmp47 = (unsigned long )tmp___3;
72656#line 216
72657    if (__cil_tmp47 == __cil_tmp46) {
72658      {
72659#line 218
72660      __cil_tmp48 = & dev->dev;
72661#line 218
72662      __cil_tmp49 = (struct device  const  *)__cil_tmp48;
72663#line 218
72664      dev_printk("<7>", __cil_tmp49, "controller already in use\n");
72665#line 219
72666      retval = -16;
72667      }
72668#line 220
72669      goto clear_companion;
72670    } else {
72671
72672    }
72673    }
72674    {
72675#line 222
72676    __cil_tmp50 = hcd->rsrc_start;
72677#line 222
72678    __cil_tmp51 = hcd->rsrc_len;
72679#line 222
72680    __cil_tmp52 = (unsigned long )__cil_tmp51;
72681#line 222
72682    hcd->regs = ioremap_nocache(__cil_tmp50, __cil_tmp52);
72683    }
72684    {
72685#line 223
72686    __cil_tmp53 = (void *)0;
72687#line 223
72688    __cil_tmp54 = (unsigned long )__cil_tmp53;
72689#line 223
72690    __cil_tmp55 = hcd->regs;
72691#line 223
72692    __cil_tmp56 = (unsigned long )__cil_tmp55;
72693#line 223
72694    if (__cil_tmp56 == __cil_tmp54) {
72695      {
72696#line 224
72697      __cil_tmp57 = & dev->dev;
72698#line 224
72699      __cil_tmp58 = (struct device  const  *)__cil_tmp57;
72700#line 224
72701      dev_printk("<7>", __cil_tmp58, "error mapping memory\n");
72702#line 225
72703      retval = -14;
72704      }
72705#line 226
72706      goto release_mem_region;
72707    } else {
72708
72709    }
72710    }
72711  } else {
72712#line 233
72713    region = 0;
72714#line 233
72715    goto ldv_28659;
72716    ldv_28658: ;
72717    {
72718#line 234
72719    __cil_tmp59 = dev->resource[region].flags;
72720#line 234
72721    __cil_tmp60 = __cil_tmp59 & 256UL;
72722#line 234
72723    if (__cil_tmp60 == 0UL) {
72724#line 236
72725      goto ldv_28656;
72726    } else {
72727
72728    }
72729    }
72730#line 238
72731    hcd->rsrc_start = dev->resource[region].start;
72732    {
72733#line 239
72734    __cil_tmp61 = dev->resource[region].start;
72735#line 239
72736    if (__cil_tmp61 != 0ULL) {
72737#line 239
72738      __cil_tmp62 = dev->resource[region].start;
72739#line 239
72740      __cil_tmp63 = dev->resource[region].end;
72741#line 239
72742      __cil_tmp64 = __cil_tmp63 - __cil_tmp62;
72743#line 239
72744      hcd->rsrc_len = __cil_tmp64 + 1ULL;
72745    } else {
72746      {
72747#line 239
72748      __cil_tmp65 = dev->resource[region].start;
72749#line 239
72750      __cil_tmp66 = dev->resource[region].end;
72751#line 239
72752      if (__cil_tmp66 != __cil_tmp65) {
72753#line 239
72754        __cil_tmp67 = dev->resource[region].start;
72755#line 239
72756        __cil_tmp68 = dev->resource[region].end;
72757#line 239
72758        __cil_tmp69 = __cil_tmp68 - __cil_tmp67;
72759#line 239
72760        hcd->rsrc_len = __cil_tmp69 + 1ULL;
72761      } else {
72762#line 239
72763        hcd->rsrc_len = 0ULL;
72764      }
72765      }
72766    }
72767    }
72768    {
72769#line 240
72770    __cil_tmp70 = hcd->rsrc_start;
72771#line 240
72772    __cil_tmp71 = hcd->rsrc_len;
72773#line 240
72774    __cil_tmp72 = driver->description;
72775#line 240
72776    tmp___4 = __request_region(& ioport_resource, __cil_tmp70, __cil_tmp71, __cil_tmp72,
72777                               0);
72778    }
72779    {
72780#line 240
72781    __cil_tmp73 = (struct resource *)0;
72782#line 240
72783    __cil_tmp74 = (unsigned long )__cil_tmp73;
72784#line 240
72785    __cil_tmp75 = (unsigned long )tmp___4;
72786#line 240
72787    if (__cil_tmp75 != __cil_tmp74) {
72788#line 242
72789      goto ldv_28657;
72790    } else {
72791
72792    }
72793    }
72794    ldv_28656: 
72795#line 233
72796    region = region + 1;
72797    ldv_28659: ;
72798#line 233
72799    if (region <= 5) {
72800#line 234
72801      goto ldv_28658;
72802    } else {
72803#line 236
72804      goto ldv_28657;
72805    }
72806    ldv_28657: ;
72807#line 244
72808    if (region == 6) {
72809      {
72810#line 245
72811      __cil_tmp76 = & dev->dev;
72812#line 245
72813      __cil_tmp77 = (struct device  const  *)__cil_tmp76;
72814#line 245
72815      dev_printk("<7>", __cil_tmp77, "no i/o regions available\n");
72816#line 246
72817      retval = -16;
72818      }
72819#line 247
72820      goto clear_companion;
72821    } else {
72822
72823    }
72824  }
72825  }
72826  {
72827#line 251
72828  pci_set_master(dev);
72829#line 253
72830  __cil_tmp78 = dev->irq;
72831#line 253
72832  retval = usb_add_hcd(hcd, __cil_tmp78, 160UL);
72833  }
72834#line 254
72835  if (retval != 0) {
72836#line 255
72837    goto unmap_registers;
72838  } else {
72839
72840  }
72841  {
72842#line 256
72843  set_hs_companion(dev, hcd);
72844#line 258
72845  tmp___5 = pci_dev_run_wake(dev);
72846  }
72847#line 258
72848  if ((int )tmp___5) {
72849    {
72850#line 259
72851    __cil_tmp79 = & dev->dev;
72852#line 259
72853    pm_runtime_put_noidle(__cil_tmp79);
72854    }
72855  } else {
72856
72857  }
72858#line 260
72859  return (retval);
72860  unmap_registers: ;
72861  {
72862#line 263
72863  __cil_tmp80 = driver->flags;
72864#line 263
72865  if (__cil_tmp80 & 1) {
72866    {
72867#line 264
72868    __cil_tmp81 = hcd->regs;
72869#line 264
72870    __cil_tmp82 = (void volatile   *)__cil_tmp81;
72871#line 264
72872    iounmap(__cil_tmp82);
72873    }
72874    release_mem_region: 
72875    {
72876#line 266
72877    __cil_tmp83 = hcd->rsrc_start;
72878#line 266
72879    __cil_tmp84 = hcd->rsrc_len;
72880#line 266
72881    __release_region(& iomem_resource, __cil_tmp83, __cil_tmp84);
72882    }
72883  } else {
72884    {
72885#line 268
72886    __cil_tmp85 = hcd->rsrc_start;
72887#line 268
72888    __cil_tmp86 = hcd->rsrc_len;
72889#line 268
72890    __release_region(& ioport_resource, __cil_tmp85, __cil_tmp86);
72891    }
72892  }
72893  }
72894  clear_companion: 
72895  {
72896#line 270
72897  clear_hs_companion(dev, hcd);
72898#line 271
72899  usb_put_hcd(hcd);
72900  }
72901  disable_pci: 
72902  {
72903#line 273
72904  pci_disable_device(dev);
72905#line 274
72906  __cil_tmp87 = (struct pci_dev  const  *)dev;
72907#line 274
72908  tmp___6 = pci_name(__cil_tmp87);
72909#line 274
72910  __cil_tmp88 = & dev->dev;
72911#line 274
72912  __cil_tmp89 = (struct device  const  *)__cil_tmp88;
72913#line 274
72914  dev_err(__cil_tmp89, "init %s fail, %d\n", tmp___6, retval);
72915  }
72916#line 275
72917  return (retval);
72918}
72919}
72920#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"
72921void usb_hcd_pci_remove(struct pci_dev *dev ) 
72922{ struct usb_hcd *hcd ;
72923  void *tmp ;
72924  bool tmp___0 ;
72925  struct usb_hcd *__cil_tmp5 ;
72926  unsigned long __cil_tmp6 ;
72927  unsigned long __cil_tmp7 ;
72928  struct device *__cil_tmp8 ;
72929  void *__cil_tmp9 ;
72930  struct hc_driver  const  *__cil_tmp10 ;
72931  int __cil_tmp11 ;
72932  int __cil_tmp12 ;
72933  void *__cil_tmp13 ;
72934  void volatile   *__cil_tmp14 ;
72935  u64 __cil_tmp15 ;
72936  u64 __cil_tmp16 ;
72937  u64 __cil_tmp17 ;
72938  u64 __cil_tmp18 ;
72939
72940  {
72941  {
72942#line 298
72943  tmp = pci_get_drvdata(dev);
72944#line 298
72945  hcd = (struct usb_hcd *)tmp;
72946  }
72947  {
72948#line 299
72949  __cil_tmp5 = (struct usb_hcd *)0;
72950#line 299
72951  __cil_tmp6 = (unsigned long )__cil_tmp5;
72952#line 299
72953  __cil_tmp7 = (unsigned long )hcd;
72954#line 299
72955  if (__cil_tmp7 == __cil_tmp6) {
72956#line 300
72957    return;
72958  } else {
72959
72960  }
72961  }
72962  {
72963#line 302
72964  tmp___0 = pci_dev_run_wake(dev);
72965  }
72966#line 302
72967  if ((int )tmp___0) {
72968    {
72969#line 303
72970    __cil_tmp8 = & dev->dev;
72971#line 303
72972    pm_runtime_get_noresume(__cil_tmp8);
72973    }
72974  } else {
72975
72976  }
72977  {
72978#line 309
72979  arch_local_irq_disable();
72980#line 309
72981  trace_hardirqs_off();
72982#line 310
72983  __cil_tmp9 = (void *)hcd;
72984#line 310
72985  usb_hcd_irq(0, __cil_tmp9);
72986#line 311
72987  trace_hardirqs_on();
72988#line 311
72989  arch_local_irq_enable();
72990#line 313
72991  usb_remove_hcd(hcd);
72992  }
72993  {
72994#line 314
72995  __cil_tmp10 = hcd->driver;
72996#line 314
72997  __cil_tmp11 = __cil_tmp10->flags;
72998#line 314
72999  __cil_tmp12 = (int )__cil_tmp11;
73000#line 314
73001  if (__cil_tmp12 & 1) {
73002    {
73003#line 315
73004    __cil_tmp13 = hcd->regs;
73005#line 315
73006    __cil_tmp14 = (void volatile   *)__cil_tmp13;
73007#line 315
73008    iounmap(__cil_tmp14);
73009#line 316
73010    __cil_tmp15 = hcd->rsrc_start;
73011#line 316
73012    __cil_tmp16 = hcd->rsrc_len;
73013#line 316
73014    __release_region(& iomem_resource, __cil_tmp15, __cil_tmp16);
73015    }
73016  } else {
73017    {
73018#line 318
73019    __cil_tmp17 = hcd->rsrc_start;
73020#line 318
73021    __cil_tmp18 = hcd->rsrc_len;
73022#line 318
73023    __release_region(& ioport_resource, __cil_tmp17, __cil_tmp18);
73024    }
73025  }
73026  }
73027  {
73028#line 320
73029  clear_hs_companion(dev, hcd);
73030#line 321
73031  usb_put_hcd(hcd);
73032#line 322
73033  pci_disable_device(dev);
73034  }
73035#line 323
73036  return;
73037}
73038}
73039#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"
73040void usb_hcd_pci_shutdown(struct pci_dev *dev ) 
73041{ struct usb_hcd *hcd ;
73042  void *tmp ;
73043  int tmp___0 ;
73044  struct usb_hcd *__cil_tmp5 ;
73045  unsigned long __cil_tmp6 ;
73046  unsigned long __cil_tmp7 ;
73047  unsigned long *__cil_tmp8 ;
73048  unsigned long const volatile   *__cil_tmp9 ;
73049  void (*__cil_tmp10)(struct usb_hcd * ) ;
73050  unsigned long __cil_tmp11 ;
73051  struct hc_driver  const  *__cil_tmp12 ;
73052  void (*__cil_tmp13)(struct usb_hcd * ) ;
73053  unsigned long __cil_tmp14 ;
73054  struct hc_driver  const  *__cil_tmp15 ;
73055  void (*__cil_tmp16)(struct usb_hcd * ) ;
73056
73057  {
73058  {
73059#line 334
73060  tmp = pci_get_drvdata(dev);
73061#line 334
73062  hcd = (struct usb_hcd *)tmp;
73063  }
73064  {
73065#line 335
73066  __cil_tmp5 = (struct usb_hcd *)0;
73067#line 335
73068  __cil_tmp6 = (unsigned long )__cil_tmp5;
73069#line 335
73070  __cil_tmp7 = (unsigned long )hcd;
73071#line 335
73072  if (__cil_tmp7 == __cil_tmp6) {
73073#line 336
73074    return;
73075  } else {
73076
73077  }
73078  }
73079  {
73080#line 338
73081  __cil_tmp8 = & hcd->flags;
73082#line 338
73083  __cil_tmp9 = (unsigned long const volatile   *)__cil_tmp8;
73084#line 338
73085  tmp___0 = constant_test_bit(0U, __cil_tmp9);
73086  }
73087#line 338
73088  if (tmp___0 != 0) {
73089    {
73090#line 338
73091    __cil_tmp10 = (void (* const  )(struct usb_hcd * ))0;
73092#line 338
73093    __cil_tmp11 = (unsigned long )__cil_tmp10;
73094#line 338
73095    __cil_tmp12 = hcd->driver;
73096#line 338
73097    __cil_tmp13 = __cil_tmp12->shutdown;
73098#line 338
73099    __cil_tmp14 = (unsigned long )__cil_tmp13;
73100#line 338
73101    if (__cil_tmp14 != __cil_tmp11) {
73102      {
73103#line 340
73104      __cil_tmp15 = hcd->driver;
73105#line 340
73106      __cil_tmp16 = __cil_tmp15->shutdown;
73107#line 340
73108      (*__cil_tmp16)(hcd);
73109#line 341
73110      pci_disable_device(dev);
73111      }
73112    } else {
73113
73114    }
73115    }
73116  } else {
73117
73118  }
73119#line 343
73120  return;
73121}
73122}
73123#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"
73124__inline static void powermac_set_asic(struct pci_dev *pci_dev , int enable ) 
73125{ 
73126
73127  {
73128#line 366
73129  return;
73130}
73131}
73132#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"
73133static int check_root_hub_suspended(struct device *dev ) 
73134{ struct pci_dev *pci_dev ;
73135  struct device  const  *__mptr ;
73136  struct usb_hcd *hcd ;
73137  void *tmp ;
73138  struct pci_dev *__cil_tmp6 ;
73139  unsigned long __cil_tmp7 ;
73140  unsigned long __cil_tmp8 ;
73141  struct device  const  *__cil_tmp9 ;
73142  struct usb_hcd *__cil_tmp10 ;
73143  unsigned long __cil_tmp11 ;
73144  struct usb_hcd *__cil_tmp12 ;
73145  unsigned long __cil_tmp13 ;
73146  unsigned long __cil_tmp14 ;
73147  unsigned long __cil_tmp15 ;
73148  struct device  const  *__cil_tmp16 ;
73149
73150  {
73151  {
73152#line 371
73153  __mptr = (struct device  const  *)dev;
73154#line 371
73155  __cil_tmp6 = (struct pci_dev *)__mptr;
73156#line 371
73157  pci_dev = __cil_tmp6 + 1152921504606846832UL;
73158#line 372
73159  tmp = pci_get_drvdata(pci_dev);
73160#line 372
73161  hcd = (struct usb_hcd *)tmp;
73162  }
73163  {
73164#line 374
73165  __cil_tmp7 = hcd->flags;
73166#line 374
73167  __cil_tmp8 = __cil_tmp7 & 32UL;
73168#line 374
73169  if (__cil_tmp8 != 0UL) {
73170    {
73171#line 375
73172    __cil_tmp9 = (struct device  const  *)dev;
73173#line 375
73174    dev_warn(__cil_tmp9, "Root hub is not suspended\n");
73175    }
73176#line 376
73177    return (-16);
73178  } else {
73179
73180  }
73181  }
73182  {
73183#line 378
73184  __cil_tmp10 = (struct usb_hcd *)0;
73185#line 378
73186  __cil_tmp11 = (unsigned long )__cil_tmp10;
73187#line 378
73188  __cil_tmp12 = hcd->shared_hcd;
73189#line 378
73190  __cil_tmp13 = (unsigned long )__cil_tmp12;
73191#line 378
73192  if (__cil_tmp13 != __cil_tmp11) {
73193#line 379
73194    hcd = hcd->shared_hcd;
73195    {
73196#line 380
73197    __cil_tmp14 = hcd->flags;
73198#line 380
73199    __cil_tmp15 = __cil_tmp14 & 32UL;
73200#line 380
73201    if (__cil_tmp15 != 0UL) {
73202      {
73203#line 381
73204      __cil_tmp16 = (struct device  const  *)dev;
73205#line 381
73206      dev_warn(__cil_tmp16, "Secondary root hub is not suspended\n");
73207      }
73208#line 382
73209      return (-16);
73210    } else {
73211
73212    }
73213    }
73214  } else {
73215
73216  }
73217  }
73218#line 385
73219  return (0);
73220}
73221}
73222#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"
73223static int suspend_common(struct device *dev , bool do_wakeup ) 
73224{ struct pci_dev *pci_dev ;
73225  struct device  const  *__mptr ;
73226  struct usb_hcd *hcd ;
73227  void *tmp ;
73228  int retval ;
73229  struct pci_dev *__cil_tmp8 ;
73230  int (*__cil_tmp9)(struct usb_hcd * , bool  ) ;
73231  unsigned long __cil_tmp10 ;
73232  struct hc_driver  const  *__cil_tmp11 ;
73233  int (*__cil_tmp12)(struct usb_hcd * , bool  ) ;
73234  unsigned long __cil_tmp13 ;
73235  unsigned long __cil_tmp14 ;
73236  unsigned long __cil_tmp15 ;
73237  unsigned long __cil_tmp16 ;
73238  unsigned long __cil_tmp17 ;
73239  struct usb_hcd *__cil_tmp18 ;
73240  unsigned long __cil_tmp19 ;
73241  struct usb_hcd *__cil_tmp20 ;
73242  unsigned long __cil_tmp21 ;
73243  struct usb_hcd *__cil_tmp22 ;
73244  unsigned long __cil_tmp23 ;
73245  unsigned long __cil_tmp24 ;
73246  struct hc_driver  const  *__cil_tmp25 ;
73247  int (*__cil_tmp26)(struct usb_hcd * , bool  ) ;
73248  int __cil_tmp27 ;
73249  bool __cil_tmp28 ;
73250  struct hc_driver  const  *__cil_tmp29 ;
73251  int (*__cil_tmp30)(struct usb_hcd * , bool  ) ;
73252  void *__cil_tmp31 ;
73253  unsigned long __cil_tmp32 ;
73254  unsigned long __cil_tmp33 ;
73255  struct usb_hcd *__cil_tmp34 ;
73256  unsigned long __cil_tmp35 ;
73257  struct usb_hcd *__cil_tmp36 ;
73258  unsigned long __cil_tmp37 ;
73259  struct usb_hcd *__cil_tmp38 ;
73260  unsigned long __cil_tmp39 ;
73261  unsigned long __cil_tmp40 ;
73262  int (*__cil_tmp41)(struct usb_hcd * , bool  ) ;
73263  unsigned long __cil_tmp42 ;
73264  struct hc_driver  const  *__cil_tmp43 ;
73265  int (*__cil_tmp44)(struct usb_hcd * , bool  ) ;
73266  unsigned long __cil_tmp45 ;
73267  struct hc_driver  const  *__cil_tmp46 ;
73268  int (*__cil_tmp47)(struct usb_hcd * , bool  ) ;
73269  bool __cil_tmp48 ;
73270  unsigned char *__cil_tmp49 ;
73271  unsigned char *__cil_tmp50 ;
73272  unsigned char __cil_tmp51 ;
73273  unsigned int __cil_tmp52 ;
73274  unsigned int __cil_tmp53 ;
73275
73276  {
73277  {
73278#line 390
73279  __mptr = (struct device  const  *)dev;
73280#line 390
73281  __cil_tmp8 = (struct pci_dev *)__mptr;
73282#line 390
73283  pci_dev = __cil_tmp8 + 1152921504606846832UL;
73284#line 391
73285  tmp = pci_get_drvdata(pci_dev);
73286#line 391
73287  hcd = (struct usb_hcd *)tmp;
73288#line 399
73289  retval = check_root_hub_suspended(dev);
73290  }
73291#line 400
73292  if (retval != 0) {
73293#line 401
73294    return (retval);
73295  } else {
73296
73297  }
73298  {
73299#line 403
73300  __cil_tmp9 = (int (* const  )(struct usb_hcd * , bool  ))0;
73301#line 403
73302  __cil_tmp10 = (unsigned long )__cil_tmp9;
73303#line 403
73304  __cil_tmp11 = hcd->driver;
73305#line 403
73306  __cil_tmp12 = __cil_tmp11->pci_suspend;
73307#line 403
73308  __cil_tmp13 = (unsigned long )__cil_tmp12;
73309#line 403
73310  if (__cil_tmp13 != __cil_tmp10) {
73311    {
73312#line 403
73313    __cil_tmp14 = hcd->flags;
73314#line 403
73315    __cil_tmp15 = __cil_tmp14 & 64UL;
73316#line 403
73317    if (__cil_tmp15 == 0UL) {
73318#line 407
73319      if ((int )do_wakeup) {
73320        {
73321#line 407
73322        __cil_tmp16 = hcd->flags;
73323#line 407
73324        __cil_tmp17 = __cil_tmp16 & 16UL;
73325#line 407
73326        if (__cil_tmp17 != 0UL) {
73327#line 408
73328          return (-16);
73329        } else {
73330
73331        }
73332        }
73333      } else {
73334
73335      }
73336#line 409
73337      if ((int )do_wakeup) {
73338        {
73339#line 409
73340        __cil_tmp18 = (struct usb_hcd *)0;
73341#line 409
73342        __cil_tmp19 = (unsigned long )__cil_tmp18;
73343#line 409
73344        __cil_tmp20 = hcd->shared_hcd;
73345#line 409
73346        __cil_tmp21 = (unsigned long )__cil_tmp20;
73347#line 409
73348        if (__cil_tmp21 != __cil_tmp19) {
73349          {
73350#line 409
73351          __cil_tmp22 = hcd->shared_hcd;
73352#line 409
73353          __cil_tmp23 = __cil_tmp22->flags;
73354#line 409
73355          __cil_tmp24 = __cil_tmp23 & 16UL;
73356#line 409
73357          if (__cil_tmp24 != 0UL) {
73358#line 411
73359            return (-16);
73360          } else {
73361
73362          }
73363          }
73364        } else {
73365
73366        }
73367        }
73368      } else {
73369
73370      }
73371      {
73372#line 412
73373      __cil_tmp25 = hcd->driver;
73374#line 412
73375      __cil_tmp26 = __cil_tmp25->pci_suspend;
73376#line 412
73377      __cil_tmp27 = (int )do_wakeup;
73378#line 412
73379      __cil_tmp28 = (bool )__cil_tmp27;
73380#line 412
73381      retval = (*__cil_tmp26)(hcd, __cil_tmp28);
73382#line 413
73383      __cil_tmp29 = hcd->driver;
73384#line 413
73385      __cil_tmp30 = __cil_tmp29->pci_suspend;
73386#line 413
73387      __cil_tmp31 = (void *)__cil_tmp30;
73388#line 413
73389      __suspend_report_result("suspend_common", __cil_tmp31, retval);
73390      }
73391#line 416
73392      if (retval == 0) {
73393#line 416
73394        if ((int )do_wakeup) {
73395          {
73396#line 416
73397          __cil_tmp32 = hcd->flags;
73398#line 416
73399          __cil_tmp33 = __cil_tmp32 & 16UL;
73400#line 416
73401          if (__cil_tmp33 != 0UL) {
73402#line 416
73403            goto _L;
73404          } else {
73405#line 416
73406            goto _L___1;
73407          }
73408          }
73409        } else {
73410#line 416
73411          goto _L___1;
73412        }
73413      } else
73414      _L___1: 
73415#line 416
73416      if (retval == 0) {
73417#line 416
73418        if ((int )do_wakeup) {
73419          {
73420#line 416
73421          __cil_tmp34 = (struct usb_hcd *)0;
73422#line 416
73423          __cil_tmp35 = (unsigned long )__cil_tmp34;
73424#line 416
73425          __cil_tmp36 = hcd->shared_hcd;
73426#line 416
73427          __cil_tmp37 = (unsigned long )__cil_tmp36;
73428#line 416
73429          if (__cil_tmp37 != __cil_tmp35) {
73430            {
73431#line 416
73432            __cil_tmp38 = hcd->shared_hcd;
73433#line 416
73434            __cil_tmp39 = __cil_tmp38->flags;
73435#line 416
73436            __cil_tmp40 = __cil_tmp39 & 16UL;
73437#line 416
73438            if (__cil_tmp40 != 0UL) {
73439              _L: 
73440              {
73441#line 419
73442              __cil_tmp41 = (int (* const  )(struct usb_hcd * , bool  ))0;
73443#line 419
73444              __cil_tmp42 = (unsigned long )__cil_tmp41;
73445#line 419
73446              __cil_tmp43 = hcd->driver;
73447#line 419
73448              __cil_tmp44 = __cil_tmp43->pci_resume;
73449#line 419
73450              __cil_tmp45 = (unsigned long )__cil_tmp44;
73451#line 419
73452              if (__cil_tmp45 != __cil_tmp42) {
73453                {
73454#line 420
73455                __cil_tmp46 = hcd->driver;
73456#line 420
73457                __cil_tmp47 = __cil_tmp46->pci_resume;
73458#line 420
73459                __cil_tmp48 = (bool )0;
73460#line 420
73461                (*__cil_tmp47)(hcd, __cil_tmp48);
73462                }
73463              } else {
73464
73465              }
73466              }
73467#line 421
73468              retval = -16;
73469            } else {
73470
73471            }
73472            }
73473          } else {
73474
73475          }
73476          }
73477        } else {
73478
73479        }
73480      } else {
73481
73482      }
73483#line 423
73484      if (retval != 0) {
73485#line 424
73486        return (retval);
73487      } else {
73488
73489      }
73490    } else {
73491
73492    }
73493    }
73494  } else {
73495
73496  }
73497  }
73498  {
73499#line 431
73500  __cil_tmp49 = (unsigned char *)hcd;
73501#line 431
73502  __cil_tmp50 = __cil_tmp49 + 408UL;
73503#line 431
73504  __cil_tmp51 = *__cil_tmp50;
73505#line 431
73506  __cil_tmp52 = (unsigned int )__cil_tmp51;
73507#line 431
73508  if (__cil_tmp52 == 0U) {
73509    {
73510#line 432
73511    __cil_tmp53 = pci_dev->irq;
73512#line 432
73513    synchronize_irq(__cil_tmp53);
73514    }
73515  } else {
73516
73517  }
73518  }
73519  {
73520#line 439
73521  pci_disable_device(pci_dev);
73522  }
73523#line 440
73524  return (retval);
73525}
73526}
73527#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"
73528static int resume_common(struct device *dev , int event ) 
73529{ struct pci_dev *pci_dev ;
73530  struct device  const  *__mptr ;
73531  struct usb_hcd *hcd ;
73532  void *tmp ;
73533  int retval ;
73534  struct pci_dev *__cil_tmp8 ;
73535  unsigned long __cil_tmp9 ;
73536  unsigned long __cil_tmp10 ;
73537  struct device  const  *__cil_tmp11 ;
73538  struct usb_hcd *__cil_tmp12 ;
73539  unsigned long __cil_tmp13 ;
73540  struct usb_hcd *__cil_tmp14 ;
73541  unsigned long __cil_tmp15 ;
73542  struct usb_hcd *__cil_tmp16 ;
73543  unsigned long __cil_tmp17 ;
73544  unsigned long __cil_tmp18 ;
73545  struct device  const  *__cil_tmp19 ;
73546  struct device  const  *__cil_tmp20 ;
73547  unsigned long *__cil_tmp21 ;
73548  unsigned long volatile   *__cil_tmp22 ;
73549  struct usb_hcd *__cil_tmp23 ;
73550  unsigned long __cil_tmp24 ;
73551  struct usb_hcd *__cil_tmp25 ;
73552  unsigned long __cil_tmp26 ;
73553  struct usb_hcd *__cil_tmp27 ;
73554  unsigned long *__cil_tmp28 ;
73555  unsigned long volatile   *__cil_tmp29 ;
73556  int (*__cil_tmp30)(struct usb_hcd * , bool  ) ;
73557  unsigned long __cil_tmp31 ;
73558  struct hc_driver  const  *__cil_tmp32 ;
73559  int (*__cil_tmp33)(struct usb_hcd * , bool  ) ;
73560  unsigned long __cil_tmp34 ;
73561  unsigned long __cil_tmp35 ;
73562  unsigned long __cil_tmp36 ;
73563  struct hc_driver  const  *__cil_tmp37 ;
73564  int (*__cil_tmp38)(struct usb_hcd * , bool  ) ;
73565  int __cil_tmp39 ;
73566  bool __cil_tmp40 ;
73567  struct device  const  *__cil_tmp41 ;
73568  struct usb_hcd *__cil_tmp42 ;
73569  unsigned long __cil_tmp43 ;
73570  struct usb_hcd *__cil_tmp44 ;
73571  unsigned long __cil_tmp45 ;
73572  struct usb_hcd *__cil_tmp46 ;
73573
73574  {
73575  {
73576#line 445
73577  __mptr = (struct device  const  *)dev;
73578#line 445
73579  __cil_tmp8 = (struct pci_dev *)__mptr;
73580#line 445
73581  pci_dev = __cil_tmp8 + 1152921504606846832UL;
73582#line 446
73583  tmp = pci_get_drvdata(pci_dev);
73584#line 446
73585  hcd = (struct usb_hcd *)tmp;
73586  }
73587  {
73588#line 449
73589  __cil_tmp9 = hcd->flags;
73590#line 449
73591  __cil_tmp10 = __cil_tmp9 & 32UL;
73592#line 449
73593  if (__cil_tmp10 != 0UL) {
73594    {
73595#line 452
73596    __cil_tmp11 = (struct device  const  *)dev;
73597#line 452
73598    dev_printk("<7>", __cil_tmp11, "can\'t resume, not suspended!\n");
73599    }
73600#line 453
73601    return (0);
73602  } else {
73603    {
73604#line 449
73605    __cil_tmp12 = (struct usb_hcd *)0;
73606#line 449
73607    __cil_tmp13 = (unsigned long )__cil_tmp12;
73608#line 449
73609    __cil_tmp14 = hcd->shared_hcd;
73610#line 449
73611    __cil_tmp15 = (unsigned long )__cil_tmp14;
73612#line 449
73613    if (__cil_tmp15 != __cil_tmp13) {
73614      {
73615#line 449
73616      __cil_tmp16 = hcd->shared_hcd;
73617#line 449
73618      __cil_tmp17 = __cil_tmp16->flags;
73619#line 449
73620      __cil_tmp18 = __cil_tmp17 & 32UL;
73621#line 449
73622      if (__cil_tmp18 != 0UL) {
73623        {
73624#line 452
73625        __cil_tmp19 = (struct device  const  *)dev;
73626#line 452
73627        dev_printk("<7>", __cil_tmp19, "can\'t resume, not suspended!\n");
73628        }
73629#line 453
73630        return (0);
73631      } else {
73632
73633      }
73634      }
73635    } else {
73636
73637    }
73638    }
73639  }
73640  }
73641  {
73642#line 456
73643  retval = pci_enable_device(pci_dev);
73644  }
73645#line 457
73646  if (retval < 0) {
73647    {
73648#line 458
73649    __cil_tmp20 = (struct device  const  *)dev;
73650#line 458
73651    dev_err(__cil_tmp20, "can\'t re-enable after resume, %d!\n", retval);
73652    }
73653#line 459
73654    return (retval);
73655  } else {
73656
73657  }
73658  {
73659#line 462
73660  pci_set_master(pci_dev);
73661#line 464
73662  __cil_tmp21 = & hcd->flags;
73663#line 464
73664  __cil_tmp22 = (unsigned long volatile   *)__cil_tmp21;
73665#line 464
73666  clear_bit(1, __cil_tmp22);
73667  }
73668  {
73669#line 465
73670  __cil_tmp23 = (struct usb_hcd *)0;
73671#line 465
73672  __cil_tmp24 = (unsigned long )__cil_tmp23;
73673#line 465
73674  __cil_tmp25 = hcd->shared_hcd;
73675#line 465
73676  __cil_tmp26 = (unsigned long )__cil_tmp25;
73677#line 465
73678  if (__cil_tmp26 != __cil_tmp24) {
73679    {
73680#line 466
73681    __cil_tmp27 = hcd->shared_hcd;
73682#line 466
73683    __cil_tmp28 = & __cil_tmp27->flags;
73684#line 466
73685    __cil_tmp29 = (unsigned long volatile   *)__cil_tmp28;
73686#line 466
73687    clear_bit(1, __cil_tmp29);
73688    }
73689  } else {
73690
73691  }
73692  }
73693  {
73694#line 468
73695  __cil_tmp30 = (int (* const  )(struct usb_hcd * , bool  ))0;
73696#line 468
73697  __cil_tmp31 = (unsigned long )__cil_tmp30;
73698#line 468
73699  __cil_tmp32 = hcd->driver;
73700#line 468
73701  __cil_tmp33 = __cil_tmp32->pci_resume;
73702#line 468
73703  __cil_tmp34 = (unsigned long )__cil_tmp33;
73704#line 468
73705  if (__cil_tmp34 != __cil_tmp31) {
73706    {
73707#line 468
73708    __cil_tmp35 = hcd->flags;
73709#line 468
73710    __cil_tmp36 = __cil_tmp35 & 64UL;
73711#line 468
73712    if (__cil_tmp36 == 0UL) {
73713#line 469
73714      if (event != 1040) {
73715        {
73716#line 470
73717        wait_for_companions(pci_dev, hcd);
73718        }
73719      } else {
73720
73721      }
73722      {
73723#line 472
73724      __cil_tmp37 = hcd->driver;
73725#line 472
73726      __cil_tmp38 = __cil_tmp37->pci_resume;
73727#line 472
73728      __cil_tmp39 = event == 64;
73729#line 472
73730      __cil_tmp40 = (bool )__cil_tmp39;
73731#line 472
73732      retval = (*__cil_tmp38)(hcd, __cil_tmp40);
73733      }
73734#line 474
73735      if (retval != 0) {
73736        {
73737#line 475
73738        __cil_tmp41 = (struct device  const  *)dev;
73739#line 475
73740        dev_err(__cil_tmp41, "PCI post-resume error %d!\n", retval);
73741        }
73742        {
73743#line 476
73744        __cil_tmp42 = (struct usb_hcd *)0;
73745#line 476
73746        __cil_tmp43 = (unsigned long )__cil_tmp42;
73747#line 476
73748        __cil_tmp44 = hcd->shared_hcd;
73749#line 476
73750        __cil_tmp45 = (unsigned long )__cil_tmp44;
73751#line 476
73752        if (__cil_tmp45 != __cil_tmp43) {
73753          {
73754#line 477
73755          __cil_tmp46 = hcd->shared_hcd;
73756#line 477
73757          usb_hc_died(__cil_tmp46);
73758          }
73759        } else {
73760
73761        }
73762        }
73763        {
73764#line 478
73765        usb_hc_died(hcd);
73766        }
73767      } else {
73768
73769      }
73770    } else {
73771
73772    }
73773    }
73774  } else {
73775
73776  }
73777  }
73778#line 481
73779  return (retval);
73780}
73781}
73782#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"
73783static int hcd_pci_suspend(struct device *dev ) 
73784{ bool tmp ;
73785  int tmp___0 ;
73786  int __cil_tmp4 ;
73787  bool __cil_tmp5 ;
73788
73789  {
73790  {
73791#line 488
73792  tmp = device_may_wakeup(dev);
73793#line 488
73794  __cil_tmp4 = (int )tmp;
73795#line 488
73796  __cil_tmp5 = (bool )__cil_tmp4;
73797#line 488
73798  tmp___0 = suspend_common(dev, __cil_tmp5);
73799  }
73800#line 488
73801  return (tmp___0);
73802}
73803}
73804#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"
73805static int hcd_pci_suspend_noirq(struct device *dev ) 
73806{ struct pci_dev *pci_dev ;
73807  struct device  const  *__mptr ;
73808  struct usb_hcd *hcd ;
73809  void *tmp ;
73810  int retval ;
73811  bool tmp___0 ;
73812  char const   *tmp___1 ;
73813  struct pci_dev *__cil_tmp9 ;
73814  unsigned long __cil_tmp10 ;
73815  unsigned long __cil_tmp11 ;
73816  bool __cil_tmp12 ;
73817  struct device  const  *__cil_tmp13 ;
73818  int __cil_tmp14 ;
73819  struct device  const  *__cil_tmp15 ;
73820  pci_power_t __cil_tmp16 ;
73821  struct device  const  *__cil_tmp17 ;
73822  void *__cil_tmp18 ;
73823
73824  {
73825  {
73826#line 493
73827  __mptr = (struct device  const  *)dev;
73828#line 493
73829  __cil_tmp9 = (struct pci_dev *)__mptr;
73830#line 493
73831  pci_dev = __cil_tmp9 + 1152921504606846832UL;
73832#line 494
73833  tmp = pci_get_drvdata(pci_dev);
73834#line 494
73835  hcd = (struct usb_hcd *)tmp;
73836#line 497
73837  retval = check_root_hub_suspended(dev);
73838  }
73839#line 498
73840  if (retval != 0) {
73841#line 499
73842    return (retval);
73843  } else {
73844
73845  }
73846  {
73847#line 501
73848  pci_save_state(pci_dev);
73849  }
73850  {
73851#line 507
73852  __cil_tmp10 = hcd->flags;
73853#line 507
73854  __cil_tmp11 = __cil_tmp10 & 64UL;
73855#line 507
73856  if (__cil_tmp11 != 0UL) {
73857    {
73858#line 508
73859    __cil_tmp12 = (bool )0;
73860#line 508
73861    device_set_wakeup_enable(dev, __cil_tmp12);
73862    }
73863  } else {
73864
73865  }
73866  }
73867  {
73868#line 509
73869  tmp___0 = device_may_wakeup(dev);
73870#line 509
73871  __cil_tmp13 = (struct device  const  *)dev;
73872#line 509
73873  __cil_tmp14 = (int )tmp___0;
73874#line 509
73875  dev_printk("<7>", __cil_tmp13, "wakeup: %d\n", __cil_tmp14);
73876#line 514
73877  retval = pci_prepare_to_sleep(pci_dev);
73878  }
73879#line 515
73880  if (retval == -5) {
73881    {
73882#line 516
73883    __cil_tmp15 = (struct device  const  *)dev;
73884#line 516
73885    dev_printk("<7>", __cil_tmp15, "--> PCI D0 legacy\n");
73886#line 517
73887    retval = 0;
73888    }
73889  } else
73890#line 518
73891  if (retval == 0) {
73892    {
73893#line 519
73894    __cil_tmp16 = pci_dev->current_state;
73895#line 519
73896    tmp___1 = pci_power_name(__cil_tmp16);
73897#line 519
73898    __cil_tmp17 = (struct device  const  *)dev;
73899#line 519
73900    dev_printk("<7>", __cil_tmp17, "--> PCI %s\n", tmp___1);
73901    }
73902  } else {
73903    {
73904#line 522
73905    __cil_tmp18 = (void *)(& pci_prepare_to_sleep);
73906#line 522
73907    __suspend_report_result("hcd_pci_suspend_noirq", __cil_tmp18, retval);
73908    }
73909#line 523
73910    return (retval);
73911  }
73912  {
73913#line 526
73914  powermac_set_asic(pci_dev, 0);
73915  }
73916#line 527
73917  return (retval);
73918}
73919}
73920#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"
73921static int hcd_pci_resume_noirq(struct device *dev ) 
73922{ struct pci_dev *pci_dev ;
73923  struct device  const  *__mptr ;
73924  struct pci_dev *__cil_tmp4 ;
73925
73926  {
73927  {
73928#line 532
73929  __mptr = (struct device  const  *)dev;
73930#line 532
73931  __cil_tmp4 = (struct pci_dev *)__mptr;
73932#line 532
73933  pci_dev = __cil_tmp4 + 1152921504606846832UL;
73934#line 534
73935  powermac_set_asic(pci_dev, 1);
73936#line 537
73937  pci_back_from_sleep(pci_dev);
73938  }
73939#line 538
73940  return (0);
73941}
73942}
73943#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"
73944static int hcd_pci_resume(struct device *dev ) 
73945{ int tmp ;
73946
73947  {
73948  {
73949#line 543
73950  tmp = resume_common(dev, 16);
73951  }
73952#line 543
73953  return (tmp);
73954}
73955}
73956#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"
73957static int hcd_pci_restore(struct device *dev ) 
73958{ int tmp ;
73959
73960  {
73961  {
73962#line 548
73963  tmp = resume_common(dev, 64);
73964  }
73965#line 548
73966  return (tmp);
73967}
73968}
73969#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"
73970static int hcd_pci_runtime_suspend(struct device *dev ) 
73971{ int retval ;
73972  struct device  const  *__mptr ;
73973  bool __cil_tmp4 ;
73974  struct pci_dev *__cil_tmp5 ;
73975  struct pci_dev *__cil_tmp6 ;
73976  struct device  const  *__cil_tmp7 ;
73977
73978  {
73979  {
73980#line 567
73981  __cil_tmp4 = (bool )1;
73982#line 567
73983  retval = suspend_common(dev, __cil_tmp4);
73984  }
73985#line 568
73986  if (retval == 0) {
73987    {
73988#line 569
73989    __mptr = (struct device  const  *)dev;
73990#line 569
73991    __cil_tmp5 = (struct pci_dev *)__mptr;
73992#line 569
73993    __cil_tmp6 = __cil_tmp5 + 1152921504606846832UL;
73994#line 569
73995    powermac_set_asic(__cil_tmp6, 0);
73996    }
73997  } else {
73998
73999  }
74000  {
74001#line 570
74002  __cil_tmp7 = (struct device  const  *)dev;
74003#line 570
74004  dev_printk("<7>", __cil_tmp7, "hcd_pci_runtime_suspend: %d\n", retval);
74005  }
74006#line 571
74007  return (retval);
74008}
74009}
74010#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"
74011static int hcd_pci_runtime_resume(struct device *dev ) 
74012{ int retval ;
74013  struct device  const  *__mptr ;
74014  struct pci_dev *__cil_tmp4 ;
74015  struct pci_dev *__cil_tmp5 ;
74016  struct device  const  *__cil_tmp6 ;
74017
74018  {
74019  {
74020#line 578
74021  __mptr = (struct device  const  *)dev;
74022#line 578
74023  __cil_tmp4 = (struct pci_dev *)__mptr;
74024#line 578
74025  __cil_tmp5 = __cil_tmp4 + 1152921504606846832UL;
74026#line 578
74027  powermac_set_asic(__cil_tmp5, 1);
74028#line 579
74029  retval = resume_common(dev, 1040);
74030#line 580
74031  __cil_tmp6 = (struct device  const  *)dev;
74032#line 580
74033  dev_printk("<7>", __cil_tmp6, "hcd_pci_runtime_resume: %d\n", retval);
74034  }
74035#line 581
74036  return (retval);
74037}
74038}
74039#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"
74040struct dev_pm_ops  const  usb_hcd_pci_pm_ops  = 
74041#line 591
74042     {(int (*)(struct device * ))0, (void (*)(struct device * ))0, & hcd_pci_suspend,
74043    & hcd_pci_resume, & check_root_hub_suspended, (int (*)(struct device * ))0, & hcd_pci_suspend,
74044    & hcd_pci_restore, & hcd_pci_suspend_noirq, & hcd_pci_resume_noirq, & check_root_hub_suspended,
74045    (int (*)(struct device * ))0, & hcd_pci_suspend_noirq, & hcd_pci_resume_noirq,
74046    & hcd_pci_runtime_suspend, & hcd_pci_runtime_resume, (int (*)(struct device * ))0};
74047#line 90 "include/linux/string.h"
74048extern char *strsep(char ** , char const   * ) ;
74049#line 23 "include/linux/spinlock_api_smp.h"
74050extern void _raw_spin_lock_nested(raw_spinlock_t * , int  ) ;
74051#line 51 "include/linux/list_bl.h"
74052__inline static int hlist_bl_unhashed(struct hlist_bl_node  const  *h ) 
74053{ struct hlist_bl_node **__cil_tmp2 ;
74054  unsigned long __cil_tmp3 ;
74055  struct hlist_bl_node **__cil_tmp4 ;
74056  unsigned long __cil_tmp5 ;
74057
74058  {
74059  {
74060#line 53
74061  __cil_tmp2 = (struct hlist_bl_node ** const  )0;
74062#line 53
74063  __cil_tmp3 = (unsigned long )__cil_tmp2;
74064#line 53
74065  __cil_tmp4 = h->pprev;
74066#line 53
74067  __cil_tmp5 = (unsigned long )__cil_tmp4;
74068#line 53
74069  return (__cil_tmp5 == __cil_tmp3);
74070  }
74071}
74072}
74073#line 232 "include/linux/dcache.h"
74074extern void d_instantiate(struct dentry * , struct inode * ) ;
74075#line 237
74076extern void d_delete(struct dentry * ) ;
74077#line 252
74078extern struct dentry *d_alloc_root(struct inode * ) ;
74079#line 359 "include/linux/dcache.h"
74080__inline static struct dentry *dget_dlock(struct dentry *dentry ) 
74081{ struct dentry *__cil_tmp2 ;
74082  unsigned long __cil_tmp3 ;
74083  unsigned long __cil_tmp4 ;
74084  unsigned int __cil_tmp5 ;
74085
74086  {
74087  {
74088#line 361
74089  __cil_tmp2 = (struct dentry *)0;
74090#line 361
74091  __cil_tmp3 = (unsigned long )__cil_tmp2;
74092#line 361
74093  __cil_tmp4 = (unsigned long )dentry;
74094#line 361
74095  if (__cil_tmp4 != __cil_tmp3) {
74096#line 362
74097    __cil_tmp5 = dentry->d_count;
74098#line 362
74099    dentry->d_count = __cil_tmp5 + 1U;
74100  } else {
74101
74102  }
74103  }
74104#line 363
74105  return (dentry);
74106}
74107}
74108#line 366 "include/linux/dcache.h"
74109__inline static struct dentry *dget(struct dentry *dentry ) 
74110{ struct dentry *__cil_tmp2 ;
74111  unsigned long __cil_tmp3 ;
74112  unsigned long __cil_tmp4 ;
74113  spinlock_t *__cil_tmp5 ;
74114  spinlock_t *__cil_tmp6 ;
74115
74116  {
74117  {
74118#line 368
74119  __cil_tmp2 = (struct dentry *)0;
74120#line 368
74121  __cil_tmp3 = (unsigned long )__cil_tmp2;
74122#line 368
74123  __cil_tmp4 = (unsigned long )dentry;
74124#line 368
74125  if (__cil_tmp4 != __cil_tmp3) {
74126    {
74127#line 369
74128    __cil_tmp5 = & dentry->d_lock;
74129#line 369
74130    spin_lock(__cil_tmp5);
74131#line 370
74132    dget_dlock(dentry);
74133#line 371
74134    __cil_tmp6 = & dentry->d_lock;
74135#line 371
74136    spin_unlock(__cil_tmp6);
74137    }
74138  } else {
74139
74140  }
74141  }
74142#line 373
74143  return (dentry);
74144}
74145}
74146#line 385 "include/linux/dcache.h"
74147__inline static int d_unhashed(struct dentry *dentry ) 
74148{ int tmp ;
74149  struct hlist_bl_node *__cil_tmp3 ;
74150  struct hlist_bl_node  const  *__cil_tmp4 ;
74151
74152  {
74153  {
74154#line 387
74155  __cil_tmp3 = & dentry->d_hash;
74156#line 387
74157  __cil_tmp4 = (struct hlist_bl_node  const  *)__cil_tmp3;
74158#line 387
74159  tmp = hlist_bl_unhashed(__cil_tmp4);
74160  }
74161#line 387
74162  return (tmp);
74163}
74164}
74165#line 400 "include/linux/dcache.h"
74166__inline static void dont_mount(struct dentry *dentry ) 
74167{ spinlock_t *__cil_tmp2 ;
74168  unsigned int __cil_tmp3 ;
74169  spinlock_t *__cil_tmp4 ;
74170
74171  {
74172  {
74173#line 402
74174  __cil_tmp2 = & dentry->d_lock;
74175#line 402
74176  spin_lock(__cil_tmp2);
74177#line 403
74178  __cil_tmp3 = dentry->d_flags;
74179#line 403
74180  dentry->d_flags = __cil_tmp3 | 256U;
74181#line 404
74182  __cil_tmp4 = & dentry->d_lock;
74183#line 404
74184  spin_unlock(__cil_tmp4);
74185  }
74186#line 405
74187  return;
74188}
74189}
74190#line 407
74191extern void dput(struct dentry * ) ;
74192#line 1488 "include/linux/fs.h"
74193extern void dentry_unhash(struct dentry * ) ;
74194#line 1731 "include/linux/fs.h"
74195__inline static void inc_nlink(struct inode *inode ) 
74196{ unsigned int __cil_tmp2 ;
74197
74198  {
74199#line 1733
74200  __cil_tmp2 = inode->i_nlink;
74201#line 1733
74202  inode->i_nlink = __cil_tmp2 + 1U;
74203#line 1734
74204  return;
74205}
74206}
74207#line 1753 "include/linux/fs.h"
74208__inline static void drop_nlink(struct inode *inode ) 
74209{ unsigned int __cil_tmp2 ;
74210
74211  {
74212#line 1755
74213  __cil_tmp2 = inode->i_nlink;
74214#line 1755
74215  inode->i_nlink = __cil_tmp2 - 1U;
74216#line 1756
74217  return;
74218}
74219}
74220#line 1827
74221extern struct dentry *mount_single(struct file_system_type * , int  , void * , int (*)(struct super_block * ,
74222                                                                                       void * ,
74223                                                                                       int  ) ) ;
74224#line 1836
74225extern void kill_litter_super(struct super_block * ) ;
74226#line 1868
74227extern int register_filesystem(struct file_system_type * ) ;
74228#line 1869
74229extern int unregister_filesystem(struct file_system_type * ) ;
74230#line 2123
74231extern void init_special_inode(struct inode * , umode_t  , dev_t  ) ;
74232#line 2254
74233extern void iput(struct inode * ) ;
74234#line 2258
74235extern int generic_delete_inode(struct inode * ) ;
74236#line 2273
74237extern unsigned int get_next_ino(void) ;
74238#line 2279
74239extern struct inode *new_inode(struct super_block * ) ;
74240#line 2442
74241extern int simple_statfs(struct dentry * , struct kstatfs * ) ;
74242#line 2459
74243extern struct file_operations  const  simple_dir_operations ;
74244#line 2460
74245extern struct inode_operations  const  simple_dir_inode_operations ;
74246#line 2464
74247extern int simple_pin_fs(struct file_system_type * , struct vfsmount ** , int * ) ;
74248#line 2465
74249extern void simple_release_fs(struct vfsmount ** , int * ) ;
74250#line 115 "include/linux/proc_fs.h"
74251extern void remove_proc_entry(char const   * , struct proc_dir_entry * ) ;
74252#line 148
74253extern struct proc_dir_entry *proc_mkdir(char const   * , struct proc_dir_entry * ) ;
74254#line 85 "include/linux/namei.h"
74255extern struct dentry *lookup_one_len(char const   * , struct dentry * , int  ) ;
74256#line 28 "include/linux/parser.h"
74257extern int match_token(char * , struct match_token  const  * , substring_t * ) ;
74258#line 29
74259extern int match_int(substring_t * , int * ) ;
74260#line 30
74261extern int match_octal(substring_t * , int * ) ;
74262#line 86 "include/linux/seq_file.h"
74263extern int seq_printf(struct seq_file * , char const   *  , ...) ;
74264#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"
74265static struct file_operations  const  default_file_operations ;
74266#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"
74267static struct vfsmount *usbfs_mount  ;
74268#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"
74269static int usbfs_mount_count  ;
74270#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"
74271static int ignore_mount  =    0;
74272#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"
74273static struct dentry *devices_usbfs_dentry  ;
74274#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"
74275static int num_buses  ;
74276#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"
74277static uid_t devuid  ;
74278#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"
74279static uid_t busuid  ;
74280#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"
74281static uid_t listuid  ;
74282#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"
74283static gid_t devgid  ;
74284#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"
74285static gid_t busgid  ;
74286#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"
74287static gid_t listgid  ;
74288#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"
74289static umode_t devmode  =    (umode_t )420U;
74290#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"
74291static umode_t busmode  =    (umode_t )365U;
74292#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"
74293static umode_t listmode  =    (umode_t )292U;
74294#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"
74295static int usbfs_show_options(struct seq_file *seq , struct vfsmount *mnt ) 
74296{ unsigned int __cil_tmp3 ;
74297  int __cil_tmp4 ;
74298  unsigned int __cil_tmp5 ;
74299  int __cil_tmp6 ;
74300  unsigned int __cil_tmp7 ;
74301  int __cil_tmp8 ;
74302
74303  {
74304#line 78
74305  if (devuid != 0U) {
74306    {
74307#line 79
74308    seq_printf(seq, ",devuid=%u", devuid);
74309    }
74310  } else {
74311
74312  }
74313#line 80
74314  if (devgid != 0U) {
74315    {
74316#line 81
74317    seq_printf(seq, ",devgid=%u", devgid);
74318    }
74319  } else {
74320
74321  }
74322  {
74323#line 82
74324  __cil_tmp3 = (unsigned int )devmode;
74325#line 82
74326  if (__cil_tmp3 != 420U) {
74327    {
74328#line 83
74329    __cil_tmp4 = (int )devmode;
74330#line 83
74331    seq_printf(seq, ",devmode=%o", __cil_tmp4);
74332    }
74333  } else {
74334
74335  }
74336  }
74337#line 84
74338  if (busuid != 0U) {
74339    {
74340#line 85
74341    seq_printf(seq, ",busuid=%u", busuid);
74342    }
74343  } else {
74344
74345  }
74346#line 86
74347  if (busgid != 0U) {
74348    {
74349#line 87
74350    seq_printf(seq, ",busgid=%u", busgid);
74351    }
74352  } else {
74353
74354  }
74355  {
74356#line 88
74357  __cil_tmp5 = (unsigned int )busmode;
74358#line 88
74359  if (__cil_tmp5 != 365U) {
74360    {
74361#line 89
74362    __cil_tmp6 = (int )busmode;
74363#line 89
74364    seq_printf(seq, ",busmode=%o", __cil_tmp6);
74365    }
74366  } else {
74367
74368  }
74369  }
74370#line 90
74371  if (listuid != 0U) {
74372    {
74373#line 91
74374    seq_printf(seq, ",listuid=%u", listuid);
74375    }
74376  } else {
74377
74378  }
74379#line 92
74380  if (listgid != 0U) {
74381    {
74382#line 93
74383    seq_printf(seq, ",listgid=%u", listgid);
74384    }
74385  } else {
74386
74387  }
74388  {
74389#line 94
74390  __cil_tmp7 = (unsigned int )listmode;
74391#line 94
74392  if (__cil_tmp7 != 292U) {
74393    {
74394#line 95
74395    __cil_tmp8 = (int )listmode;
74396#line 95
74397    seq_printf(seq, ",listmode=%o", __cil_tmp8);
74398    }
74399  } else {
74400
74401  }
74402  }
74403#line 97
74404  return (0);
74405}
74406}
74407#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"
74408static struct match_token  const  tokens[10U]  = 
74409#line 107
74410  {      {0, "devuid=%u"}, 
74411        {1, "devgid=%u"}, 
74412        {2, "devmode=%o"}, 
74413        {3, "busuid=%u"}, 
74414        {4, "busgid=%u"}, 
74415        {5, "busmode=%o"}, 
74416        {6, "listuid=%u"}, 
74417        {7, "listgid=%u"}, 
74418        {8, "listmode=%o"}, 
74419        {9, (char const   *)0}};
74420#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"
74421static int parse_options(struct super_block *s , char *data ) 
74422{ char *p ;
74423  int option ;
74424  substring_t args[3U] ;
74425  int token ;
74426  int tmp ;
74427  int tmp___0 ;
74428  int tmp___1 ;
74429  int tmp___2 ;
74430  int tmp___3 ;
74431  int tmp___4 ;
74432  int tmp___5 ;
74433  int tmp___6 ;
74434  int tmp___7 ;
74435  char __cil_tmp16 ;
74436  signed char __cil_tmp17 ;
74437  int __cil_tmp18 ;
74438  struct match_token  const  *__cil_tmp19 ;
74439  substring_t *__cil_tmp20 ;
74440  substring_t *__cil_tmp21 ;
74441  substring_t *__cil_tmp22 ;
74442  substring_t *__cil_tmp23 ;
74443  umode_t __cil_tmp24 ;
74444  unsigned int __cil_tmp25 ;
74445  unsigned int __cil_tmp26 ;
74446  substring_t *__cil_tmp27 ;
74447  substring_t *__cil_tmp28 ;
74448  substring_t *__cil_tmp29 ;
74449  umode_t __cil_tmp30 ;
74450  unsigned int __cil_tmp31 ;
74451  unsigned int __cil_tmp32 ;
74452  substring_t *__cil_tmp33 ;
74453  substring_t *__cil_tmp34 ;
74454  substring_t *__cil_tmp35 ;
74455  umode_t __cil_tmp36 ;
74456  unsigned int __cil_tmp37 ;
74457  unsigned int __cil_tmp38 ;
74458  char *__cil_tmp39 ;
74459  unsigned long __cil_tmp40 ;
74460  unsigned long __cil_tmp41 ;
74461
74462  {
74463#line 126
74464  devuid = 0U;
74465#line 127
74466  busuid = 0U;
74467#line 128
74468  listuid = 0U;
74469#line 129
74470  devgid = 0U;
74471#line 130
74472  busgid = 0U;
74473#line 131
74474  listgid = 0U;
74475#line 132
74476  devmode = (umode_t )420U;
74477#line 133
74478  busmode = (umode_t )365U;
74479#line 134
74480  listmode = (umode_t )292U;
74481#line 136
74482  goto ldv_28762;
74483  ldv_28774: ;
74484  {
74485#line 139
74486  __cil_tmp16 = *p;
74487#line 139
74488  __cil_tmp17 = (signed char )__cil_tmp16;
74489#line 139
74490  __cil_tmp18 = (int )__cil_tmp17;
74491#line 139
74492  if (__cil_tmp18 == 0) {
74493#line 140
74494    goto ldv_28762;
74495  } else {
74496
74497  }
74498  }
74499  {
74500#line 142
74501  __cil_tmp19 = (struct match_token  const  *)(& tokens);
74502#line 142
74503  __cil_tmp20 = (substring_t *)(& args);
74504#line 142
74505  token = match_token(p, __cil_tmp19, __cil_tmp20);
74506  }
74507#line 144
74508  if (token == 0) {
74509#line 144
74510    goto case_0;
74511  } else
74512#line 149
74513  if (token == 1) {
74514#line 149
74515    goto case_1;
74516  } else
74517#line 154
74518  if (token == 2) {
74519#line 154
74520    goto case_2;
74521  } else
74522#line 159
74523  if (token == 3) {
74524#line 159
74525    goto case_3;
74526  } else
74527#line 164
74528  if (token == 4) {
74529#line 164
74530    goto case_4;
74531  } else
74532#line 169
74533  if (token == 5) {
74534#line 169
74535    goto case_5;
74536  } else
74537#line 174
74538  if (token == 6) {
74539#line 174
74540    goto case_6;
74541  } else
74542#line 179
74543  if (token == 7) {
74544#line 179
74545    goto case_7;
74546  } else
74547#line 184
74548  if (token == 8) {
74549#line 184
74550    goto case_8;
74551  } else {
74552#line 189
74553    goto switch_default;
74554#line 143
74555    if (0) {
74556      case_0: 
74557      {
74558#line 145
74559      __cil_tmp21 = (substring_t *)(& args);
74560#line 145
74561      tmp = match_int(__cil_tmp21, & option);
74562      }
74563#line 145
74564      if (tmp != 0) {
74565#line 146
74566        return (-22);
74567      } else {
74568
74569      }
74570#line 147
74571      devuid = (uid_t )option;
74572#line 148
74573      goto ldv_28764;
74574      case_1: 
74575      {
74576#line 150
74577      __cil_tmp22 = (substring_t *)(& args);
74578#line 150
74579      tmp___0 = match_int(__cil_tmp22, & option);
74580      }
74581#line 150
74582      if (tmp___0 != 0) {
74583#line 151
74584        return (-22);
74585      } else {
74586
74587      }
74588#line 152
74589      devgid = (gid_t )option;
74590#line 153
74591      goto ldv_28764;
74592      case_2: 
74593      {
74594#line 155
74595      __cil_tmp23 = (substring_t *)(& args);
74596#line 155
74597      tmp___1 = match_octal(__cil_tmp23, & option);
74598      }
74599#line 155
74600      if (tmp___1 != 0) {
74601#line 156
74602        return (-22);
74603      } else {
74604
74605      }
74606#line 157
74607      __cil_tmp24 = (umode_t )option;
74608#line 157
74609      __cil_tmp25 = (unsigned int )__cil_tmp24;
74610#line 157
74611      __cil_tmp26 = __cil_tmp25 & 511U;
74612#line 157
74613      devmode = (umode_t )__cil_tmp26;
74614#line 158
74615      goto ldv_28764;
74616      case_3: 
74617      {
74618#line 160
74619      __cil_tmp27 = (substring_t *)(& args);
74620#line 160
74621      tmp___2 = match_int(__cil_tmp27, & option);
74622      }
74623#line 160
74624      if (tmp___2 != 0) {
74625#line 161
74626        return (-22);
74627      } else {
74628
74629      }
74630#line 162
74631      busuid = (uid_t )option;
74632#line 163
74633      goto ldv_28764;
74634      case_4: 
74635      {
74636#line 165
74637      __cil_tmp28 = (substring_t *)(& args);
74638#line 165
74639      tmp___3 = match_int(__cil_tmp28, & option);
74640      }
74641#line 165
74642      if (tmp___3 != 0) {
74643#line 166
74644        return (-22);
74645      } else {
74646
74647      }
74648#line 167
74649      busgid = (gid_t )option;
74650#line 168
74651      goto ldv_28764;
74652      case_5: 
74653      {
74654#line 170
74655      __cil_tmp29 = (substring_t *)(& args);
74656#line 170
74657      tmp___4 = match_octal(__cil_tmp29, & option);
74658      }
74659#line 170
74660      if (tmp___4 != 0) {
74661#line 171
74662        return (-22);
74663      } else {
74664
74665      }
74666#line 172
74667      __cil_tmp30 = (umode_t )option;
74668#line 172
74669      __cil_tmp31 = (unsigned int )__cil_tmp30;
74670#line 172
74671      __cil_tmp32 = __cil_tmp31 & 511U;
74672#line 172
74673      busmode = (umode_t )__cil_tmp32;
74674#line 173
74675      goto ldv_28764;
74676      case_6: 
74677      {
74678#line 175
74679      __cil_tmp33 = (substring_t *)(& args);
74680#line 175
74681      tmp___5 = match_int(__cil_tmp33, & option);
74682      }
74683#line 175
74684      if (tmp___5 != 0) {
74685#line 176
74686        return (-22);
74687      } else {
74688
74689      }
74690#line 177
74691      listuid = (uid_t )option;
74692#line 178
74693      goto ldv_28764;
74694      case_7: 
74695      {
74696#line 180
74697      __cil_tmp34 = (substring_t *)(& args);
74698#line 180
74699      tmp___6 = match_int(__cil_tmp34, & option);
74700      }
74701#line 180
74702      if (tmp___6 != 0) {
74703#line 181
74704        return (-22);
74705      } else {
74706
74707      }
74708#line 182
74709      listgid = (gid_t )option;
74710#line 183
74711      goto ldv_28764;
74712      case_8: 
74713      {
74714#line 185
74715      __cil_tmp35 = (substring_t *)(& args);
74716#line 185
74717      tmp___7 = match_octal(__cil_tmp35, & option);
74718      }
74719#line 185
74720      if (tmp___7 != 0) {
74721#line 186
74722        return (-22);
74723      } else {
74724
74725      }
74726#line 187
74727      __cil_tmp36 = (umode_t )option;
74728#line 187
74729      __cil_tmp37 = (unsigned int )__cil_tmp36;
74730#line 187
74731      __cil_tmp38 = __cil_tmp37 & 511U;
74732#line 187
74733      listmode = (umode_t )__cil_tmp38;
74734#line 188
74735      goto ldv_28764;
74736      switch_default: 
74737      {
74738#line 190
74739      printk("<3>usbfs: unrecognised mount option \"%s\" or missing value\n", p);
74740      }
74741#line 192
74742      return (-22);
74743    } else {
74744
74745    }
74746  }
74747  ldv_28764: ;
74748  ldv_28762: 
74749  {
74750#line 136
74751  p = strsep(& data, ",");
74752  }
74753  {
74754#line 136
74755  __cil_tmp39 = (char *)0;
74756#line 136
74757  __cil_tmp40 = (unsigned long )__cil_tmp39;
74758#line 136
74759  __cil_tmp41 = (unsigned long )p;
74760#line 136
74761  if (__cil_tmp41 != __cil_tmp40) {
74762#line 137
74763    goto ldv_28774;
74764  } else {
74765#line 139
74766    goto ldv_28775;
74767  }
74768  }
74769  ldv_28775: ;
74770#line 196
74771  return (0);
74772}
74773}
74774#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"
74775static void update_special(struct dentry *special ) 
74776{ struct inode *__cil_tmp2 ;
74777  struct inode *__cil_tmp3 ;
74778  struct inode *__cil_tmp4 ;
74779  unsigned int __cil_tmp5 ;
74780  unsigned int __cil_tmp6 ;
74781
74782  {
74783#line 201
74784  __cil_tmp2 = special->d_inode;
74785#line 201
74786  __cil_tmp2->i_uid = listuid;
74787#line 202
74788  __cil_tmp3 = special->d_inode;
74789#line 202
74790  __cil_tmp3->i_gid = listgid;
74791#line 203
74792  __cil_tmp4 = special->d_inode;
74793#line 203
74794  __cil_tmp5 = (unsigned int )listmode;
74795#line 203
74796  __cil_tmp6 = __cil_tmp5 | 32768U;
74797#line 203
74798  __cil_tmp4->i_mode = (umode_t )__cil_tmp6;
74799#line 204
74800  return;
74801}
74802}
74803#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"
74804static void update_dev(struct dentry *dev ) 
74805{ struct inode *__cil_tmp2 ;
74806  struct inode *__cil_tmp3 ;
74807  struct inode *__cil_tmp4 ;
74808  unsigned int __cil_tmp5 ;
74809  unsigned int __cil_tmp6 ;
74810
74811  {
74812#line 208
74813  __cil_tmp2 = dev->d_inode;
74814#line 208
74815  __cil_tmp2->i_uid = devuid;
74816#line 209
74817  __cil_tmp3 = dev->d_inode;
74818#line 209
74819  __cil_tmp3->i_gid = devgid;
74820#line 210
74821  __cil_tmp4 = dev->d_inode;
74822#line 210
74823  __cil_tmp5 = (unsigned int )devmode;
74824#line 210
74825  __cil_tmp6 = __cil_tmp5 | 32768U;
74826#line 210
74827  __cil_tmp4->i_mode = (umode_t )__cil_tmp6;
74828#line 211
74829  return;
74830}
74831}
74832#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"
74833static void update_bus(struct dentry *bus ) 
74834{ struct dentry *dev ;
74835  struct list_head  const  *__mptr ;
74836  struct list_head  const  *__mptr___0 ;
74837  struct inode *__cil_tmp5 ;
74838  struct inode *__cil_tmp6 ;
74839  struct inode *__cil_tmp7 ;
74840  unsigned int __cil_tmp8 ;
74841  unsigned int __cil_tmp9 ;
74842  struct inode *__cil_tmp10 ;
74843  struct mutex *__cil_tmp11 ;
74844  struct list_head *__cil_tmp12 ;
74845  struct dentry *__cil_tmp13 ;
74846  struct inode *__cil_tmp14 ;
74847  unsigned long __cil_tmp15 ;
74848  struct inode *__cil_tmp16 ;
74849  unsigned long __cil_tmp17 ;
74850  struct list_head *__cil_tmp18 ;
74851  struct dentry *__cil_tmp19 ;
74852  struct list_head *__cil_tmp20 ;
74853  unsigned long __cil_tmp21 ;
74854  struct list_head *__cil_tmp22 ;
74855  unsigned long __cil_tmp23 ;
74856  struct inode *__cil_tmp24 ;
74857  struct mutex *__cil_tmp25 ;
74858
74859  {
74860  {
74861#line 215
74862  dev = (struct dentry *)0;
74863#line 217
74864  __cil_tmp5 = bus->d_inode;
74865#line 217
74866  __cil_tmp5->i_uid = busuid;
74867#line 218
74868  __cil_tmp6 = bus->d_inode;
74869#line 218
74870  __cil_tmp6->i_gid = busgid;
74871#line 219
74872  __cil_tmp7 = bus->d_inode;
74873#line 219
74874  __cil_tmp8 = (unsigned int )busmode;
74875#line 219
74876  __cil_tmp9 = __cil_tmp8 | 16384U;
74877#line 219
74878  __cil_tmp7->i_mode = (umode_t )__cil_tmp9;
74879#line 221
74880  __cil_tmp10 = bus->d_inode;
74881#line 221
74882  __cil_tmp11 = & __cil_tmp10->i_mutex;
74883#line 221
74884  mutex_lock_nested(__cil_tmp11, 0U);
74885#line 223
74886  __cil_tmp12 = bus->d_subdirs.next;
74887#line 223
74888  __mptr = (struct list_head  const  *)__cil_tmp12;
74889#line 223
74890  __cil_tmp13 = (struct dentry *)__mptr;
74891#line 223
74892  dev = __cil_tmp13 + 1152921504606846760UL;
74893  }
74894#line 223
74895  goto ldv_28791;
74896  ldv_28790: ;
74897  {
74898#line 224
74899  __cil_tmp14 = (struct inode *)0;
74900#line 224
74901  __cil_tmp15 = (unsigned long )__cil_tmp14;
74902#line 224
74903  __cil_tmp16 = dev->d_inode;
74904#line 224
74905  __cil_tmp17 = (unsigned long )__cil_tmp16;
74906#line 224
74907  if (__cil_tmp17 != __cil_tmp15) {
74908    {
74909#line 225
74910    update_dev(dev);
74911    }
74912  } else {
74913
74914  }
74915  }
74916#line 223
74917  __cil_tmp18 = dev->d_u.d_child.next;
74918#line 223
74919  __mptr___0 = (struct list_head  const  *)__cil_tmp18;
74920#line 223
74921  __cil_tmp19 = (struct dentry *)__mptr___0;
74922#line 223
74923  dev = __cil_tmp19 + 1152921504606846760UL;
74924  ldv_28791: ;
74925  {
74926#line 223
74927  __cil_tmp20 = & bus->d_subdirs;
74928#line 223
74929  __cil_tmp21 = (unsigned long )__cil_tmp20;
74930#line 223
74931  __cil_tmp22 = & dev->d_u.d_child;
74932#line 223
74933  __cil_tmp23 = (unsigned long )__cil_tmp22;
74934#line 223
74935  if (__cil_tmp23 != __cil_tmp21) {
74936#line 224
74937    goto ldv_28790;
74938  } else {
74939#line 226
74940    goto ldv_28792;
74941  }
74942  }
74943  ldv_28792: 
74944  {
74945#line 227
74946  __cil_tmp24 = bus->d_inode;
74947#line 227
74948  __cil_tmp25 = & __cil_tmp24->i_mutex;
74949#line 227
74950  mutex_unlock(__cil_tmp25);
74951  }
74952#line 228
74953  return;
74954}
74955}
74956#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"
74957static void update_sb(struct super_block *sb ) 
74958{ struct dentry *root ;
74959  struct dentry *bus ;
74960  struct list_head  const  *__mptr ;
74961  struct list_head  const  *__mptr___0 ;
74962  struct dentry *__cil_tmp6 ;
74963  unsigned long __cil_tmp7 ;
74964  unsigned long __cil_tmp8 ;
74965  struct inode *__cil_tmp9 ;
74966  struct mutex *__cil_tmp10 ;
74967  struct list_head *__cil_tmp11 ;
74968  struct dentry *__cil_tmp12 ;
74969  struct inode *__cil_tmp13 ;
74970  unsigned long __cil_tmp14 ;
74971  struct inode *__cil_tmp15 ;
74972  unsigned long __cil_tmp16 ;
74973  struct inode *__cil_tmp17 ;
74974  umode_t __cil_tmp18 ;
74975  int __cil_tmp19 ;
74976  int __cil_tmp20 ;
74977  struct inode *__cil_tmp21 ;
74978  umode_t __cil_tmp22 ;
74979  int __cil_tmp23 ;
74980  int __cil_tmp24 ;
74981  unsigned char const   *__cil_tmp25 ;
74982  struct inode *__cil_tmp26 ;
74983  umode_t __cil_tmp27 ;
74984  int __cil_tmp28 ;
74985  struct list_head *__cil_tmp29 ;
74986  struct dentry *__cil_tmp30 ;
74987  struct list_head *__cil_tmp31 ;
74988  unsigned long __cil_tmp32 ;
74989  struct list_head *__cil_tmp33 ;
74990  unsigned long __cil_tmp34 ;
74991  struct inode *__cil_tmp35 ;
74992  struct mutex *__cil_tmp36 ;
74993
74994  {
74995#line 232
74996  root = sb->s_root;
74997#line 233
74998  bus = (struct dentry *)0;
74999  {
75000#line 235
75001  __cil_tmp6 = (struct dentry *)0;
75002#line 235
75003  __cil_tmp7 = (unsigned long )__cil_tmp6;
75004#line 235
75005  __cil_tmp8 = (unsigned long )root;
75006#line 235
75007  if (__cil_tmp8 == __cil_tmp7) {
75008#line 236
75009    return;
75010  } else {
75011
75012  }
75013  }
75014  {
75015#line 238
75016  __cil_tmp9 = root->d_inode;
75017#line 238
75018  __cil_tmp10 = & __cil_tmp9->i_mutex;
75019#line 238
75020  mutex_lock_nested(__cil_tmp10, 1U);
75021#line 240
75022  __cil_tmp11 = root->d_subdirs.next;
75023#line 240
75024  __mptr = (struct list_head  const  *)__cil_tmp11;
75025#line 240
75026  __cil_tmp12 = (struct dentry *)__mptr;
75027#line 240
75028  bus = __cil_tmp12 + 1152921504606846760UL;
75029  }
75030#line 240
75031  goto ldv_28807;
75032  ldv_28806: ;
75033  {
75034#line 241
75035  __cil_tmp13 = (struct inode *)0;
75036#line 241
75037  __cil_tmp14 = (unsigned long )__cil_tmp13;
75038#line 241
75039  __cil_tmp15 = bus->d_inode;
75040#line 241
75041  __cil_tmp16 = (unsigned long )__cil_tmp15;
75042#line 241
75043  if (__cil_tmp16 != __cil_tmp14) {
75044    {
75045#line 243
75046    __cil_tmp17 = bus->d_inode;
75047#line 243
75048    __cil_tmp18 = __cil_tmp17->i_mode;
75049#line 243
75050    __cil_tmp19 = (int )__cil_tmp18;
75051#line 243
75052    __cil_tmp20 = __cil_tmp19 & 61440;
75053#line 243
75054    if (__cil_tmp20 == 16384) {
75055#line 243
75056      goto case_16384;
75057    } else {
75058      {
75059#line 246
75060      __cil_tmp21 = bus->d_inode;
75061#line 246
75062      __cil_tmp22 = __cil_tmp21->i_mode;
75063#line 246
75064      __cil_tmp23 = (int )__cil_tmp22;
75065#line 246
75066      __cil_tmp24 = __cil_tmp23 & 61440;
75067#line 246
75068      if (__cil_tmp24 == 32768) {
75069#line 246
75070        goto case_32768;
75071      } else {
75072#line 249
75073        goto switch_default;
75074#line 242
75075        if (0) {
75076          case_16384: 
75077          {
75078#line 244
75079          update_bus(bus);
75080          }
75081#line 245
75082          goto ldv_28803;
75083          case_32768: 
75084          {
75085#line 247
75086          update_special(bus);
75087          }
75088#line 248
75089          goto ldv_28803;
75090          switch_default: 
75091          {
75092#line 250
75093          __cil_tmp25 = bus->d_name.name;
75094#line 250
75095          __cil_tmp26 = bus->d_inode;
75096#line 250
75097          __cil_tmp27 = __cil_tmp26->i_mode;
75098#line 250
75099          __cil_tmp28 = (int )__cil_tmp27;
75100#line 250
75101          printk("<4>usbfs: Unknown node %s mode %x found on remount!\n", __cil_tmp25,
75102                 __cil_tmp28);
75103          }
75104#line 253
75105          goto ldv_28803;
75106        } else {
75107
75108        }
75109      }
75110      }
75111    }
75112    }
75113    ldv_28803: ;
75114  } else {
75115
75116  }
75117  }
75118#line 240
75119  __cil_tmp29 = bus->d_u.d_child.next;
75120#line 240
75121  __mptr___0 = (struct list_head  const  *)__cil_tmp29;
75122#line 240
75123  __cil_tmp30 = (struct dentry *)__mptr___0;
75124#line 240
75125  bus = __cil_tmp30 + 1152921504606846760UL;
75126  ldv_28807: ;
75127  {
75128#line 240
75129  __cil_tmp31 = & root->d_subdirs;
75130#line 240
75131  __cil_tmp32 = (unsigned long )__cil_tmp31;
75132#line 240
75133  __cil_tmp33 = & bus->d_u.d_child;
75134#line 240
75135  __cil_tmp34 = (unsigned long )__cil_tmp33;
75136#line 240
75137  if (__cil_tmp34 != __cil_tmp32) {
75138#line 241
75139    goto ldv_28806;
75140  } else {
75141#line 243
75142    goto ldv_28808;
75143  }
75144  }
75145  ldv_28808: 
75146  {
75147#line 258
75148  __cil_tmp35 = root->d_inode;
75149#line 258
75150  __cil_tmp36 = & __cil_tmp35->i_mutex;
75151#line 258
75152  mutex_unlock(__cil_tmp36);
75153  }
75154#line 259
75155  return;
75156}
75157}
75158#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"
75159static int remount(struct super_block *sb , int *flags , char *data ) 
75160{ int tmp ;
75161  struct vfsmount *__cil_tmp5 ;
75162  unsigned long __cil_tmp6 ;
75163  unsigned long __cil_tmp7 ;
75164  struct super_block *__cil_tmp8 ;
75165  unsigned long __cil_tmp9 ;
75166  struct super_block *__cil_tmp10 ;
75167  unsigned long __cil_tmp11 ;
75168  struct super_block *__cil_tmp12 ;
75169
75170  {
75171#line 267
75172  if (ignore_mount != 0) {
75173#line 268
75174    return (0);
75175  } else {
75176
75177  }
75178  {
75179#line 270
75180  tmp = parse_options(sb, data);
75181  }
75182#line 270
75183  if (tmp != 0) {
75184    {
75185#line 271
75186    printk("<4>usbfs: mount parameter error.\n");
75187    }
75188#line 272
75189    return (-22);
75190  } else {
75191
75192  }
75193  {
75194#line 275
75195  __cil_tmp5 = (struct vfsmount *)0;
75196#line 275
75197  __cil_tmp6 = (unsigned long )__cil_tmp5;
75198#line 275
75199  __cil_tmp7 = (unsigned long )usbfs_mount;
75200#line 275
75201  if (__cil_tmp7 != __cil_tmp6) {
75202    {
75203#line 275
75204    __cil_tmp8 = (struct super_block *)0;
75205#line 275
75206    __cil_tmp9 = (unsigned long )__cil_tmp8;
75207#line 275
75208    __cil_tmp10 = usbfs_mount->mnt_sb;
75209#line 275
75210    __cil_tmp11 = (unsigned long )__cil_tmp10;
75211#line 275
75212    if (__cil_tmp11 != __cil_tmp9) {
75213      {
75214#line 276
75215      __cil_tmp12 = usbfs_mount->mnt_sb;
75216#line 276
75217      update_sb(__cil_tmp12);
75218      }
75219    } else {
75220
75221    }
75222    }
75223  } else {
75224
75225  }
75226  }
75227#line 278
75228  return (0);
75229}
75230}
75231#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"
75232static struct inode *usbfs_get_inode(struct super_block *sb , int mode , dev_t dev ) 
75233{ struct inode *inode ;
75234  struct inode *tmp ;
75235  unsigned int tmp___0 ;
75236  struct task_struct *tmp___1 ;
75237  struct task_struct *tmp___2 ;
75238  struct timespec tmp___3 ;
75239  struct timespec tmp___4 ;
75240  struct inode *__cil_tmp11 ;
75241  unsigned long __cil_tmp12 ;
75242  unsigned long __cil_tmp13 ;
75243  struct cred  const  *__cil_tmp14 ;
75244  uid_t __cil_tmp15 ;
75245  struct cred  const  *__cil_tmp16 ;
75246  gid_t __cil_tmp17 ;
75247  int __cil_tmp18 ;
75248  int __cil_tmp19 ;
75249  umode_t __cil_tmp20 ;
75250  int __cil_tmp21 ;
75251  umode_t __cil_tmp22 ;
75252
75253  {
75254  {
75255#line 283
75256  tmp = new_inode(sb);
75257#line 283
75258  inode = tmp;
75259  }
75260  {
75261#line 285
75262  __cil_tmp11 = (struct inode *)0;
75263#line 285
75264  __cil_tmp12 = (unsigned long )__cil_tmp11;
75265#line 285
75266  __cil_tmp13 = (unsigned long )inode;
75267#line 285
75268  if (__cil_tmp13 != __cil_tmp12) {
75269    {
75270#line 286
75271    tmp___0 = get_next_ino();
75272#line 286
75273    inode->i_ino = (unsigned long )tmp___0;
75274#line 287
75275    inode->i_mode = (umode_t )mode;
75276#line 288
75277    tmp___1 = get_current();
75278#line 288
75279    __cil_tmp14 = tmp___1->cred;
75280#line 288
75281    __cil_tmp15 = __cil_tmp14->fsuid;
75282#line 288
75283    inode->i_uid = (uid_t )__cil_tmp15;
75284#line 289
75285    tmp___2 = get_current();
75286#line 289
75287    __cil_tmp16 = tmp___2->cred;
75288#line 289
75289    __cil_tmp17 = __cil_tmp16->fsgid;
75290#line 289
75291    inode->i_gid = (gid_t )__cil_tmp17;
75292#line 290
75293    tmp___4 = current_kernel_time();
75294#line 290
75295    inode->i_ctime = tmp___4;
75296#line 290
75297    tmp___3 = tmp___4;
75298#line 290
75299    inode->i_mtime = tmp___3;
75300#line 290
75301    inode->i_atime = tmp___3;
75302    }
75303    {
75304#line 295
75305    __cil_tmp18 = mode & 61440;
75306#line 295
75307    if (__cil_tmp18 == 32768) {
75308#line 295
75309      goto case_32768;
75310    } else {
75311      {
75312#line 298
75313      __cil_tmp19 = mode & 61440;
75314#line 298
75315      if (__cil_tmp19 == 16384) {
75316#line 298
75317        goto case_16384;
75318      } else {
75319#line 292
75320        goto switch_default;
75321#line 291
75322        if (0) {
75323          switch_default: 
75324          {
75325#line 293
75326          __cil_tmp20 = (umode_t )mode;
75327#line 293
75328          __cil_tmp21 = (int )__cil_tmp20;
75329#line 293
75330          __cil_tmp22 = (umode_t )__cil_tmp21;
75331#line 293
75332          init_special_inode(inode, __cil_tmp22, dev);
75333          }
75334#line 294
75335          goto ldv_28821;
75336          case_32768: 
75337#line 296
75338          inode->i_fop = & default_file_operations;
75339#line 297
75340          goto ldv_28821;
75341          case_16384: 
75342          {
75343#line 299
75344          inode->i_op = & simple_dir_inode_operations;
75345#line 300
75346          inode->i_fop = & simple_dir_operations;
75347#line 303
75348          inc_nlink(inode);
75349          }
75350#line 304
75351          goto ldv_28821;
75352        } else {
75353
75354        }
75355      }
75356      }
75357    }
75358    }
75359    ldv_28821: ;
75360  } else {
75361
75362  }
75363  }
75364#line 307
75365  return (inode);
75366}
75367}
75368#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"
75369static int usbfs_mknod(struct inode *dir , struct dentry *dentry , int mode , dev_t dev ) 
75370{ struct inode *inode ;
75371  struct inode *tmp ;
75372  int error ;
75373  struct super_block *__cil_tmp8 ;
75374  struct inode *__cil_tmp9 ;
75375  unsigned long __cil_tmp10 ;
75376  struct inode *__cil_tmp11 ;
75377  unsigned long __cil_tmp12 ;
75378  struct inode *__cil_tmp13 ;
75379  unsigned long __cil_tmp14 ;
75380  unsigned long __cil_tmp15 ;
75381
75382  {
75383  {
75384#line 314
75385  __cil_tmp8 = dir->i_sb;
75386#line 314
75387  tmp = usbfs_get_inode(__cil_tmp8, mode, dev);
75388#line 314
75389  inode = tmp;
75390#line 315
75391  error = -1;
75392  }
75393  {
75394#line 317
75395  __cil_tmp9 = (struct inode *)0;
75396#line 317
75397  __cil_tmp10 = (unsigned long )__cil_tmp9;
75398#line 317
75399  __cil_tmp11 = dentry->d_inode;
75400#line 317
75401  __cil_tmp12 = (unsigned long )__cil_tmp11;
75402#line 317
75403  if (__cil_tmp12 != __cil_tmp10) {
75404#line 318
75405    return (-17);
75406  } else {
75407
75408  }
75409  }
75410  {
75411#line 320
75412  __cil_tmp13 = (struct inode *)0;
75413#line 320
75414  __cil_tmp14 = (unsigned long )__cil_tmp13;
75415#line 320
75416  __cil_tmp15 = (unsigned long )inode;
75417#line 320
75418  if (__cil_tmp15 != __cil_tmp14) {
75419    {
75420#line 321
75421    d_instantiate(dentry, inode);
75422#line 322
75423    dget(dentry);
75424#line 323
75425    error = 0;
75426    }
75427  } else {
75428
75429  }
75430  }
75431#line 325
75432  return (error);
75433}
75434}
75435#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"
75436static int usbfs_mkdir(struct inode *dir , struct dentry *dentry , int mode ) 
75437{ int res ;
75438  int __cil_tmp5 ;
75439
75440  {
75441  {
75442#line 332
75443  __cil_tmp5 = mode & 1023;
75444#line 332
75445  mode = __cil_tmp5 | 16384;
75446#line 333
75447  res = usbfs_mknod(dir, dentry, mode, 0U);
75448  }
75449#line 334
75450  if (res == 0) {
75451    {
75452#line 335
75453    inc_nlink(dir);
75454    }
75455  } else {
75456
75457  }
75458#line 336
75459  return (res);
75460}
75461}
75462#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"
75463static int usbfs_create(struct inode *dir , struct dentry *dentry , int mode ) 
75464{ int tmp ;
75465  int __cil_tmp5 ;
75466
75467  {
75468  {
75469#line 341
75470  __cil_tmp5 = mode & 4095;
75471#line 341
75472  mode = __cil_tmp5 | 32768;
75473#line 342
75474  tmp = usbfs_mknod(dir, dentry, mode, 0U);
75475  }
75476#line 342
75477  return (tmp);
75478}
75479}
75480#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"
75481__inline static int usbfs_positive(struct dentry *dentry ) 
75482{ int tmp ;
75483  int tmp___0 ;
75484  struct inode *__cil_tmp4 ;
75485  unsigned long __cil_tmp5 ;
75486  struct inode *__cil_tmp6 ;
75487  unsigned long __cil_tmp7 ;
75488
75489  {
75490  {
75491#line 347
75492  __cil_tmp4 = (struct inode *)0;
75493#line 347
75494  __cil_tmp5 = (unsigned long )__cil_tmp4;
75495#line 347
75496  __cil_tmp6 = dentry->d_inode;
75497#line 347
75498  __cil_tmp7 = (unsigned long )__cil_tmp6;
75499#line 347
75500  if (__cil_tmp7 != __cil_tmp5) {
75501    {
75502#line 347
75503    tmp = d_unhashed(dentry);
75504    }
75505#line 347
75506    if (tmp == 0) {
75507#line 347
75508      tmp___0 = 1;
75509    } else {
75510#line 347
75511      tmp___0 = 0;
75512    }
75513  } else {
75514#line 347
75515    tmp___0 = 0;
75516  }
75517  }
75518#line 347
75519  return (tmp___0);
75520}
75521}
75522#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"
75523static int usbfs_empty(struct dentry *dentry ) 
75524{ struct list_head *list ;
75525  struct dentry *de ;
75526  struct list_head  const  *__mptr ;
75527  raw_spinlock_t *tmp ;
75528  int tmp___0 ;
75529  spinlock_t *__cil_tmp7 ;
75530  struct dentry *__cil_tmp8 ;
75531  spinlock_t *__cil_tmp9 ;
75532  spinlock_t *__cil_tmp10 ;
75533  spinlock_t *__cil_tmp11 ;
75534  spinlock_t *__cil_tmp12 ;
75535  unsigned long __cil_tmp13 ;
75536  struct list_head *__cil_tmp14 ;
75537  unsigned long __cil_tmp15 ;
75538  spinlock_t *__cil_tmp16 ;
75539
75540  {
75541  {
75542#line 354
75543  __cil_tmp7 = & dentry->d_lock;
75544#line 354
75545  spin_lock(__cil_tmp7);
75546#line 355
75547  list = dentry->d_subdirs.next;
75548  }
75549#line 355
75550  goto ldv_28854;
75551  ldv_28853: 
75552  {
75553#line 356
75554  __mptr = (struct list_head  const  *)list;
75555#line 356
75556  __cil_tmp8 = (struct dentry *)__mptr;
75557#line 356
75558  de = __cil_tmp8 + 1152921504606846760UL;
75559#line 358
75560  __cil_tmp9 = & de->d_lock;
75561#line 358
75562  tmp = spinlock_check(__cil_tmp9);
75563#line 358
75564  _raw_spin_lock_nested(tmp, 1);
75565#line 359
75566  tmp___0 = usbfs_positive(de);
75567  }
75568#line 359
75569  if (tmp___0 != 0) {
75570    {
75571#line 360
75572    __cil_tmp10 = & de->d_lock;
75573#line 360
75574    spin_unlock(__cil_tmp10);
75575#line 361
75576    __cil_tmp11 = & dentry->d_lock;
75577#line 361
75578    spin_unlock(__cil_tmp11);
75579    }
75580#line 362
75581    return (0);
75582  } else {
75583
75584  }
75585  {
75586#line 364
75587  __cil_tmp12 = & de->d_lock;
75588#line 364
75589  spin_unlock(__cil_tmp12);
75590#line 355
75591  list = list->next;
75592  }
75593  ldv_28854: ;
75594  {
75595#line 355
75596  __cil_tmp13 = (unsigned long )list;
75597#line 355
75598  __cil_tmp14 = & dentry->d_subdirs;
75599#line 355
75600  __cil_tmp15 = (unsigned long )__cil_tmp14;
75601#line 355
75602  if (__cil_tmp15 != __cil_tmp13) {
75603#line 356
75604    goto ldv_28853;
75605  } else {
75606#line 358
75607    goto ldv_28855;
75608  }
75609  }
75610  ldv_28855: 
75611  {
75612#line 366
75613  __cil_tmp16 = & dentry->d_lock;
75614#line 366
75615  spin_unlock(__cil_tmp16);
75616  }
75617#line 367
75618  return (1);
75619}
75620}
75621#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"
75622static int usbfs_unlink(struct inode *dir , struct dentry *dentry ) 
75623{ struct inode *inode ;
75624  struct mutex *__cil_tmp4 ;
75625  struct inode *__cil_tmp5 ;
75626  struct mutex *__cil_tmp6 ;
75627
75628  {
75629  {
75630#line 372
75631  inode = dentry->d_inode;
75632#line 373
75633  __cil_tmp4 = & inode->i_mutex;
75634#line 373
75635  mutex_lock_nested(__cil_tmp4, 0U);
75636#line 374
75637  __cil_tmp5 = dentry->d_inode;
75638#line 374
75639  drop_nlink(__cil_tmp5);
75640#line 375
75641  dput(dentry);
75642#line 376
75643  __cil_tmp6 = & inode->i_mutex;
75644#line 376
75645  mutex_unlock(__cil_tmp6);
75646#line 377
75647  d_delete(dentry);
75648  }
75649#line 378
75650  return (0);
75651}
75652}
75653#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"
75654static int usbfs_rmdir(struct inode *dir , struct dentry *dentry ) 
75655{ int error ;
75656  struct inode *inode ;
75657  int tmp ;
75658  struct mutex *__cil_tmp6 ;
75659  struct inode *__cil_tmp7 ;
75660  struct inode *__cil_tmp8 ;
75661  unsigned int __cil_tmp9 ;
75662  struct mutex *__cil_tmp10 ;
75663
75664  {
75665  {
75666#line 383
75667  error = -39;
75668#line 384
75669  inode = dentry->d_inode;
75670#line 386
75671  __cil_tmp6 = & inode->i_mutex;
75672#line 386
75673  mutex_lock_nested(__cil_tmp6, 0U);
75674#line 387
75675  dentry_unhash(dentry);
75676#line 388
75677  tmp = usbfs_empty(dentry);
75678  }
75679#line 388
75680  if (tmp != 0) {
75681    {
75682#line 389
75683    dont_mount(dentry);
75684#line 390
75685    __cil_tmp7 = dentry->d_inode;
75686#line 390
75687    drop_nlink(__cil_tmp7);
75688#line 391
75689    __cil_tmp8 = dentry->d_inode;
75690#line 391
75691    drop_nlink(__cil_tmp8);
75692#line 392
75693    dput(dentry);
75694#line 393
75695    __cil_tmp9 = inode->i_flags;
75696#line 393
75697    inode->i_flags = __cil_tmp9 | 16U;
75698#line 394
75699    drop_nlink(dir);
75700#line 395
75701    error = 0;
75702    }
75703  } else {
75704
75705  }
75706  {
75707#line 397
75708  __cil_tmp10 = & inode->i_mutex;
75709#line 397
75710  mutex_unlock(__cil_tmp10);
75711  }
75712#line 398
75713  if (error == 0) {
75714    {
75715#line 399
75716    d_delete(dentry);
75717    }
75718  } else {
75719
75720  }
75721#line 400
75722  return (error);
75723}
75724}
75725#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"
75726static ssize_t default_read_file(struct file *file , char *buf , size_t count , loff_t *ppos ) 
75727{ 
75728
75729  {
75730#line 408
75731  return (0L);
75732}
75733}
75734#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"
75735static ssize_t default_write_file(struct file *file , char const   *buf , size_t count ,
75736                                  loff_t *ppos ) 
75737{ 
75738
75739  {
75740#line 414
75741  return ((ssize_t )count);
75742}
75743}
75744#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"
75745static loff_t default_file_lseek(struct file *file , loff_t offset , int orig ) 
75746{ loff_t retval ;
75747  struct dentry *__cil_tmp5 ;
75748  struct inode *__cil_tmp6 ;
75749  struct mutex *__cil_tmp7 ;
75750  loff_t __cil_tmp8 ;
75751  loff_t __cil_tmp9 ;
75752  loff_t __cil_tmp10 ;
75753  struct dentry *__cil_tmp11 ;
75754  struct inode *__cil_tmp12 ;
75755  struct mutex *__cil_tmp13 ;
75756
75757  {
75758  {
75759#line 419
75760  retval = -22LL;
75761#line 421
75762  __cil_tmp5 = file->f_path.dentry;
75763#line 421
75764  __cil_tmp6 = __cil_tmp5->d_inode;
75765#line 421
75766  __cil_tmp7 = & __cil_tmp6->i_mutex;
75767#line 421
75768  mutex_lock_nested(__cil_tmp7, 0U);
75769  }
75770#line 423
75771  if (orig == 0) {
75772#line 423
75773    goto case_0;
75774  } else
75775#line 429
75776  if (orig == 1) {
75777#line 429
75778    goto case_1;
75779  } else {
75780#line 435
75781    goto switch_default;
75782#line 422
75783    if (0) {
75784      case_0: ;
75785#line 424
75786      if (offset > 0LL) {
75787#line 425
75788        file->f_pos = offset;
75789#line 426
75790        retval = file->f_pos;
75791      } else {
75792
75793      }
75794#line 428
75795      goto ldv_28886;
75796      case_1: ;
75797      {
75798#line 430
75799      __cil_tmp8 = file->f_pos;
75800#line 430
75801      __cil_tmp9 = __cil_tmp8 + offset;
75802#line 430
75803      if (__cil_tmp9 > 0LL) {
75804#line 431
75805        __cil_tmp10 = file->f_pos;
75806#line 431
75807        file->f_pos = __cil_tmp10 + offset;
75808#line 432
75809        retval = file->f_pos;
75810      } else {
75811
75812      }
75813      }
75814#line 434
75815      goto ldv_28886;
75816      switch_default: ;
75817#line 436
75818      goto ldv_28886;
75819    } else {
75820
75821    }
75822  }
75823  ldv_28886: 
75824  {
75825#line 438
75826  __cil_tmp11 = file->f_path.dentry;
75827#line 438
75828  __cil_tmp12 = __cil_tmp11->d_inode;
75829#line 438
75830  __cil_tmp13 = & __cil_tmp12->i_mutex;
75831#line 438
75832  mutex_unlock(__cil_tmp13);
75833  }
75834#line 439
75835  return (retval);
75836}
75837}
75838#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"
75839static int default_open(struct inode *inode , struct file *file ) 
75840{ void *__cil_tmp3 ;
75841  unsigned long __cil_tmp4 ;
75842  void *__cil_tmp5 ;
75843  unsigned long __cil_tmp6 ;
75844
75845  {
75846  {
75847#line 444
75848  __cil_tmp3 = (void *)0;
75849#line 444
75850  __cil_tmp4 = (unsigned long )__cil_tmp3;
75851#line 444
75852  __cil_tmp5 = inode->i_private;
75853#line 444
75854  __cil_tmp6 = (unsigned long )__cil_tmp5;
75855#line 444
75856  if (__cil_tmp6 != __cil_tmp4) {
75857#line 445
75858    file->private_data = inode->i_private;
75859  } else {
75860
75861  }
75862  }
75863#line 447
75864  return (0);
75865}
75866}
75867#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"
75868static struct file_operations  const  default_file_operations  = 
75869#line 450
75870     {(struct module *)0, & default_file_lseek, & default_read_file, & default_write_file,
75871    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
75872    (ssize_t (*)(struct kiocb * , struct iovec  const  * , unsigned long  , loff_t  ))0,
75873    (int (*)(struct file * , void * , int (*)(void * , char const   * , int  , loff_t  ,
75874                                              u64  , unsigned int  ) ))0, (unsigned int (*)(struct file * ,
75875                                                                                            struct poll_table_struct * ))0,
75876    (long (*)(struct file * , unsigned int  , unsigned long  ))0, (long (*)(struct file * ,
75877                                                                            unsigned int  ,
75878                                                                            unsigned long  ))0,
75879    (int (*)(struct file * , struct vm_area_struct * ))0, & default_open, (int (*)(struct file * ,
75880                                                                                   fl_owner_t  ))0,
75881    (int (*)(struct inode * , struct file * ))0, (int (*)(struct file * , int  ))0,
75882    (int (*)(struct kiocb * , int  ))0, (int (*)(int  , struct file * , int  ))0,
75883    (int (*)(struct file * , int  , struct file_lock * ))0, (ssize_t (*)(struct file * ,
75884                                                                         struct page * ,
75885                                                                         int  , size_t  ,
75886                                                                         loff_t * ,
75887                                                                         int  ))0,
75888    (unsigned long (*)(struct file * , unsigned long  , unsigned long  , unsigned long  ,
75889                       unsigned long  ))0, (int (*)(int  ))0, (int (*)(struct file * ,
75890                                                                       int  , struct file_lock * ))0,
75891    (ssize_t (*)(struct pipe_inode_info * , struct file * , loff_t * , size_t  , unsigned int  ))0,
75892    (ssize_t (*)(struct file * , loff_t * , struct pipe_inode_info * , size_t  , unsigned int  ))0,
75893    (int (*)(struct file * , long  , struct file_lock ** ))0, (long (*)(struct file * ,
75894                                                                        int  , loff_t  ,
75895                                                                        loff_t  ))0};
75896#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"
75897static struct super_operations  const  usbfs_ops  = 
75898#line 457
75899     {(struct inode *(*)(struct super_block * ))0, (void (*)(struct inode * ))0, (void (*)(struct inode * ,
75900                                                                                         int  ))0,
75901    (int (*)(struct inode * , struct writeback_control * ))0, & generic_delete_inode,
75902    (void (*)(struct inode * ))0, (void (*)(struct super_block * ))0, (void (*)(struct super_block * ))0,
75903    (int (*)(struct super_block * , int  ))0, (int (*)(struct super_block * ))0, (int (*)(struct super_block * ))0,
75904    & simple_statfs, & remount, (void (*)(struct super_block * ))0, & usbfs_show_options,
75905    (int (*)(struct seq_file * , struct vfsmount * ))0, (int (*)(struct seq_file * ,
75906                                                                 struct vfsmount * ))0,
75907    (int (*)(struct seq_file * , struct vfsmount * ))0, (ssize_t (*)(struct super_block * ,
75908                                                                     int  , char * ,
75909                                                                     size_t  , loff_t  ))0,
75910    (ssize_t (*)(struct super_block * , int  , char const   * , size_t  , loff_t  ))0,
75911    (int (*)(struct super_block * , struct page * , gfp_t  ))0};
75912#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"
75913static int usbfs_fill_super(struct super_block *sb , void *data , int silent ) 
75914{ struct inode *inode ;
75915  struct dentry *root ;
75916  struct inode *__cil_tmp6 ;
75917  unsigned long __cil_tmp7 ;
75918  unsigned long __cil_tmp8 ;
75919  char *__cil_tmp9 ;
75920  struct dentry *__cil_tmp10 ;
75921  unsigned long __cil_tmp11 ;
75922  unsigned long __cil_tmp12 ;
75923  char *__cil_tmp13 ;
75924
75925  {
75926  {
75927#line 469
75928  sb->s_blocksize = 4096UL;
75929#line 470
75930  sb->s_blocksize_bits = (unsigned char)12;
75931#line 471
75932  sb->s_magic = 40866UL;
75933#line 472
75934  sb->s_op = & usbfs_ops;
75935#line 473
75936  sb->s_time_gran = 1U;
75937#line 474
75938  inode = usbfs_get_inode(sb, 16877, 0U);
75939  }
75940  {
75941#line 476
75942  __cil_tmp6 = (struct inode *)0;
75943#line 476
75944  __cil_tmp7 = (unsigned long )__cil_tmp6;
75945#line 476
75946  __cil_tmp8 = (unsigned long )inode;
75947#line 476
75948  if (__cil_tmp8 == __cil_tmp7) {
75949    {
75950#line 477
75951    __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";
75952#line 477
75953    printk("<7>%s: %s: could not get inode!\n", __cil_tmp9, "usbfs_fill_super");
75954    }
75955#line 478
75956    return (-12);
75957  } else {
75958
75959  }
75960  }
75961  {
75962#line 481
75963  root = d_alloc_root(inode);
75964  }
75965  {
75966#line 482
75967  __cil_tmp10 = (struct dentry *)0;
75968#line 482
75969  __cil_tmp11 = (unsigned long )__cil_tmp10;
75970#line 482
75971  __cil_tmp12 = (unsigned long )root;
75972#line 482
75973  if (__cil_tmp12 == __cil_tmp11) {
75974    {
75975#line 483
75976    __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";
75977#line 483
75978    printk("<7>%s: %s: could not get root dentry!\n", __cil_tmp13, "usbfs_fill_super");
75979#line 484
75980    iput(inode);
75981    }
75982#line 485
75983    return (-12);
75984  } else {
75985
75986  }
75987  }
75988#line 487
75989  sb->s_root = root;
75990#line 488
75991  return (0);
75992}
75993}
75994#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"
75995static int fs_create_by_name(char const   *name , mode_t mode , struct dentry *parent ,
75996                             struct dentry **dentry ) 
75997{ int error ;
75998  size_t tmp ;
75999  long tmp___0 ;
76000  long tmp___1 ;
76001  struct dentry *__cil_tmp9 ;
76002  unsigned long __cil_tmp10 ;
76003  unsigned long __cil_tmp11 ;
76004  struct vfsmount *__cil_tmp12 ;
76005  unsigned long __cil_tmp13 ;
76006  unsigned long __cil_tmp14 ;
76007  struct super_block *__cil_tmp15 ;
76008  unsigned long __cil_tmp16 ;
76009  struct super_block *__cil_tmp17 ;
76010  unsigned long __cil_tmp18 ;
76011  struct super_block *__cil_tmp19 ;
76012  struct dentry *__cil_tmp20 ;
76013  unsigned long __cil_tmp21 ;
76014  unsigned long __cil_tmp22 ;
76015  char *__cil_tmp23 ;
76016  struct inode *__cil_tmp24 ;
76017  struct mutex *__cil_tmp25 ;
76018  int __cil_tmp26 ;
76019  struct dentry *__cil_tmp27 ;
76020  void const   *__cil_tmp28 ;
76021  unsigned int __cil_tmp29 ;
76022  struct inode *__cil_tmp30 ;
76023  struct dentry *__cil_tmp31 ;
76024  int __cil_tmp32 ;
76025  struct inode *__cil_tmp33 ;
76026  struct dentry *__cil_tmp34 ;
76027  int __cil_tmp35 ;
76028  struct dentry *__cil_tmp36 ;
76029  void const   *__cil_tmp37 ;
76030  struct inode *__cil_tmp38 ;
76031  struct mutex *__cil_tmp39 ;
76032
76033  {
76034#line 503
76035  error = 0;
76036  {
76037#line 510
76038  __cil_tmp9 = (struct dentry *)0;
76039#line 510
76040  __cil_tmp10 = (unsigned long )__cil_tmp9;
76041#line 510
76042  __cil_tmp11 = (unsigned long )parent;
76043#line 510
76044  if (__cil_tmp11 == __cil_tmp10) {
76045    {
76046#line 511
76047    __cil_tmp12 = (struct vfsmount *)0;
76048#line 511
76049    __cil_tmp13 = (unsigned long )__cil_tmp12;
76050#line 511
76051    __cil_tmp14 = (unsigned long )usbfs_mount;
76052#line 511
76053    if (__cil_tmp14 != __cil_tmp13) {
76054      {
76055#line 511
76056      __cil_tmp15 = (struct super_block *)0;
76057#line 511
76058      __cil_tmp16 = (unsigned long )__cil_tmp15;
76059#line 511
76060      __cil_tmp17 = usbfs_mount->mnt_sb;
76061#line 511
76062      __cil_tmp18 = (unsigned long )__cil_tmp17;
76063#line 511
76064      if (__cil_tmp18 != __cil_tmp16) {
76065#line 512
76066        __cil_tmp19 = usbfs_mount->mnt_sb;
76067#line 512
76068        parent = __cil_tmp19->s_root;
76069      } else {
76070
76071      }
76072      }
76073    } else {
76074
76075    }
76076    }
76077  } else {
76078
76079  }
76080  }
76081  {
76082#line 516
76083  __cil_tmp20 = (struct dentry *)0;
76084#line 516
76085  __cil_tmp21 = (unsigned long )__cil_tmp20;
76086#line 516
76087  __cil_tmp22 = (unsigned long )parent;
76088#line 516
76089  if (__cil_tmp22 == __cil_tmp21) {
76090    {
76091#line 517
76092    __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";
76093#line 517
76094    printk("<7>%s: Ah! can not find a parent!\n", __cil_tmp23);
76095    }
76096#line 518
76097    return (-14);
76098  } else {
76099
76100  }
76101  }
76102  {
76103#line 521
76104  *dentry = (struct dentry *)0;
76105#line 522
76106  __cil_tmp24 = parent->d_inode;
76107#line 522
76108  __cil_tmp25 = & __cil_tmp24->i_mutex;
76109#line 522
76110  mutex_lock_nested(__cil_tmp25, 0U);
76111#line 523
76112  tmp = strlen(name);
76113#line 523
76114  __cil_tmp26 = (int )tmp;
76115#line 523
76116  *dentry = lookup_one_len(name, parent, __cil_tmp26);
76117#line 524
76118  __cil_tmp27 = *dentry;
76119#line 524
76120  __cil_tmp28 = (void const   *)__cil_tmp27;
76121#line 524
76122  tmp___1 = IS_ERR(__cil_tmp28);
76123  }
76124#line 524
76125  if (tmp___1 == 0L) {
76126    {
76127#line 525
76128    __cil_tmp29 = mode & 61440U;
76129#line 525
76130    if (__cil_tmp29 == 16384U) {
76131      {
76132#line 526
76133      __cil_tmp30 = parent->d_inode;
76134#line 526
76135      __cil_tmp31 = *dentry;
76136#line 526
76137      __cil_tmp32 = (int )mode;
76138#line 526
76139      error = usbfs_mkdir(__cil_tmp30, __cil_tmp31, __cil_tmp32);
76140      }
76141    } else {
76142      {
76143#line 528
76144      __cil_tmp33 = parent->d_inode;
76145#line 528
76146      __cil_tmp34 = *dentry;
76147#line 528
76148      __cil_tmp35 = (int )mode;
76149#line 528
76150      error = usbfs_create(__cil_tmp33, __cil_tmp34, __cil_tmp35);
76151      }
76152    }
76153    }
76154  } else {
76155    {
76156#line 530
76157    __cil_tmp36 = *dentry;
76158#line 530
76159    __cil_tmp37 = (void const   *)__cil_tmp36;
76160#line 530
76161    tmp___0 = PTR_ERR(__cil_tmp37);
76162#line 530
76163    error = (int )tmp___0;
76164    }
76165  }
76166  {
76167#line 531
76168  __cil_tmp38 = parent->d_inode;
76169#line 531
76170  __cil_tmp39 = & __cil_tmp38->i_mutex;
76171#line 531
76172  mutex_unlock(__cil_tmp39);
76173  }
76174#line 533
76175  return (error);
76176}
76177}
76178#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"
76179static struct dentry *fs_create_file(char const   *name , mode_t mode , struct dentry *parent ,
76180                                     void *data , struct file_operations  const  *fops ,
76181                                     uid_t uid , gid_t gid ) 
76182{ struct dentry *dentry ;
76183  int error ;
76184  char *__cil_tmp10 ;
76185  struct inode *__cil_tmp11 ;
76186  unsigned long __cil_tmp12 ;
76187  struct inode *__cil_tmp13 ;
76188  unsigned long __cil_tmp14 ;
76189  void *__cil_tmp15 ;
76190  unsigned long __cil_tmp16 ;
76191  unsigned long __cil_tmp17 ;
76192  struct inode *__cil_tmp18 ;
76193  struct file_operations  const  *__cil_tmp19 ;
76194  unsigned long __cil_tmp20 ;
76195  unsigned long __cil_tmp21 ;
76196  struct inode *__cil_tmp22 ;
76197  struct inode *__cil_tmp23 ;
76198  struct inode *__cil_tmp24 ;
76199
76200  {
76201  {
76202#line 544
76203  __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";
76204#line 544
76205  printk("<7>%s: creating file \'%s\'\n", __cil_tmp10, name);
76206#line 546
76207  error = fs_create_by_name(name, mode, parent, & dentry);
76208  }
76209#line 547
76210  if (error != 0) {
76211#line 548
76212    dentry = (struct dentry *)0;
76213  } else {
76214    {
76215#line 550
76216    __cil_tmp11 = (struct inode *)0;
76217#line 550
76218    __cil_tmp12 = (unsigned long )__cil_tmp11;
76219#line 550
76220    __cil_tmp13 = dentry->d_inode;
76221#line 550
76222    __cil_tmp14 = (unsigned long )__cil_tmp13;
76223#line 550
76224    if (__cil_tmp14 != __cil_tmp12) {
76225      {
76226#line 551
76227      __cil_tmp15 = (void *)0;
76228#line 551
76229      __cil_tmp16 = (unsigned long )__cil_tmp15;
76230#line 551
76231      __cil_tmp17 = (unsigned long )data;
76232#line 551
76233      if (__cil_tmp17 != __cil_tmp16) {
76234#line 552
76235        __cil_tmp18 = dentry->d_inode;
76236#line 552
76237        __cil_tmp18->i_private = data;
76238      } else {
76239
76240      }
76241      }
76242      {
76243#line 553
76244      __cil_tmp19 = (struct file_operations  const  *)0;
76245#line 553
76246      __cil_tmp20 = (unsigned long )__cil_tmp19;
76247#line 553
76248      __cil_tmp21 = (unsigned long )fops;
76249#line 553
76250      if (__cil_tmp21 != __cil_tmp20) {
76251#line 554
76252        __cil_tmp22 = dentry->d_inode;
76253#line 554
76254        __cil_tmp22->i_fop = fops;
76255      } else {
76256
76257      }
76258      }
76259#line 555
76260      __cil_tmp23 = dentry->d_inode;
76261#line 555
76262      __cil_tmp23->i_uid = uid;
76263#line 556
76264      __cil_tmp24 = dentry->d_inode;
76265#line 556
76266      __cil_tmp24->i_gid = gid;
76267    } else {
76268
76269    }
76270    }
76271  }
76272#line 560
76273  return (dentry);
76274}
76275}
76276#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"
76277static void fs_remove_file(struct dentry *dentry ) 
76278{ struct dentry *parent ;
76279  int tmp ;
76280  struct dentry *__cil_tmp4 ;
76281  unsigned long __cil_tmp5 ;
76282  unsigned long __cil_tmp6 ;
76283  struct inode *__cil_tmp7 ;
76284  unsigned long __cil_tmp8 ;
76285  struct inode *__cil_tmp9 ;
76286  unsigned long __cil_tmp10 ;
76287  struct inode *__cil_tmp11 ;
76288  struct mutex *__cil_tmp12 ;
76289  struct inode *__cil_tmp13 ;
76290  unsigned long __cil_tmp14 ;
76291  struct inode *__cil_tmp15 ;
76292  unsigned long __cil_tmp16 ;
76293  struct inode *__cil_tmp17 ;
76294  umode_t __cil_tmp18 ;
76295  int __cil_tmp19 ;
76296  int __cil_tmp20 ;
76297  struct inode *__cil_tmp21 ;
76298  struct inode *__cil_tmp22 ;
76299  struct inode *__cil_tmp23 ;
76300  struct mutex *__cil_tmp24 ;
76301
76302  {
76303#line 565
76304  parent = dentry->d_parent;
76305  {
76306#line 567
76307  __cil_tmp4 = (struct dentry *)0;
76308#line 567
76309  __cil_tmp5 = (unsigned long )__cil_tmp4;
76310#line 567
76311  __cil_tmp6 = (unsigned long )parent;
76312#line 567
76313  if (__cil_tmp6 == __cil_tmp5) {
76314#line 568
76315    return;
76316  } else {
76317    {
76318#line 567
76319    __cil_tmp7 = (struct inode *)0;
76320#line 567
76321    __cil_tmp8 = (unsigned long )__cil_tmp7;
76322#line 567
76323    __cil_tmp9 = parent->d_inode;
76324#line 567
76325    __cil_tmp10 = (unsigned long )__cil_tmp9;
76326#line 567
76327    if (__cil_tmp10 == __cil_tmp8) {
76328#line 568
76329      return;
76330    } else {
76331
76332    }
76333    }
76334  }
76335  }
76336  {
76337#line 570
76338  __cil_tmp11 = parent->d_inode;
76339#line 570
76340  __cil_tmp12 = & __cil_tmp11->i_mutex;
76341#line 570
76342  mutex_lock_nested(__cil_tmp12, 1U);
76343#line 571
76344  tmp = usbfs_positive(dentry);
76345  }
76346#line 571
76347  if (tmp != 0) {
76348    {
76349#line 572
76350    __cil_tmp13 = (struct inode *)0;
76351#line 572
76352    __cil_tmp14 = (unsigned long )__cil_tmp13;
76353#line 572
76354    __cil_tmp15 = dentry->d_inode;
76355#line 572
76356    __cil_tmp16 = (unsigned long )__cil_tmp15;
76357#line 572
76358    if (__cil_tmp16 != __cil_tmp14) {
76359      {
76360#line 573
76361      __cil_tmp17 = dentry->d_inode;
76362#line 573
76363      __cil_tmp18 = __cil_tmp17->i_mode;
76364#line 573
76365      __cil_tmp19 = (int )__cil_tmp18;
76366#line 573
76367      __cil_tmp20 = __cil_tmp19 & 61440;
76368#line 573
76369      if (__cil_tmp20 == 16384) {
76370        {
76371#line 574
76372        __cil_tmp21 = parent->d_inode;
76373#line 574
76374        usbfs_rmdir(__cil_tmp21, dentry);
76375        }
76376      } else {
76377        {
76378#line 576
76379        __cil_tmp22 = parent->d_inode;
76380#line 576
76381        usbfs_unlink(__cil_tmp22, dentry);
76382        }
76383      }
76384      }
76385      {
76386#line 577
76387      dput(dentry);
76388      }
76389    } else {
76390
76391    }
76392    }
76393  } else {
76394
76395  }
76396  {
76397#line 580
76398  __cil_tmp23 = parent->d_inode;
76399#line 580
76400  __cil_tmp24 = & __cil_tmp23->i_mutex;
76401#line 580
76402  mutex_unlock(__cil_tmp24);
76403  }
76404#line 581
76405  return;
76406}
76407}
76408#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"
76409static struct dentry *usb_mount(struct file_system_type *fs_type , int flags , char const   *dev_name___0 ,
76410                                void *data ) 
76411{ struct dentry *tmp ;
76412
76413  {
76414  {
76415#line 588
76416  tmp = mount_single(fs_type, flags, data, & usbfs_fill_super);
76417  }
76418#line 588
76419  return (tmp);
76420}
76421}
76422#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"
76423static struct file_system_type usb_fs_type  = 
76424#line 591
76425     {"usbfs", 0, & usb_mount, & kill_litter_super, & __this_module, (struct file_system_type *)0,
76426    {(struct list_head *)0, (struct list_head *)0}, {{{(char)0}, {(char)0}, {(char)0},
76427                                                      {(char)0}, {(char)0}, {(char)0},
76428                                                      {(char)0}, {(char)0}}}, {{{(char)0},
76429                                                                                {(char)0},
76430                                                                                {(char)0},
76431                                                                                {(char)0},
76432                                                                                {(char)0},
76433                                                                                {(char)0},
76434                                                                                {(char)0},
76435                                                                                {(char)0}}},
76436    {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
76437      {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
76438                     {(char)0}, {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0},
76439                                               {(char)0}, {(char)0}, {(char)0}, {(char)0}}},
76440    {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
76441      {(char)0}}}, {{{(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0}, {(char)0},
76442                     {(char)0}, {(char)0}}}};
76443#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"
76444static int create_special_files(void) 
76445{ struct dentry *parent ;
76446  int retval ;
76447  struct super_block *__cil_tmp3 ;
76448  unsigned int __cil_tmp4 ;
76449  unsigned int __cil_tmp5 ;
76450  void *__cil_tmp6 ;
76451  struct dentry *__cil_tmp7 ;
76452  unsigned long __cil_tmp8 ;
76453  unsigned long __cil_tmp9 ;
76454
76455  {
76456  {
76457#line 608
76458  ignore_mount = 1;
76459#line 611
76460  retval = simple_pin_fs(& usb_fs_type, & usbfs_mount, & usbfs_mount_count);
76461  }
76462#line 612
76463  if (retval != 0) {
76464    {
76465#line 613
76466    printk("<3>Unable to get usbfs mount\n");
76467    }
76468#line 614
76469    goto exit;
76470  } else {
76471
76472  }
76473  {
76474#line 617
76475  ignore_mount = 0;
76476#line 619
76477  __cil_tmp3 = usbfs_mount->mnt_sb;
76478#line 619
76479  parent = __cil_tmp3->s_root;
76480#line 620
76481  __cil_tmp4 = (unsigned int )listmode;
76482#line 620
76483  __cil_tmp5 = __cil_tmp4 | 32768U;
76484#line 620
76485  __cil_tmp6 = (void *)0;
76486#line 620
76487  devices_usbfs_dentry = fs_create_file("devices", __cil_tmp5, parent, __cil_tmp6,
76488                                        & usbfs_devices_fops, listuid, listgid);
76489  }
76490  {
76491#line 624
76492  __cil_tmp7 = (struct dentry *)0;
76493#line 624
76494  __cil_tmp8 = (unsigned long )__cil_tmp7;
76495#line 624
76496  __cil_tmp9 = (unsigned long )devices_usbfs_dentry;
76497#line 624
76498  if (__cil_tmp9 == __cil_tmp8) {
76499    {
76500#line 625
76501    printk("<3>Unable to create devices usbfs file\n");
76502#line 626
76503    retval = -19;
76504    }
76505#line 627
76506    goto error_clean_mounts;
76507  } else {
76508
76509  }
76510  }
76511#line 630
76512  goto exit;
76513  error_clean_mounts: 
76514  {
76515#line 633
76516  simple_release_fs(& usbfs_mount, & usbfs_mount_count);
76517  }
76518  exit: ;
76519#line 635
76520  return (retval);
76521}
76522}
76523#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"
76524static void remove_special_files(void) 
76525{ struct dentry *__cil_tmp1 ;
76526  unsigned long __cil_tmp2 ;
76527  unsigned long __cil_tmp3 ;
76528
76529  {
76530  {
76531#line 640
76532  __cil_tmp1 = (struct dentry *)0;
76533#line 640
76534  __cil_tmp2 = (unsigned long )__cil_tmp1;
76535#line 640
76536  __cil_tmp3 = (unsigned long )devices_usbfs_dentry;
76537#line 640
76538  if (__cil_tmp3 != __cil_tmp2) {
76539    {
76540#line 641
76541    fs_remove_file(devices_usbfs_dentry);
76542    }
76543  } else {
76544
76545  }
76546  }
76547  {
76548#line 642
76549  devices_usbfs_dentry = (struct dentry *)0;
76550#line 643
76551  simple_release_fs(& usbfs_mount, & usbfs_mount_count);
76552  }
76553#line 644
76554  return;
76555}
76556}
76557#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"
76558void usbfs_update_special(void) 
76559{ struct inode *inode ;
76560  struct timespec tmp ;
76561  struct timespec tmp___0 ;
76562  struct dentry *__cil_tmp4 ;
76563  unsigned long __cil_tmp5 ;
76564  unsigned long __cil_tmp6 ;
76565  struct inode *__cil_tmp7 ;
76566  unsigned long __cil_tmp8 ;
76567  unsigned long __cil_tmp9 ;
76568
76569  {
76570  {
76571#line 650
76572  __cil_tmp4 = (struct dentry *)0;
76573#line 650
76574  __cil_tmp5 = (unsigned long )__cil_tmp4;
76575#line 650
76576  __cil_tmp6 = (unsigned long )devices_usbfs_dentry;
76577#line 650
76578  if (__cil_tmp6 != __cil_tmp5) {
76579#line 651
76580    inode = devices_usbfs_dentry->d_inode;
76581    {
76582#line 652
76583    __cil_tmp7 = (struct inode *)0;
76584#line 652
76585    __cil_tmp8 = (unsigned long )__cil_tmp7;
76586#line 652
76587    __cil_tmp9 = (unsigned long )inode;
76588#line 652
76589    if (__cil_tmp9 != __cil_tmp8) {
76590      {
76591#line 653
76592      tmp___0 = current_kernel_time();
76593#line 653
76594      inode->i_ctime = tmp___0;
76595#line 653
76596      tmp = tmp___0;
76597#line 653
76598      inode->i_mtime = tmp;
76599#line 653
76600      inode->i_atime = tmp;
76601      }
76602    } else {
76603
76604    }
76605    }
76606  } else {
76607
76608  }
76609  }
76610#line 655
76611  return;
76612}
76613}
76614#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"
76615static void usbfs_add_bus(struct usb_bus *bus ) 
76616{ struct dentry *parent ;
76617  char name[8U] ;
76618  int retval ;
76619  char *__cil_tmp5 ;
76620  int __cil_tmp6 ;
76621  struct super_block *__cil_tmp7 ;
76622  char const   *__cil_tmp8 ;
76623  unsigned int __cil_tmp9 ;
76624  unsigned int __cil_tmp10 ;
76625  void *__cil_tmp11 ;
76626  struct file_operations  const  *__cil_tmp12 ;
76627  struct dentry *__cil_tmp13 ;
76628  unsigned long __cil_tmp14 ;
76629  struct dentry *__cil_tmp15 ;
76630  unsigned long __cil_tmp16 ;
76631
76632  {
76633#line 664
76634  if (num_buses == 0) {
76635    {
76636#line 665
76637    retval = create_special_files();
76638    }
76639#line 666
76640    if (retval != 0) {
76641#line 667
76642      return;
76643    } else {
76644
76645    }
76646  } else {
76647
76648  }
76649  {
76650#line 669
76651  num_buses = num_buses + 1;
76652#line 671
76653  __cil_tmp5 = (char *)(& name);
76654#line 671
76655  __cil_tmp6 = bus->busnum;
76656#line 671
76657  sprintf(__cil_tmp5, "%03d", __cil_tmp6);
76658#line 673
76659  __cil_tmp7 = usbfs_mount->mnt_sb;
76660#line 673
76661  parent = __cil_tmp7->s_root;
76662#line 674
76663  __cil_tmp8 = (char const   *)(& name);
76664#line 674
76665  __cil_tmp9 = (unsigned int )busmode;
76666#line 674
76667  __cil_tmp10 = __cil_tmp9 | 16384U;
76668#line 674
76669  __cil_tmp11 = (void *)bus;
76670#line 674
76671  __cil_tmp12 = (struct file_operations  const  *)0;
76672#line 674
76673  bus->usbfs_dentry = fs_create_file(__cil_tmp8, __cil_tmp10, parent, __cil_tmp11,
76674                                     __cil_tmp12, busuid, busgid);
76675  }
76676  {
76677#line 676
76678  __cil_tmp13 = (struct dentry *)0;
76679#line 676
76680  __cil_tmp14 = (unsigned long )__cil_tmp13;
76681#line 676
76682  __cil_tmp15 = bus->usbfs_dentry;
76683#line 676
76684  __cil_tmp16 = (unsigned long )__cil_tmp15;
76685#line 676
76686  if (__cil_tmp16 == __cil_tmp14) {
76687    {
76688#line 677
76689    printk("<3>Error creating usbfs bus entry\n");
76690    }
76691#line 678
76692    return;
76693  } else {
76694
76695  }
76696  }
76697#line 680
76698  return;
76699}
76700}
76701#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"
76702static void usbfs_remove_bus(struct usb_bus *bus ) 
76703{ struct dentry *__cil_tmp2 ;
76704  unsigned long __cil_tmp3 ;
76705  struct dentry *__cil_tmp4 ;
76706  unsigned long __cil_tmp5 ;
76707  struct dentry *__cil_tmp6 ;
76708
76709  {
76710  {
76711#line 684
76712  __cil_tmp2 = (struct dentry *)0;
76713#line 684
76714  __cil_tmp3 = (unsigned long )__cil_tmp2;
76715#line 684
76716  __cil_tmp4 = bus->usbfs_dentry;
76717#line 684
76718  __cil_tmp5 = (unsigned long )__cil_tmp4;
76719#line 684
76720  if (__cil_tmp5 != __cil_tmp3) {
76721    {
76722#line 685
76723    __cil_tmp6 = bus->usbfs_dentry;
76724#line 685
76725    fs_remove_file(__cil_tmp6);
76726#line 686
76727    bus->usbfs_dentry = (struct dentry *)0;
76728    }
76729  } else {
76730
76731  }
76732  }
76733#line 689
76734  num_buses = num_buses - 1;
76735#line 690
76736  if (num_buses <= 0) {
76737    {
76738#line 691
76739    remove_special_files();
76740#line 692
76741    num_buses = 0;
76742    }
76743  } else {
76744
76745  }
76746#line 694
76747  return;
76748}
76749}
76750#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"
76751static void usbfs_add_device(struct usb_device *dev ) 
76752{ char name[8U] ;
76753  int i ;
76754  int i_size ;
76755  struct usb_config_descriptor *config ;
76756  char *__cil_tmp6 ;
76757  int __cil_tmp7 ;
76758  char const   *__cil_tmp8 ;
76759  unsigned int __cil_tmp9 ;
76760  unsigned int __cil_tmp10 ;
76761  struct usb_bus *__cil_tmp11 ;
76762  struct dentry *__cil_tmp12 ;
76763  void *__cil_tmp13 ;
76764  struct dentry *__cil_tmp14 ;
76765  unsigned long __cil_tmp15 ;
76766  struct dentry *__cil_tmp16 ;
76767  unsigned long __cil_tmp17 ;
76768  unsigned long __cil_tmp18 ;
76769  char **__cil_tmp19 ;
76770  char **__cil_tmp20 ;
76771  char *__cil_tmp21 ;
76772  __le16 __cil_tmp22 ;
76773  int __cil_tmp23 ;
76774  __u8 __cil_tmp24 ;
76775  int __cil_tmp25 ;
76776  struct inode *__cil_tmp26 ;
76777  unsigned long __cil_tmp27 ;
76778  struct dentry *__cil_tmp28 ;
76779  struct inode *__cil_tmp29 ;
76780  unsigned long __cil_tmp30 ;
76781  struct dentry *__cil_tmp31 ;
76782  struct inode *__cil_tmp32 ;
76783
76784  {
76785  {
76786#line 702
76787  __cil_tmp6 = (char *)(& name);
76788#line 702
76789  __cil_tmp7 = dev->devnum;
76790#line 702
76791  sprintf(__cil_tmp6, "%03d", __cil_tmp7);
76792#line 703
76793  __cil_tmp8 = (char const   *)(& name);
76794#line 703
76795  __cil_tmp9 = (unsigned int )devmode;
76796#line 703
76797  __cil_tmp10 = __cil_tmp9 | 32768U;
76798#line 703
76799  __cil_tmp11 = dev->bus;
76800#line 703
76801  __cil_tmp12 = __cil_tmp11->usbfs_dentry;
76802#line 703
76803  __cil_tmp13 = (void *)dev;
76804#line 703
76805  dev->usbfs_dentry = fs_create_file(__cil_tmp8, __cil_tmp10, __cil_tmp12, __cil_tmp13,
76806                                     & usbdev_file_operations, devuid, devgid);
76807  }
76808  {
76809#line 707
76810  __cil_tmp14 = (struct dentry *)0;
76811#line 707
76812  __cil_tmp15 = (unsigned long )__cil_tmp14;
76813#line 707
76814  __cil_tmp16 = dev->usbfs_dentry;
76815#line 707
76816  __cil_tmp17 = (unsigned long )__cil_tmp16;
76817#line 707
76818  if (__cil_tmp17 == __cil_tmp15) {
76819    {
76820#line 708
76821    printk("<3>Error creating usbfs device entry\n");
76822    }
76823#line 709
76824    return;
76825  } else {
76826
76827  }
76828  }
76829#line 714
76830  i_size = 18;
76831#line 715
76832  i = 0;
76833#line 715
76834  goto ldv_28963;
76835  ldv_28962: 
76836#line 716
76837  __cil_tmp18 = (unsigned long )i;
76838#line 716
76839  __cil_tmp19 = dev->rawdescriptors;
76840#line 716
76841  __cil_tmp20 = __cil_tmp19 + __cil_tmp18;
76842#line 716
76843  __cil_tmp21 = *__cil_tmp20;
76844#line 716
76845  config = (struct usb_config_descriptor *)__cil_tmp21;
76846#line 718
76847  __cil_tmp22 = config->wTotalLength;
76848#line 718
76849  __cil_tmp23 = (int )__cil_tmp22;
76850#line 718
76851  i_size = __cil_tmp23 + i_size;
76852#line 715
76853  i = i + 1;
76854  ldv_28963: ;
76855  {
76856#line 715
76857  __cil_tmp24 = dev->descriptor.bNumConfigurations;
76858#line 715
76859  __cil_tmp25 = (int )__cil_tmp24;
76860#line 715
76861  if (__cil_tmp25 > i) {
76862#line 716
76863    goto ldv_28962;
76864  } else {
76865#line 718
76866    goto ldv_28964;
76867  }
76868  }
76869  ldv_28964: ;
76870  {
76871#line 720
76872  __cil_tmp26 = (struct inode *)0;
76873#line 720
76874  __cil_tmp27 = (unsigned long )__cil_tmp26;
76875#line 720
76876  __cil_tmp28 = dev->usbfs_dentry;
76877#line 720
76878  __cil_tmp29 = __cil_tmp28->d_inode;
76879#line 720
76880  __cil_tmp30 = (unsigned long )__cil_tmp29;
76881#line 720
76882  if (__cil_tmp30 != __cil_tmp27) {
76883#line 721
76884    __cil_tmp31 = dev->usbfs_dentry;
76885#line 721
76886    __cil_tmp32 = __cil_tmp31->d_inode;
76887#line 721
76888    __cil_tmp32->i_size = (loff_t )i_size;
76889  } else {
76890
76891  }
76892  }
76893#line 722
76894  return;
76895}
76896}
76897#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"
76898static void usbfs_remove_device(struct usb_device *dev ) 
76899{ struct dentry *__cil_tmp2 ;
76900  unsigned long __cil_tmp3 ;
76901  struct dentry *__cil_tmp4 ;
76902  unsigned long __cil_tmp5 ;
76903  struct dentry *__cil_tmp6 ;
76904
76905  {
76906  {
76907#line 726
76908  __cil_tmp2 = (struct dentry *)0;
76909#line 726
76910  __cil_tmp3 = (unsigned long )__cil_tmp2;
76911#line 726
76912  __cil_tmp4 = dev->usbfs_dentry;
76913#line 726
76914  __cil_tmp5 = (unsigned long )__cil_tmp4;
76915#line 726
76916  if (__cil_tmp5 != __cil_tmp3) {
76917    {
76918#line 727
76919    __cil_tmp6 = dev->usbfs_dentry;
76920#line 727
76921    fs_remove_file(__cil_tmp6);
76922#line 728
76923    dev->usbfs_dentry = (struct dentry *)0;
76924    }
76925  } else {
76926
76927  }
76928  }
76929#line 730
76930  return;
76931}
76932}
76933#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"
76934static int usbfs_notify(struct notifier_block *self , unsigned long action , void *dev ) 
76935{ int __cil_tmp4 ;
76936  int __cil_tmp5 ;
76937  int __cil_tmp6 ;
76938  int __cil_tmp7 ;
76939  struct usb_device *__cil_tmp8 ;
76940  struct usb_device *__cil_tmp9 ;
76941  struct usb_bus *__cil_tmp10 ;
76942  struct usb_bus *__cil_tmp11 ;
76943
76944  {
76945  {
76946#line 735
76947  __cil_tmp4 = (int )action;
76948#line 735
76949  if (__cil_tmp4 == 1) {
76950#line 735
76951    goto case_1;
76952  } else {
76953    {
76954#line 738
76955    __cil_tmp5 = (int )action;
76956#line 738
76957    if (__cil_tmp5 == 2) {
76958#line 738
76959      goto case_2;
76960    } else {
76961      {
76962#line 741
76963      __cil_tmp6 = (int )action;
76964#line 741
76965      if (__cil_tmp6 == 3) {
76966#line 741
76967        goto case_3;
76968      } else {
76969        {
76970#line 744
76971        __cil_tmp7 = (int )action;
76972#line 744
76973        if (__cil_tmp7 == 4) {
76974#line 744
76975          goto case_4;
76976        } else
76977#line 734
76978        if (0) {
76979          case_1: 
76980          {
76981#line 736
76982          __cil_tmp8 = (struct usb_device *)dev;
76983#line 736
76984          usbfs_add_device(__cil_tmp8);
76985          }
76986#line 737
76987          goto ldv_28974;
76988          case_2: 
76989          {
76990#line 739
76991          __cil_tmp9 = (struct usb_device *)dev;
76992#line 739
76993          usbfs_remove_device(__cil_tmp9);
76994          }
76995#line 740
76996          goto ldv_28974;
76997          case_3: 
76998          {
76999#line 742
77000          __cil_tmp10 = (struct usb_bus *)dev;
77001#line 742
77002          usbfs_add_bus(__cil_tmp10);
77003          }
77004#line 743
77005          goto ldv_28974;
77006          case_4: 
77007          {
77008#line 745
77009          __cil_tmp11 = (struct usb_bus *)dev;
77010#line 745
77011          usbfs_remove_bus(__cil_tmp11);
77012          }
77013        } else {
77014
77015        }
77016        }
77017      }
77018      }
77019    }
77020    }
77021  }
77022  }
77023  ldv_28974: 
77024  {
77025#line 748
77026  usbfs_update_special();
77027#line 749
77028  usbfs_conn_disc_event();
77029  }
77030#line 750
77031  return (1);
77032}
77033}
77034#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"
77035static struct notifier_block usbfs_nb  =    {& usbfs_notify, (struct notifier_block *)0, 0};
77036#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"
77037static struct proc_dir_entry *usbdir  =    (struct proc_dir_entry *)0;
77038#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"
77039int usbfs_init(void) 
77040{ int retval ;
77041  struct proc_dir_entry *__cil_tmp2 ;
77042
77043  {
77044  {
77045#line 765
77046  retval = register_filesystem(& usb_fs_type);
77047  }
77048#line 766
77049  if (retval != 0) {
77050#line 767
77051    return (retval);
77052  } else {
77053
77054  }
77055  {
77056#line 769
77057  usb_register_notify(& usbfs_nb);
77058#line 772
77059  __cil_tmp2 = (struct proc_dir_entry *)0;
77060#line 772
77061  usbdir = proc_mkdir("bus/usb", __cil_tmp2);
77062  }
77063#line 774
77064  return (0);
77065}
77066}
77067#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"
77068void usbfs_cleanup(void) 
77069{ struct proc_dir_entry *__cil_tmp1 ;
77070  unsigned long __cil_tmp2 ;
77071  unsigned long __cil_tmp3 ;
77072  struct proc_dir_entry *__cil_tmp4 ;
77073
77074  {
77075  {
77076#line 779
77077  usb_unregister_notify(& usbfs_nb);
77078#line 780
77079  unregister_filesystem(& usb_fs_type);
77080  }
77081  {
77082#line 781
77083  __cil_tmp1 = (struct proc_dir_entry *)0;
77084#line 781
77085  __cil_tmp2 = (unsigned long )__cil_tmp1;
77086#line 781
77087  __cil_tmp3 = (unsigned long )usbdir;
77088#line 781
77089  if (__cil_tmp3 != __cil_tmp2) {
77090    {
77091#line 782
77092    __cil_tmp4 = (struct proc_dir_entry *)0;
77093#line 782
77094    remove_proc_entry("bus/usb", __cil_tmp4);
77095    }
77096  } else {
77097
77098  }
77099  }
77100#line 783
77101  return;
77102}
77103}